From e59987aad4f02e86f8fcabcceac1ea302999ee03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mro=CC=81z?= Date: Tue, 16 May 2017 19:37:28 +0200 Subject: [PATCH 01/10] [Dependencies] Update to new ReSwift & ReSwiftRouter. --- Cartfile | 4 +- Cartfile.resolved | 12 +- .../Checkouts/Nimble/.github/ISSUE_TEMPLATE | 36 + .../Nimble/.github/PULL_REQUEST_TEMPLATE | 14 + Carthage/Checkouts/Nimble/.hound.yml | 2 + Carthage/Checkouts/Nimble/.swiftlint.yml | 19 + Carthage/Checkouts/Nimble/Dockerfile.test | 3 + Carthage/Checkouts/Nimble/Gemfile | 2 +- Carthage/Checkouts/Nimble/Gemfile.lock | 46 +- .../Nimble/LICENSE.md => Nimble/LICENSE} | 2 +- Carthage/Checkouts/Nimble/Nimble.podspec | 14 +- .../Nimble/Nimble.xcodeproj/project.pbxproj | 333 ++++++++-- .../xcschemes/Nimble-iOS.xcscheme | 2 +- .../xcschemes/Nimble-macOS.xcscheme | 2 +- .../xcschemes/Nimble-tvOS.xcscheme | 2 +- Carthage/Checkouts/Nimble/README.md | 433 ++++++++++-- .../CwlCatchException/CwlCatchException.swift | 37 ++ .../CwlCatchException.m | 37 ++ .../include/CwlCatchException.h | 32 + .../CwlMachBadInstructionHandler.m | 50 ++ .../include/CwlMachBadInstructionHandler.h | 70 ++ .../mach_excServer.c | 537 +++++++++++++++ .../mach_excServer.h | 321 +++++++++ .../CwlBadInstructionException.swift | 27 +- .../CwlCatchBadInstruction.swift | 7 +- .../CwlCatchBadInstructionPOSIX.swift | 140 ++-- .../CwlDarwinDefinitions.swift | 68 +- .../Mach/CwlPreconditionTesting.h | 30 + .../Posix/CwlPreconditionTesting.h | 27 + .../Nimble/Adapters/AssertionDispatcher.swift | 1 - .../Nimble/Adapters/AssertionRecorder.swift | 4 +- .../Nimble/Adapters/NMBExpectation.swift | 6 +- .../Nimble/Adapters/NMBObjCMatcher.swift | 2 +- .../Nimble/Adapters/NimbleXCTestHandler.swift | 15 +- .../Nimble/Sources/Nimble/DSL+Wait.swift | 18 +- .../Nimble/Sources/Nimble/Expectation.swift | 85 ++- .../Sources/Nimble/ExpectationMessage.swift | 222 +++++++ .../Nimble/Sources/Nimble/Expression.swift | 2 +- .../Sources/Nimble/FailureMessage.swift | 9 +- .../Sources/Nimble/Matchers/AllPass.swift | 111 ++-- .../Nimble/Matchers/AsyncMatcherWrapper.swift | 110 +++- .../Sources/Nimble/Matchers/BeAKindOf.swift | 58 +- .../Nimble/Matchers/BeAnInstanceOf.swift | 44 +- .../Sources/Nimble/Matchers/BeCloseTo.swift | 46 +- .../Sources/Nimble/Matchers/BeEmpty.swift | 45 +- .../Nimble/Matchers/BeGreaterThan.swift | 19 +- .../Matchers/BeGreaterThanOrEqualTo.swift | 12 +- .../Nimble/Matchers/BeIdenticalTo.swift | 13 +- .../Sources/Nimble/Matchers/BeLessThan.swift | 14 +- .../Nimble/Matchers/BeLessThanOrEqual.swift | 12 +- .../Sources/Nimble/Matchers/BeLogical.swift | 44 +- .../Sources/Nimble/Matchers/BeNil.swift | 7 +- .../Sources/Nimble/Matchers/BeVoid.swift | 10 +- .../Sources/Nimble/Matchers/BeginWith.swift | 37 +- .../Sources/Nimble/Matchers/Contain.swift | 38 +- .../Matchers/ContainElementSatisfying.swift | 59 ++ .../Sources/Nimble/Matchers/EndWith.swift | 27 +- .../Sources/Nimble/Matchers/Equal.swift | 135 ++-- .../Sources/Nimble/Matchers/HaveCount.swift | 10 +- .../Sources/Nimble/Matchers/Match.swift | 8 +- .../Sources/Nimble/Matchers/MatchError.swift | 12 +- .../Sources/Nimble/Matchers/MatcherFunc.swift | 20 +- .../Nimble/Matchers/MatcherProtocols.swift | 21 +- .../Nimble/Matchers/PostNotification.swift | 8 +- .../Sources/Nimble/Matchers/Predicate.swift | 241 +++++++ .../Nimble/Matchers/RaisesException.swift | 10 +- .../Nimble/Matchers/SatisfyAnyOf.swift | 87 ++- .../Nimble/Matchers/ThrowAssertion.swift | 14 +- .../Sources/Nimble/Matchers/ThrowError.swift | 12 +- .../Sources/Nimble/Matchers/ToSucceed.swift | 37 ++ .../Checkouts/Nimble/Sources/Nimble/Nimble.h | 7 +- .../Nimble/Sources/Nimble/Utils/Async.swift | 37 +- .../Nimble/Sources/Nimble/Utils/Errors.swift | 13 +- .../Sources/Nimble/Utils/SourceLocation.swift | 8 +- .../Sources/Nimble/Utils/Stringers.swift | 11 +- .../Nimble/Sources/NimbleObjectiveC/DSL.h | 6 + .../Nimble/Sources/NimbleObjectiveC/DSL.m | 4 + .../NimbleObjectiveC/NMBExceptionCapture.h | 2 +- .../Checkouts/Nimble/Tests/LinuxMain.swift | 2 +- .../Tests/NimbleTests/AsynchronousTest.swift | 28 +- .../Helpers/XCTestCaseProvider.swift | 2 +- .../Tests/NimbleTests/Helpers/utils.swift | 2 +- .../NimbleTests/Matchers/AllPassTest.swift | 30 +- .../NimbleTests/Matchers/BeAKindOfTest.swift | 79 ++- .../Matchers/BeAnInstanceOfTest.swift | 53 +- .../NimbleTests/Matchers/BeCloseToTest.swift | 16 +- .../NimbleTests/Matchers/BeEmptyTest.swift | 10 +- .../Matchers/BeGreaterThanOrEqualToTest.swift | 4 + .../Matchers/BeGreaterThanTest.swift | 5 +- .../Matchers/BeIdenticalToObjectTest.swift | 8 +- .../Matchers/BeIdenticalToTest.swift | 4 +- .../NimbleTests/Matchers/BeLogicalTest.swift | 14 +- .../NimbleTests/Matchers/BeNilTest.swift | 2 +- .../ContainElementSatisfyingTest.swift | 86 +++ .../NimbleTests/Matchers/ContainTest.swift | 2 +- .../NimbleTests/Matchers/EqualTest.swift | 116 ++-- .../NimbleTests/Matchers/HaveCountTest.swift | 2 +- .../NimbleTests/Matchers/MatchTest.swift | 8 +- .../Matchers/RaisesExceptionTest.swift | 2 +- .../Matchers/SatisfyAnyOfTest.swift | 8 +- .../Matchers/ThrowAssertionTest.swift | 2 +- .../NimbleTests/Matchers/ThrowErrorTest.swift | 16 +- .../NimbleTests/Matchers/ToSucceedTest.swift | 36 + .../Tests/NimbleTests/SynchronousTests.swift | 29 +- .../NimbleTests/UserDescriptionTest.swift | 18 +- .../objc/ObjCBeGreaterThanOrEqualToTest.m | 2 + .../NimbleTests/objc/ObjCBeGreaterThanTest.m | 1 + .../objc/ObjCContainElementSatisfying.m | 64 ++ .../NimbleTests/objc/ObjCRaiseExceptionTest.m | 2 +- Carthage/Checkouts/Nimble/test | 32 +- Carthage/Checkouts/Quick/.Package.test.swift | 38 +- Carthage/Checkouts/Quick/.swiftlint.yml | 3 - Carthage/Checkouts/Quick/.travis.yml | 4 + Carthage/Checkouts/Quick/Dangerfile | 53 ++ .../en-us/SettingUpYourXcodeProject.md | 3 + .../Documentation/en-us/SharedExamples.md | 4 +- .../Documentation/pt-br/SharedExamples.md | 116 ++++ .../Externals/Nimble/.github/ISSUE_TEMPLATE | 36 + .../Nimble/.github/PULL_REQUEST_TEMPLATE | 14 + .../Quick/Externals/Nimble/.hound.yml | 2 + .../Quick/Externals/Nimble/.swiftlint.yml | 16 + .../Checkouts/Quick/Externals/Nimble/LICENSE | 201 ++++++ .../Quick/Externals/Nimble/Nimble.podspec | 4 +- .../Nimble/Nimble.xcodeproj/project.pbxproj | 79 ++- .../Quick/Externals/Nimble/README.md | 107 ++- .../CwlBadInstructionException.swift | 18 +- .../CwlCatchBadInstruction.swift | 41 +- .../CwlCatchBadInstructionPOSIX.swift | 6 +- .../CwlDarwinDefinitions.swift | 2 +- .../Nimble/Adapters/AssertionDispatcher.swift | 1 - .../Nimble/Adapters/AssertionRecorder.swift | 4 +- .../Nimble/Adapters/NMBExpectation.swift | 6 +- .../Nimble/Adapters/NMBObjCMatcher.swift | 2 +- .../Nimble/Adapters/NimbleXCTestHandler.swift | 15 +- .../Nimble/Sources/Nimble/DSL+Wait.swift | 6 +- .../Nimble/Sources/Nimble/Expectation.swift | 15 +- .../Nimble/Sources/Nimble/Expression.swift | 2 +- .../Sources/Nimble/FailureMessage.swift | 2 +- .../Sources/Nimble/Matchers/AllPass.swift | 34 +- .../Nimble/Matchers/AsyncMatcherWrapper.swift | 19 +- .../Sources/Nimble/Matchers/BeAKindOf.swift | 26 +- .../Nimble/Matchers/BeAnInstanceOf.swift | 20 +- .../Sources/Nimble/Matchers/BeCloseTo.swift | 4 +- .../Sources/Nimble/Matchers/BeEmpty.swift | 1 - .../Nimble/Matchers/BeGreaterThan.swift | 3 +- .../Nimble/Matchers/BeIdenticalTo.swift | 5 +- .../Sources/Nimble/Matchers/BeLessThan.swift | 2 +- .../Sources/Nimble/Matchers/BeVoid.swift | 6 +- .../Sources/Nimble/Matchers/BeginWith.swift | 4 +- .../Sources/Nimble/Matchers/Contain.swift | 6 +- .../Matchers/ContainElementSatisfying.swift | 59 ++ .../Sources/Nimble/Matchers/EndWith.swift | 7 +- .../Sources/Nimble/Matchers/Equal.swift | 10 +- .../Sources/Nimble/Matchers/Match.swift | 2 +- .../Nimble/Matchers/MatcherProtocols.swift | 4 +- .../Nimble/Matchers/PostNotification.swift | 4 +- .../Nimble/Matchers/RaisesException.swift | 4 +- .../Nimble/Matchers/SatisfyAnyOf.swift | 23 +- .../Nimble/Matchers/ThrowAssertion.swift | 10 +- .../Sources/Nimble/Matchers/ThrowError.swift | 4 +- .../Nimble/Sources/Nimble/Utils/Async.swift | 6 +- .../Nimble/Sources/Nimble/Utils/Errors.swift | 3 +- .../Sources/Nimble/Utils/SourceLocation.swift | 8 +- .../Sources/Nimble/Utils/Stringers.swift | 11 +- .../Nimble/Sources/NimbleObjectiveC/DSL.h | 4 + .../Nimble/Sources/NimbleObjectiveC/DSL.m | 4 + .../NimbleObjectiveC/NMBExceptionCapture.h | 2 +- .../Externals/Nimble/Tests/LinuxMain.swift | 2 +- .../Tests/NimbleTests/AsynchronousTest.swift | 12 +- .../Helpers/XCTestCaseProvider.swift | 2 +- .../Tests/NimbleTests/Helpers/utils.swift | 2 +- .../NimbleTests/Matchers/AllPassTest.swift | 30 +- .../NimbleTests/Matchers/BeAKindOfTest.swift | 79 ++- .../Matchers/BeAnInstanceOfTest.swift | 53 +- .../NimbleTests/Matchers/BeCloseToTest.swift | 16 +- .../NimbleTests/Matchers/BeEmptyTest.swift | 10 +- .../Matchers/BeGreaterThanTest.swift | 2 +- .../Matchers/BeIdenticalToObjectTest.swift | 8 +- .../Matchers/BeIdenticalToTest.swift | 2 +- .../NimbleTests/Matchers/BeLogicalTest.swift | 14 +- .../NimbleTests/Matchers/BeNilTest.swift | 2 +- .../ContainElementSatisfyingTest.swift | 86 +++ .../NimbleTests/Matchers/ContainTest.swift | 2 +- .../NimbleTests/Matchers/EqualTest.swift | 110 ++-- .../NimbleTests/Matchers/HaveCountTest.swift | 2 +- .../NimbleTests/Matchers/MatchTest.swift | 8 +- .../Matchers/RaisesExceptionTest.swift | 2 +- .../Matchers/SatisfyAnyOfTest.swift | 8 +- .../Matchers/ThrowAssertionTest.swift | 2 +- .../NimbleTests/Matchers/ThrowErrorTest.swift | 16 +- .../Tests/NimbleTests/SynchronousTests.swift | 25 +- .../NimbleTests/UserDescriptionTest.swift | 18 +- .../objc/ObjCContainElementSatisfying.m | 64 ++ .../NimbleTests/objc/ObjCRaiseExceptionTest.m | 2 +- Carthage/Checkouts/Quick/Gemfile | 2 + Carthage/Checkouts/Quick/Gemfile.lock | 98 ++- Carthage/Checkouts/Quick/Package.swift | 36 +- .../Swift/___FILEBASENAME___.swift | 2 +- Carthage/Checkouts/Quick/Quick.podspec | 2 +- .../Quick/Quick.xcodeproj/project.pbxproj | 192 +++--- .../xcshareddata/xcschemes/Quick-iOS.xcscheme | 12 +- .../xcschemes/Quick-macOS.xcscheme | 12 +- .../xcschemes/Quick-tvOS.xcscheme | 12 +- Carthage/Checkouts/Quick/README.md | 25 +- .../Quick/Sources/Quick/Callsite.swift | 14 +- .../Quick/Configuration/Configuration.swift | 2 +- .../Configuration/QuickConfiguration.swift | 33 +- .../Quick/Sources/Quick/DSL/DSL.swift | 38 +- .../Quick/Sources/Quick/DSL/World+DSL.swift | 28 +- .../Quick/Sources/Quick/Example.swift | 18 +- .../Quick/Sources/Quick/ExampleGroup.swift | 10 +- .../Quick/Sources/Quick/Hooks/Closures.swift | 6 +- .../Sources/Quick/Hooks/ExampleHooks.swift | 4 +- .../Quick/NSBundle+CurrentTestBundle.swift | 9 + .../NSString+C99ExtendedIdentifier.swift | 33 + .../Quick/Sources/Quick/QuickMain.swift | 17 +- .../Quick/QuickSelectedTestSuiteBuilder.swift | 3 +- .../Quick/Sources/Quick/QuickSpec.swift | 80 ++- .../Checkouts/Quick/Sources/Quick/World.swift | 9 +- .../Quick/Sources/QuickObjectiveC/QuickSpec.m | 47 +- .../Sources/QuickSpecBase/QuickSpecBase.m | 55 ++ .../QuickSpecBase/include/QuickSpecBase.h | 11 + .../Checkouts/Quick/Tests/LinuxMain.swift | 8 +- .../QuickFocusedTests/FocusedTests.swift | 18 +- .../QuickTestHelpers/XCTestCaseProvider.swift | 4 +- .../FunctionalTests/AfterEachTests.swift | 6 +- .../FunctionalTests/BeforeEachTests.swift | 4 +- .../FunctionalTests/BeforeSuiteTests.swift | 2 +- .../BundleModuleNameTests.swift | 30 + .../Configuration+AfterEachTests.swift | 2 +- .../Configuration+BeforeEachTests.swift | 2 +- .../FunctionalTests/DescribeTests.swift | 2 +- .../QuickTests/FunctionalTests/ItTests.swift | 2 +- .../FunctionalTests/PendingTests.swift | 2 +- .../SharedExamples+BeforeEachTests.swift | 2 +- .../FunctionalTests/SharedExamplesTests.swift | 2 +- Carthage/Checkouts/ReSwift/.gitignore | 12 +- Carthage/Checkouts/ReSwift/.swiftlint.yml | 2 +- Carthage/Checkouts/ReSwift/.travis.yml | 10 +- .../ReSwift/BuildPhases/run-swiftlint | 11 + Carthage/Checkouts/ReSwift/CHANGELOG.md | 92 ++- Carthage/Checkouts/ReSwift/CONTRIBUTING.md | 2 +- .../ReSwift/Docs/Getting Started Guide.md | 42 +- Carthage/Checkouts/ReSwift/Podfile | 8 + Carthage/Checkouts/ReSwift/Podfile.lock | 12 + Carthage/Checkouts/ReSwift/README.md | 65 +- Carthage/Checkouts/ReSwift/ReSwift.podspec | 2 +- .../ReSwift/ReSwift.xcodeproj/project.pbxproj | 223 ++++++- .../contents.xcworkspacedata | 10 + .../ReSwift/CoreTypes/CombinedReducer.swift | 37 -- .../CoreTypes/DispatchingStoreType.swift | 24 + .../ReSwift/CoreTypes/Middleware.swift | 7 +- .../ReSwift/ReSwift/CoreTypes/Reducer.swift | 17 +- .../ReSwift/ReSwift/CoreTypes/Store.swift | 115 ++-- .../ReSwift/CoreTypes/StoreSubscriber.swift | 2 + .../ReSwift/ReSwift/CoreTypes/StoreType.swift | 40 +- .../ReSwift/CoreTypes/Subscription.swift | 137 +++- Carthage/Checkouts/ReSwift/ReSwift/Info.plist | 2 +- .../ReSwiftTests/CombinedReducerTests.swift | 87 --- .../ReSwiftTests/StandardActionTests.swift | 17 + .../ReSwiftTests/StoreDispatchTests.swift | 26 +- .../ReSwiftTests/StoreMiddlewareTests.swift | 41 +- .../ReSwiftTests/StoreSubscriberTests.swift | 133 +++- .../ReSwiftTests/StoreSubscriptionTests.swift | 39 +- .../ReSwift/ReSwiftTests/StoreTests.swift | 31 +- .../ReSwift/ReSwiftTests/TestFakes.swift | 64 +- .../ReSwiftTests/XCTest+Assertions.swift | 3 +- .../ReSwiftTests/XCTest+Compatibility.swift | 1 - .../ReSwift/SwiftLintIntegration/Info.plist | 22 + .../SwiftLintIntegration.swift | 15 + Carthage/Checkouts/ReSwiftRouter/.gitignore | 3 +- Carthage/Checkouts/ReSwiftRouter/.travis.yml | 40 ++ Carthage/Checkouts/ReSwiftRouter/Cartfile | 2 +- .../Checkouts/ReSwiftRouter/Cartfile.resolved | 6 +- Carthage/Checkouts/ReSwiftRouter/README.md | 7 + .../ReSwiftRouter/ReSwiftRouter.podspec | 2 +- .../ReSwiftRouter.xcodeproj/project.pbxproj | 618 +++++++----------- .../ReSwiftRouter/ReSwiftRouter/Router.swift | 7 +- .../ReSwiftRouterIntegrationTests.swift | 36 +- Carthage/Checkouts/ReSwiftRouter/codecov.yml | 4 + Carthage/Checkouts/RequestKit/.swift-version | 1 + Carthage/Checkouts/RequestKit/.travis.yml | 10 +- Carthage/Checkouts/RequestKit/Gemfile.lock | 273 +++----- .../RequestKit/NBNRequestKit.podspec | 2 +- .../RequestKit.xcodeproj/project.pbxproj | 18 +- .../xcschemes/RequestKit Mac.xcscheme | 2 +- .../xcschemes/RequestKit tvOS.xcscheme | 2 +- .../xcschemes/RequestKit watchOS.xcscheme | 2 +- .../xcschemes/RequestKit.xcscheme | 2 +- .../RequestKit/RequestKit/Info.plist | 2 +- .../RequestKit/RequestKit/Router.swift | 28 +- .../RequestKitURLTestSession.swift | 2 +- .../RequestKitTests/RouterTests.swift | 11 +- .../RequestKit/fastlane/.env.default | 5 +- .../Checkouts/RequestKit/fastlane/.env.ios93 | 5 +- .../Checkouts/RequestKit/fastlane/.env.osx | 3 +- .../Checkouts/RequestKit/fastlane/.env.tvos92 | 4 +- Carthage/Checkouts/octokit.swift/.travis.yml | 10 +- .../Checkouts/octokit.swift/Cartfile.resolved | 2 +- Carthage/Checkouts/octokit.swift/Gemfile.lock | 271 +++----- .../octokit.swift/OctoKit.swift.podspec | 2 +- .../OctoKit.xcodeproj/project.pbxproj | 28 +- .../xcschemes/OctoKit Mac.xcscheme | 2 +- .../xcschemes/OctoKit tvOS.xcscheme | 2 +- .../xcschemes/OctoKit watchOS.xcscheme | 2 +- .../xcshareddata/xcschemes/OctoKit.xcscheme | 2 +- .../octokit.swift/OctoKit/Configuration.swift | 5 +- .../octokit.swift/OctoKit/Info.plist | 2 +- .../octokit.swift/OctoKit/Issue.swift | 98 ++- .../octokit.swift/OctoKit/Label.swift | 8 +- .../octokit.swift/OctoKit/Milestone.swift | 32 +- .../octokit.swift/OctoKit/Repositories.swift | 34 +- .../octokit.swift/OctoKit/Time.swift | 2 +- .../OctoKit/URL+URLParameters.swift | 12 + .../octokit.swift/OctoKit/User.swift | 28 +- .../OctoKitTests/ConfigurationTests.swift | 2 +- .../OctoKitTests/IssueTests.swift | 2 +- .../OctoKitTests/OctoKitURLTestSession.swift | 2 +- .../OctoKitTests/RepositoryTests.swift | 47 ++ .../octokit.swift/fastlane/.env.default | 5 +- .../octokit.swift/fastlane/.env.ios93 | 5 +- .../Checkouts/octokit.swift/fastlane/.env.osx | 3 +- .../octokit.swift/fastlane/.env.tvos92 | 4 +- 323 files changed, 7461 insertions(+), 2936 deletions(-) create mode 100644 Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE create mode 100644 Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE create mode 100644 Carthage/Checkouts/Nimble/.hound.yml create mode 100644 Carthage/Checkouts/Nimble/.swiftlint.yml create mode 100644 Carthage/Checkouts/Nimble/Dockerfile.test rename Carthage/Checkouts/{Quick/Externals/Nimble/LICENSE.md => Nimble/LICENSE} (99%) create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h create mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h create mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift create mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift create mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift create mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift create mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift create mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift create mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m create mode 100644 Carthage/Checkouts/Quick/Dangerfile create mode 100644 Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/LICENSE create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift create mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m create mode 100644 Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift create mode 100644 Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m create mode 100644 Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h create mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift create mode 100755 Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint create mode 100644 Carthage/Checkouts/ReSwift/Podfile create mode 100644 Carthage/Checkouts/ReSwift/Podfile.lock create mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/CombinedReducer.swift create mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/DispatchingStoreType.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/CombinedReducerTests.swift create mode 100644 Carthage/Checkouts/ReSwift/SwiftLintIntegration/Info.plist create mode 100644 Carthage/Checkouts/ReSwift/SwiftLintIntegration/SwiftLintIntegration.swift create mode 100644 Carthage/Checkouts/ReSwiftRouter/.travis.yml create mode 100644 Carthage/Checkouts/ReSwiftRouter/codecov.yml create mode 100644 Carthage/Checkouts/RequestKit/.swift-version create mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/URL+URLParameters.swift diff --git a/Cartfile b/Cartfile index bd43bd2..3ff6434 100644 --- a/Cartfile +++ b/Cartfile @@ -3,5 +3,5 @@ github "Quick/Quick" github "Quick/Nimble" github "soffes/SSKeychain" github "Ben-G/ListKit" -github "ReSwift/ReSwift" ~> 3.0.0 -github "ReSwift/ReSwiftRouter" ~> 0.5.0 +github "ReSwift/ReSwift" ~> 4.0.0 +github "ReSwift/ReSwiftRouter" "master" diff --git a/Cartfile.resolved b/Cartfile.resolved index fcb4ce5..b46cc5f 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,8 +1,8 @@ github "Ben-G/ListKit" "2.0.0" -github "Quick/Nimble" "v5.1.1" -github "Quick/Quick" "v1.0.0" -github "ReSwift/ReSwift" "3.0.0" -github "nerdishbynature/RequestKit" "2.0.0" +github "Quick/Nimble" "v7.0.0" +github "Quick/Quick" "v1.1.0" +github "ReSwift/ReSwift" "4.0.0" +github "ReSwift/ReSwiftRouter" "891bc13fc4c12f106eb51c64f757c18e64062d60" +github "nerdishbynature/RequestKit" "2.0.2" +github "nerdishbynature/octokit.swift" "0.7.3" github "soffes/SSKeychain" "v1.5.2" -github "ReSwift/ReSwiftRouter" "0.5.1" -github "nerdishbynature/octokit.swift" "0.7.0" diff --git a/Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE b/Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE new file mode 100644 index 0000000..85e591e --- /dev/null +++ b/Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE @@ -0,0 +1,36 @@ +- [ ] I have read [CONTRIBUTING](https://github.com/Quick/Nimble/blob/master/CONTRIBUTING.md) and have done my best to follow them. + +### What did you do? + +Please replace this with what you did. + +### What did you expect to happen? + +Please replace this with what you expected to happen. + +### What actually happened instead? + +Please replace this with what happened instead. + +### Environment + +List the software versions you're using: + + - Quick: *?.?.?* + - Nimble: *?.?.?* + - Xcode Version: *?.? (????)* (Open Xcode; In menubar: Xcode > About Xcode) + - Swift Version: *?.?* (Open Xcode Preferences; Components > Toolchains. If none, use `Xcode Default`.) + +Please also mention which package manager you used and its version. Delete the +other package managers in this list: + + - Cocoapods: *?.?.?* (Use `pod --version` in Terminal) + - Carthage: *?.?* (Use `carthage version` in Terminal) + - Swift Package Manager *?.?.? (swiftpm-???)* (Use `swift build --version` in Terminal) + +### Project that demonstrates the issue + +Please link to a project we can download that reproduces the issue. Feel free +to delete this section if it's not relevant to the issue (eg - feature request). + +The project should be [short, self-contained, and correct example](http://sscce.org/). diff --git a/Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE b/Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE new file mode 100644 index 0000000..20e40c8 --- /dev/null +++ b/Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE @@ -0,0 +1,14 @@ +The PR should summarize what was changed and why. Here are some questions to +help you if you're not sure: + + - What behavior was changed? + - What code was refactored / updated to support this change? + - What issues are related to this PR? Or why was this change introduced? + +Checklist - While not every PR needs it, new features should consider this list: + + - [ ] Does this have tests? + - [ ] Does this have documentation? + - [ ] Does this break the public API (Requires major version bump)? + - [ ] Is this a new feature (Requires minor version bump)? + diff --git a/Carthage/Checkouts/Nimble/.hound.yml b/Carthage/Checkouts/Nimble/.hound.yml new file mode 100644 index 0000000..b867fd9 --- /dev/null +++ b/Carthage/Checkouts/Nimble/.hound.yml @@ -0,0 +1,2 @@ +swift: + config_file: .swiftlint.yml diff --git a/Carthage/Checkouts/Nimble/.swiftlint.yml b/Carthage/Checkouts/Nimble/.swiftlint.yml new file mode 100644 index 0000000..973705d --- /dev/null +++ b/Carthage/Checkouts/Nimble/.swiftlint.yml @@ -0,0 +1,19 @@ +disabled_rules: + - line_length + - todo + - variable_name + - force_try + - function_parameter_count + - force_cast + - type_name + - large_tuple + +included: + - Sources + - Tests + +excluded: + - Sources/Lib + +trailing_comma: + mandatory_comma: true diff --git a/Carthage/Checkouts/Nimble/Dockerfile.test b/Carthage/Checkouts/Nimble/Dockerfile.test new file mode 100644 index 0000000..a995ae2 --- /dev/null +++ b/Carthage/Checkouts/Nimble/Dockerfile.test @@ -0,0 +1,3 @@ +FROM swift:latest +COPY . . +CMD ./test swiftpm diff --git a/Carthage/Checkouts/Nimble/Gemfile b/Carthage/Checkouts/Nimble/Gemfile index a6dc312..0211a92 100644 --- a/Carthage/Checkouts/Nimble/Gemfile +++ b/Carthage/Checkouts/Nimble/Gemfile @@ -1,4 +1,4 @@ # A sample Gemfile source "https://rubygems.org" -gem 'cocoapods', '1.1.0.rc.3' +gem 'cocoapods', '1.2.0' diff --git a/Carthage/Checkouts/Nimble/Gemfile.lock b/Carthage/Checkouts/Nimble/Gemfile.lock index 87dc02b..edde6bb 100644 --- a/Carthage/Checkouts/Nimble/Gemfile.lock +++ b/Carthage/Checkouts/Nimble/Gemfile.lock @@ -1,42 +1,43 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.7.1) + CFPropertyList (2.3.5) + activesupport (4.2.8) i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) claide (1.0.1) - cocoapods (1.1.0.rc.3) + cocoapods (1.2.0) activesupport (>= 4.0.2, < 5) claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.1.0.rc.3) + cocoapods-core (= 1.2.0) cocoapods-deintegrate (>= 1.0.1, < 2.0) - cocoapods-downloader (>= 1.1.1, < 2.0) + cocoapods-downloader (>= 1.1.3, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (= 1.1.0.beta.1) + cocoapods-trunk (>= 1.1.2, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored (~> 1.2) escape (~> 0.0.4) - fourflusher (~> 2.0) + fourflusher (~> 2.0.1) gh_inspector (~> 1.0) - molinillo (~> 0.5.1) + molinillo (~> 0.5.5) nap (~> 1.0) - xcodeproj (>= 1.3.2, < 2.0) - cocoapods-core (1.1.0.rc.3) + ruby-macho (~> 0.2.5) + xcodeproj (>= 1.4.1, < 2.0) + cocoapods-core (1.2.0) activesupport (>= 4.0.2, < 5) fuzzy_match (~> 2.0.4) nap (~> 1.0) cocoapods-deintegrate (1.0.1) - cocoapods-downloader (1.1.1) + cocoapods-downloader (1.1.3) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) cocoapods-stats (1.0.0) - cocoapods-trunk (1.1.0.beta.1) + cocoapods-trunk (1.1.2) nap (>= 0.8, < 2.0) netrc (= 0.7.8) cocoapods-try (1.1.0) @@ -44,26 +45,29 @@ GEM escape (0.0.4) fourflusher (2.0.1) fuzzy_match (2.0.4) - gh_inspector (1.0.2) - i18n (0.7.0) - json (1.8.3) - minitest (5.9.1) - molinillo (0.5.1) + gh_inspector (1.0.3) + i18n (0.8.1) + minitest (5.10.1) + molinillo (0.5.6) + nanaimo (0.2.3) nap (1.1.0) netrc (0.7.8) - thread_safe (0.3.5) + ruby-macho (0.2.6) + thread_safe (0.3.6) tzinfo (1.2.2) thread_safe (~> 0.1) - xcodeproj (1.3.2) + xcodeproj (1.4.2) + CFPropertyList (~> 2.3.3) activesupport (>= 3) claide (>= 1.0.1, < 2.0) colored (~> 1.2) + nanaimo (~> 0.2.3) PLATFORMS ruby DEPENDENCIES - cocoapods (= 1.1.0.rc.3) + cocoapods (= 1.2.0) BUNDLED WITH - 1.13.1 + 1.14.5 diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md b/Carthage/Checkouts/Nimble/LICENSE similarity index 99% rename from Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md rename to Carthage/Checkouts/Nimble/LICENSE index 0f3eb71..82b84bf 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md +++ b/Carthage/Checkouts/Nimble/LICENSE @@ -186,7 +186,7 @@ Apache License same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2014 Quick Team + Copyright 2016 Quick Team Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/Carthage/Checkouts/Nimble/Nimble.podspec b/Carthage/Checkouts/Nimble/Nimble.podspec index 8ca36a1..47b9d5a 100644 --- a/Carthage/Checkouts/Nimble/Nimble.podspec +++ b/Carthage/Checkouts/Nimble/Nimble.podspec @@ -1,12 +1,12 @@ Pod::Spec.new do |s| s.name = "Nimble" - s.version = "5.1.1" + s.version = "7.0.0" s.summary = "A Matcher Framework for Swift and Objective-C" s.description = <<-DESC Use Nimble to express the expected outcomes of Swift or Objective-C expressions. Inspired by Cedar. DESC s.homepage = "https://github.com/Quick/Nimble" - s.license = { :type => "Apache 2.0", :file => "LICENSE.md" } + s.license = { :type => "Apache 2.0", :file => "LICENSE" } s.author = "Quick Contributors" s.ios.deployment_target = "8.0" s.osx.deployment_target = "10.10" @@ -17,23 +17,25 @@ Pod::Spec.new do |s| s.source_files = "Sources/**/*.{swift,h,m,c}" s.osx.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift", + "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPosix.swift", + "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h", ] s.ios.exclude_files = [ "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift", + "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h", ] s.tvos.exclude_files = [ + "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h", "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift", "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m", "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift", "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.{h,c}", "Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift", - "Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.m", + "Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m", + "Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h", ] s.private_header_files = "Sources/NimbleObjectiveC/CurrentTestCaseTracker.h" - s.tvos.private_header_files = "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h" s.exclude_files = "Sources/Nimble/Adapters/NonObjectiveC/*.swift" s.weak_framework = "XCTest" diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj index 7c2c084..a92ae6c 100644 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj @@ -6,11 +6,49 @@ objectVersion = 46; objects = { +/* Begin PBXAggregateTarget section */ + A8F2B2541E79A4AB005BDD17 /* SwiftLint */ = { + isa = PBXAggregateTarget; + buildConfigurationList = A8F2B2571E79A4AC005BDD17 /* Build configuration list for PBXAggregateTarget "SwiftLint" */; + buildPhases = ( + A8F2B2581E79A4B0005BDD17 /* ShellScript */, + ); + dependencies = ( + ); + name = SwiftLint; + productName = SwiftLint; + }; +/* End PBXAggregateTarget section */ + /* Begin PBXBuildFile section */ 1F0648CC19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; 1F0648CD19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; 1F0648D41963AAB2001F9C46 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; 1F0648D51963AAB2001F9C46 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; + 1F12BE941E778F70006952EC /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */; }; + 1F12BE951E778F70006952EC /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BE981E778F70006952EC /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */; }; + 1F12BE991E778F70006952EC /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */; }; + 1F12BE9B1E778F70006952EC /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */; }; + 1F12BE9D1E778F70006952EC /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BE9F1E778F8F006952EC /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */; }; + 1F12BEA01E778F90006952EC /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */; }; + 1F12BEA11E778FA9006952EC /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BEA21E778FBA006952EC /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE881E778F70006952EC /* mach_excServer.c */; }; + 1F12BEA31E778FFA006952EC /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BEA41E77900A006952EC /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */; }; + 1F12BEA51E77900A006952EC /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */; }; + 1F12BEA61E779012006952EC /* CwlCatchBadInstructionPOSIX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8D1E778F70006952EC /* CwlCatchBadInstructionPOSIX.swift */; }; + 1F12BEA71E779018006952EC /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */; }; + 1F12BEA81E77902A006952EC /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE931E778F70006952EC /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BEDC1E7791B9006952EC /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED71E7791B9006952EC /* CwlCatchException.swift */; }; + 1F12BEDD1E7791B9006952EC /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED71E7791B9006952EC /* CwlCatchException.swift */; }; + 1F12BEDF1E7791B9006952EC /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED91E7791B9006952EC /* CwlCatchException.m */; }; + 1F12BEE01E7791B9006952EC /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED91E7791B9006952EC /* CwlCatchException.m */; }; + 1F12BEE21E7791B9006952EC /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BEE31E7791B9006952EC /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F12BEE91E779784006952EC /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE881E778F70006952EC /* mach_excServer.c */; }; + 1F12BEEA1E77ABE3006952EC /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */; }; 1F14FB64194180C5009F2A08 /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; 1F1871C51CA89EDB00A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; @@ -48,8 +86,6 @@ 1F1B5AD51963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F2D175B1DB618ED00EE9C7A /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0261C6D0BB0000693EE /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F2D175C1DB618F000EE9C7A /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0221C6D0B82000693EE /* mach_excServer.c */; }; 1F43728A1A1B343800EB80F8 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; 1F43728B1A1B343900EB80F8 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; 1F43728C1A1B343C00EB80F8 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; @@ -97,14 +133,9 @@ 1F4A569E1A3B3565009E1637 /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; 1F4A56A01A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; 1F4A56A11A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - 1F4BB8A41DAC9DC90048464B /* CwlCatchBadInstructionPOSIX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB89D1DAC9D930048464B /* CwlCatchBadInstructionPOSIX.swift */; }; - 1F4BB8AB1DAC9DE50048464B /* CwlCatchBadInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F4BB8AE1DAC9DED0048464B /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0161C6D0B2F000693EE /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F4BB8B61DACA0E30048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; 1F4BB8B71DACA0E40048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; 1F4BB8B81DACAACF0048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F4BB8BA1DACBFCF0048464B /* CwlCatchBadInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */; }; - 1F4BB8BB1DACBFD00048464B /* CwlCatchBadInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */; }; 1F5DF15F1BDCA0CE00C3A531 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */; }; 1F5DF16C1BDCA0F500C3A531 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; 1F5DF16D1BDCA0F500C3A531 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; @@ -207,6 +238,9 @@ 1F925F12195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; 1F9DB8FB1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; 1F9DB8FC1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; + 1FA0C3FF1E30B14500623165 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA0C3FE1E30B14500623165 /* Predicate.swift */; }; + 1FA0C4001E30B14500623165 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA0C3FE1E30B14500623165 /* Predicate.swift */; }; + 1FA0C4011E30B14500623165 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA0C3FE1E30B14500623165 /* Predicate.swift */; }; 1FB90098195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; 1FB90099195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; 1FC494AA1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; @@ -270,6 +304,9 @@ 1FD8CD6B1968AB07008ED995 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; 1FDBD8671AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; 1FDBD8681AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; + 1FE661571E6574E30035F243 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE661561E6574E20035F243 /* ExpectationMessage.swift */; }; + 1FE661581E6574E30035F243 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE661561E6574E20035F243 /* ExpectationMessage.swift */; }; + 1FE661591E6574E30035F243 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE661561E6574E20035F243 /* ExpectationMessage.swift */; }; 29EA59631B551ED2002D767E /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; 29EA59641B551ED2002D767E /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; @@ -286,28 +323,27 @@ 6CAEDD0A1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; 6CAEDD0B1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; 6CAEDD0C1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; + 7A0A26231E7F52360092A34E /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A26221E7F52360092A34E /* ToSucceed.swift */; }; + 7A6AB2C21E7F547E00A2F694 /* ToSucceedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */; }; + 7A6AB2C31E7F547E00A2F694 /* ToSucceedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */; }; + 7A6AB2C41E7F547E00A2F694 /* ToSucceedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */; }; + 7A6AB2C51E7F628900A2F694 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A26221E7F52360092A34E /* ToSucceed.swift */; }; + 7A6AB2C61E7F628A00A2F694 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A26221E7F52360092A34E /* ToSucceed.swift */; }; + 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; + 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; + 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; + 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; + 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; + 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; + 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; + 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; + 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; 7B5358BA1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; 7B5358BB1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; 7B5358BC1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; 7B5358BE1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; 7B5358BF1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 9630C00D1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C00E1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C0131C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */; }; - 9630C0141C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */; }; - 9630C0191C6D0B2F000693EE /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0161C6D0B2F000693EE /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C01A1C6D0B2F000693EE /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0161C6D0B2F000693EE /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C01C1C6D0B2F000693EE /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0171C6D0B2F000693EE /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - 9630C01D1C6D0B2F000693EE /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0171C6D0B2F000693EE /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - 9630C01F1C6D0B2F000693EE /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */; }; - 9630C0201C6D0B2F000693EE /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */; }; - 9630C0231C6D0B82000693EE /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0221C6D0B82000693EE /* mach_excServer.c */; }; - 9630C0271C6D0BB0000693EE /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0261C6D0BB0000693EE /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C02C1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */; }; - 9630C02D1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */; }; - 9630C0301C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */; }; - 9630C0311C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */; }; 964CFEFD1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; 964CFEFE1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; 964CFEFF1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; @@ -410,34 +446,47 @@ containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; 1F9B7BFD1968AD760094EB8F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; 1F9B7BFF1968AD760094EB8F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; 1F9B7C011968AD820094EB8F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectWithLazyProperty.swift; sourceTree = ""; }; 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronousTests.swift; sourceTree = ""; }; + 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CwlMachBadInstructionHandler.m; sourceTree = ""; }; + 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlMachBadInstructionHandler.h; sourceTree = ""; }; + 1F12BE881E778F70006952EC /* mach_excServer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mach_excServer.c; sourceTree = ""; }; + 1F12BE891E778F70006952EC /* mach_excServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_excServer.h; sourceTree = ""; }; + 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlBadInstructionException.swift; sourceTree = ""; }; + 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstruction.swift; sourceTree = ""; }; + 1F12BE8D1E778F70006952EC /* CwlCatchBadInstructionPOSIX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstructionPOSIX.swift; sourceTree = ""; }; + 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlDarwinDefinitions.swift; sourceTree = ""; }; + 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlPreconditionTesting.h; sourceTree = ""; }; + 1F12BE931E778F70006952EC /* CwlPreconditionTesting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlPreconditionTesting.h; sourceTree = ""; }; + 1F12BED71E7791B9006952EC /* CwlCatchException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = ""; }; + 1F12BED91E7791B9006952EC /* CwlCatchException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CwlCatchException.m; sourceTree = ""; }; + 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlCatchException.h; sourceTree = ""; }; 1F14FB63194180C5009F2A08 /* utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = utils.swift; sourceTree = ""; }; 1F1871BC1CA89EDB00A34BF2 /* DSL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DSL.h; sourceTree = ""; }; 1F1871BD1CA89EDB00A34BF2 /* DSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DSL.m; sourceTree = ""; }; @@ -479,7 +528,6 @@ 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCEqualTest.m; sourceTree = ""; }; 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCMatchTest.m; sourceTree = ""; }; 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCRaiseExceptionTest.m; sourceTree = ""; }; - 1F4BB89D1DAC9D930048464B /* CwlCatchBadInstructionPOSIX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstructionPOSIX.swift; path = CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift; sourceTree = ""; }; 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowAssertionTest.swift; sourceTree = ""; }; 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -503,6 +551,7 @@ 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqualToTest.swift; sourceTree = ""; }; 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualToTest.swift; sourceTree = ""; }; 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeEmptyTest.m; sourceTree = ""; }; + 1FA0C3FE1E30B14500623165 /* Predicate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Predicate.swift; sourceTree = ""; }; 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeIdenticalToTest.swift; sourceTree = ""; }; 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostNotificationTest.swift; sourceTree = ""; }; @@ -536,6 +585,7 @@ 1FD8CD271968AB07008ED995 /* SourceLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; 1FD8CD281968AB07008ED995 /* Stringers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; + 1FE661561E6574E20035F243 /* ExpectationMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExpectationMessage.swift; sourceTree = ""; }; 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowErrorTest.swift; sourceTree = ""; }; 29EA59651B551EE6002D767E /* ThrowError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseProvider.swift; sourceTree = ""; }; @@ -543,20 +593,15 @@ 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HaveCountTest.swift; sourceTree = ""; }; 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCHaveCount.m; sourceTree = ""; }; 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinuxSupport.swift; sourceTree = ""; }; + 7A0A26221E7F52360092A34E /* ToSucceed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToSucceed.swift; sourceTree = ""; }; + 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToSucceedTest.swift; sourceTree = ""; }; + 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; + 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCContainElementSatisfying.m; sourceTree = ""; }; + 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfyingTest.swift; sourceTree = ""; }; 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOfTest.swift; sourceTree = ""; }; 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCSatisfyAnyOfTest.m; sourceTree = ""; }; 8DF1C3F61C94FC75004B2D36 /* ObjcStringersTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjcStringersTest.m; sourceTree = ""; }; - 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CwlCatchBadInstruction.h; path = CwlPreconditionTesting/CwlCatchBadInstruction.h; sourceTree = ""; }; - 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CwlCatchBadInstruction.m; path = CwlPreconditionTesting/CwlCatchBadInstruction.m; sourceTree = ""; }; - 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = ""; }; - 9630C0161C6D0B2F000693EE /* CwlCatchException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CwlCatchException.h; path = CwlCatchException/CwlCatchException/CwlCatchException.h; sourceTree = ""; }; - 9630C0171C6D0B2F000693EE /* CwlCatchException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CwlCatchException.m; path = CwlCatchException/CwlCatchException/CwlCatchException.m; sourceTree = ""; }; - 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = CwlCatchException/CwlCatchException/CwlCatchException.swift; sourceTree = ""; }; - 9630C0221C6D0B82000693EE /* mach_excServer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mach_excServer.c; path = CwlPreconditionTesting/mach_excServer.c; sourceTree = ""; }; - 9630C0261C6D0BB0000693EE /* mach_excServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mach_excServer.h; path = CwlPreconditionTesting/mach_excServer.h; sourceTree = ""; }; - 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = ""; }; - 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = ""; }; 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCUserDescriptionTest.m; sourceTree = ""; }; 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDescriptionTest.swift; sourceTree = ""; }; @@ -623,6 +668,79 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 1F12BE841E778F70006952EC /* CwlMachBadInstructionHandler */ = { + isa = PBXGroup; + children = ( + 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */, + 1F12BE861E778F70006952EC /* include */, + 1F12BE881E778F70006952EC /* mach_excServer.c */, + 1F12BE891E778F70006952EC /* mach_excServer.h */, + ); + path = CwlMachBadInstructionHandler; + sourceTree = ""; + }; + 1F12BE861E778F70006952EC /* include */ = { + isa = PBXGroup; + children = ( + 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */, + ); + path = include; + sourceTree = ""; + }; + 1F12BE8A1E778F70006952EC /* CwlPreconditionTesting */ = { + isa = PBXGroup; + children = ( + 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */, + 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */, + 1F12BE8D1E778F70006952EC /* CwlCatchBadInstructionPOSIX.swift */, + 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */, + 1F12BE901E778F70006952EC /* Mach */, + 1F12BE921E778F70006952EC /* Posix */, + ); + path = CwlPreconditionTesting; + sourceTree = ""; + }; + 1F12BE901E778F70006952EC /* Mach */ = { + isa = PBXGroup; + children = ( + 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */, + ); + path = Mach; + sourceTree = ""; + }; + 1F12BE921E778F70006952EC /* Posix */ = { + isa = PBXGroup; + children = ( + 1F12BE931E778F70006952EC /* CwlPreconditionTesting.h */, + ); + path = Posix; + sourceTree = ""; + }; + 1F12BED61E7791B9006952EC /* CwlCatchException */ = { + isa = PBXGroup; + children = ( + 1F12BED71E7791B9006952EC /* CwlCatchException.swift */, + ); + path = CwlCatchException; + sourceTree = ""; + }; + 1F12BED81E7791B9006952EC /* CwlCatchExceptionSupport */ = { + isa = PBXGroup; + children = ( + 1F12BED91E7791B9006952EC /* CwlCatchException.m */, + 1F12BEDA1E7791B9006952EC /* include */, + ); + path = CwlCatchExceptionSupport; + sourceTree = ""; + }; + 1F12BEDA1E7791B9006952EC /* include */ = { + isa = PBXGroup; + children = ( + 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */, + ); + path = include; + sourceTree = ""; + }; 1F14FB61194180A7009F2A08 /* Helpers */ = { isa = PBXGroup; children = ( @@ -693,6 +811,7 @@ DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */, 1FD8CD091968AB07008ED995 /* Expectation.swift */, 1FD8CD0A1968AB07008ED995 /* Expression.swift */, + 1FE661561E6574E20035F243 /* ExpectationMessage.swift */, 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */, 1F1A742D1940169200FFFC47 /* Info.plist */, 1FD8CD0C1968AB07008ED995 /* Matchers */, @@ -745,6 +864,7 @@ 1F925EEE195C136500ED456B /* BeLogicalTest.swift */, 1F925EF8195C175000ED456B /* BeNilTest.swift */, 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */, + 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */, 1F925F01195C189500ED456B /* ContainTest.swift */, 1F925EFE195C187600ED456B /* EndWithTest.swift */, 1F925F04195C18B700ED456B /* EqualTest.swift */, @@ -756,6 +876,7 @@ 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */, AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */, 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */, + 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */, ); path = Matchers; sourceTree = ""; @@ -794,6 +915,7 @@ 1FD8CD181968AB07008ED995 /* BeNil.swift */, 1F91DD301C74BF61002C309F /* BeVoid.swift */, 1FD8CD1A1968AB07008ED995 /* Contain.swift */, + 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */, 1FD8CD1B1968AB07008ED995 /* EndWith.swift */, 1FD8CD1C1968AB07008ED995 /* Equal.swift */, 472FD1341B9E085700C7B8DA /* HaveCount.swift */, @@ -802,10 +924,12 @@ 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */, AE7ADE441C80BF8000B94CD3 /* MatchError.swift */, 1FCF91521C61C8A400B15DCB /* PostNotification.swift */, + 1FA0C3FE1E30B14500623165 /* Predicate.swift */, 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */, - 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */, 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */, + 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */, 29EA59651B551EE6002D767E /* ThrowError.swift */, + 7A0A26221E7F52360092A34E /* ToSucceed.swift */, ); path = Matchers; sourceTree = ""; @@ -843,6 +967,7 @@ 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */, 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */, 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */, + 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */, 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */, 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */, 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */, @@ -869,17 +994,10 @@ 9630C0091C6D0ABA000693EE /* CwlPreconditionTesting */ = { isa = PBXGroup; children = ( - 1F4BB89D1DAC9D930048464B /* CwlCatchBadInstructionPOSIX.swift */, - 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */, - 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */, - 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */, - 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */, - 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */, - 9630C0161C6D0B2F000693EE /* CwlCatchException.h */, - 9630C0171C6D0B2F000693EE /* CwlCatchException.m */, - 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */, - 9630C0261C6D0BB0000693EE /* mach_excServer.h */, - 9630C0221C6D0B82000693EE /* mach_excServer.c */, + 1F12BED61E7791B9006952EC /* CwlCatchException */, + 1F12BED81E7791B9006952EC /* CwlCatchExceptionSupport */, + 1F12BE841E778F70006952EC /* CwlMachBadInstructionHandler */, + 1F12BE8A1E778F70006952EC /* CwlPreconditionTesting */, ); path = CwlPreconditionTesting; sourceTree = ""; @@ -891,13 +1009,13 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9630C00D1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */, - 9630C0191C6D0B2F000693EE /* CwlCatchException.h in Headers */, + 1F12BEA31E778FFA006952EC /* CwlPreconditionTesting.h in Headers */, + 1F12BEA11E778FA9006952EC /* CwlMachBadInstructionHandler.h in Headers */, 1F1871C91CA89EDB00A34BF2 /* NMBStringify.h in Headers */, 1F1871C51CA89EDB00A34BF2 /* DSL.h in Headers */, 1F1871C71CA89EDB00A34BF2 /* NMBExceptionCapture.h in Headers */, 1F1A742F1940169200FFFC47 /* Nimble.h in Headers */, - 9630C0271C6D0BB0000693EE /* mach_excServer.h in Headers */, + 1F12BEE31E7791B9006952EC /* CwlCatchException.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -905,11 +1023,11 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1F4BB8AE1DAC9DED0048464B /* CwlCatchException.h in Headers */, 1F1871E21CA89EF600A34BF2 /* NMBStringify.h in Headers */, 1F1871E01CA89EF600A34BF2 /* DSL.h in Headers */, 1F1871E11CA89EF600A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F4BB8AB1DAC9DE50048464B /* CwlCatchBadInstruction.h in Headers */, + 1F12BEA81E77902A006952EC /* CwlPreconditionTesting.h in Headers */, + 1F12BEEA1E77ABE3006952EC /* CwlMachBadInstructionHandler.h in Headers */, 1F4999A61DBF2DD100BF8877 /* Nimble.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -918,13 +1036,13 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9630C00E1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */, - 9630C01A1C6D0B2F000693EE /* CwlCatchException.h in Headers */, - 1F2D175B1DB618ED00EE9C7A /* mach_excServer.h in Headers */, + 1F12BE951E778F70006952EC /* CwlMachBadInstructionHandler.h in Headers */, 1F1871DF1CA89EF500A34BF2 /* NMBStringify.h in Headers */, + 1F12BE9D1E778F70006952EC /* CwlPreconditionTesting.h in Headers */, 1F1871DD1CA89EF500A34BF2 /* DSL.h in Headers */, 1F1871DE1CA89EF500A34BF2 /* NMBExceptionCapture.h in Headers */, 1F925EC7195C0DD100ED456B /* Nimble.h in Headers */, + 1F12BEE21E7791B9006952EC /* CwlCatchException.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1020,7 +1138,7 @@ dependencies = ( ); name = "Nimble-macOS"; - productName = "Nimble-OSX"; + productName = "Nimble-macOS"; productReference = 1F925EAD195C0D6300ED456B /* Nimble.framework */; productType = "com.apple.product-type.framework"; }; @@ -1052,7 +1170,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0820; ORGANIZATIONNAME = "Jeff Hui"; TargetAttributes = { 1F1A74281940169200FFFC47 = { @@ -1081,6 +1199,10 @@ LastSwiftMigration = 0800; TestTargetID = 1F925EAC195C0D6300ED456B; }; + A8F2B2541E79A4AB005BDD17 = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; }; }; buildConfigurationList = 1F1A74231940169200FFFC47 /* Build configuration list for PBXProject "Nimble" */; @@ -1101,6 +1223,7 @@ 1F1A74331940169200FFFC47 /* Nimble-iOSTests */, 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */, 1F5DF15D1BDCA0CE00C3A531 /* Nimble-tvOSTests */, + A8F2B2541E79A4AB005BDD17 /* SwiftLint */, ); }; /* End PBXProject section */ @@ -1150,29 +1273,50 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + A8F2B2581E79A4B0005BDD17 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 1F1A74241940169200FFFC47 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 1FD8CD401968AB07008ED995 /* BeCloseTo.swift in Sources */, + 1F12BEA51E77900A006952EC /* CwlCatchBadInstruction.swift in Sources */, 1F1871C81CA89EDB00A34BF2 /* NMBExceptionCapture.m in Sources */, 1FD8CD361968AB07008ED995 /* Expectation.swift in Sources */, 1FD8CD321968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */, 1F43728F1A1B344000EB80F8 /* Stringers.swift in Sources */, + 1F12BEA41E77900A006952EC /* CwlBadInstructionException.swift in Sources */, 1F43728D1A1B343D00EB80F8 /* SourceLocation.swift in Sources */, 1FD8CD4E1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */, 1FDBD8671AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */, 1F43728A1A1B343800EB80F8 /* Functional.swift in Sources */, AE4BA9AD1C88DDB500B73906 /* Errors.swift in Sources */, 1FD8CD3C1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */, + 7A6AB2C51E7F628900A2F694 /* ToSucceed.swift in Sources */, 1FD8CD501968AB07008ED995 /* BeLogical.swift in Sources */, 1F1871CB1CA89EDB00A34BF2 /* NMBExpectation.swift in Sources */, DA9E8C821A414BB9002633C2 /* DSL+Wait.swift in Sources */, DDB1BC791A92235600F743C3 /* AllPass.swift in Sources */, 1FD8CD3E1968AB07008ED995 /* BeAKindOf.swift in Sources */, DDB4D5ED19FE43C200E9D9FE /* Match.swift in Sources */, + 1F12BE9F1E778F8F006952EC /* CwlMachBadInstructionHandler.m in Sources */, 1F91DD311C74BF61002C309F /* BeVoid.swift in Sources */, + 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */, 1FCF91531C61C8A400B15DCB /* PostNotification.swift in Sources */, 1FD8CD2E1968AB07008ED995 /* AssertionRecorder.swift in Sources */, 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */, @@ -1181,16 +1325,19 @@ 1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */, 1FD8CD461968AB07008ED995 /* BeGreaterThan.swift in Sources */, F8A1BE2F1CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, + 1F12BEA21E778FBA006952EC /* mach_excServer.c in Sources */, 1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */, 1FD8CD301968AB07008ED995 /* AdapterProtocols.swift in Sources */, + 1F12BEA71E779018006952EC /* CwlDarwinDefinitions.swift in Sources */, + 1F12BEE01E7791B9006952EC /* CwlCatchException.m in Sources */, AE7ADE451C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1F4BB8BA1DACBFCF0048464B /* CwlCatchBadInstruction.m in Sources */, 1FC494AA1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, 1FD8CD5E1968AB07008ED995 /* RaisesException.swift in Sources */, 1FD8CD561968AB07008ED995 /* Contain.swift in Sources */, 1FD8CD481968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */, 1FD8CD441968AB07008ED995 /* BeginWith.swift in Sources */, 1FD8CD4A1968AB07008ED995 /* BeIdenticalTo.swift in Sources */, + 1FE661581E6574E30035F243 /* ExpectationMessage.swift in Sources */, 1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */, 1FD8CD421968AB07008ED995 /* BeEmpty.swift in Sources */, 1F1871E41CA89FB600A34BF2 /* AsyncMatcherWrapper.swift in Sources */, @@ -1200,11 +1347,13 @@ 1FD8CD581968AB07008ED995 /* EndWith.swift in Sources */, 1FD8CD5C1968AB07008ED995 /* MatcherProtocols.swift in Sources */, 1FD8CD341968AB07008ED995 /* DSL.swift in Sources */, + 1F12BEDD1E7791B9006952EC /* CwlCatchException.swift in Sources */, 7B5358BE1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, 1FD8CD381968AB07008ED995 /* Expression.swift in Sources */, 1FD8CD3A1968AB07008ED995 /* FailureMessage.swift in Sources */, 472FD1351B9E085700C7B8DA /* HaveCount.swift in Sources */, 9630C0301C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */, + 1FA0C4001E30B14500623165 /* Predicate.swift in Sources */, 9630C0231C6D0B82000693EE /* mach_excServer.c in Sources */, 9630C01F1C6D0B2F000693EE /* CwlCatchException.swift in Sources */, 9630C0131C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */, @@ -1229,6 +1378,7 @@ DDB4D5F019FE442800E9D9FE /* MatchTest.swift in Sources */, 1F4A56731A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, 1F4A56821A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, + 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, 1F925F02195C189500ED456B /* ContainTest.swift in Sources */, 1F4A56881A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, 1F4A568E1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, @@ -1241,6 +1391,7 @@ 1F91DD2D1C74BF36002C309F /* BeVoidTest.swift in Sources */, 1F4A56761A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */, 1F925EF9195C175000ED456B /* BeNilTest.swift in Sources */, + 7A6AB2C31E7F547E00A2F694 /* ToSucceedTest.swift in Sources */, 1F4A56701A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */, 1F4A56971A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */, 1F4A567C1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */, @@ -1251,6 +1402,7 @@ 1F8A37B01B7C5042001C8357 /* ObjCSyncTest.m in Sources */, 1F4A56941A3B346F009E1637 /* ObjCContainTest.m in Sources */, 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */, + 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, 1F925EF6195C147800ED456B /* BeCloseToTest.swift in Sources */, 1F4A56791A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, AE7ADE491C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, @@ -1288,6 +1440,7 @@ 1F1871D71CA89EEF00A34BF2 /* NMBExceptionCapture.m in Sources */, 1F5DF1881BDCA0F500C3A531 /* MatcherProtocols.swift in Sources */, 1F5DF16E1BDCA0F500C3A531 /* NimbleXCTestHandler.swift in Sources */, + 7A6AB2C61E7F628A00A2F694 /* ToSucceed.swift in Sources */, 1F5DF1751BDCA0F500C3A531 /* FailureMessage.swift in Sources */, 1F5DF1801BDCA0F500C3A531 /* BeLessThanOrEqual.swift in Sources */, 1F1871E81CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */, @@ -1300,9 +1453,9 @@ 1F1871DB1CA89EF100A34BF2 /* NMBExpectation.swift in Sources */, 1F5DF1741BDCA0F500C3A531 /* Expression.swift in Sources */, 1F5DF1781BDCA0F500C3A531 /* BeAnInstanceOf.swift in Sources */, + 1F12BEA01E778F90006952EC /* CwlMachBadInstructionHandler.m in Sources */, 1F5DF1771BDCA0F500C3A531 /* BeAKindOf.swift in Sources */, 1F5DF17F1BDCA0F500C3A531 /* BeLessThan.swift in Sources */, - 1F4BB8A41DAC9DC90048464B /* CwlCatchBadInstructionPOSIX.swift in Sources */, 1F5DF17C1BDCA0F500C3A531 /* BeGreaterThan.swift in Sources */, 1F91DD331C74BF61002C309F /* BeVoid.swift in Sources */, 1FCF91551C61C8A400B15DCB /* PostNotification.swift in Sources */, @@ -1310,6 +1463,8 @@ 1F5DF1851BDCA0F500C3A531 /* Equal.swift in Sources */, 1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */, F8A1BE311CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, + 1FE661591E6574E30035F243 /* ExpectationMessage.swift in Sources */, + 1FA0C4011E30B14500623165 /* Predicate.swift in Sources */, 1F5DF1711BDCA0F500C3A531 /* DSL+Wait.swift in Sources */, 1F1871D61CA89EEF00A34BF2 /* DSL.m in Sources */, 1F5DF17D1BDCA0F500C3A531 /* BeGreaterThanOrEqualTo.swift in Sources */, @@ -1331,8 +1486,10 @@ 1F5DF1701BDCA0F500C3A531 /* DSL.swift in Sources */, 1F5DF1721BDCA0F500C3A531 /* Expectation.swift in Sources */, 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, + 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */, 1F5DF18B1BDCA0F500C3A531 /* Functional.swift in Sources */, 1F5DF1871BDCA0F500C3A531 /* Match.swift in Sources */, + 1F12BEA61E779012006952EC /* CwlCatchBadInstructionPOSIX.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1355,7 +1512,9 @@ 1F5DF1AB1BDCA10200C3A531 /* ThrowErrorTest.swift in Sources */, CD79C9A91D2CC848004B6F9A /* ObjCBeKindOfTest.m in Sources */, 1F5DF1A51BDCA10200C3A531 /* ContainTest.swift in Sources */, + 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, AE7ADE4B1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, + 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, CD79C9B31D2CC848004B6F9A /* ObjCMatchTest.m in Sources */, 1F5DF19E1BDCA10200C3A531 /* BeGreaterThanTest.swift in Sources */, 1F5DF1A21BDCA10200C3A531 /* BeLessThanTest.swift in Sources */, @@ -1381,6 +1540,7 @@ CD79C9A11D2CC83B004B6F9A /* ObjCBeCloseToTest.m in Sources */, 1F5DF19D1BDCA10200C3A531 /* BeGreaterThanOrEqualToTest.swift in Sources */, 1F5DF1A41BDCA10200C3A531 /* BeNilTest.swift in Sources */, + 7A6AB2C41E7F547E00A2F694 /* ToSucceedTest.swift in Sources */, CD79C9A71D2CC848004B6F9A /* ObjCBeGreaterThanTest.m in Sources */, CD79C9A51D2CC848004B6F9A /* ObjCBeginWithTest.m in Sources */, 347155CC1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, @@ -1407,10 +1567,12 @@ buildActionMask = 2147483647; files = ( 1FD8CD411968AB07008ED995 /* BeCloseTo.swift in Sources */, + 1F12BE991E778F70006952EC /* CwlCatchBadInstruction.swift in Sources */, 1F1871D31CA89EEE00A34BF2 /* NMBExceptionCapture.m in Sources */, 1FD8CD371968AB07008ED995 /* Expectation.swift in Sources */, 1FD8CD331968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */, 1F43728E1A1B343F00EB80F8 /* Stringers.swift in Sources */, + 1F12BE981E778F70006952EC /* CwlBadInstructionException.swift in Sources */, 1F43728C1A1B343C00EB80F8 /* SourceLocation.swift in Sources */, 1FD8CD4F1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */, 1F1871E71CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */, @@ -1418,50 +1580,52 @@ 1F43728B1A1B343900EB80F8 /* Functional.swift in Sources */, AE4BA9AE1C88DDB500B73906 /* Errors.swift in Sources */, 1FD8CD3D1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */, + 1F12BEDF1E7791B9006952EC /* CwlCatchException.m in Sources */, 1FD8CD511968AB07008ED995 /* BeLogical.swift in Sources */, 1F1871D91CA89EF100A34BF2 /* NMBExpectation.swift in Sources */, DA9E8C831A414BB9002633C2 /* DSL+Wait.swift in Sources */, DDB1BC7A1A92235600F743C3 /* AllPass.swift in Sources */, 1FD8CD3F1968AB07008ED995 /* BeAKindOf.swift in Sources */, + 1F12BE941E778F70006952EC /* CwlMachBadInstructionHandler.m in Sources */, 1FD8CD2F1968AB07008ED995 /* AssertionRecorder.swift in Sources */, + 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */, 1F91DD321C74BF61002C309F /* BeVoid.swift in Sources */, 1FCF91541C61C8A400B15DCB /* PostNotification.swift in Sources */, DDB4D5EE19FE43C200E9D9FE /* Match.swift in Sources */, 29EA59671B551EE6002D767E /* ThrowError.swift in Sources */, 1FD8CD5B1968AB07008ED995 /* Equal.swift in Sources */, + 1F12BEE91E779784006952EC /* mach_excServer.c in Sources */, 1FD8CD4D1968AB07008ED995 /* BeLessThan.swift in Sources */, 1FD8CD471968AB07008ED995 /* BeGreaterThan.swift in Sources */, F8A1BE301CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, 1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */, 1FD8CD311968AB07008ED995 /* AdapterProtocols.swift in Sources */, - 1F2D175C1DB618F000EE9C7A /* mach_excServer.c in Sources */, 1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */, - 1F4BB8BB1DACBFD00048464B /* CwlCatchBadInstruction.m in Sources */, AE7ADE461C80BF8000B94CD3 /* MatchError.swift in Sources */, 1FC494AB1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, 1FD8CD5F1968AB07008ED995 /* RaisesException.swift in Sources */, 1FD8CD571968AB07008ED995 /* Contain.swift in Sources */, + 7A0A26231E7F52360092A34E /* ToSucceed.swift in Sources */, 1FD8CD491968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */, + 1FE661571E6574E30035F243 /* ExpectationMessage.swift in Sources */, 1FD8CD451968AB07008ED995 /* BeginWith.swift in Sources */, 1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */, 1FD8CD4B1968AB07008ED995 /* BeIdenticalTo.swift in Sources */, 1FD8CD431968AB07008ED995 /* BeEmpty.swift in Sources */, 1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */, 1FD8CD531968AB07008ED995 /* BeNil.swift in Sources */, + 1F12BEDC1E7791B9006952EC /* CwlCatchException.swift in Sources */, 1FD8CD6B1968AB07008ED995 /* Async.swift in Sources */, 964CFEFE1C4FF48900513336 /* ThrowAssertion.swift in Sources */, 1FD8CD591968AB07008ED995 /* EndWith.swift in Sources */, 1FD8CD5D1968AB07008ED995 /* MatcherProtocols.swift in Sources */, 1FD8CD351968AB07008ED995 /* DSL.swift in Sources */, 7B5358BF1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, + 1F12BE9B1E778F70006952EC /* CwlDarwinDefinitions.swift in Sources */, 1FD8CD391968AB07008ED995 /* Expression.swift in Sources */, 1FD8CD3B1968AB07008ED995 /* FailureMessage.swift in Sources */, + 1FA0C3FF1E30B14500623165 /* Predicate.swift in Sources */, 472FD1391B9E0A9700C7B8DA /* HaveCount.swift in Sources */, - 9630C0311C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */, - 9630C0201C6D0B2F000693EE /* CwlCatchException.swift in Sources */, - 9630C0141C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */, - 9630C01D1C6D0B2F000693EE /* CwlCatchException.m in Sources */, - 9630C02D1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1480,6 +1644,7 @@ DDB4D5F119FE442800E9D9FE /* MatchTest.swift in Sources */, 1F4A56741A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, 1F4A56831A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, + 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */, 1F925F03195C189500ED456B /* ContainTest.swift in Sources */, 1F4A56891A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, 1F4A568F1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, @@ -1492,6 +1657,7 @@ 1F91DD2E1C74BF36002C309F /* BeVoidTest.swift in Sources */, 1F4A56771A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */, 1F925EFA195C175000ED456B /* BeNilTest.swift in Sources */, + 7A6AB2C21E7F547E00A2F694 /* ToSucceedTest.swift in Sources */, 1F4A56711A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */, 1F4A56981A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */, 1F4A567D1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */, @@ -1502,6 +1668,7 @@ 1F8A37B11B7C5042001C8357 /* ObjCSyncTest.m in Sources */, 1F4A56951A3B346F009E1637 /* ObjCContainTest.m in Sources */, 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */, + 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */, 1F925EF7195C147800ED456B /* BeCloseToTest.swift in Sources */, 1F4A567A1A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, AE7ADE4A1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, @@ -1676,6 +1843,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.9; METAL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 9.0; @@ -2030,6 +2198,24 @@ }; name = Release; }; + A8F2B2551E79A4AB005BDD17 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = macosx; + }; + name = Debug; + }; + A8F2B2561E79A4AB005BDD17 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = macosx; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -2096,6 +2282,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + A8F2B2571E79A4AC005BDD17 /* Build configuration list for PBXAggregateTarget "SwiftLint" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A8F2B2551E79A4AB005BDD17 /* Debug */, + A8F2B2561E79A4AB005BDD17 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 1F1A74201940169200FFFC47 /* Project object */; diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme index 4a6682b..ef8ccf6 100644 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme +++ b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme @@ -1,6 +1,6 @@ , got <2.0000> ``` -## Type Checking +## Type Safety Nimble makes sure you don't compare two types that don't match: @@ -489,6 +496,67 @@ NMB_expect(^{ return seagull.squawk; }, __FILE__, __LINE__).to(NMB_equal(@"Squee Nimble includes a wide variety of matcher functions. +## Type Checking + +Nimble supports checking the type membership of any kind of object, whether +Objective-C conformant or not: + +```swift +// Swift + +protocol SomeProtocol{} +class SomeClassConformingToProtocol: SomeProtocol{} +struct SomeStructConformingToProtocol: SomeProtocol{} + +// The following tests pass +expect(1).to(beAKindOf(Int.self)) +expect("turtle").to(beAKindOf(String.self)) + +let classObject = SomeClassConformingToProtocol() +expect(classObject).to(beAKindOf(SomeProtocol.self)) +expect(classObject).to(beAKindOf(SomeClassConformingToProtocol.self)) +expect(classObject).toNot(beAKindOf(SomeStructConformingToProtocol.self)) + +let structObject = SomeStructConformingToProtocol() +expect(structObject).to(beAKindOf(SomeProtocol.self)) +expect(structObject).to(beAKindOf(SomeStructConformingToProtocol.self)) +expect(structObject).toNot(beAKindOf(SomeClassConformingToProtocol.self)) +``` + +```objc +// Objective-C + +// The following tests pass +NSMutableArray *array = [NSMutableArray array]; +expect(array).to(beAKindOf([NSArray class])); +expect(@1).toNot(beAKindOf([NSNull class])); +``` + +Objects can be tested for their exact types using the `beAnInstanceOf` matcher: +```swift +// Swift + +protocol SomeProtocol{} +class SomeClassConformingToProtocol: SomeProtocol{} +struct SomeStructConformingToProtocol: SomeProtocol{} + +// Unlike the 'beKindOf' matcher, the 'beAnInstanceOf' matcher only +// passes if the object is the EXACT type requested. The following +// tests pass -- note its behavior when working in an inheritance hierarchy. +expect(1).to(beAnInstanceOf(Int.self)) +expect("turtle").to(beAnInstanceOf(String.self)) + +let classObject = SomeClassConformingToProtocol() +expect(classObject).toNot(beAnInstanceOf(SomeProtocol.self)) +expect(classObject).to(beAnInstanceOf(SomeClassConformingToProtocol.self)) +expect(classObject).toNot(beAnInstanceOf(SomeStructConformingToProtocol.self)) + +let structObject = SomeStructConformingToProtocol() +expect(structObject).toNot(beAnInstanceOf(SomeProtocol.self)) +expect(structObject).to(beAnInstanceOf(SomeStructConformingToProtocol.self)) +expect(structObject).toNot(beAnInstanceOf(SomeClassConformingToProtocol.self)) +```` + ## Equivalence ```swift @@ -911,6 +979,47 @@ expect(actual).to(endWith(expected)); Like `contain`, in Objective-C `beginWith` and `endWith` only support a single argument [for now](https://github.com/Quick/Nimble/issues/27). +For code that returns collections of complex objects without a strict +ordering, there is the `containElementSatisfying` matcher: + +```swift +struct Turtle { + var color: String! +} + +var turtles = functionThatReturnsSomeTurtlesInAnyOrder() + +// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] +// or [{color: "green"}, {color: "blue"}] +expect(turtles).to(containElementSatisfying({ turtle in + return turtle.color == "green" +})) +expect(turtles).to(containElementSatisfying({ turtle in + return turtle.color == "blue" +}, "that is a turtle with color 'blue'")) + +// The second matcher will incorporate the provided string in the error message +// should it fail +``` + +```objc +@interface Turtle: NSObject +@property(nonatomic) NSString *color; +@end +@implementation Turtle @end + +NSArray *turtles = functionThatReturnsSomeTurtlesInAnyOrder(); + +// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] +// or [{color: "green"}, {color: "blue"}] +expect(turtles).to(containElementSatisfying(^BOOL(id object) { + return [turtle.color isEqualToString:@"green"]; +})); +expect(turtles).to(containElementSatisfying(^BOOL(id object) { + return [turtle.color isEqualToString:@"blue"]; +})); +``` + ## Strings ```swift @@ -1027,6 +1136,8 @@ expect { ## Matching a value to any of a group of matchers ```swift +// Swift + // passes if actual is either less than 10 or greater than 20 expect(actual).to(satisfyAnyOf(beLessThan(10), beGreaterThan(20))) @@ -1039,6 +1150,8 @@ expect(82).to(beLessThan(50) || beGreaterThan(80)) ``` ```objc +// Objective-C + // passes if actual is either less than 10 or greater than 20 expect(actual).to(satisfyAnyOf(beLessThan(@10), beGreaterThan(@20))) @@ -1052,33 +1165,70 @@ Note: This matcher allows you to chain any number of matchers together. This pro could instead refactor that single test into multiple, more precisely focused tests for better coverage. +## Custom Validation + +```swift +// Swift + +// passes if .succeed is returned from the closure +expect({ + guard case .enumCaseWithAssociatedValueThatIDontCareAbout = actual else { + return .failed("wrong enum case") + } + + return .succeeded +}).to(succeed()) + +// passes if .failed is returned from the closure +expect({ + guard case .enumCaseWithAssociatedValueThatIDontCareAbout = actual else { + return .failed("wrong enum case") + } + + return .succeeded +}).notTo(succeed()) +``` + +The `String` provided with `.failed()` is shown when the test fails. + +When using `toEventually()` be careful not to make state changes or run process intensive code since this closure will be ran many times. + # Writing Your Own Matchers In Nimble, matchers are Swift functions that take an expected -value and return a `MatcherFunc` closure. Take `equal`, for example: +value and return a `Predicate` closure. Take `equal`, for example: ```swift // Swift public func equal(expectedValue: T?) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(expectedValue)>" + // Can be shorted to: + // Predicate { actual in ... } + // + // But shown with types here for clarity + return Predicate { (actual: Expression) throws -> PredicateResult in + let msg = ExpectationMessage.expectedActualValueTo("equal <\(expectedValue)>") if let actualValue = try actualExpression.evaluate() { - return actualValue == expectedValue + return PredicateResult( + bool: actualValue == expectedValue!, + message: msg + ) } else { - return false + return PredicateResult( + status: .fail, + message: msg.appendedBeNilHint() + ) } } } ``` -The return value of a `MatcherFunc` closure is a `Bool` that indicates -whether the actual value matches the expectation: `true` if it does, or -`false` if it doesn't. +The return value of a `Predicate` closure is a `PredicateResult` that indicates +whether the actual value matches the expectation and what error message to +display on failure. -> The actual `equal` matcher function does not match when either - `actual` or `expected` are nil; the example above has been edited for - brevity. +> The actual `equal` matcher function does not match when + `expected` are nil; the example above has been edited for brevity. Since matchers are just Swift functions, you can define them anywhere: at the top of your test file, in a file shared by all of your tests, or @@ -1093,6 +1243,63 @@ For examples of how to write your own matchers, just check out the to see how Nimble's built-in set of matchers are implemented. You can also check out the tips below. +## PredicateResult + +`PredicateResult` is the return struct that `Predicate` return to indicate +success and failure. A `PredicateResult` is made up of two values: +`PredicateStatus` and `ExpectationMessage`. + +Instead of a boolean, `PredicateStatus` captures a trinary set of values: + +```swift +// Swift + +public enum PredicateStatus { +// The predicate "passes" with the given expression +// eg - expect(1).to(equal(1)) +case matches + +// The predicate "fails" with the given expression +// eg - expect(1).toNot(equal(1)) +case doesNotMatch + +// The predicate never "passes" with the given expression, even if negated +// eg - expect(nil as Int?).toNot(equal(1)) +case fail + +// ... +} +``` + +Meanwhile, `ExpectationMessage` provides messaging semantics for error reporting. + +```swift +// Swift + +public indirect enum ExpectationMessage { +// Emits standard error message: +// eg - "expected to , got " +case expectedActualValueTo(/* message: */ String) + +// Allows any free-form message +// eg - "" +case fail(/* message: */ String) + +// ... +} +``` + +Predicates should usually depend on either `.expectedActualValueTo(..)` or +`.fail(..)` when reporting errors. Special cases can be used for the other enum +cases. + +Finally, if your Predicate utilizes other Predicates, you can utilize +`.appended(details:)` and `.appended(message:)` methods to annotate an existing +error with more details. + +A common message to append is failing on nils. For that, `.appendedBeNilHint()` +can be used. + ## Lazy Evaluation `actualExpression` is a lazy, memoized closure around the value provided to the @@ -1103,22 +1310,24 @@ custom matchers should call `actualExpression.evaluate()`: ```swift // Swift -public func beNil() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be nil" - return actualExpression.evaluate() == nil - } +public func beNil() -> Predicate { + // Predicate.simpleNilable(..) automatically generates ExpectationMessage for + // us based on the string we provide to it. Also, the 'Nilable' postfix indicates + // that this Predicate supports matching against nil actualExpressions, instead of + // always resulting in a PredicateStatus.fail result -- which is true for + // Predicate.simple(..) + return Predicate.simpleNilable("be nil") { actualExpression in + let actualValue = try actualExpression.evaluate() + return PredicateStatus(bool: actualValue == nil) + } } ``` -In the above example, `actualExpression` is not `nil`--it is a closure +In the above example, `actualExpression` is not `nil` -- it is a closure that returns a value. The value it returns, which is accessed via the `evaluate()` method, may be `nil`. If that value is `nil`, the `beNil` matcher function returns `true`, indicating that the expectation passed. -Use `expression.isClosure` to determine if the expression will be invoking -a closure to produce its value. - ## Type Checking via Swift Generics Using Swift's generics, matchers can constrain the type of the actual value @@ -1131,43 +1340,106 @@ against the one provided to the matcher function, and passes if they are the sam ```swift // Swift -public func haveDescription(description: String) -> MatcherFunc { - return MatcherFunc { actual, failureMessage in - return actual.evaluate().description == description +public func haveDescription(description: String) -> Predicate { + return Predicate.simple("have description") { actual in + return PredicateStatus(bool: actual.evaluate().description == description) } } ``` ## Customizing Failure Messages -By default, Nimble outputs the following failure message when an -expectation fails: +When using `Predicate.simple(..)` or `Predicate.simpleNilable(..)`, Nimble +outputs the following failure message when an expectation fails: +```swift +// where `message` is the first string argument and +// `actual` is the actual value received in `expect(..)` +"expected to \(message), got <\(actual)>" ``` -expected to match, got <\(actual)> + +You can customize this message by modifying the way you create a `Predicate`. + +### Basic Customication + +For slightly more complex error messaging, receive the created failure message +with `Predicate.define(..)`: + +```swift +// Swift +public func equal(_ expectedValue: T?) -> Predicate { + return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in + let actualValue = try actualExpression.evaluate() + let matches = actualValue == expectedValue && expectedValue != nil + if expectedValue == nil || actualValue == nil { + if expectedValue == nil && actualValue != nil { + return PredicateResult( + status: .fail, + message: msg.appendedBeNilHint() + ) + } + return PredicateResult(status: .fail, message: msg) + } + return PredicateResult(bool: matches, message: msg) + } +} ``` -You can customize this message by modifying the `failureMessage` struct -from within your `MatcherFunc` closure. To change the verb "match" to -something else, update the `postfixMessage` property: +In the example above, `msg` is defined based on the string given to +`Predicate.define`. The code looks akin to: ```swift // Swift +let msg = ExpectationMessage.expectedActualValueTo("equal <\(stringify(expectedValue))>") +``` + +### Full Customization + +To fully customize the behavior of the Predicate, use the overload that expects +a `PredicateResult` to be returned. + +Along with `PredicateResult`, there are other `ExpectationMessage` enum values you can use: + +```swift +public indirect enum ExpectationMessage { +// Emits standard error message: +// eg - "expected to , got " +case expectedActualValueTo(/* message: */ String) + +// Allows any free-form message +// eg - "" +case fail(/* message: */ String) + +// Emits standard error message with a custom actual value instead of the default. +// eg - "expected to , got " +case expectedCustomValueTo(/* message: */ String, /* actual: */ String) + +// Emits standard error message without mentioning the actual value +// eg - "expected to " +case expectedTo(/* message: */ String, /* actual: */ String) -// Outputs: expected to be under the sea, got <\(actual)> -failureMessage.postfixMessage = "be under the sea" +// ... +} ``` -You can change how the `actual` value is displayed by updating -`failureMessage.actualValue`. Or, to remove it altogether, set it to -`nil`: +For matchers that compose other matchers, there are a handful of helper +functions to annotate messages. + +`appended(message: String)` is used to append to the original failure message: ```swift -// Swift +// produces "expected to be true, got (use beFalse() for inverse)" +// appended message do show up inline in Xcode. +.expectedActualValueTo("be true").appended(message: " (use beFalse() for inverse)") +``` + +For a more comprehensive message that spans multiple lines, use +`appended(details: String)` instead: -// Outputs: expected to be under the sea -failureMessage.actualValue = nil -failureMessage.postfixMessage = "be under the sea" +```swift +// produces "expected to be true, got \n\nuse beFalse() for inverse\nor use beNil()" +// details do not show inline in Xcode, but do show up in test logs. +.expectedActualValueTo("be true").appended(details: "use beFalse() for inverse\nor use beNil()") ``` ## Supporting Objective-C @@ -1256,6 +1528,85 @@ extension NMBObjCMatcher { } ``` +## Migrating from the Old Matcher API + +Previously (`<7.0.0`), Nimble supported matchers via the following types: + +- `Matcher` +- `NonNilMatcherFunc` +- `MatcherFunc` + +All of those types have been replaced by `Predicate`. While migrating can be a +lot of work, Nimble currently provides several steps to aid migration of your +custom matchers: + +### Minimal Step - Use `.predicate` + +Nimble provides an extension to the old types that automatically naively +converts those types to the newer `Predicate`. + +```swift +// Swift +public func beginWith(startingElement: T) -> Predicate { + return NonNilMatcherFunc { actualExpression, failureMessage in + failureMessage.postfixMessage = "begin with <\(startingElement)>" + if let actualValue = actualExpression.evaluate() { + var actualGenerator = actualValue.makeIterator() + return actualGenerator.next() == startingElement + } + return false + }.predicate +} +``` + +This is the simpliest way to externally support `Predicate` which allows easier +composition than the old Nimble matcher interface, with minimal effort to change. + +### Convert to use `Predicate` Type with Old Matcher Constructor + +The second most convenient step is to utilize special constructors that +`Predicate` supports that closely align to the constructors of the old Nimble +matcher types. + +```swift +// Swift +public func beginWith(startingElement: T) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in + failureMessage.postfixMessage = "begin with <\(startingElement)>" + if let actualValue = actualExpression.evaluate() { + var actualGenerator = actualValue.makeIterator() + return actualGenerator.next() == startingElement + } + return false + } +} +``` + +This allows you to completely drop the old types from your code, although the +intended behavior may alter slightly to what is desired. + +### Convert to `Predicate` Type with Preferred Constructor + +Finally, you can convert to the native `Predicate` format using one of the +constructors not used to assist in the migration. + +### Deprecation Roadmap + +Nimble 7 introduces `Predicate` but will support the old types with warning +deprecations. A couple major releases of Nimble will remain backwards +compatible with the old matcher api, although new features may not be +backported. + +The deprecating plan is a 3 major versions removal. Which is as follows: + + 1. Introduce new `Predicate` API, deprecation warning for old matcher APIs. + (Nimble `v7.x.x`) + 2. Introduce warnings on migration-path features (`.predicate`, + `Predicate`-constructors with similar arguments to old API). (Nimble + `v8.x.x`) + 3. Remove old API. (Nimble `v9.x.x`) + + # Installing Nimble > Nimble can be used on its own, or in conjunction with its sister @@ -1296,7 +1647,7 @@ source 'https://github.com/CocoaPods/Specs.git' target 'YOUR_APP_NAME_HERE_Tests', :exclusive => true do use_frameworks! - pod 'Nimble', '~> 5.0.0' + pod 'Nimble', '~> 6.0.0' end ``` diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift new file mode 100644 index 0000000..196ee9a --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift @@ -0,0 +1,37 @@ +// +// CwlCatchException.swift +// CwlAssertionTesting +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +import Foundation + +#if SWIFT_PACKAGE +import CwlCatchExceptionSupport +#endif + +private func catchReturnTypeConverter(_ instance: T, block: () -> Void) -> T? { + // Get the type from an *instance*, instead of a receiving the type directly + return catchExceptionOfKind(T.self, block) as? T +} + +extension NSException { + public static func catchException(in block: () -> Void) -> Self? { + // Use a dummy instance of Self to provide the type + return catchReturnTypeConverter(self.init(), block: block) + } +} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m new file mode 100644 index 0000000..738d43c --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m @@ -0,0 +1,37 @@ +// +// CwlCatchException.m +// CwlAssertionTesting +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#import "CwlCatchException.h" + +#if !SWIFT_PACKAGE && NON_SWIFT_PACKAGE +__attribute__((visibility("hidden"))) +#endif +NSException* catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()) { + @try { + inBlock(); + } @catch (NSException *exception) { + if ([exception isKindOfClass:type]) { + return exception; + } else { + @throw; + } + } + return nil; +} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h new file mode 100644 index 0000000..cc4c4fb --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h @@ -0,0 +1,32 @@ +// +// CwlCatchException.h +// CwlCatchException +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#import + +//! Project version number for CwlCatchException. +FOUNDATION_EXPORT double CwlCatchExceptionVersionNumber; + +//! Project version string for CwlCatchException. +FOUNDATION_EXPORT const unsigned char CwlCatchExceptionVersionString[]; + +#if !SWIFT_PACKAGE && NON_SWIFT_PACKAGE +__attribute__((visibility("hidden"))) +#endif +NSException* __nullable catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()); diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m new file mode 100644 index 0000000..8183196 --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m @@ -0,0 +1,50 @@ +// +// CwlMachBadExceptionHandler.m +// CwlPreconditionTesting +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#if defined(__x86_64__) + + #import "mach_excServer.h" + #import "CwlMachBadInstructionHandler.h" + + @protocol BadInstructionReply + +(NSNumber *)receiveReply:(NSValue *)value; + @end + + /// A basic function that receives callbacks from mach_exc_server and relays them to the Swift implemented BadInstructionException.catch_mach_exception_raise_state. + kern_return_t catch_mach_exception_raise_state(mach_port_t exception_port, exception_type_t exception, const mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, const thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { + bad_instruction_exception_reply_t reply = { exception_port, exception, code, codeCnt, flavor, old_state, old_stateCnt, new_state, new_stateCnt }; + Class badInstructionClass = NSClassFromString(@"BadInstructionException"); + NSValue *value = [NSValue valueWithBytes: &reply objCType: @encode(bad_instruction_exception_reply_t)]; + return [[badInstructionClass performSelector: @selector(receiveReply:) withObject: value] intValue]; + } + + // The mach port should be configured so that this function is never used. + kern_return_t catch_mach_exception_raise(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt) { + assert(false); + return KERN_FAILURE; + } + + // The mach port should be configured so that this function is never used. + kern_return_t catch_mach_exception_raise_state_identity(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { + assert(false); + return KERN_FAILURE; + } + +#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h new file mode 100644 index 0000000..5755bfc --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h @@ -0,0 +1,70 @@ +// +// CwlMachBadExceptionHandler.h +// CwlPreconditionTesting +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +extern boolean_t mach_exc_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); + +// The request_mach_exception_raise_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. +typedef struct +{ + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t thread; + mach_msg_port_descriptor_t task; + /* end of the kernel processed data */ + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + int flavor; + mach_msg_type_number_t old_stateCnt; + natural_t old_state[224]; +} request_mach_exception_raise_t; + +// The reply_mach_exception_raise_state_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. +typedef struct +{ + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + int flavor; + mach_msg_type_number_t new_stateCnt; + natural_t new_state[224]; +} reply_mach_exception_raise_state_t; + +typedef struct +{ + mach_port_t exception_port; + exception_type_t exception; + mach_exception_data_type_t const * _Nullable code; + mach_msg_type_number_t codeCnt; + int32_t * _Nullable flavor; + natural_t const * _Nullable old_state; + mach_msg_type_number_t old_stateCnt; + thread_state_t _Nullable new_state; + mach_msg_type_number_t * _Nullable new_stateCnt; +} bad_instruction_exception_reply_t; + +NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c new file mode 100644 index 0000000..733c564 --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c @@ -0,0 +1,537 @@ +/* + * IDENTIFICATION: + * stub generated Sun Jan 29 19:05:29 2017 + * with a MiG generated by bootstrap_cmds-96.20.2 + * OPTIONS: + */ + +#if defined(__x86_64__) + +/* Module mach_exc */ + +#define __MIG_check__Request__mach_exc_subsystem__ 1 + +#include "mach_excServer.h" + +#ifndef mig_internal +#define mig_internal static __inline__ +#endif /* mig_internal */ + +#ifndef mig_external +#define mig_external +#endif /* mig_external */ + +#if !defined(__MigTypeCheck) && defined(TypeCheck) +#define __MigTypeCheck TypeCheck /* Legacy setting */ +#endif /* !defined(__MigTypeCheck) */ + +#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_) +#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */ +#endif /* !defined(__MigKernelSpecificCode) */ + +#ifndef LimitCheck +#define LimitCheck 0 +#endif /* LimitCheck */ + +#ifndef min +#define min(a,b) ( ((a) < (b))? (a): (b) ) +#endif /* min */ + +#if !defined(_WALIGN_) +#define _WALIGN_(x) (((x) + 3) & ~3) +#endif /* !defined(_WALIGN_) */ + +#if !defined(_WALIGNSZ_) +#define _WALIGNSZ_(x) _WALIGN_(sizeof(x)) +#endif /* !defined(_WALIGNSZ_) */ + +#ifndef UseStaticTemplates +#define UseStaticTemplates 0 +#endif /* UseStaticTemplates */ + +#ifndef __DeclareRcvRpc +#define __DeclareRcvRpc(_NUM_, _NAME_) +#endif /* __DeclareRcvRpc */ + +#ifndef __BeforeRcvRpc +#define __BeforeRcvRpc(_NUM_, _NAME_) +#endif /* __BeforeRcvRpc */ + +#ifndef __AfterRcvRpc +#define __AfterRcvRpc(_NUM_, _NAME_) +#endif /* __AfterRcvRpc */ + +#ifndef __DeclareRcvSimple +#define __DeclareRcvSimple(_NUM_, _NAME_) +#endif /* __DeclareRcvSimple */ + +#ifndef __BeforeRcvSimple +#define __BeforeRcvSimple(_NUM_, _NAME_) +#endif /* __BeforeRcvSimple */ + +#ifndef __AfterRcvSimple +#define __AfterRcvSimple(_NUM_, _NAME_) +#endif /* __AfterRcvSimple */ + +#define novalue void + +#define msgh_request_port msgh_local_port +#define MACH_MSGH_BITS_REQUEST(bits) MACH_MSGH_BITS_LOCAL(bits) +#define msgh_reply_port msgh_remote_port +#define MACH_MSGH_BITS_REPLY(bits) MACH_MSGH_BITS_REMOTE(bits) + +#define MIG_RETURN_ERROR(X, code) {\ + ((mig_reply_error_t *)X)->RetCode = code;\ + ((mig_reply_error_t *)X)->NDR = NDR_record;\ + return;\ + } + +/* Forward Declarations */ + + +mig_internal novalue _Xmach_exception_raise + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); + +mig_internal novalue _Xmach_exception_raise_state + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); + +mig_internal novalue _Xmach_exception_raise_state_identity + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); + + +#if ( __MigTypeCheck ) +#if __MIG_check__Request__mach_exc_subsystem__ +#if !defined(__MIG_check__Request__mach_exception_raise_t__defined) +#define __MIG_check__Request__mach_exception_raise_t__defined + +mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_t(__attribute__((__unused__)) __Request__mach_exception_raise_t *In0P) +{ + + typedef __Request__mach_exception_raise_t __Request; +#if __MigTypeCheck + unsigned int msgh_size; +#endif /* __MigTypeCheck */ + +#if __MigTypeCheck + msgh_size = In0P->Head.msgh_size; + if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || + (In0P->msgh_body.msgh_descriptor_count != 2) || + (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 16)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) + return MIG_BAD_ARGUMENTS; +#endif /* __MigTypeCheck */ + +#if __MigTypeCheck + if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || + In0P->thread.disposition != 17) + return MIG_TYPE_ERROR; +#endif /* __MigTypeCheck */ + +#if __MigTypeCheck + if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || + In0P->task.disposition != 17) + return MIG_TYPE_ERROR; +#endif /* __MigTypeCheck */ + +#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined) + if (In0P->NDR.int_rep != NDR_record.int_rep) + __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); +#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined */ +#if __MigTypeCheck + if ( In0P->codeCnt > 2 ) + return MIG_BAD_ARGUMENTS; + if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 16)) / 8 < In0P->codeCnt) || + (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 16) + (8 * In0P->codeCnt))) + return MIG_BAD_ARGUMENTS; +#endif /* __MigTypeCheck */ + + return MACH_MSG_SUCCESS; +} +#endif /* !defined(__MIG_check__Request__mach_exception_raise_t__defined) */ +#endif /* __MIG_check__Request__mach_exc_subsystem__ */ +#endif /* ( __MigTypeCheck ) */ + + +/* Routine mach_exception_raise */ +mig_internal novalue _Xmach_exception_raise + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) +{ + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t thread; + mach_msg_port_descriptor_t task; + /* end of the kernel processed data */ + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + mach_msg_trailer_t trailer; + } Request __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + typedef __Request__mach_exception_raise_t __Request; + typedef __Reply__mach_exception_raise_t Reply __attribute__((unused)); + + /* + * typedef struct { + * mach_msg_header_t Head; + * NDR_record_t NDR; + * kern_return_t RetCode; + * } mig_reply_error_t; + */ + + Request *In0P = (Request *) InHeadP; + Reply *OutP = (Reply *) OutHeadP; +#ifdef __MIG_check__Request__mach_exception_raise_t__defined + kern_return_t check_result; +#endif /* __MIG_check__Request__mach_exception_raise_t__defined */ + + __DeclareRcvRpc(2405, "mach_exception_raise") + __BeforeRcvRpc(2405, "mach_exception_raise") + +#if defined(__MIG_check__Request__mach_exception_raise_t__defined) + check_result = __MIG_check__Request__mach_exception_raise_t((__Request *)In0P); + if (check_result != MACH_MSG_SUCCESS) + { MIG_RETURN_ERROR(OutP, check_result); } +#endif /* defined(__MIG_check__Request__mach_exception_raise_t__defined) */ + + OutP->RetCode = catch_mach_exception_raise(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt); + + OutP->NDR = NDR_record; + + + __AfterRcvRpc(2405, "mach_exception_raise") +} + +#if ( __MigTypeCheck ) +#if __MIG_check__Request__mach_exc_subsystem__ +#if !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) +#define __MIG_check__Request__mach_exception_raise_state_t__defined + +mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_t **In1PP) +{ + + typedef __Request__mach_exception_raise_state_t __Request; + __Request *In1P; +#if __MigTypeCheck + unsigned int msgh_size; +#endif /* __MigTypeCheck */ + unsigned int msgh_size_delta; + +#if __MigTypeCheck + msgh_size = In0P->Head.msgh_size; + if ((In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || + (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) + return MIG_BAD_ARGUMENTS; +#endif /* __MigTypeCheck */ + +#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined) + if (In0P->NDR.int_rep != NDR_record.int_rep) + __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); +#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined */ + msgh_size_delta = (8 * In0P->codeCnt); +#if __MigTypeCheck + if ( In0P->codeCnt > 2 ) + return MIG_BAD_ARGUMENTS; + if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || + (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) + return MIG_BAD_ARGUMENTS; + msgh_size -= msgh_size_delta; +#endif /* __MigTypeCheck */ + + *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); + +#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined) + if (In0P->NDR.int_rep != NDR_record.int_rep) + __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); +#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined */ +#if __MigTypeCheck + if ( In1P->old_stateCnt > 224 ) + return MIG_BAD_ARGUMENTS; + if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || + (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) + return MIG_BAD_ARGUMENTS; +#endif /* __MigTypeCheck */ + + return MACH_MSG_SUCCESS; +} +#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ +#endif /* __MIG_check__Request__mach_exc_subsystem__ */ +#endif /* ( __MigTypeCheck ) */ + + +/* Routine mach_exception_raise_state */ +mig_internal novalue _Xmach_exception_raise_state + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) +{ + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + int flavor; + mach_msg_type_number_t old_stateCnt; + natural_t old_state[224]; + mach_msg_trailer_t trailer; + } Request __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + typedef __Request__mach_exception_raise_state_t __Request; + typedef __Reply__mach_exception_raise_state_t Reply __attribute__((unused)); + + /* + * typedef struct { + * mach_msg_header_t Head; + * NDR_record_t NDR; + * kern_return_t RetCode; + * } mig_reply_error_t; + */ + + Request *In0P = (Request *) InHeadP; + Request *In1P; + Reply *OutP = (Reply *) OutHeadP; +#ifdef __MIG_check__Request__mach_exception_raise_state_t__defined + kern_return_t check_result; +#endif /* __MIG_check__Request__mach_exception_raise_state_t__defined */ + + __DeclareRcvRpc(2406, "mach_exception_raise_state") + __BeforeRcvRpc(2406, "mach_exception_raise_state") + +#if defined(__MIG_check__Request__mach_exception_raise_state_t__defined) + check_result = __MIG_check__Request__mach_exception_raise_state_t((__Request *)In0P, (__Request **)&In1P); + if (check_result != MACH_MSG_SUCCESS) + { MIG_RETURN_ERROR(OutP, check_result); } +#endif /* defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ + + OutP->new_stateCnt = 224; + + OutP->RetCode = catch_mach_exception_raise_state(In0P->Head.msgh_request_port, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); + if (OutP->RetCode != KERN_SUCCESS) { + MIG_RETURN_ERROR(OutP, OutP->RetCode); + } + + OutP->NDR = NDR_record; + + + OutP->flavor = In1P->flavor; + OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); + + __AfterRcvRpc(2406, "mach_exception_raise_state") +} + +#if ( __MigTypeCheck ) +#if __MIG_check__Request__mach_exc_subsystem__ +#if !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) +#define __MIG_check__Request__mach_exception_raise_state_identity_t__defined + +mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_identity_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t **In1PP) +{ + + typedef __Request__mach_exception_raise_state_identity_t __Request; + __Request *In1P; +#if __MigTypeCheck + unsigned int msgh_size; +#endif /* __MigTypeCheck */ + unsigned int msgh_size_delta; + +#if __MigTypeCheck + msgh_size = In0P->Head.msgh_size; + if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || + (In0P->msgh_body.msgh_descriptor_count != 2) || + (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) + return MIG_BAD_ARGUMENTS; +#endif /* __MigTypeCheck */ + +#if __MigTypeCheck + if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || + In0P->thread.disposition != 17) + return MIG_TYPE_ERROR; +#endif /* __MigTypeCheck */ + +#if __MigTypeCheck + if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || + In0P->task.disposition != 17) + return MIG_TYPE_ERROR; +#endif /* __MigTypeCheck */ + +#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined) + if (In0P->NDR.int_rep != NDR_record.int_rep) + __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); +#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined */ + msgh_size_delta = (8 * In0P->codeCnt); +#if __MigTypeCheck + if ( In0P->codeCnt > 2 ) + return MIG_BAD_ARGUMENTS; + if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || + (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) + return MIG_BAD_ARGUMENTS; + msgh_size -= msgh_size_delta; +#endif /* __MigTypeCheck */ + + *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); + +#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined) + if (In0P->NDR.int_rep != NDR_record.int_rep) + __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); +#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined */ +#if __MigTypeCheck + if ( In1P->old_stateCnt > 224 ) + return MIG_BAD_ARGUMENTS; + if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || + (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) + return MIG_BAD_ARGUMENTS; +#endif /* __MigTypeCheck */ + + return MACH_MSG_SUCCESS; +} +#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ +#endif /* __MIG_check__Request__mach_exc_subsystem__ */ +#endif /* ( __MigTypeCheck ) */ + + +/* Routine mach_exception_raise_state_identity */ +mig_internal novalue _Xmach_exception_raise_state_identity + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) +{ + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t thread; + mach_msg_port_descriptor_t task; + /* end of the kernel processed data */ + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + int flavor; + mach_msg_type_number_t old_stateCnt; + natural_t old_state[224]; + mach_msg_trailer_t trailer; + } Request __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + typedef __Request__mach_exception_raise_state_identity_t __Request; + typedef __Reply__mach_exception_raise_state_identity_t Reply __attribute__((unused)); + + /* + * typedef struct { + * mach_msg_header_t Head; + * NDR_record_t NDR; + * kern_return_t RetCode; + * } mig_reply_error_t; + */ + + Request *In0P = (Request *) InHeadP; + Request *In1P; + Reply *OutP = (Reply *) OutHeadP; +#ifdef __MIG_check__Request__mach_exception_raise_state_identity_t__defined + kern_return_t check_result; +#endif /* __MIG_check__Request__mach_exception_raise_state_identity_t__defined */ + + __DeclareRcvRpc(2407, "mach_exception_raise_state_identity") + __BeforeRcvRpc(2407, "mach_exception_raise_state_identity") + +#if defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) + check_result = __MIG_check__Request__mach_exception_raise_state_identity_t((__Request *)In0P, (__Request **)&In1P); + if (check_result != MACH_MSG_SUCCESS) + { MIG_RETURN_ERROR(OutP, check_result); } +#endif /* defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ + + OutP->new_stateCnt = 224; + + OutP->RetCode = catch_mach_exception_raise_state_identity(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); + if (OutP->RetCode != KERN_SUCCESS) { + MIG_RETURN_ERROR(OutP, OutP->RetCode); + } + + OutP->NDR = NDR_record; + + + OutP->flavor = In1P->flavor; + OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); + + __AfterRcvRpc(2407, "mach_exception_raise_state_identity") +} + + + +/* Description of this subsystem, for use in direct RPC */ +const struct catch_mach_exc_subsystem catch_mach_exc_subsystem = { + mach_exc_server_routine, + 2405, + 2408, + (mach_msg_size_t)sizeof(union __ReplyUnion__catch_mach_exc_subsystem), + (vm_address_t)0, + { + { (mig_impl_routine_t) 0, + (mig_stub_routine_t) _Xmach_exception_raise, 6, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_t)}, + { (mig_impl_routine_t) 0, + (mig_stub_routine_t) _Xmach_exception_raise_state, 9, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_t)}, + { (mig_impl_routine_t) 0, + (mig_stub_routine_t) _Xmach_exception_raise_state_identity, 11, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_identity_t)}, + } +}; + +mig_external boolean_t mach_exc_server + (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) +{ + /* + * typedef struct { + * mach_msg_header_t Head; + * NDR_record_t NDR; + * kern_return_t RetCode; + * } mig_reply_error_t; + */ + + register mig_routine_t routine; + + OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0); + OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port; + /* Minimal size: routine() will update it if different */ + OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t); + OutHeadP->msgh_local_port = MACH_PORT_NULL; + OutHeadP->msgh_id = InHeadP->msgh_id + 100; + OutHeadP->msgh_reserved = 0; + + if ((InHeadP->msgh_id > 2407) || (InHeadP->msgh_id < 2405) || + ((routine = catch_mach_exc_subsystem.routine[InHeadP->msgh_id - 2405].stub_routine) == 0)) { + ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record; + ((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID; + return FALSE; + } + (*routine) (InHeadP, OutHeadP); + return TRUE; +} + +mig_external mig_routine_t mach_exc_server_routine + (mach_msg_header_t *InHeadP) +{ + register int msgh_id; + + msgh_id = InHeadP->msgh_id - 2405; + + if ((msgh_id > 2) || (msgh_id < 0)) + return 0; + + return catch_mach_exc_subsystem.routine[msgh_id].stub_routine; +} + +#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h new file mode 100644 index 0000000..52e53ae --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h @@ -0,0 +1,321 @@ +#ifndef _mach_exc_server_ +#define _mach_exc_server_ + +/* Module mach_exc */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* BEGIN VOUCHER CODE */ + +#ifndef KERNEL +#if defined(__has_include) +#if __has_include() +#ifndef USING_VOUCHERS +#define USING_VOUCHERS +#endif +#ifndef __VOUCHER_FORWARD_TYPE_DECLS__ +#define __VOUCHER_FORWARD_TYPE_DECLS__ +#ifdef __cplusplus +extern "C" { +#endif + extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import)); +#ifdef __cplusplus +} +#endif +#endif // __VOUCHER_FORWARD_TYPE_DECLS__ +#endif // __has_include() +#endif // __has_include +#endif // !KERNEL + +/* END VOUCHER CODE */ + + +/* BEGIN MIG_STRNCPY_ZEROFILL CODE */ + +#if defined(__has_include) +#if __has_include() +#ifndef USING_MIG_STRNCPY_ZEROFILL +#define USING_MIG_STRNCPY_ZEROFILL +#endif +#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ +#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ +#ifdef __cplusplus +extern "C" { +#endif + extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import)); +#ifdef __cplusplus +} +#endif +#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */ +#endif /* __has_include() */ +#endif /* __has_include */ + +/* END MIG_STRNCPY_ZEROFILL CODE */ + + +#ifdef AUTOTEST +#ifndef FUNCTION_PTR_T +#define FUNCTION_PTR_T +typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); +typedef struct { + char *name; + function_ptr_t function; +} function_table_entry; +typedef function_table_entry *function_table_t; +#endif /* FUNCTION_PTR_T */ +#endif /* AUTOTEST */ + +#ifndef mach_exc_MSG_COUNT +#define mach_exc_MSG_COUNT 3 +#endif /* mach_exc_MSG_COUNT */ + +#include +#include +#include +#include + +#ifdef __BeforeMigServerHeader +__BeforeMigServerHeader +#endif /* __BeforeMigServerHeader */ + + +/* Routine mach_exception_raise */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t catch_mach_exception_raise +( + mach_port_t exception_port, + mach_port_t thread, + mach_port_t task, + exception_type_t exception, + mach_exception_data_t code, + mach_msg_type_number_t codeCnt +); + +/* Routine mach_exception_raise_state */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t catch_mach_exception_raise_state +( + mach_port_t exception_port, + exception_type_t exception, + const mach_exception_data_t code, + mach_msg_type_number_t codeCnt, + int *flavor, + const thread_state_t old_state, + mach_msg_type_number_t old_stateCnt, + thread_state_t new_state, + mach_msg_type_number_t *new_stateCnt +); + +/* Routine mach_exception_raise_state_identity */ +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +kern_return_t catch_mach_exception_raise_state_identity +( + mach_port_t exception_port, + mach_port_t thread, + mach_port_t task, + exception_type_t exception, + mach_exception_data_t code, + mach_msg_type_number_t codeCnt, + int *flavor, + thread_state_t old_state, + mach_msg_type_number_t old_stateCnt, + thread_state_t new_state, + mach_msg_type_number_t *new_stateCnt +); + +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +boolean_t mach_exc_server( + mach_msg_header_t *InHeadP, + mach_msg_header_t *OutHeadP); + +#ifdef mig_external +mig_external +#else +extern +#endif /* mig_external */ +mig_routine_t mach_exc_server_routine( + mach_msg_header_t *InHeadP); + + +/* Description of this subsystem, for use in direct RPC */ +extern const struct catch_mach_exc_subsystem { + mig_server_routine_t server; /* Server routine */ + mach_msg_id_t start; /* Min routine number */ + mach_msg_id_t end; /* Max routine number + 1 */ + unsigned int maxsize; /* Max msg size */ + vm_address_t reserved; /* Reserved */ + struct routine_descriptor /*Array of routine descriptors */ + routine[3]; +} catch_mach_exc_subsystem; + +/* typedefs for all requests */ + +#ifndef __Request__mach_exc_subsystem__defined +#define __Request__mach_exc_subsystem__defined + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t thread; + mach_msg_port_descriptor_t task; + /* end of the kernel processed data */ + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + } __Request__mach_exception_raise_t __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + int flavor; + mach_msg_type_number_t old_stateCnt; + natural_t old_state[224]; + } __Request__mach_exception_raise_state_t __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + /* start of the kernel processed data */ + mach_msg_body_t msgh_body; + mach_msg_port_descriptor_t thread; + mach_msg_port_descriptor_t task; + /* end of the kernel processed data */ + NDR_record_t NDR; + exception_type_t exception; + mach_msg_type_number_t codeCnt; + int64_t code[2]; + int flavor; + mach_msg_type_number_t old_stateCnt; + natural_t old_state[224]; + } __Request__mach_exception_raise_state_identity_t __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif +#endif /* !__Request__mach_exc_subsystem__defined */ + + +/* union of all requests */ + +#ifndef __RequestUnion__catch_mach_exc_subsystem__defined +#define __RequestUnion__catch_mach_exc_subsystem__defined +union __RequestUnion__catch_mach_exc_subsystem { + __Request__mach_exception_raise_t Request_mach_exception_raise; + __Request__mach_exception_raise_state_t Request_mach_exception_raise_state; + __Request__mach_exception_raise_state_identity_t Request_mach_exception_raise_state_identity; +}; +#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ +/* typedefs for all replies */ + +#ifndef __Reply__mach_exc_subsystem__defined +#define __Reply__mach_exc_subsystem__defined + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + } __Reply__mach_exception_raise_t __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + int flavor; + mach_msg_type_number_t new_stateCnt; + natural_t new_state[224]; + } __Reply__mach_exception_raise_state_t __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif + +#ifdef __MigPackStructs +#pragma pack(4) +#endif + typedef struct { + mach_msg_header_t Head; + NDR_record_t NDR; + kern_return_t RetCode; + int flavor; + mach_msg_type_number_t new_stateCnt; + natural_t new_state[224]; + } __Reply__mach_exception_raise_state_identity_t __attribute__((unused)); +#ifdef __MigPackStructs +#pragma pack() +#endif +#endif /* !__Reply__mach_exc_subsystem__defined */ + + +/* union of all replies */ + +#ifndef __ReplyUnion__catch_mach_exc_subsystem__defined +#define __ReplyUnion__catch_mach_exc_subsystem__defined +union __ReplyUnion__catch_mach_exc_subsystem { + __Reply__mach_exception_raise_t Reply_mach_exception_raise; + __Reply__mach_exception_raise_state_t Reply_mach_exception_raise_state; + __Reply__mach_exception_raise_state_identity_t Reply_mach_exception_raise_state_identity; +}; +#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ + +#ifndef subsystem_to_name_map_mach_exc +#define subsystem_to_name_map_mach_exc \ + { "mach_exception_raise", 2405 },\ + { "mach_exception_raise_state", 2406 },\ + { "mach_exception_raise_state_identity", 2407 } +#endif + +#ifdef __AfterMigServerHeader +__AfterMigServerHeader +#endif /* __AfterMigServerHeader */ + +#endif /* _mach_exc_server_ */ diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift index 2fa67c9..91e5d4d 100644 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift @@ -20,12 +20,17 @@ import Foundation +#if SWIFT_PACKAGE + import CwlMachBadInstructionHandler +#endif + private func raiseBadInstructionException() { BadInstructionException().raise() } /// A simple NSException subclass. It's not required to subclass NSException (since the exception type is represented in the name) but this helps for identifying the exception through runtime type. -@objc public class BadInstructionException: NSException { +@objc(BadInstructionException) +public class BadInstructionException: NSException { static var name: String = "com.cocoawithlove.BadInstruction" init() { @@ -37,12 +42,20 @@ private func raiseBadInstructionException() { } /// An Objective-C callable function, invoked from the `mach_exc_server` callback function `catch_mach_exception_raise_state` to push the `raiseBadInstructionException` function onto the stack. - public class func catch_mach_exception_raise_state(_ exception_port: mach_port_t, exception: exception_type_t, code: UnsafePointer, codeCnt: mach_msg_type_number_t, flavor: UnsafeMutablePointer, old_state: UnsafePointer, old_stateCnt: mach_msg_type_number_t, new_state: thread_state_t, new_stateCnt: UnsafeMutablePointer) -> kern_return_t { - + @objc(receiveReply:) + public class func receiveReply(_ value: NSValue) -> NSNumber { #if arch(x86_64) + var reply = bad_instruction_exception_reply_t(exception_port: 0, exception: 0, code: nil, codeCnt: 0, flavor: nil, old_state: nil, old_stateCnt: 0, new_state: nil, new_stateCnt: nil) + withUnsafeMutablePointer(to: &reply) { value.getValue(UnsafeMutableRawPointer($0)) } + + let old_state: UnsafePointer = reply.old_state! + let old_stateCnt: mach_msg_type_number_t = reply.old_stateCnt + let new_state: thread_state_t = reply.new_state! + let new_stateCnt: UnsafeMutablePointer = reply.new_stateCnt! + // Make sure we've been given enough memory if old_stateCnt != x86_THREAD_STATE64_COUNT || new_stateCnt.pointee < x86_THREAD_STATE64_COUNT { - return KERN_INVALID_ARGUMENT + return NSNumber(value: KERN_INVALID_ARGUMENT) } // Read the old thread state @@ -55,7 +68,7 @@ private func raiseBadInstructionException() { if let pointer = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(state.__rsp)) { pointer.pointee = state.__rip } else { - return KERN_INVALID_ARGUMENT + return NSNumber(value: KERN_INVALID_ARGUMENT) } // 3. Set the Instruction Pointer to the new function's address @@ -67,8 +80,8 @@ private func raiseBadInstructionException() { // Write the new thread state new_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { $0.pointee = state } new_stateCnt.pointee = x86_THREAD_STATE64_COUNT - - return KERN_SUCCESS + + return NSNumber(value: KERN_SUCCESS) #else fatalError("Unavailable for this CPU architecture") #endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift index ab460b3..98eefb8 100644 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift @@ -20,6 +20,11 @@ import Foundation +#if SWIFT_PACKAGE + import CwlCatchException + import CwlMachBadInstructionHandler +#endif + #if arch(x86_64) private enum PthreadError: Error { case code(Int32) } @@ -189,6 +194,6 @@ import Foundation } return result } - + #endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift index b3afb12..eb9bc19 100644 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift @@ -1,5 +1,5 @@ // -// CwlCatchBadInstructionPOSIX.swift +// CwlCatchBadInstructionPosix.swift // CwlPreconditionTesting // // Created by Matt Gallagher on 8/02/2016. @@ -21,80 +21,88 @@ import Foundation #if arch(x86_64) - -// This file is an alternative implementation to CwlCatchBadInstruction.swift that uses a SIGILL signal action and setenv/longjmp instead of a Mach exception handler and Objective-C exception raising. -// -// WARNING: -// This code is quick and dirty. It's a proof of concept for using a SIGILL handler and setjmp/longjmp where Mach exceptions and the Obj-C runtime aren't available. I ran the automated tests when I first wrote this code but I don't personally use it at all so by the time you're reading this comment, it probably broke and I didn't notice. -// Obvious limitations: -// * It doesn't work when debugging with lldb. -// * It doesn't scope correctly to the thread (it's global) -// * In violation of rules for signal handlers, it writes to the "red zone" on the stack -// * It isn't re-entrant -// * Plus all of the same caveats as the Mach exceptions version (doesn't play well with other handlers, probably leaks ARC memory, etc) -// Treat it like a loaded shotgun. Don't point it at your face. - -private var env = jmp_buf(0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0) - -private func triggerLongJmp() { - longjmp(&env.0, 1) -} - -private func sigIllHandler(code: Int32, info: UnsafeMutablePointer<__siginfo>?, uap: UnsafeMutableRawPointer?) -> Void { - guard let context = uap?.assumingMemoryBound(to: ucontext64_t.self) else { return } - - // 1. Decrement the stack pointer - context.pointee.uc_mcontext64.pointee.__ss.__rsp -= __uint64_t(MemoryLayout.size) - - // 2. Save the old Instruction Pointer to the stack. - let rsp = context.pointee.uc_mcontext64.pointee.__ss.__rsp - if let ump = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(rsp)) { - ump.pointee = rsp + + // This file is an alternative implementation to CwlCatchBadInstruction.swift that uses a SIGILL signal action and setenv/longjmp instead of a Mach exception handler and Objective-C exception raising. + // + // WARNING: + // This code is quick and dirty. It's a proof of concept for using a SIGILL handler and setjmp/longjmp where Mach exceptions and the Obj-C runtime aren't available. I ran the automated tests when I first wrote this code but I don't personally use it at all so by the time you're reading this comment, it probably broke and I didn't notice. + // Obvious limitations: + // * It doesn't work when debugging with lldb. + // * It doesn't scope correctly to the thread (it's global) + // * In violation of rules for signal handlers, it writes to the "red zone" on the stack + // * It isn't re-entrant + // * Plus all of the same caveats as the Mach exceptions version (doesn't play well with other handlers, probably leaks ARC memory, etc) + // Treat it like a loaded shotgun. Don't point it at your face. + + // This function is called from the signal handler to shut down the thread and return 1 (indicating a SIGILL was received). + private func callThreadExit() { + pthread_exit(UnsafeMutableRawPointer(bitPattern: 1)) } + + // When called, this signal handler simulates a function call to `callThreadExit` + private func sigIllHandler(code: Int32, info: UnsafeMutablePointer<__siginfo>?, uap: UnsafeMutableRawPointer?) -> Void { + guard let context = uap?.assumingMemoryBound(to: ucontext64_t.self) else { return } - // 3. Set the Instruction Pointer to the new function's address - var f: @convention(c) () -> Void = triggerLongJmp - withUnsafePointer(to: &f) { $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { ptr in - context.pointee.uc_mcontext64.pointee.__ss.__rip = ptr.pointee - } } -} + // 1. Decrement the stack pointer + context.pointee.uc_mcontext64.pointee.__ss.__rsp -= __uint64_t(MemoryLayout.size) -/// Without Mach exceptions or the Objective-C runtime, there's nothing to put in the exception object. It's really just a boolean – either a SIGILL was caught or not. -public class BadInstructionException { -} + // 2. Save the old Instruction Pointer to the stack. + let rsp = context.pointee.uc_mcontext64.pointee.__ss.__rsp + if let ump = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(rsp)) { + ump.pointee = rsp + } -/// Run the provided block. If a POSIX SIGILL is received, handle it and return a BadInstructionException (which is just an empty object in this POSIX signal version). Otherwise return nil. -/// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a SIGILL is received, the block will be interrupted using a C `longjmp`. The risks associated with abrupt jumps apply here: most Swift functions are *not* interrupt-safe. Memory may be leaked and the program will not necessarily be left in a safe state. -/// - parameter block: a function without parameters that will be run -/// - returns: if an SIGILL is raised during the execution of `block` then a BadInstructionException will be returned, otherwise `nil`. -public func catchBadInstruction( block: () -> Void) -> BadInstructionException? { - // Construct the signal action - var sigActionPrev = sigaction() - let action = __sigaction_u(__sa_sigaction: sigIllHandler) - var sigActionNew = sigaction(__sigaction_u: action, sa_mask: sigset_t(), sa_flags: SA_SIGINFO) + // 3. Set the Instruction Pointer to the new function's address + var f: @convention(c) () -> Void = callThreadExit + withUnsafePointer(to: &f) { $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { ptr in + context.pointee.uc_mcontext64.pointee.__ss.__rip = ptr.pointee + } } + } - // Install the signal action - if sigaction(SIGILL, &sigActionNew, &sigActionPrev) != 0 { - fatalError("Sigaction error: \(errno)") + /// Without Mach exceptions or the Objective-C runtime, there's nothing to put in the exception object. It's really just a boolean – either a SIGILL was caught or not. + public class BadInstructionException { } - - defer { - // Restore the previous signal action - if sigaction(SIGILL, &sigActionPrev, nil) != 0 { + + /// Run the provided block. If a POSIX SIGILL is received, handle it and return a BadInstructionException (which is just an empty object in this POSIX signal version). Otherwise return nil. + /// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a SIGILL is received, the block will be interrupted using a C `longjmp`. The risks associated with abrupt jumps apply here: most Swift functions are *not* interrupt-safe. Memory may be leaked and the program will not necessarily be left in a safe state. + /// - parameter block: a function without parameters that will be run + /// - returns: if an SIGILL is raised during the execution of `block` then a BadInstructionException will be returned, otherwise `nil`. + public func catchBadInstruction(block: @escaping () -> Void) -> BadInstructionException? { + // Construct the signal action + var sigActionPrev = sigaction() + let action = __sigaction_u(__sa_sigaction: sigIllHandler) + var sigActionNew = sigaction(__sigaction_u: action, sa_mask: sigset_t(), sa_flags: SA_SIGINFO) + + // Install the signal action + if sigaction(SIGILL, &sigActionNew, &sigActionPrev) != 0 { fatalError("Sigaction error: \(errno)") } - } + + defer { + // Restore the previous signal action + if sigaction(SIGILL, &sigActionPrev, nil) != 0 { + fatalError("Sigaction error: \(errno)") + } + } - // Prepare the jump point - if setjmp(&env.0) != 0 { - // Handle jump received - return BadInstructionException() - } + var b = block + let caught: Bool = withUnsafeMutablePointer(to: &b) { blockPtr in + // Run the block on its own thread + var handlerThread: pthread_t? = nil + let e = pthread_create(&handlerThread, nil, { arg in + (arg.assumingMemoryBound(to: (() -> Void).self).pointee)() + return nil + }, blockPtr) + precondition(e == 0, "Unable to create thread") - // Run the block - block() + // Wait for completion and get the result. It will be either `nil` or bitPattern 1 + var rawResult: UnsafeMutableRawPointer? = nil + let e2 = pthread_join(handlerThread!, &rawResult) + precondition(e2 == 0, "Thread join failed") + return Int(bitPattern: rawResult) != 0 + } + + return caught ? BadInstructionException() : nil + } - return nil -} - #endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift index 12a6b9f..8d99d5e 100644 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift @@ -21,43 +21,35 @@ import Darwin #if arch(x86_64) - -// From /usr/include/mach/port.h -// #define MACH_PORT_RIGHT_RECEIVE ((mach_port_right_t) 1) -let MACH_PORT_RIGHT_RECEIVE: mach_port_right_t = 1 - -// From /usr/include/mach/message.h -// #define MACH_MSG_TYPE_MAKE_SEND 20 /* Must hold receive right */ -// #define MACH_MSGH_BITS_REMOTE(bits) \ -// ((bits) & MACH_MSGH_BITS_REMOTE_MASK) -// #define MACH_MSGH_BITS(remote, local) /* legacy */ \ -// ((remote) | ((local) << 8)) -let MACH_MSG_TYPE_MAKE_SEND: UInt32 = 20 -func MACH_MSGH_BITS_REMOTE(_ bits: UInt32) -> UInt32 { return bits & UInt32(MACH_MSGH_BITS_REMOTE_MASK) } -func MACH_MSGH_BITS(_ remote: UInt32, _ local: UInt32) -> UInt32 { return ((remote) | ((local) << 8)) } - -// From /usr/include/mach/exception_types.h -// #define EXC_BAD_INSTRUCTION 2 /* Instruction failed */ -// #define EXC_MASK_BAD_INSTRUCTION (1 << EXC_BAD_INSTRUCTION) -// #define EXCEPTION_DEFAULT 1 -let EXC_BAD_INSTRUCTION: UInt32 = 2 -let EXC_MASK_BAD_INSTRUCTION: UInt32 = 1 << EXC_BAD_INSTRUCTION -let EXCEPTION_DEFAULT: Int32 = 1 - -// From /usr/include/mach/i386/thread_status.h -// #define THREAD_STATE_NONE 13 -// #define x86_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \ -// ( sizeof (x86_thread_state64_t) / sizeof (int) )) -let THREAD_STATE_NONE: Int32 = 13 -let x86_THREAD_STATE64_COUNT = UInt32(MemoryLayout.size / MemoryLayout.size) - -let EXC_TYPES_COUNT = 14 -struct execTypesCountTuple { - // From /usr/include/mach/i386/exception.h - // #define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ - var value: (T,T,T,T,T,T,T,T,T,T,T,T,T,T) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - init() { + + // From /usr/include/mach/message.h + // #define MACH_MSG_TYPE_MAKE_SEND 20 /* Must hold receive right */ + // #define MACH_MSGH_BITS_REMOTE(bits) \ + // ((bits) & MACH_MSGH_BITS_REMOTE_MASK) + // #define MACH_MSGH_BITS(remote, local) /* legacy */ \ + // ((remote) | ((local) << 8)) + public let MACH_MSG_TYPE_MAKE_SEND: UInt32 = 20 + public func MACH_MSGH_BITS_REMOTE(_ bits: UInt32) -> UInt32 { return bits & UInt32(MACH_MSGH_BITS_REMOTE_MASK) } + public func MACH_MSGH_BITS(_ remote: UInt32, _ local: UInt32) -> UInt32 { return ((remote) | ((local) << 8)) } + + // From /usr/include/mach/exception_types.h + // #define EXC_BAD_INSTRUCTION 2 /* Instruction failed */ + // #define EXC_MASK_BAD_INSTRUCTION (1 << EXC_BAD_INSTRUCTION) + public let EXC_BAD_INSTRUCTION: UInt32 = 2 + public let EXC_MASK_BAD_INSTRUCTION: UInt32 = 1 << EXC_BAD_INSTRUCTION + + // From /usr/include/mach/i386/thread_status.h + // #define x86_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \ + // ( sizeof (x86_thread_state64_t) / sizeof (int) )) + public let x86_THREAD_STATE64_COUNT = UInt32(MemoryLayout.size / MemoryLayout.size) + + public let EXC_TYPES_COUNT = 14 + public struct execTypesCountTuple { + // From /usr/include/mach/i386/exception.h + // #define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ + public var value: (T, T, T, T, T, T, T, T, T, T, T, T, T, T) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + public init() { + } } -} - + #endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h new file mode 100644 index 0000000..f9dbedd --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h @@ -0,0 +1,30 @@ +// +// CwlPreconditionTesting.h +// CwlPreconditionTesting +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#import + +//! Project version number for CwlUtils. +FOUNDATION_EXPORT double CwlPreconditionTestingVersionNumber; + +//! Project version string for CwlUtils. +FOUNDATION_EXPORT const unsigned char CwlAssertingTestingVersionString[]; + +#include "CwlMachBadInstructionHandler.h" +#include "CwlCatchException.h" diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h new file mode 100644 index 0000000..710afae --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h @@ -0,0 +1,27 @@ +// +// CwlPreconditionTesting.h +// CwlPreconditionTesting +// +// Created by Matt Gallagher on 2016/01/10. +// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// + +#import + +//! Project version number for CwlUtils. +FOUNDATION_EXPORT double CwlPreconditionTestingVersionNumber; + +//! Project version string for CwlUtils. +FOUNDATION_EXPORT const unsigned char CwlAssertingTestingVersionString[]; diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift index 2e30f61..94a9030 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift @@ -1,4 +1,3 @@ - /// AssertionDispatcher allows multiple AssertionHandlers to receive /// assertion messages. /// diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift index 7d0bab2..740c392 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift @@ -22,7 +22,7 @@ public struct AssertionRecord: CustomStringConvertible { /// This is useful for testing failure messages for matchers. /// /// @see AssertionHandler -public class AssertionRecorder : AssertionHandler { +public class AssertionRecorder: AssertionHandler { /// All the assertions that were captured by this recorder public var assertions = [AssertionRecord]() @@ -43,7 +43,7 @@ public class AssertionRecorder : AssertionHandler { /// Once the closure finishes, then the original Nimble assertion handler is restored. /// /// @see AssertionHandler -public func withAssertionHandler(_ tempAssertionHandler: AssertionHandler, closure: @escaping () throws -> Void) { +public func withAssertionHandler(_ tempAssertionHandler: AssertionHandler, closure: () throws -> Void) { let environment = NimbleEnvironment.activeInstance let oldRecorder = environment.assertionHandler let capturer = NMBExceptionCapture(handler: nil, finally: ({ diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift index 47d4eed..1c51cd7 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift @@ -2,7 +2,7 @@ import Foundation #if _runtime(_ObjC) -internal struct ObjCMatcherWrapper : Matcher { +internal struct ObjCMatcherWrapper: Matcher { let matcher: NMBMatcher func matches(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { @@ -21,7 +21,7 @@ internal struct ObjCMatcherWrapper : Matcher { } // Equivalent to Expectation, but for Nimble's Objective-C interface -public class NMBExpectation : NSObject { +public class NMBExpectation: NSObject { internal let _actualBlock: () -> NSObject! internal var _negative: Bool internal let _file: FileString @@ -36,7 +36,7 @@ public class NMBExpectation : NSObject { } private var expectValue: Expectation { - return expect(_file, line: _line){ + return expect(_file, line: _line) { self._actualBlock() as NSObject? } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift index c609f69..19a4567 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift @@ -5,7 +5,7 @@ import Foundation public typealias MatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage) -> Bool public typealias FullMatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage, _ shouldNotMatch: Bool) -> Bool -public class NMBObjCMatcher : NSObject, NMBMatcher { +public class NMBObjCMatcher: NSObject, NMBMatcher { let _match: MatcherBlock let _doesNotMatch: MatcherBlock let canMatchNil: Bool diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift index 1aba8bc..78e6dd9 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift @@ -3,7 +3,7 @@ import XCTest /// Default handler for Nimble. This assertion handler passes failures along to /// XCTest. -public class NimbleXCTestHandler : AssertionHandler { +public class NimbleXCTestHandler: AssertionHandler { public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { if !assertion { recordFailure("\(message.stringValue)\n", location: location) @@ -29,14 +29,14 @@ public class NimbleShortXCTestHandler: AssertionHandler { /// Fallback handler in case XCTest is unavailable. This assertion handler will abort /// the program if it is invoked. -class NimbleXCTestUnavailableHandler : AssertionHandler { +class NimbleXCTestUnavailableHandler: AssertionHandler { func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { fatalError("XCTest is not available and no custom assertion handler was configured. Aborting.") } } -#if _runtime(_ObjC) - /// Helper class providing access to the currently executing XCTestCase instance, if any +#if !SWIFT_PACKAGE +/// Helper class providing access to the currently executing XCTestCase instance, if any @objc final internal class CurrentTestCaseTracker: NSObject, XCTestObservation { @objc static let sharedInstance = CurrentTestCaseTracker() @@ -52,7 +52,6 @@ class NimbleXCTestUnavailableHandler : AssertionHandler { } #endif - func isXCTestAvailable() -> Bool { #if _runtime(_ObjC) // XCTest is weakly linked and so may not be present @@ -63,7 +62,9 @@ func isXCTestAvailable() -> Bool { } private func recordFailure(_ message: String, location: SourceLocation) { -#if _runtime(_ObjC) +#if SWIFT_PACKAGE + XCTFail("\(message)", file: location.file, line: location.line) +#else if let testCase = CurrentTestCaseTracker.sharedInstance.currentTestCase { testCase.recordFailure(withDescription: message, inFile: location.file, atLine: location.line, expected: true) } else { @@ -71,7 +72,5 @@ private func recordFailure(_ message: String, location: SourceLocation) { "The failure was:\n\"\(message)\"\nIt occurred at: \(location.file):\(location.line)" NSException(name: .internalInconsistencyException, reason: msg, userInfo: nil).raise() } -#else - XCTFail("\(message)\n", file: location.file, line: location.line) #endif } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift index 619b6dc..fdf4508 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift @@ -15,7 +15,7 @@ internal class NMBWait: NSObject { timeout: TimeInterval, file: FileString = #file, line: UInt = #line, - action: @escaping (@escaping () -> Void) -> Void) -> Void { + action: @escaping (@escaping () -> Void) -> Void) { return throwableUntil(timeout: timeout, file: file, line: line) { done in action(done) } @@ -26,10 +26,10 @@ internal class NMBWait: NSObject { timeout: TimeInterval, file: FileString = #file, line: UInt = #line, - action: @escaping (@escaping () -> Void) throws -> Void) -> Void { + action: @escaping (@escaping () -> Void) throws -> Void) { let awaiter = NimbleEnvironment.activeInstance.awaiter let leeway = timeout / 2.0 - let result = awaiter.performBlock { (done: @escaping (ErrorResult) -> Void) throws -> Void in + let result = awaiter.performBlock(file: file, line: line) { (done: @escaping (ErrorResult) -> Void) throws -> Void in DispatchQueue.main.async { let capture = NMBExceptionCapture( handler: ({ exception in @@ -39,7 +39,7 @@ internal class NMBWait: NSObject { ) capture.tryBlock { do { - try action() { + try action { done(.none) } } catch let e { @@ -70,13 +70,13 @@ internal class NMBWait: NSObject { } } - #if _runtime(_ObjC) - @objc(untilFile:line:action:) - internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) -> Void { + #if SWIFT_PACKAGE + internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) { until(timeout: 1, file: file, line: line, action: action) } #else - internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) -> Void { + @objc(untilFile:line:action:) + internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) { until(timeout: 1, file: file, line: line, action: action) } #endif @@ -93,6 +93,6 @@ internal func blockedRunLoopErrorMessageFor(_ fnName: String, leeway: TimeInterv /// /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. -public func waitUntil(timeout: TimeInterval = 1, file: FileString = #file, line: UInt = #line, action: @escaping (@escaping () -> Void) -> Void) -> Void { +public func waitUntil(timeout: TimeInterval = 1, file: FileString = #file, line: UInt = #line, action: @escaping (@escaping () -> Void) -> Void) { NMBWait.until(timeout: timeout, file: file, line: line, action: action) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift index 16d7c3b..5f8ebe1 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift @@ -1,8 +1,8 @@ import Foundation +// Deprecated internal func expressionMatches(_ expression: Expression, matcher: U, to: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T -{ + where U: Matcher, U.ValueType == T { let msg = FailureMessage() msg.userDescription = description msg.to = to @@ -13,14 +13,14 @@ internal func expressionMatches(_ expression: Expression, matcher: U, t } return (pass, msg) } catch let error { - msg.actualValue = "an unexpected error thrown: <\(error)>" + msg.stringValue = "unexpected error thrown: <\(error)>" return (false, msg) } } +// Deprecated internal func expressionDoesNotMatch(_ expression: Expression, matcher: U, toNot: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T -{ + where U: Matcher, U.ValueType == T { let msg = FailureMessage() msg.userDescription = description msg.to = toNot @@ -31,11 +31,46 @@ internal func expressionDoesNotMatch(_ expression: Expression, matcher: } return (pass, msg) } catch let error { - msg.actualValue = "an unexpected error thrown: <\(error)>" + msg.stringValue = "unexpected error thrown: <\(error)>" return (false, msg) } } +internal func execute(_ expression: Expression, _ style: ExpectationStyle, _ predicate: Predicate, to: String, description: String?, captureExceptions: Bool = true) -> (Bool, FailureMessage) { + func run() -> (Bool, FailureMessage) { + let msg = FailureMessage() + msg.userDescription = description + msg.to = to + do { + let result = try predicate.satisfies(expression) + result.message.update(failureMessage: msg) + if msg.actualValue == "" { + msg.actualValue = "<\(stringify(try expression.evaluate()))>" + } + return (result.toBoolean(expectation: style), msg) + } catch let error { + msg.stringValue = "unexpected error thrown: <\(error)>" + return (false, msg) + } + } + + var result: (Bool, FailureMessage) = (false, FailureMessage()) + if captureExceptions { + let capture = NMBExceptionCapture(handler: ({ exception -> Void in + let msg = FailureMessage() + msg.stringValue = "unexpected exception raised: \(exception)" + result = (false, msg) + }), finally: nil) + capture.tryBlock { + result = run() + } + } else { + result = run() + } + + return result +} + public struct Expectation { public let expression: Expression @@ -45,31 +80,51 @@ public struct Expectation { handler.assert(pass, message: message, location: expression.location) } - /// Tests the actual value using a matcher to match. + ////////////////// OLD API ///////////////////// + + /// DEPRECATED: Tests the actual value using a matcher to match. public func to(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { let (pass, msg) = expressionMatches(expression, matcher: matcher, to: "to", description: description) verify(pass, msg) } - /// Tests the actual value using a matcher to not match. + /// DEPRECATED: Tests the actual value using a matcher to not match. public func toNot(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { let (pass, msg) = expressionDoesNotMatch(expression, matcher: matcher, toNot: "to not", description: description) verify(pass, msg) } - /// Tests the actual value using a matcher to not match. + /// DEPRECATED: Tests the actual value using a matcher to not match. /// /// Alias to toNot(). public func notTo(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { toNot(matcher, description: description) } + ////////////////// NEW API ///////////////////// + + /// Tests the actual value using a matcher to match. + public func to(_ predicate: Predicate, description: String? = nil) { + let (pass, msg) = execute(expression, .toMatch, predicate, to: "to", description: description) + verify(pass, msg) + } + + /// Tests the actual value using a matcher to not match. + public func toNot(_ predicate: Predicate, description: String? = nil) { + let (pass, msg) = execute(expression, .toNotMatch, predicate, to: "to not", description: description) + verify(pass, msg) + } + + /// Tests the actual value using a matcher to not match. + /// + /// Alias to toNot(). + public func notTo(_ predicate: Predicate, description: String? = nil) { + toNot(predicate, description: description) + } + // see: // - AsyncMatcherWrapper for extension // - NMBExpectation for Objective-C interface diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift new file mode 100644 index 0000000..75a4f6c --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift @@ -0,0 +1,222 @@ +public indirect enum ExpectationMessage { + // --- Primary Expectations --- + /// includes actual value in output ("expected to , got ") + case expectedActualValueTo(/* message: */ String) + /// uses a custom actual value string in output ("expected to , got ") + case expectedCustomValueTo(/* message: */ String, /* actual: */ String) + /// excludes actual value in output ("expected to ") + case expectedTo(/* message: */ String) + /// allows any free-form message ("") + case fail(/* message: */ String) + + // --- Composite Expectations --- + // Generally, you'll want the methods, appended(message:) and appended(details:) instead. + + /// Not Fully Implemented Yet. + case prepends(/* Prepended Message */ String, ExpectationMessage) + + /// appends after an existing message (" (use beNil() to match nils)") + case appends(ExpectationMessage, /* Appended Message */ String) + + /// provides long-form multi-line explainations ("\n\n") + case details(ExpectationMessage, String) + + internal var sampleMessage: String { + let asStr = toString(actual: "", expected: "expected", to: "to") + let asFailureMessage = FailureMessage() + update(failureMessage: asFailureMessage) + return "(toString(actual:expected:to:) -> \(asStr) || update(failureMessage:) -> \(asFailureMessage.stringValue))" + } + + /// Returns the smallest message after the "expected to" string that summarizes the error. + /// + /// Returns the message part from ExpectationMessage, ignoring all .appends and .details. + public var expectedMessage: String { + switch self { + case let .fail(msg): + return msg + case let .expectedTo(msg): + return msg + case let .expectedActualValueTo(msg): + return msg + case let .expectedCustomValueTo(msg, _): + return msg + case let .prepends(_, expectation): + return expectation.expectedMessage + case let .appends(expectation, _): + return expectation.expectedMessage + case let .details(expectation, _): + return expectation.expectedMessage + } + } + + /// Appends a message after the primary expectation message + public func appended(message: String) -> ExpectationMessage { + switch self { + case .fail, .expectedTo, .expectedActualValueTo, .expectedCustomValueTo, .appends, .prepends: + return .appends(self, message) + case let .details(expectation, msg): + return .details(expectation.appended(message: message), msg) + } + } + + /// Appends a message hinting to use beNil() for when the actual value given was nil. + public func appendedBeNilHint() -> ExpectationMessage { + return appended(message: " (use beNil() to match nils)") + } + + /// Appends a detailed (aka - multiline) message after the primary expectation message + /// Detailed messages will be placed after .appended(message:) calls. + public func appended(details: String) -> ExpectationMessage { + return .details(self, details) + } + + internal func visitLeafs(_ f: (ExpectationMessage) -> ExpectationMessage) -> ExpectationMessage { + switch self { + case .fail, .expectedTo, .expectedActualValueTo, .expectedCustomValueTo: + return f(self) + case let .prepends(msg, expectation): + return .prepends(msg, expectation.visitLeafs(f)) + case let .appends(expectation, msg): + return .appends(expectation.visitLeafs(f), msg) + case let .details(expectation, msg): + return .details(expectation.visitLeafs(f), msg) + } + } + + /// Replaces a primary expectation with one returned by f. Preserves all composite expectations + /// that were built upon it (aka - all appended(message:) and appended(details:). + public func replacedExpectation(_ f: @escaping (ExpectationMessage) -> ExpectationMessage) -> ExpectationMessage { + func walk(_ msg: ExpectationMessage) -> ExpectationMessage { + switch msg { + case .fail, .expectedTo, .expectedActualValueTo, .expectedCustomValueTo: + return f(msg) + default: + return msg + } + } + return visitLeafs(walk) + } + + /// Wraps a primary expectation with text before and after it. + /// Alias to prepended(message: before).appended(message: after) + public func wrappedExpectation(before: String, after: String) -> ExpectationMessage { + return prepended(expectation: before).appended(message: after) + } + + /// Prepends a message by modifying the primary expectation + public func prepended(expectation message: String) -> ExpectationMessage { + func walk(_ msg: ExpectationMessage) -> ExpectationMessage { + switch msg { + case let .expectedTo(msg): + return .expectedTo(message + msg) + case let .expectedActualValueTo(msg): + return .expectedActualValueTo(message + msg) + case let .expectedCustomValueTo(msg, actual): + return .expectedCustomValueTo(message + msg, actual) + default: + return msg.visitLeafs(walk) + } + } + return visitLeafs(walk) + } + + // TODO: test & verify correct behavior + internal func prepended(message: String) -> ExpectationMessage { + return .prepends(message, self) + } + + /// Converts the tree of ExpectationMessages into a final built string. + public func toString(actual: String, expected: String = "expected", to: String = "to") -> String { + switch self { + case let .fail(msg): + return msg + case let .expectedTo(msg): + return "\(expected) \(to) \(msg)" + case let .expectedActualValueTo(msg): + return "\(expected) \(to) \(msg), got \(actual)" + case let .expectedCustomValueTo(msg, actual): + return "\(expected) \(to) \(msg), got \(actual)" + case let .prepends(msg, expectation): + return "\(msg)\(expectation.toString(actual: actual, expected: expected, to: to))" + case let .appends(expectation, msg): + return "\(expectation.toString(actual: actual, expected: expected, to: to))\(msg)" + case let .details(expectation, msg): + return "\(expectation.toString(actual: actual, expected: expected, to: to))\n\n\(msg)" + } + } + + // Backwards compatibility: converts ExpectationMessage tree to FailureMessage + internal func update(failureMessage: FailureMessage) { + switch self { + case let .fail(msg): + failureMessage.stringValue = msg + case let .expectedTo(msg): + failureMessage.actualValue = nil + failureMessage.postfixMessage = msg + case let .expectedActualValueTo(msg): + failureMessage.postfixMessage = msg + case let .expectedCustomValueTo(msg, actual): + failureMessage.postfixMessage = msg + failureMessage.actualValue = actual + case let .prepends(msg, expectation): + expectation.update(failureMessage: failureMessage) + if let desc = failureMessage.userDescription { + failureMessage.userDescription = "\(msg)\(desc)" + } else { + failureMessage.userDescription = msg + } + case let .appends(expectation, msg): + expectation.update(failureMessage: failureMessage) + if failureMessage.hasOverriddenStringValue { + failureMessage.stringValue += "\(msg)" + } else { + if failureMessage.actualValue != nil { + failureMessage.postfixActual += msg + } else { + failureMessage.postfixMessage += msg + } + } + case let .details(expectation, msg): + expectation.update(failureMessage: failureMessage) + if failureMessage.hasOverriddenStringValue { + if let desc = failureMessage.userDescription { + failureMessage.stringValue = "\(desc)\n\(failureMessage.stringValue)" + } + failureMessage.stringValue += "\n\(msg)" + } else { + if let desc = failureMessage.userDescription { + failureMessage.userDescription = desc + } + failureMessage.extendedMessage = msg + } + } + } +} + +extension FailureMessage { + var toExpectationMessage: ExpectationMessage { + let defaultMsg = FailureMessage() + if expected != defaultMsg.expected || _stringValueOverride != nil { + return .fail(stringValue) + } + + var msg: ExpectationMessage = .fail(userDescription ?? "") + if actualValue != "" && actualValue != nil { + msg = .expectedCustomValueTo(postfixMessage, actualValue ?? "") + } else if postfixMessage != defaultMsg.postfixMessage { + if actualValue == nil { + msg = .expectedTo(postfixMessage) + } else { + msg = .expectedActualValueTo(postfixMessage) + } + } + if postfixActual != defaultMsg.postfixActual { + msg = .appends(msg, postfixActual) + } + if let m = extendedMessage { + msg = .details(msg, m) + } + return msg + } +} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift index 8ba53e4..f7afffe 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift @@ -5,7 +5,7 @@ import Foundation internal func memoizedClosure(_ closure: @escaping () throws -> T) -> (Bool) throws -> T { var cache: T? return ({ withoutCaching in - if (withoutCaching || cache == nil) { + if withoutCaching || cache == nil { cache = try closure() } return cache! diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift index 2d245e5..0384d46 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift @@ -12,8 +12,8 @@ public class FailureMessage: NSObject { /// An optional message that will be appended as a new line and provides additional details /// about the failure. This message will only be visible in the issue navigator / in logs but /// not directly in the source editor since only a single line is presented there. - public var extendedMessage: String? = nil - public var userDescription: String? = nil + public var extendedMessage: String? + public var userDescription: String? public var stringValue: String { get { @@ -29,6 +29,9 @@ public class FailureMessage: NSObject { } internal var _stringValueOverride: String? + internal var hasOverriddenStringValue: Bool { + return _stringValueOverride != nil + } public override init() { } @@ -59,7 +62,7 @@ public class FailureMessage: NSObject { if let userDescription = userDescription { return "\(userDescription)\n\(value)" } - + return value } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift index 3a9258d..f5948db 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift @@ -1,58 +1,66 @@ import Foundation -public func allPass - (_ passFunc: @escaping (T?) -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T -{ - return allPass("pass a condition", passFunc) +public func allPass + (_ passFunc: @escaping (T?) throws -> Bool) -> Predicate + where U: Sequence, T == U.Iterator.Element { + let matcher = Predicate.simpleNilable("pass a condition") { actualExpression in + return PredicateStatus(bool: try passFunc(try actualExpression.evaluate())) + } + return createPredicate(matcher) } -public func allPass - (_ passName: String, _ passFunc: @escaping (T?) -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T -{ - return createAllPassMatcher() { - expression, failureMessage in - failureMessage.postfixMessage = passName - return passFunc(try expression.evaluate()) - } +public func allPass + (_ passName: String, _ passFunc: @escaping (T?) throws -> Bool) -> Predicate + where U: Sequence, T == U.Iterator.Element { + let matcher = Predicate.simpleNilable(passName) { actualExpression in + return PredicateStatus(bool: try passFunc(try actualExpression.evaluate())) + } + return createPredicate(matcher) } -public func allPass - (_ matcher: V) -> NonNilMatcherFunc - where U: Sequence, V: Matcher, U.Iterator.Element == V.ValueType -{ - return createAllPassMatcher() { - try matcher.matches($0, failureMessage: $1) - } +public func allPass(_ elementMatcher: M) -> Predicate + where S: Sequence, M: Matcher, S.Iterator.Element == M.ValueType { + return createPredicate(elementMatcher.predicate) } -private func createAllPassMatcher - (_ elementEvaluator: @escaping (Expression, FailureMessage) throws -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T -{ - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.actualValue = nil - if let actualValue = try actualExpression.evaluate() { +public func allPass(_ elementPredicate: Predicate) -> Predicate + where S: Sequence { + return createPredicate(elementPredicate) +} + +private func createPredicate(_ elementMatcher: Predicate) -> Predicate + where S: Sequence { + return Predicate { actualExpression in + guard let actualValue = try actualExpression.evaluate() else { + return PredicateResult( + status: .fail, + message: .appends(.expectedTo("all pass"), " (use beNil() to match nils)") + ) + } + + var failure: ExpectationMessage = .expectedTo("all pass") for currentElement in actualValue { let exp = Expression( expression: {currentElement}, location: actualExpression.location) - if try !elementEvaluator(exp, failureMessage) { - failureMessage.postfixMessage = - "all \(failureMessage.postfixMessage)," - + " but failed first at element <\(stringify(currentElement))>" - + " in <\(stringify(actualValue))>" - return false + let predicateResult = try elementMatcher.satisfies(exp) + if predicateResult.status == .matches { + failure = predicateResult.message.prepended(expectation: "all ") + } else { + failure = predicateResult.message + .replacedExpectation({ .expectedTo($0.expectedMessage) }) + .wrappedExpectation( + before: "all ", + after: ", but failed first at element <\(stringify(currentElement))>" + + " in <\(stringify(actualValue))>" + ) + return PredicateResult(status: .doesNotMatch, message: failure) } } - failureMessage.postfixMessage = "all \(failureMessage.postfixMessage)" - } else { - failureMessage.postfixMessage = "all pass (use beNil() to match nils)" - return false + failure = failure.replacedExpectation({ expectation in + return .expectedTo(expectation.expectedMessage) + }) + return PredicateResult(status: .matches, message: failure) } - - return true - } } #if _runtime(_ObjC) @@ -62,7 +70,7 @@ extension NMBObjCMatcher { let location = actualExpression.location let actualValue = try! actualExpression.evaluate() var nsObjects = [NSObject]() - + var collectionIsUsable = true if let value = actualValue as? NSFastEnumeration { let generator = NSFastEnumerationIterator(value) @@ -77,7 +85,7 @@ extension NMBObjCMatcher { } else { collectionIsUsable = false } - + if !collectionIsUsable { failureMessage.postfixMessage = "allPass only works with NSFastEnumeration (NSArray, NSSet, ...) of NSObjects" @@ -85,15 +93,16 @@ extension NMBObjCMatcher { failureMessage.to = "" return false } - + let expr = Expression(expression: ({ nsObjects }), location: location) - let elementEvaluator: (Expression, FailureMessage) -> Bool = { - expression, failureMessage in - return matcher.matches( - {try! expression.evaluate()}, failureMessage: failureMessage, location: expr.location) - } - return try! createAllPassMatcher(elementEvaluator).matches( - expr, failureMessage: failureMessage) + let pred: Predicate<[NSObject]> = createPredicate(Predicate.fromDeprecatedFullClosure { expr, failureMessage, expectMatch in + if expectMatch { + return matcher.matches({ try! expr.evaluate() }, failureMessage: failureMessage, location: expr.location) + } else { + return matcher.doesNotMatch({ try! expr.evaluate() }, failureMessage: failureMessage, location: expr.location) + } + }) + return try! pred.matches(expr, failureMessage: failureMessage) } } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift index 6b89c76..b8fa016 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift @@ -7,9 +7,38 @@ public struct AsyncDefaults { public static var PollInterval: TimeInterval = 0.01 } +fileprivate func async(style: ExpectationStyle, predicate: Predicate, timeout: TimeInterval, poll: TimeInterval, fnName: String) -> Predicate { + return Predicate { actualExpression in + let uncachedExpression = actualExpression.withoutCaching() + let fnName = "expect(...).\(fnName)(...)" + var lastPredicateResult: PredicateResult? + let result = pollBlock( + pollInterval: poll, + timeoutInterval: timeout, + file: actualExpression.location.file, + line: actualExpression.location.line, + fnName: fnName) { + lastPredicateResult = try predicate.satisfies(uncachedExpression) + return lastPredicateResult!.toBoolean(expectation: style) + } + switch result { + case .completed: return lastPredicateResult! + case .timedOut: return PredicateResult(status: .doesNotMatch, message: lastPredicateResult!.message) + case let .errorThrown(error): + return PredicateResult(status: .fail, message: .fail("unexpected error thrown: <\(error)>")) + case let .raisedException(exception): + return PredicateResult(status: .fail, message: .fail("unexpected exception raised: \(exception)")) + case .blockedRunLoop: + return PredicateResult(status: .fail, message: lastPredicateResult!.message.appended(message: " (timed out, but main thread was unresponsive).")) + case .incomplete: + internalError("Reached .incomplete state for toEventually(...).") + } + } +} + +// Deprecated internal struct AsyncMatcherWrapper: Matcher - where U: Matcher, U.ValueType == T -{ + where U: Matcher, U.ValueType == T { let fullMatcher: U let timeoutInterval: TimeInterval let pollInterval: TimeInterval @@ -31,14 +60,14 @@ internal struct AsyncMatcherWrapper: Matcher fnName: fnName) { try self.fullMatcher.matches(uncachedExpression, failureMessage: failureMessage) } - switch (result) { + switch result { case let .completed(isSuccessful): return isSuccessful case .timedOut: return false case let .errorThrown(error): - failureMessage.actualValue = "an unexpected error thrown: <\(error)>" + failureMessage.stringValue = "an unexpected error thrown: <\(error)>" return false case let .raisedException(exception): - failureMessage.actualValue = "an unexpected exception thrown: <\(exception)>" + failureMessage.stringValue = "an unexpected exception thrown: <\(exception)>" return false case .blockedRunLoop: failureMessage.postfixMessage += " (timed out, but main thread was unresponsive)." @@ -48,7 +77,7 @@ internal struct AsyncMatcherWrapper: Matcher } } - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { + func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { let uncachedExpression = actualExpression.withoutCaching() let result = pollBlock( pollInterval: pollInterval, @@ -58,14 +87,14 @@ internal struct AsyncMatcherWrapper: Matcher fnName: "expect(...).toEventuallyNot(...)") { try self.fullMatcher.doesNotMatch(uncachedExpression, failureMessage: failureMessage) } - switch (result) { + switch result { case let .completed(isSuccessful): return isSuccessful case .timedOut: return false case let .errorThrown(error): - failureMessage.actualValue = "an unexpected error thrown: <\(error)>" + failureMessage.stringValue = "an unexpected error thrown: <\(error)>" return false case let .raisedException(exception): - failureMessage.actualValue = "an unexpected exception thrown: <\(exception)>" + failureMessage.stringValue = "an unexpected exception thrown: <\(exception)>" return false case .blockedRunLoop: failureMessage.postfixMessage += " (timed out, but main thread was unresponsive)." @@ -78,7 +107,61 @@ internal struct AsyncMatcherWrapper: Matcher private let toEventuallyRequiresClosureError = FailureMessage(stringValue: "expect(...).toEventually(...) requires an explicit closure (eg - expect { ... }.toEventually(...) )\nSwift 1.2 @autoclosure behavior has changed in an incompatible way for Nimble to function") +extension Expectation { + /// Tests the actual value using a matcher to match by checking continuously + /// at each pollInterval until the timeout is reached. + /// + /// @discussion + /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function + /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. + public func toEventually(_ predicate: Predicate, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) { + nimblePrecondition(expression.isClosure, "NimbleInternalError", toEventuallyRequiresClosureError.stringValue) + + let (pass, msg) = execute( + expression, + .toMatch, + async(style: .toMatch, predicate: predicate, timeout: timeout, poll: pollInterval, fnName: "toEventually"), + to: "to eventually", + description: description, + captureExceptions: false + ) + verify(pass, msg) + } + + /// Tests the actual value using a matcher to not match by checking + /// continuously at each pollInterval until the timeout is reached. + /// + /// @discussion + /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function + /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. + public func toEventuallyNot(_ predicate: Predicate, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) { + nimblePrecondition(expression.isClosure, "NimbleInternalError", toEventuallyRequiresClosureError.stringValue) + + let (pass, msg) = execute( + expression, + .toNotMatch, + async(style: .toNotMatch, predicate: predicate, timeout: timeout, poll: pollInterval, fnName: "toEventuallyNot"), + to: "to eventually not", + description: description, + captureExceptions: false + ) + verify(pass, msg) + } + + /// Tests the actual value using a matcher to not match by checking + /// continuously at each pollInterval until the timeout is reached. + /// + /// Alias of toEventuallyNot() + /// + /// @discussion + /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function + /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. + public func toNotEventually(_ predicate: Predicate, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) { + return toEventuallyNot(predicate, timeout: timeout, pollInterval: pollInterval, description: description) + } +} +// Deprecated extension Expectation { /// Tests the actual value using a matcher to match by checking continuously /// at each pollInterval until the timeout is reached. @@ -87,8 +170,7 @@ extension Expectation { /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. public func toEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { if expression.isClosure { let (pass, msg) = expressionMatches( expression, @@ -112,8 +194,7 @@ extension Expectation { /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. public func toEventuallyNot(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { if expression.isClosure { let (pass, msg) = expressionDoesNotMatch( expression, @@ -139,8 +220,7 @@ extension Expectation { /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. public func toNotEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { return toEventuallyNot(matcher, timeout: timeout, pollInterval: pollInterval, description: description) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift index 99b8f8f..4ae4d11 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift @@ -1,29 +1,59 @@ import Foundation -#if _runtime(_ObjC) +private func matcherMessage(forType expectedType: T.Type) -> String { + return "be a kind of \(String(describing: expectedType))" +} +private func matcherMessage(forClass expectedClass: AnyClass) -> String { + return "be a kind of \(String(describing: expectedClass))" +} + +/// A Nimble matcher that succeeds when the actual value is an instance of the given class. +public func beAKindOf(_ expectedType: T.Type) -> Predicate { + return Predicate.define { actualExpression in + let message: ExpectationMessage + + let instance = try actualExpression.evaluate() + guard let validInstance = instance else { + message = .expectedCustomValueTo(matcherMessage(forType: expectedType), "") + return PredicateResult(status: .fail, message: message) + } + message = .expectedCustomValueTo( + "be a kind of \(String(describing: expectedType))", + "<\(String(describing: type(of: validInstance))) instance>" + ) -// A Nimble matcher that catches attempts to use beAKindOf with non Objective-C types -public func beAKindOf(_ expectedClass: Any) -> NonNilMatcherFunc { - return NonNilMatcherFunc {actualExpression, failureMessage in - failureMessage.stringValue = "beAKindOf only works on Objective-C types since" - + " the Swift compiler will automatically type check Swift-only types." - + " This expectation is redundant." - return false + return PredicateResult( + bool: validInstance is T, + message: message + ) } } +#if _runtime(_ObjC) + /// A Nimble matcher that succeeds when the actual value is an instance of the given class. /// @see beAnInstanceOf if you want to match against the exact class -public func beAKindOf(_ expectedClass: AnyClass) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beAKindOf(_ expectedClass: AnyClass) -> Predicate { + return Predicate.define { actualExpression in + let message: ExpectationMessage + let status: PredicateStatus + let instance = try actualExpression.evaluate() if let validInstance = instance { - failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" + status = PredicateStatus(bool: instance != nil && instance!.isKind(of: expectedClass)) + message = .expectedCustomValueTo( + matcherMessage(forClass: expectedClass), + "<\(String(describing: type(of: validInstance))) instance>" + ) } else { - failureMessage.actualValue = "" + status = .fail + message = .expectedCustomValueTo( + matcherMessage(forClass: expectedClass), + "" + ) } - failureMessage.postfixMessage = "be a kind of \(String(describing: expectedClass))" - return instance != nil && instance!.isKind(of: expectedClass) + + return PredicateResult(status: status, message: message) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift index 2298c78..42b1ebe 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift @@ -1,31 +1,47 @@ import Foundation -// A Nimble matcher that catches attempts to use beAnInstanceOf with non Objective-C types -public func beAnInstanceOf(_ expectedClass: Any) -> NonNilMatcherFunc { - return NonNilMatcherFunc {actualExpression, failureMessage in - failureMessage.stringValue = "beAnInstanceOf only works on Objective-C types since" - + " the Swift compiler will automatically type check Swift-only types." - + " This expectation is redundant." - return false +/// A Nimble matcher that succeeds when the actual value is an _exact_ instance of the given class. +public func beAnInstanceOf(_ expectedType: T.Type) -> Predicate { + let errorMessage = "be an instance of \(String(describing: expectedType))" + return Predicate.define { actualExpression in + let instance = try actualExpression.evaluate() + guard let validInstance = instance else { + return PredicateResult( + status: .doesNotMatch, + message: .expectedActualValueTo(errorMessage) + ) + } + + let actualString = "<\(String(describing: type(of: validInstance))) instance>" + + return PredicateResult( + status: PredicateStatus(bool: type(of: validInstance) == expectedType), + message: .expectedCustomValueTo(errorMessage, actualString) + ) } } /// A Nimble matcher that succeeds when the actual value is an instance of the given class. /// @see beAKindOf if you want to match against subclasses -public func beAnInstanceOf(_ expectedClass: AnyClass) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beAnInstanceOf(_ expectedClass: AnyClass) -> Predicate { + let errorMessage = "be an instance of \(String(describing: expectedClass))" + return Predicate.define { actualExpression in let instance = try actualExpression.evaluate() + let actualString: String if let validInstance = instance { - failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" + actualString = "<\(String(describing: type(of: validInstance))) instance>" } else { - failureMessage.actualValue = "" + actualString = "" } - failureMessage.postfixMessage = "be an instance of \(String(describing: expectedClass))" #if _runtime(_ObjC) - return instance != nil && instance!.isMember(of: expectedClass) + let matches = instance != nil && instance!.isMember(of: expectedClass) #else - return instance != nil && type(of: instance!) == expectedClass + let matches = instance != nil && type(of: instance!) == expectedClass #endif + return PredicateResult( + status: PredicateStatus(bool: matches), + message: .expectedCustomValueTo(errorMessage, actualString) + ) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift index 48e9895..2b0ccd6 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift @@ -2,19 +2,25 @@ import Foundation internal let DefaultDelta = 0.0001 -internal func isCloseTo(_ actualValue: NMBDoubleConvertible?, expectedValue: NMBDoubleConvertible, delta: Double, failureMessage: FailureMessage) -> Bool { - failureMessage.postfixMessage = "be close to <\(stringify(expectedValue))> (within \(stringify(delta)))" - failureMessage.actualValue = "<\(stringify(actualValue))>" - return actualValue != nil && abs(actualValue!.doubleValue - expectedValue.doubleValue) < delta +internal func isCloseTo(_ actualValue: NMBDoubleConvertible?, + expectedValue: NMBDoubleConvertible, + delta: Double) + -> PredicateResult { + let errorMessage = "be close to <\(stringify(expectedValue))> (within \(stringify(delta)))" + return PredicateResult( + bool: actualValue != nil && + abs(actualValue!.doubleValue - expectedValue.doubleValue) < delta, + message: .expectedCustomValueTo(errorMessage, "<\(stringify(actualValue))>") + ) } /// A Nimble matcher that succeeds when a value is close to another. This is used for floating /// point values which can have imprecise results when doing arithmetic on them. /// /// @see equal -public func beCloseTo(_ expectedValue: Double, within delta: Double = DefaultDelta) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta, failureMessage: failureMessage) +public func beCloseTo(_ expectedValue: Double, within delta: Double = DefaultDelta) -> Predicate { + return Predicate.define { actualExpression in + return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta) } } @@ -22,14 +28,14 @@ public func beCloseTo(_ expectedValue: Double, within delta: Double = DefaultDel /// point values which can have imprecise results when doing arithmetic on them. /// /// @see equal -public func beCloseTo(_ expectedValue: NMBDoubleConvertible, within delta: Double = DefaultDelta) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta, failureMessage: failureMessage) +public func beCloseTo(_ expectedValue: NMBDoubleConvertible, within delta: Double = DefaultDelta) -> Predicate { + return Predicate.define { actualExpression in + return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta) } } #if _runtime(_ObjC) -public class NMBObjCBeCloseToMatcher : NSObject, NMBMatcher { +public class NMBObjCBeCloseToMatcher: NSObject, NMBMatcher { var _expected: NSNumber var _delta: CDouble init(expected: NSNumber, within: CDouble) { @@ -69,24 +75,22 @@ extension NMBObjCMatcher { } #endif -public func beCloseTo(_ expectedValues: [Double], within delta: Double = DefaultDelta) -> NonNilMatcherFunc <[Double]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be close to <\(stringify(expectedValues))> (each within \(stringify(delta)))" +public func beCloseTo(_ expectedValues: [Double], within delta: Double = DefaultDelta) -> Predicate<[Double]> { + let errorMessage = "be close to <\(stringify(expectedValues))> (each within \(stringify(delta)))" + return Predicate.simple(errorMessage) { actualExpression in if let actual = try actualExpression.evaluate() { - failureMessage.actualValue = "<\(stringify(actual))>" - if actual.count != expectedValues.count { - return false + return .doesNotMatch } else { for (index, actualItem) in actual.enumerated() { if fabs(actualItem - expectedValues[index]) > delta { - return false + return .doesNotMatch } } - return true + return .matches } } - return false + return .doesNotMatch } } @@ -106,7 +110,7 @@ public func ≈(lhs: Expectation, rhs: (expected: NMBDoubl lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) } -public func ==(lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { +public func == (lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift index 19df0d2..483031b 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift @@ -1,37 +1,33 @@ import Foundation - /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" +public func beEmpty() -> Predicate { + return Predicate.simple("be empty") { actualExpression in let actualSeq = try actualExpression.evaluate() if actualSeq == nil { - return true + return .fail } var generator = actualSeq!.makeIterator() - return generator.next() == nil + return PredicateStatus(bool: generator.next() == nil) } } /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" +public func beEmpty() -> Predicate { + return Predicate.simple("be empty") { actualExpression in let actualString = try actualExpression.evaluate() - return actualString == nil || NSString(string: actualString!).length == 0 + return PredicateStatus(bool: actualString == nil || NSString(string: actualString!).length == 0) } } /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For NSString instances, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" +public func beEmpty() -> Predicate { + return Predicate.simple("be empty") { actualExpression in let actualString = try actualExpression.evaluate() - return actualString == nil || actualString!.length == 0 + return PredicateStatus(bool: actualString == nil || actualString!.length == 0) } } @@ -40,31 +36,28 @@ public func beEmpty() -> NonNilMatcherFunc { /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" +public func beEmpty() -> Predicate { + return Predicate.simple("be empty") { actualExpression in let actualDictionary = try actualExpression.evaluate() - return actualDictionary == nil || actualDictionary!.count == 0 + return PredicateStatus(bool: actualDictionary == nil || actualDictionary!.count == 0) } } /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" +public func beEmpty() -> Predicate { + return Predicate.simple("be empty") { actualExpression in let actualArray = try actualExpression.evaluate() - return actualArray == nil || actualArray!.count == 0 + return PredicateStatus(bool: actualArray == nil || actualArray!.count == 0) } } /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" +public func beEmpty() -> Predicate { + return Predicate.simple("be empty") { actualExpression in let actual = try actualExpression.evaluate() - return actual == nil || actual!.count == 0 + return PredicateStatus(bool: actual == nil || actual!.count == 0) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift index 1345199..98c6f2e 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift @@ -1,32 +1,31 @@ import Foundation - /// A Nimble matcher that succeeds when the actual value is greater than the expected value. -public func beGreaterThan(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than <\(stringify(expectedValue))>" +public func beGreaterThan(_ expectedValue: T?) -> Predicate { + let errorMessage = "be greater than <\(stringify(expectedValue))>" + return Predicate.simple(errorMessage) { actualExpression in if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return actual > expected + return PredicateStatus(bool: actual > expected) } - return false + return .fail } } /// A Nimble matcher that succeeds when the actual value is greater than the expected value. -public func beGreaterThan(_ expectedValue: NMBComparable?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beGreaterThan(_ expectedValue: NMBComparable?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be greater than <\(stringify(expectedValue))>" let actualValue = try actualExpression.evaluate() let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) == ComparisonResult.orderedDescending return matches - } + }.requireNonNil } public func >(lhs: Expectation, rhs: T) { lhs.to(beGreaterThan(rhs)) } -public func >(lhs: Expectation, rhs: NMBComparable?) { +public func > (lhs: Expectation, rhs: NMBComparable?) { lhs.to(beGreaterThan(rhs)) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift index 2949fce..8f370d4 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift @@ -2,26 +2,26 @@ import Foundation /// A Nimble matcher that succeeds when the actual value is greater than /// or equal to the expected value. -public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be greater than or equal to <\(stringify(expectedValue))>" let actualValue = try actualExpression.evaluate() if let actual = actualValue, let expected = expectedValue { return actual >= expected } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual value is greater than /// or equal to the expected value. -public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be greater than or equal to <\(stringify(expectedValue))>" let actualValue = try actualExpression.evaluate() let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) != ComparisonResult.orderedAscending return matches - } + }.requireNonNil } public func >=(lhs: Expectation, rhs: T) { diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift index ca3357b..250bed7 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift @@ -1,10 +1,9 @@ import Foundation - /// A Nimble matcher that succeeds when the actual value is the same instance /// as the expected instance. -public func beIdenticalTo(_ expected: Any?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beIdenticalTo(_ expected: Any?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in #if os(Linux) let actual = try actualExpression.evaluate() as? AnyObject #else @@ -17,13 +16,13 @@ public func beIdenticalTo(_ expected: Any?) -> NonNilMatcherFunc { #else return actual === (expected as AnyObject?) && actual !== nil #endif - } + }.requireNonNil } -public func ===(lhs: Expectation, rhs: Any?) { +public func === (lhs: Expectation, rhs: Any?) { lhs.to(beIdenticalTo(rhs)) } -public func !==(lhs: Expectation, rhs: Any?) { +public func !== (lhs: Expectation, rhs: Any?) { lhs.toNot(beIdenticalTo(rhs)) } @@ -31,7 +30,7 @@ public func !==(lhs: Expectation, rhs: Any?) { /// as the expected instance. /// /// Alias for "beIdenticalTo". -public func be(_ expected: Any?) -> NonNilMatcherFunc { +public func be(_ expected: Any?) -> Predicate { return beIdenticalTo(expected) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift index fbcd7c7..66c01d3 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift @@ -1,31 +1,31 @@ import Foundation /// A Nimble matcher that succeeds when the actual value is less than the expected value. -public func beLessThan(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beLessThan(_ expectedValue: T?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be less than <\(stringify(expectedValue))>" if let actual = try actualExpression.evaluate(), let expected = expectedValue { return actual < expected } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual value is less than the expected value. -public func beLessThan(_ expectedValue: NMBComparable?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beLessThan(_ expectedValue: NMBComparable?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be less than <\(stringify(expectedValue))>" let actualValue = try actualExpression.evaluate() let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) == ComparisonResult.orderedAscending return matches - } + }.requireNonNil } public func <(lhs: Expectation, rhs: T) { lhs.to(beLessThan(rhs)) } -public func <(lhs: Expectation, rhs: NMBComparable?) { +public func < (lhs: Expectation, rhs: NMBComparable?) { lhs.to(beLessThan(rhs)) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift index a0cd2f0..28b36c1 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift @@ -2,24 +2,24 @@ import Foundation /// A Nimble matcher that succeeds when the actual value is less than /// or equal to the expected value. -public func beLessThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beLessThanOrEqualTo(_ expectedValue: T?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be less than or equal to <\(stringify(expectedValue))>" if let actual = try actualExpression.evaluate(), let expected = expectedValue { return actual <= expected } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual value is less than /// or equal to the expected value. -public func beLessThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func beLessThanOrEqualTo(_ expectedValue: T?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be less than or equal to <\(stringify(expectedValue))>" let actualValue = try actualExpression.evaluate() return actualValue != nil && actualValue!.NMB_compare(expectedValue) != ComparisonResult.orderedDescending - } + }.requireNonNil } public func <=(lhs: Expectation, rhs: T) { diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift index 49272a3..4086da9 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift @@ -72,37 +72,32 @@ extension UInt: ExpressibleByBooleanLiteral { } } -internal func matcherWithFailureMessage(_ matcher: NonNilMatcherFunc, postprocessor: @escaping (FailureMessage) -> Void) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - defer { postprocessor(failureMessage) } - return try matcher.matcher(actualExpression, failureMessage) - } +internal func rename(_ matcher: Predicate, failureMessage message: ExpectationMessage) -> Predicate { + return Predicate { actualExpression in + let result = try matcher.satisfies(actualExpression) + return PredicateResult(status: result.status, message: message) + }.requireNonNil } // MARK: beTrue() / beFalse() /// A Nimble matcher that succeeds when the actual value is exactly true. /// This matcher will not match against nils. -public func beTrue() -> NonNilMatcherFunc { - return matcherWithFailureMessage(equal(true)) { failureMessage in - failureMessage.postfixMessage = "be true" - } +public func beTrue() -> Predicate { + return rename(equal(true), failureMessage: .expectedActualValueTo("be true")) } /// A Nimble matcher that succeeds when the actual value is exactly false. /// This matcher will not match against nils. -public func beFalse() -> NonNilMatcherFunc { - return matcherWithFailureMessage(equal(false)) { failureMessage in - failureMessage.postfixMessage = "be false" - } +public func beFalse() -> Predicate { + return rename(equal(false), failureMessage: .expectedActualValueTo("be false")) } // MARK: beTruthy() / beFalsy() /// A Nimble matcher that succeeds when the actual value is not logically false. -public func beTruthy() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be truthy" +public func beTruthy() -> Predicate { + return Predicate.simpleNilable("be truthy") { actualExpression in let actualValue = try actualExpression.evaluate() if let actualValue = actualValue { // FIXME: This is a workaround to SR-2290. @@ -110,20 +105,19 @@ public func beTruthy() -> MatcherFun // - https://bugs.swift.org/browse/SR-2290 // - https://github.com/norio-nomura/Nimble/pull/5#issuecomment-237835873 if let number = actualValue as? NSNumber { - return number.boolValue == true + return PredicateStatus(bool: number.boolValue == true) } - return actualValue == (true as T) + return PredicateStatus(bool: actualValue == (true as T)) } - return actualValue != nil + return PredicateStatus(bool: actualValue != nil) } } /// A Nimble matcher that succeeds when the actual value is logically false. /// This matcher will match against nils. -public func beFalsy() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be falsy" +public func beFalsy() -> Predicate { + return Predicate.simpleNilable("be falsy") { actualExpression in let actualValue = try actualExpression.evaluate() if let actualValue = actualValue { // FIXME: This is a workaround to SR-2290. @@ -131,12 +125,12 @@ public func beFalsy() -> MatcherFunc // - https://bugs.swift.org/browse/SR-2290 // - https://github.com/norio-nomura/Nimble/pull/5#issuecomment-237835873 if let number = actualValue as? NSNumber { - return number.boolValue == false + return PredicateStatus(bool: number.boolValue == false) } - return actualValue == (false as T) + return PredicateStatus(bool: actualValue == (false as T)) } - return actualValue == nil + return PredicateStatus(bool: actualValue == nil) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift index a6fb31f..de79938 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift @@ -1,11 +1,10 @@ import Foundation /// A Nimble matcher that succeeds when the actual value is nil. -public func beNil() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be nil" +public func beNil() -> Predicate { + return Predicate.simpleNilable("be nil") { actualExpression in let actualValue = try actualExpression.evaluate() - return actualValue == nil + return PredicateStatus(bool: actualValue == nil) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift index 8f86265..f5bf22a 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift @@ -1,18 +1,18 @@ import Foundation /// A Nimble matcher that succeeds when the actual value is Void. -public func beVoid() -> MatcherFunc<()> { - return MatcherFunc { actualExpression, failureMessage in +public func beVoid() -> Predicate<()> { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "be void" let actualValue: ()? = try actualExpression.evaluate() return actualValue != nil } } -public func ==(lhs: Expectation<()>, rhs: ()) { +public func == (lhs: Expectation<()>, rhs: ()) { lhs.to(beVoid()) } -public func !=(lhs: Expectation<()>, rhs: ()) { +public func != (lhs: Expectation<()>, rhs: ()) { lhs.toNot(beVoid()) -} \ No newline at end of file +} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift index ef6c603..e6cc9d8 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift @@ -1,49 +1,44 @@ import Foundation - /// A Nimble matcher that succeeds when the actual sequence's first element /// is equal to the expected value. -public func beginWith(_ startingElement: T) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" +public func beginWith(_ startingElement: T) -> Predicate + where S.Iterator.Element == T { + return Predicate.simple("begin with <\(startingElement)>") { actualExpression in if let actualValue = try actualExpression.evaluate() { var actualGenerator = actualValue.makeIterator() - return actualGenerator.next() == startingElement + return PredicateStatus(bool: actualGenerator.next() == startingElement) } - return false + return .fail } } /// A Nimble matcher that succeeds when the actual collection's first element /// is equal to the expected object. -public func beginWith(_ startingElement: Any) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - guard let collection = try actualExpression.evaluate() else { return false } - guard collection.count > 0 else { return false } +public func beginWith(_ startingElement: Any) -> Predicate { + return Predicate.simple("begin with <\(startingElement)>") { actualExpression in + guard let collection = try actualExpression.evaluate() else { return .fail } + guard collection.count > 0 else { return .doesNotMatch } #if os(Linux) guard let collectionValue = collection.object(at: 0) as? NSObject else { - return false + return .fail } #else let collectionValue = collection.object(at: 0) as AnyObject #endif - return collectionValue.isEqual(startingElement) + return PredicateStatus(bool: collectionValue.isEqual(startingElement)) } } /// A Nimble matcher that succeeds when the actual string contains expected substring /// where the expected substring's location is zero. -public func beginWith(_ startingSubstring: String) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingSubstring)>" +public func beginWith(_ startingSubstring: String) -> Predicate { + return Predicate.simple("begin with <\(startingSubstring)>") { actualExpression in if let actual = try actualExpression.evaluate() { let range = actual.range(of: startingSubstring) - return range != nil && range!.lowerBound == actual.startIndex + return PredicateStatus(bool: range != nil && range!.lowerBound == actual.startIndex) } - return false + return .fail } } @@ -52,7 +47,7 @@ extension NMBObjCMatcher { public class func beginWithMatcher(_ expected: Any) -> NMBObjCMatcher { return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in let actual = try! actualExpression.evaluate() - if let _ = actual as? String { + if (actual as? String) != nil { let expr = actualExpression.cast { $0 as? String } return try! beginWith(expected as! String).matches(expr, failureMessage: failureMessage) } else { diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift index 4400d30..d2f8cd2 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift @@ -1,16 +1,14 @@ import Foundation /// A Nimble matcher that succeeds when the actual sequence contains the expected value. -public func contain(_ items: T...) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ +public func contain(_ items: T...) -> Predicate + where S.Iterator.Element == T { return contain(items) } -public func contain(_ items: [T]) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ - return NonNilMatcherFunc { actualExpression, failureMessage in +public func contain(_ items: [T]) -> Predicate + where S.Iterator.Element == T { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" if let actual = try actualExpression.evaluate() { return items.all { @@ -18,16 +16,16 @@ public func contain(_ items: [T]) -> NonNilMatcherFun } } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual string contains the expected substring. -public func contain(_ substrings: String...) -> NonNilMatcherFunc { +public func contain(_ substrings: String...) -> Predicate { return contain(substrings) } -public func contain(_ substrings: [String]) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func contain(_ substrings: [String]) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "contain <\(arrayAsString(substrings))>" if let actual = try actualExpression.evaluate() { return substrings.all { @@ -36,37 +34,37 @@ public func contain(_ substrings: [String]) -> NonNilMatcherFunc { } } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual string contains the expected substring. -public func contain(_ substrings: NSString...) -> NonNilMatcherFunc { +public func contain(_ substrings: NSString...) -> Predicate { return contain(substrings) } -public func contain(_ substrings: [NSString]) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func contain(_ substrings: [NSString]) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "contain <\(arrayAsString(substrings))>" if let actual = try actualExpression.evaluate() { return substrings.all { actual.range(of: $0.description).length != 0 } } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual collection contains the expected object. -public func contain(_ items: Any?...) -> NonNilMatcherFunc { +public func contain(_ items: Any?...) -> Predicate { return contain(items) } -public func contain(_ items: [Any?]) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func contain(_ items: [Any?]) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" guard let actual = try actualExpression.evaluate() else { return false } return items.all { item in return item != nil && actual.contains(item!) } - } + }.requireNonNil } #if _runtime(_ObjC) diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift new file mode 100644 index 0000000..0ba5bce --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift @@ -0,0 +1,59 @@ +import Foundation + +public func containElementSatisfying(_ predicate: @escaping ((T) -> Bool), _ predicateDescription: String = "") -> Predicate where S.Iterator.Element == T { + + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in + failureMessage.actualValue = nil + + if predicateDescription == "" { + failureMessage.postfixMessage = "find object in collection that satisfies predicate" + } else { + failureMessage.postfixMessage = "find object in collection \(predicateDescription)" + } + + if let sequence = try actualExpression.evaluate() { + for object in sequence { + if predicate(object) { + return true + } + } + + return false + } + + return false + }.requireNonNil +} + +#if _runtime(_ObjC) + extension NMBObjCMatcher { + public class func containElementSatisfyingMatcher(_ predicate: @escaping ((NSObject) -> Bool)) -> NMBObjCMatcher { + return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in + let value = try! actualExpression.evaluate() + guard let enumeration = value as? NSFastEnumeration else { + failureMessage.postfixMessage = "containElementSatisfying must be provided an NSFastEnumeration object" + failureMessage.actualValue = nil + failureMessage.expected = "" + failureMessage.to = "" + return false + } + + let iterator = NSFastEnumerationIterator(enumeration) + while let item = iterator.next() { + guard let object = item as? NSObject else { + continue + } + + if predicate(object) { + return true + } + } + + failureMessage.actualValue = nil + failureMessage.postfixMessage = "" + failureMessage.to = "to find object in collection that satisfies predicate" + return false + } + } + } +#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift index b96e96c..ebb87e0 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift @@ -1,12 +1,10 @@ import Foundation - /// A Nimble matcher that succeeds when the actual sequence's last element /// is equal to the expected value. -public func endWith(_ endingElement: T) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ - return NonNilMatcherFunc { actualExpression, failureMessage in +public func endWith(_ endingElement: T) -> Predicate + where S.Iterator.Element == T { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "end with <\(endingElement)>" if let actualValue = try actualExpression.evaluate() { @@ -17,17 +15,17 @@ public func endWith(_ endingElement: T) -> NonNilMatc lastItem = item item = actualGenerator.next() } while(item != nil) - + return lastItem == endingElement } return false - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual collection's last element /// is equal to the expected object. -public func endWith(_ endingElement: Any) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func endWith(_ endingElement: Any) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "end with <\(endingElement)>" guard let collection = try actualExpression.evaluate() else { return false } guard collection.count > 0 else { return false } @@ -40,21 +38,20 @@ public func endWith(_ endingElement: Any) -> NonNilMatcherFunc NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func endWith(_ endingSubstring: String) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "end with <\(endingSubstring)>" if let collection = try actualExpression.evaluate() { return collection.hasSuffix(endingSubstring) } return false - } + }.requireNonNil } #if _runtime(_ObjC) @@ -62,7 +59,7 @@ extension NMBObjCMatcher { public class func endWithMatcher(_ expected: Any) -> NMBObjCMatcher { return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in let actual = try! actualExpression.evaluate() - if let _ = actual as? String { + if (actual as? String) != nil { let expr = actualExpression.cast { $0 as? String } return try! endWith(expected as! String).matches(expr, failureMessage: failureMessage) } else { diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift index 53579e0..d9f68fa 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift @@ -4,18 +4,20 @@ import Foundation /// Values can support equal by supporting the Equatable protocol. /// /// @see beCloseTo if you want to match imprecise types (eg - floats, doubles). -public func equal(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" +public func equal(_ expectedValue: T?) -> Predicate { + return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in let actualValue = try actualExpression.evaluate() let matches = actualValue == expectedValue && expectedValue != nil if expectedValue == nil || actualValue == nil { - if expectedValue == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" + if expectedValue == nil && actualValue != nil { + return PredicateResult( + status: .fail, + message: msg.appendedBeNilHint() + ) } - return false + return PredicateResult(status: .fail, message: msg) } - return matches + return PredicateResult(status: PredicateStatus(bool: matches), message: msg) } } @@ -23,74 +25,95 @@ public func equal(_ expectedValue: T?) -> NonNilMatcherFunc { /// Values can support equal by supporting the Equatable protocol. /// /// @see beCloseTo if you want to match imprecise types (eg - floats, doubles). -public func equal(_ expectedValue: [T: C]?) -> NonNilMatcherFunc<[T: C]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" +public func equal(_ expectedValue: [T: C]?) -> Predicate<[T: C]> { + return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in let actualValue = try actualExpression.evaluate() if expectedValue == nil || actualValue == nil { - if expectedValue == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" + if expectedValue == nil && actualValue != nil { + return PredicateResult( + status: .fail, + message: msg.appendedBeNilHint() + ) } - return false + return PredicateResult(status: .fail, message: msg) } - return expectedValue! == actualValue! + return PredicateResult( + status: PredicateStatus(bool: expectedValue! == actualValue!), + message: msg + ) } } /// A Nimble matcher that succeeds when the actual collection is equal to the expected collection. /// Items must implement the Equatable protocol. -public func equal(_ expectedValue: [T]?) -> NonNilMatcherFunc<[T]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" +public func equal(_ expectedValue: [T]?) -> Predicate<[T]> { + return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in let actualValue = try actualExpression.evaluate() if expectedValue == nil || actualValue == nil { - if expectedValue == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" + if expectedValue == nil && actualValue != nil { + return PredicateResult( + status: .fail, + message: msg.appendedBeNilHint() + ) } - return false + return PredicateResult( + status: .fail, + message: msg + ) } - return expectedValue! == actualValue! + return PredicateResult( + bool: expectedValue! == actualValue!, + message: msg + ) } } /// A Nimble matcher allowing comparison of collection with optional type -public func equal(_ expectedValue: [T?]) -> NonNilMatcherFunc<[T?]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" +public func equal(_ expectedValue: [T?]) -> Predicate<[T?]> { + return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in if let actualValue = try actualExpression.evaluate() { + let doesNotMatch = PredicateResult( + status: .doesNotMatch, + message: msg + ) + if expectedValue.count != actualValue.count { - return false + return doesNotMatch } - + for (index, item) in actualValue.enumerated() { let otherItem = expectedValue[index] if item == nil && otherItem == nil { continue } else if item == nil && otherItem != nil { - return false + return doesNotMatch } else if item != nil && otherItem == nil { - return false + return doesNotMatch } else if item! != otherItem! { - return false + return doesNotMatch } } - - return true + + return PredicateResult( + status: .matches, + message: msg + ) } else { - failureMessage.postfixActual = " (use beNil() to match nils)" + return PredicateResult( + status: .fail, + message: msg.appendedBeNilHint() + ) } - - return false } } /// A Nimble matcher that succeeds when the actual set is equal to the expected set. -public func equal(_ expectedValue: Set?) -> NonNilMatcherFunc> { +public func equal(_ expectedValue: Set?) -> Predicate> { return equal(expectedValue, stringify: { stringify($0) }) } /// A Nimble matcher that succeeds when the actual set is equal to the expected set. -public func equal(_ expectedValue: Set?) -> NonNilMatcherFunc> { +public func equal(_ expectedValue: Set?) -> Predicate> { return equal(expectedValue, stringify: { if let set = $0 { return stringify(Array(set).sorted { $0 < $1 }) @@ -100,33 +123,49 @@ public func equal(_ expectedValue: Set?) -> NonNilMatcherFunc< }) } -private func equal(_ expectedValue: Set?, stringify: @escaping (Set?) -> String) -> NonNilMatcherFunc> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" +private func equal(_ expectedValue: Set?, stringify: @escaping (Set?) -> String) -> Predicate> { + return Predicate { actualExpression in + var errorMessage: ExpectationMessage = + .expectedActualValueTo("equal <\(stringify(expectedValue))>") if let expectedValue = expectedValue { if let actualValue = try actualExpression.evaluate() { - failureMessage.actualValue = "<\(stringify(actualValue))>" + errorMessage = .expectedCustomValueTo( + "equal <\(stringify(expectedValue))>", + "<\(stringify(actualValue))>" + ) if expectedValue == actualValue { - return true + return PredicateResult( + status: .matches, + message: errorMessage + ) } let missing = expectedValue.subtracting(actualValue) if missing.count > 0 { - failureMessage.postfixActual += ", missing <\(stringify(missing))>" + errorMessage = errorMessage.appended(message: ", missing <\(stringify(missing))>") } let extra = actualValue.subtracting(expectedValue) if extra.count > 0 { - failureMessage.postfixActual += ", extra <\(stringify(extra))>" + errorMessage = errorMessage.appended(message: ", extra <\(stringify(extra))>") } + return PredicateResult( + status: .doesNotMatch, + message: errorMessage + ) } + return PredicateResult( + status: .fail, + message: errorMessage.appendedBeNilHint() + ) } else { - failureMessage.postfixActual = " (use beNil() to match nils)" + return PredicateResult( + status: .fail, + message: errorMessage.appendedBeNilHint() + ) } - - return false } } @@ -146,11 +185,11 @@ public func !=(lhs: Expectation<[T]>, rhs: [T]?) { lhs.toNot(equal(rhs)) } -public func ==(lhs: Expectation>, rhs: Set?) { +public func == (lhs: Expectation>, rhs: Set?) { lhs.to(equal(rhs)) } -public func !=(lhs: Expectation>, rhs: Set?) { +public func != (lhs: Expectation>, rhs: Set?) { lhs.toNot(equal(rhs)) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift index 5b24af2..379616d 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift @@ -7,8 +7,8 @@ import Foundation /// A Nimble matcher that succeeds when the actual Collection's count equals /// the expected value -public func haveCount(_ expectedValue: T.IndexDistance) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func haveCount(_ expectedValue: T.IndexDistance) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in if let actualValue = try actualExpression.evaluate() { failureMessage.postfixMessage = "have \(prettyCollectionType(actualValue)) with count \(stringify(expectedValue))" let result = expectedValue == actualValue.count @@ -18,13 +18,13 @@ public func haveCount(_ expectedValue: T.IndexDistance) -> NonNil } else { return false } - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual collection's count equals /// the expected value -public func haveCount(_ expectedValue: Int) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in +public func haveCount(_ expectedValue: Int) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in if let actualValue = try actualExpression.evaluate() { failureMessage.postfixMessage = "have \(prettyCollectionType(actualValue)) with count \(stringify(expectedValue))" let result = expectedValue == actualValue.count diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift index 3ad5fb5..165600f 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift @@ -2,10 +2,10 @@ import Foundation /// A Nimble matcher that succeeds when the actual string satisfies the regular expression /// described by the expected string. -public func match(_ expectedValue: String?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func match(_ expectedValue: String?) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in failureMessage.postfixMessage = "match <\(stringify(expectedValue))>" - + if let actual = try actualExpression.evaluate() { if let regexp = expectedValue { return actual.range(of: regexp, options: .regularExpression) != nil @@ -13,7 +13,7 @@ public func match(_ expectedValue: String?) -> NonNilMatcherFunc { } return false - } + }.requireNonNil } #if _runtime(_ObjC) diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift index 2092cb6..54a5c8a 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift @@ -5,22 +5,22 @@ import Foundation /// /// Errors are tried to be compared by their implementation of Equatable, /// otherwise they fallback to comparision by _domain and _code. -public func matchError(_ error: T) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func matchError(_ error: T) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in let actualError: Error? = try actualExpression.evaluate() setFailureMessageForError(failureMessage, postfixMessageVerb: "match", actualError: actualError, error: error) return errorMatchesNonNilFieldsOrClosure(actualError, error: error) - } + }.requireNonNil } /// A Nimble matcher that succeeds when the actual expression evaluates to an /// error of the specified type -public func matchError(_ errorType: T.Type) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in +public func matchError(_ errorType: T.Type) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in let actualError: Error? = try actualExpression.evaluate() setFailureMessageForError(failureMessage, postfixMessageVerb: "match", actualError: actualError, errorType: errorType) return errorMatchesNonNilFieldsOrClosure(actualError, errorType: errorType) - } + }.requireNonNil } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift index 02d3245..53cd04e 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift @@ -1,4 +1,4 @@ -/// A convenience API to build matchers that don't need special negation +/// DEPRECATED: A convenience API to build matchers that don't need special negation /// behavior. The toNot() behavior is the negation of to(). /// /// @see NonNilMatcherFunc if you prefer to have this matcher fail when nil @@ -9,6 +9,7 @@ /// Use the Matcher protocol instead of this type to accept custom matchers as /// input parameters. /// @see allPass for an example that uses accepts other matchers as input. +@available(*, deprecated, message: "Use to Predicate instead") public struct MatcherFunc: Matcher { public let matcher: (Expression, FailureMessage) throws -> Bool @@ -23,9 +24,16 @@ public struct MatcherFunc: Matcher { public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { return try !matcher(actualExpression, failureMessage) } + + /// Compatibility layer to new Matcher API. Converts an old-style matcher to a new one. + /// Note: You should definitely spend the time to convert to the new api as soon as possible + /// since this struct type is deprecated. + public var predicate: Predicate { + return Predicate.fromDeprecatedMatcher(self) + } } -/// A convenience API to build matchers that don't need special negation +/// DEPRECATED: A convenience API to build matchers that don't need special negation /// behavior. The toNot() behavior is the negation of to(). /// /// Unlike MatcherFunc, this will always fail if an expectation contains nil. @@ -36,6 +44,7 @@ public struct MatcherFunc: Matcher { /// Use the Matcher protocol instead of this type to accept custom matchers as /// input parameters. /// @see allPass for an example that uses accepts other matchers as input. +@available(*, deprecated, message: "Use to Predicate instead") public struct NonNilMatcherFunc: Matcher { public let matcher: (Expression, FailureMessage) throws -> Bool @@ -66,4 +75,11 @@ public struct NonNilMatcherFunc: Matcher { } return false } + + /// Compatibility layer to new Matcher API. Converts an old-style matcher to a new one. + /// Note: You should definitely spend the time to convert to the new api as soon as possible + /// since this struct type is deprecated. + public var predicate: Predicate { + return Predicate.fromDeprecatedMatcher(self) + } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift index ac1eb9d..3528e3f 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift @@ -5,12 +5,29 @@ import Foundation #endif /// Implement this protocol to implement a custom matcher for Swift +@available(*, deprecated, message: "Use to Predicate instead") public protocol Matcher { associatedtype ValueType func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool } +extension Matcher { + var predicate: Predicate { + return Predicate.fromDeprecatedMatcher(self) + } + + var toClosure: (Expression, FailureMessage, Bool) throws -> Bool { + return ({ expr, msg, expectedResult in + if expectedResult { + return try self.matches(expr, failureMessage: msg) + } else { + return try self.doesNotMatch(expr, failureMessage: msg) + } + }) + } +} + #if _runtime(_ObjC) /// Objective-C interface to the Swift variant of Matcher. @objc public protocol NMBMatcher { @@ -57,12 +74,12 @@ extension NSDictionary : NMBCollection {} #if _runtime(_ObjC) /// Protocol for types that support beginWith(), endWith(), beEmpty() matchers -@objc public protocol NMBOrderedCollection : NMBCollection { +@objc public protocol NMBOrderedCollection: NMBCollection { @objc(objectAtIndex:) func object(at index: Int) -> Any } #else -public protocol NMBOrderedCollection : NMBCollection { +public protocol NMBOrderedCollection: NMBCollection { func object(at index: Int) -> Any } #endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift index 84b9d49..3a1db3b 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift @@ -15,9 +15,9 @@ internal class NotificationCollector { } func startObserving() { - self.token = self.notificationCenter.addObserver(forName: nil, object: nil, queue: nil) { + self.token = self.notificationCenter.addObserver(forName: nil, object: nil, queue: nil) { [weak self] n in // linux-swift gets confused by .append(n) - [weak self] n in self?.observedNotifications.append(n) + self?.observedNotifications.append(n) } } @@ -41,14 +41,14 @@ let notificationCenterDefault = NotificationCenter.default public func postNotifications( _ notificationsMatcher: T, fromNotificationCenter center: NotificationCenter = notificationCenterDefault) - -> MatcherFunc + -> Predicate where T: Matcher, T.ValueType == [Notification] { let _ = mainThread // Force lazy-loading of this value let collector = NotificationCollector(notificationCenter: center) collector.startObserving() var once: Bool = false - return MatcherFunc { actualExpression, failureMessage in + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in let collectorNotificationsExpression = Expression(memoizedExpression: { _ in return collector.observedNotifications }, location: actualExpression.location, withoutCaching: true) diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift new file mode 100644 index 0000000..6dcc299 --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift @@ -0,0 +1,241 @@ +// New Matcher API +// + +/// A Predicate is part of the new matcher API that provides assertions to expectations. +/// +/// Given a code snippet: +/// +/// expect(1).to(equal(2)) +/// ^^^^^^^^ +/// Called a "matcher" +/// +/// A matcher consists of two parts a constructor function and the Predicate. The term Predicate +/// is used as a separate name from Matcher to help transition custom matchers to the new Nimble +/// matcher API. +/// +/// The Predicate provide the heavy lifting on how to assert against a given value. Internally, +/// predicates are simple wrappers around closures to provide static type information and +/// allow composition and wrapping of existing behaviors. +public struct Predicate { + fileprivate var matcher: (Expression) throws -> PredicateResult + + /// Constructs a predicate that knows how take a given value + public init(_ matcher: @escaping (Expression) throws -> PredicateResult) { + self.matcher = matcher + } + + /// Uses a predicate on a given value to see if it passes the predicate. + /// + /// @param expression The value to run the predicate's logic against + /// @returns A predicate result indicate passing or failing and an associated error message. + public func satisfies(_ expression: Expression) throws -> PredicateResult { + return try matcher(expression) + } +} + +/// Provides convenience helpers to defining predicates +extension Predicate { + /// Like Predicate() constructor, but automatically guard against nil (actual) values + public static func define(matcher: @escaping (Expression) throws -> PredicateResult) -> Predicate { + return Predicate { actual in + return try matcher(actual) + }.requireNonNil + } + + /// Defines a predicate with a default message that can be returned in the closure + /// Also ensures the predicate's actual value cannot pass with `nil` given. + public static func define(_ msg: String, matcher: @escaping (Expression, ExpectationMessage) throws -> PredicateResult) -> Predicate { + return Predicate { actual in + return try matcher(actual, .expectedActualValueTo(msg)) + }.requireNonNil + } + + /// Defines a predicate with a default message that can be returned in the closure + /// Unlike `define`, this allows nil values to succeed if the given closure chooses to. + public static func defineNilable(_ msg: String, matcher: @escaping (Expression, ExpectationMessage) throws -> PredicateResult) -> Predicate { + return Predicate { actual in + return try matcher(actual, .expectedActualValueTo(msg)) + } + } +} + +extension Predicate { + /// Provides a simple predicate definition that provides no control over the predefined + /// error message. + /// + /// Also ensures the predicate's actual value cannot pass with `nil` given. + public static func simple(_ msg: String, matcher: @escaping (Expression) throws -> PredicateStatus) -> Predicate { + return Predicate { actual in + return PredicateResult(status: try matcher(actual), message: .expectedActualValueTo(msg)) + }.requireNonNil + } + + /// Provides a simple predicate definition that provides no control over the predefined + /// error message. + /// + /// Unlike `simple`, this allows nil values to succeed if the given closure chooses to. + public static func simpleNilable(_ msg: String, matcher: @escaping (Expression) throws -> PredicateStatus) -> Predicate { + return Predicate { actual in + return PredicateResult(status: try matcher(actual), message: .expectedActualValueTo(msg)) + } + } +} + +// Question: Should this be exposed? It's safer to not for now and decide later. +internal enum ExpectationStyle { + case toMatch, toNotMatch +} + +/// The value that a Predicates return to describe if the given (actual) value matches the +/// predicate. +public struct PredicateResult { + /// Status indicates if the predicate matches, does not match, or fails. + var status: PredicateStatus + /// The error message that can be displayed if it does not match + var message: ExpectationMessage + + /// Constructs a new PredicateResult with a given status and error message + public init(status: PredicateStatus, message: ExpectationMessage) { + self.status = status + self.message = message + } + + /// Shorthand to PredicateResult(status: PredicateStatus(bool: bool), message: message) + public init(bool: Bool, message: ExpectationMessage) { + self.status = PredicateStatus(bool: bool) + self.message = message + } + + /// Converts the result to a boolean based on what the expectation intended + internal func toBoolean(expectation style: ExpectationStyle) -> Bool { + return status.toBoolean(expectation: style) + } +} + +/// PredicateStatus is a trinary that indicates if a Predicate matches a given value or not +public enum PredicateStatus { + /// Matches indicates if the predicate / matcher passes with the given value + /// + /// For example, `equals(1)` returns `.matches` for `expect(1).to(equal(1))`. + case matches + /// DoesNotMatch indicates if the predicate / matcher fails with the given value, but *would* + /// succeed if the expectation was inverted. + /// + /// For example, `equals(2)` returns `.doesNotMatch` for `expect(1).toNot(equal(2))`. + case doesNotMatch + /// Fail indicates the predicate will never satisfy with the given value in any case. + /// A perfect example is that most matchers fail whenever given `nil`. + /// + /// Using `equal(1)` fails both `expect(nil).to(equal(1))` and `expect(nil).toNot(equal(1))`. + /// Note: Predicate's `requireNonNil` property will also provide this feature mostly for free. + /// Your predicate will still need to guard against nils, but error messaging will be + /// handled for you. + case fail + + /// Converts a boolean to either .matches (if true) or .doesNotMatch (if false). + public init(bool matches: Bool) { + if matches { + self = .matches + } else { + self = .doesNotMatch + } + } + + private func shouldMatch() -> Bool { + switch self { + case .matches: return true + case .doesNotMatch, .fail: return false + } + } + + private func shouldNotMatch() -> Bool { + switch self { + case .doesNotMatch: return true + case .matches, .fail: return false + } + } + + /// Converts the PredicateStatus result to a boolean based on what the expectation intended + internal func toBoolean(expectation style: ExpectationStyle) -> Bool { + if style == .toMatch { + return shouldMatch() + } else { + return shouldNotMatch() + } + } +} + +// Backwards compatibility until Old Matcher API removal +extension Predicate: Matcher { + /// Compatibility layer for old Matcher API, deprecated + public static func fromDeprecatedFullClosure(_ matcher: @escaping (Expression, FailureMessage, Bool) throws -> Bool) -> Predicate { + return Predicate { actual in + let failureMessage = FailureMessage() + let result = try matcher(actual, failureMessage, true) + return PredicateResult( + status: PredicateStatus(bool: result), + message: failureMessage.toExpectationMessage + ) + } + } + + /// Compatibility layer for old Matcher API, deprecated. + /// Emulates the MatcherFunc API + public static func fromDeprecatedClosure(_ matcher: @escaping (Expression, FailureMessage) throws -> Bool) -> Predicate { + return Predicate { actual in + let failureMessage = FailureMessage() + let result = try matcher(actual, failureMessage) + return PredicateResult( + status: PredicateStatus(bool: result), + message: failureMessage.toExpectationMessage + ) + } + + } + + /// Compatibility layer for old Matcher API, deprecated. + /// Same as calling .predicate on a MatcherFunc or NonNilMatcherFunc type. + public static func fromDeprecatedMatcher(_ matcher: M) -> Predicate where M: Matcher, M.ValueType == T { + return self.fromDeprecatedFullClosure(matcher.toClosure) + } + + /// Deprecated Matcher API, use satisfies(_:_) instead + public func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { + let result = try satisfies(actualExpression) + result.message.update(failureMessage: failureMessage) + return result.toBoolean(expectation: .toMatch) + } + + /// Deprecated Matcher API, use satisfies(_:_) instead + public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { + let result = try satisfies(actualExpression) + result.message.update(failureMessage: failureMessage) + return result.toBoolean(expectation: .toNotMatch) + } +} + +extension Predicate { + // Someday, make this public? Needs documentation + internal func after(f: @escaping (Expression, PredicateResult) throws -> PredicateResult) -> Predicate { + return Predicate { actual -> PredicateResult in + let result = try self.satisfies(actual) + return try f(actual, result) + } + } + + /// Returns a new Predicate based on the current one that always fails if nil is given as + /// the actual value. + /// + /// This replaces `NonNilMatcherFunc`. + public var requireNonNil: Predicate { + return after { actual, result in + if try actual.evaluate() == nil { + return PredicateResult( + status: .fail, + message: result.message.appendedBeNilHint() + ) + } + return result + } + } +} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift index 09e28c7..a4599cb 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift @@ -16,8 +16,8 @@ public func raiseException( named: String? = nil, reason: String? = nil, userInfo: NSDictionary? = nil, - closure: ((NSException) -> Void)? = nil) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in + closure: ((NSException) -> Void)? = nil) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in var exception: NSException? let capture = NMBExceptionCapture(handler: ({ e in @@ -52,7 +52,7 @@ internal func setFailureMessageForException( if let userInfo = userInfo { failureMessage.postfixMessage += " with userInfo <\(userInfo)>" } - if let _ = closure { + if closure != nil { failureMessage.postfixMessage += " that satisfies block" } if named == nil && reason == nil && userInfo == nil && closure == nil { @@ -97,11 +97,11 @@ internal func exceptionMatchesNonNilFieldsOrClosure( } } } - + return matches } -public class NMBObjCRaiseExceptionMatcher : NSObject, NMBMatcher { +public class NMBObjCRaiseExceptionMatcher: NSObject, NMBMatcher { internal var _name: String? internal var _reason: String? internal var _userInfo: NSDictionary? diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift index b24b3ec..4ffbad7 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift @@ -2,39 +2,73 @@ import Foundation /// A Nimble matcher that succeeds when the actual value matches with any of the matchers /// provided in the variable list of matchers. -public func satisfyAnyOf(_ matchers: U...) -> NonNilMatcherFunc - where U: Matcher, U.ValueType == T -{ +public func satisfyAnyOf(_ matchers: U...) -> Predicate + where U: Matcher, U.ValueType == T { return satisfyAnyOf(matchers) } -internal func satisfyAnyOf(_ matchers: [U]) -> NonNilMatcherFunc - where U: Matcher, U.ValueType == T -{ - return NonNilMatcherFunc { actualExpression, failureMessage in - let postfixMessages = NSMutableArray() - var matches = false - for matcher in matchers { - if try matcher.matches(actualExpression, failureMessage: failureMessage) { - matches = true +/// Deprecated. Please use `satisfyAnyOf(_) -> Predicate` instead. +internal func satisfyAnyOf(_ matchers: [U]) -> Predicate + where U: Matcher, U.ValueType == T { + return NonNilMatcherFunc { actualExpression, failureMessage in + let postfixMessages = NSMutableArray() + var matches = false + for matcher in matchers { + if try matcher.matches(actualExpression, failureMessage: failureMessage) { + matches = true + } + postfixMessages.add(NSString(string: "{\(failureMessage.postfixMessage)}")) } - postfixMessages.add(NSString(string: "{\(failureMessage.postfixMessage)}")) - } - failureMessage.postfixMessage = "match one of: " + postfixMessages.componentsJoined(by: ", or ") - if let actualValue = try actualExpression.evaluate() { - failureMessage.actualValue = "\(actualValue)" - } + failureMessage.postfixMessage = "match one of: " + postfixMessages.componentsJoined(by: ", or ") + if let actualValue = try actualExpression.evaluate() { + failureMessage.actualValue = "\(actualValue)" + } - return matches - } + return matches + }.predicate +} + +internal func satisfyAnyOf(_ predicates: [Predicate]) -> Predicate { + return Predicate { actualExpression in + var postfixMessages = [String]() + var matches = false + for predicate in predicates { + let result = try predicate.satisfies(actualExpression) + if result.toBoolean(expectation: .toMatch) { + matches = true + } + postfixMessages.append(result.message.expectedMessage) + } + + var msg: ExpectationMessage + if let actualValue = try actualExpression.evaluate() { + msg = .expectedCustomValueTo( + "match one of: " + postfixMessages.joined(separator: ", or "), + "\(actualValue)" + ) + } else { + msg = .expectedActualValueTo( + "match one of: " + postfixMessages.joined(separator: ", or ") + ) + } + + return PredicateResult( + status: PredicateStatus(bool: matches), + message: msg + ) + }.requireNonNil } -public func ||(left: NonNilMatcherFunc, right: NonNilMatcherFunc) -> NonNilMatcherFunc { +public func || (left: Predicate, right: Predicate) -> Predicate { + return satisfyAnyOf(left, right) +} + +public func || (left: NonNilMatcherFunc, right: NonNilMatcherFunc) -> Predicate { return satisfyAnyOf(left, right) } -public func ||(left: MatcherFunc, right: MatcherFunc) -> NonNilMatcherFunc { +public func || (left: MatcherFunc, right: MatcherFunc) -> Predicate { return satisfyAnyOf(left, right) } @@ -46,18 +80,17 @@ extension NMBObjCMatcher { failureMessage.stringValue = "satisfyAnyOf must be called with at least one matcher" return false } - + var elementEvaluators = [NonNilMatcherFunc]() for matcher in matchers { let elementEvaluator: (Expression, FailureMessage) -> Bool = { expression, failureMessage in - return matcher.matches( - {try! expression.evaluate()}, failureMessage: failureMessage, location: actualExpression.location) + return matcher.matches({try! expression.evaluate()}, failureMessage: failureMessage, location: actualExpression.location) } - + elementEvaluators.append(NonNilMatcherFunc(elementEvaluator)) } - + return try! satisfyAnyOf(elementEvaluators).matches(actualExpression, failureMessage: failureMessage) } } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift index 67f9cf6..cad53f4 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift @@ -1,16 +1,16 @@ import Foundation -public func throwAssertion() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in +public func throwAssertion() -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in #if arch(x86_64) && _runtime(_ObjC) && !SWIFT_PACKAGE failureMessage.postfixMessage = "throw an assertion" failureMessage.actualValue = nil - + var succeeded = true - + let caughtException: BadInstructionException? = catchBadInstruction { #if os(tvOS) - if (!NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning) { + if !NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning { print() print("[Nimble Warning]: If you're getting stuck on a debugger breakpoint for a " + "fatal error while using throwAssertion(), please disable 'Debug Executable' " + @@ -36,11 +36,11 @@ public func throwAssertion() -> MatcherFunc { if !succeeded { return false } - + if caughtException == nil { return false } - + return true #elseif SWIFT_PACKAGE fatalError("The throwAssertion Nimble matcher does not currently support Swift CLI." + diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift index 8c9b91b..296a1ba 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift @@ -14,8 +14,8 @@ import Foundation public func throwError( _ error: T? = nil, errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in + closure: ((T) -> Void)? = nil) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in var actualError: Error? do { @@ -37,16 +37,16 @@ public func throwError( /// /// The closure only gets called when an error was thrown. public func throwError( - closure: ((Error) -> Void)? = nil) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - + closure: ((Error) -> Void)? = nil) -> Predicate { + return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in + var actualError: Error? do { _ = try actualExpression.evaluate() } catch let catchedError { actualError = catchedError } - + setFailureMessageForError(failureMessage, actualError: actualError, closure: closure) return errorMatchesNonNilFieldsOrClosure(actualError, closure: closure) } diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift new file mode 100644 index 0000000..01369bb --- /dev/null +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift @@ -0,0 +1,37 @@ +/** + Used by the `toSucceed` matcher. + + This is the return type for the closure. + */ +public enum ToSucceedResult { + case succeeded + case failed(reason: String) +} + +/** + A Nimble matcher that takes in a closure for validation. + + Return `.succeeded` when the validation succeeds. + Return `.failed` with a failure reason when the validation fails. + */ +public func succeed() -> Predicate<() -> ToSucceedResult> { + return Predicate.define { actualExpression in + let optActual = try actualExpression.evaluate() + guard let actual = optActual else { + return PredicateResult(status: .fail, message: .fail("expected a closure, got ")) + } + + switch actual() { + case .succeeded: + return PredicateResult( + bool: true, + message: .expectedCustomValueTo("succeed", "") + ) + case .failed(let reason): + return PredicateResult( + bool: false, + message: .expectedCustomValueTo("succeed", " because <\(reason)>") + ) + } + } +} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h b/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h index 790d16d..bd45c5d 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h @@ -3,12 +3,7 @@ #import "NMBStringify.h" #import "DSL.h" -#import "CwlCatchException.h" -#import "CwlCatchBadInstruction.h" - -#if !TARGET_OS_TV - #import "mach_excServer.h" -#endif +#import "CwlPreconditionTesting.h" FOUNDATION_EXPORT double NimbleVersionNumber; FOUNDATION_EXPORT const unsigned char NimbleVersionString[]; diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift index c902692..2dbbb47 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift @@ -27,7 +27,7 @@ internal protocol WaitLock { } internal class AssertionWaitLock: WaitLock { - private var currentWaiter: WaitingInfo? = nil + private var currentWaiter: WaitingInfo? init() { } func acquireWaitingLock(_ fnName: String, file: FileString, line: UInt) { @@ -179,7 +179,7 @@ internal class AwaitPromiseBuilder { trigger.timeoutSource.scheduleOneshot( deadline: DispatchTime.now() + timeoutInterval, leeway: timeoutLeeway) - trigger.timeoutSource.setEventHandler() { + trigger.timeoutSource.setEventHandler { guard self.promise.asyncResult.isIncomplete() else { return } let timedOutSem = DispatchSemaphore(value: 0) let semTimedOutOrBlocked = DispatchSemaphore(value: 0) @@ -282,20 +282,23 @@ internal class Awaiter { } func performBlock( - _ closure: @escaping (@escaping (T) -> Void) throws -> Void) -> AwaitPromiseBuilder { + file: FileString, + line: UInt, + _ closure: @escaping (@escaping (T) -> Void) throws -> Void + ) -> AwaitPromiseBuilder { let promise = AwaitPromise() let timeoutSource = createTimerSource(timeoutQueue) var completionCount = 0 let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: nil) { - try closure() { + try closure { completionCount += 1 - nimblePrecondition( - completionCount < 2, - "InvalidNimbleAPIUsage", - "Done closure's was called multiple times. waitUntil(..) expects its " + - "completion closure to only be called once.") - if promise.resolveResult(.completed($0)) { - CFRunLoopStop(CFRunLoopGetMain()) + if completionCount < 2 { + if promise.resolveResult(.completed($0)) { + CFRunLoopStop(CFRunLoopGetMain()) + } + } else { + fail("waitUntil(..) expects its completion closure to be only called once", + file: file, line: line) } } } @@ -314,7 +317,7 @@ internal class Awaiter { let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: asyncSource) { let interval = DispatchTimeInterval.nanoseconds(Int(pollInterval * TimeInterval(NSEC_PER_SEC))) asyncSource.scheduleRepeating(deadline: .now(), interval: interval, leeway: pollLeeway) - asyncSource.setEventHandler() { + asyncSource.setEventHandler { do { if let result = try closure() { if promise.resolveResult(.completed(result)) { @@ -347,14 +350,10 @@ internal func pollBlock( expression: @escaping () throws -> Bool) -> AwaitResult { let awaiter = NimbleEnvironment.activeInstance.awaiter let result = awaiter.poll(pollInterval) { () throws -> Bool? in - do { - if try expression() { - return true - } - return nil - } catch let error { - throw error + if try expression() { + return true } + return nil }.timeout(timeoutInterval, forcefullyAbortTimeout: timeoutInterval / 2.0).wait(fnName, file: file, line: line) return result diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift index d424c98..5cd5c53 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift @@ -12,15 +12,11 @@ internal func setFailureMessageForError( failureMessage.postfixMessage = "\(postfixMessageVerb) error" if let error = error { - if let error = error as? CustomDebugStringConvertible { - failureMessage.postfixMessage += " <\(error.debugDescription)>" - } else { - failureMessage.postfixMessage += " <\(error)>" - } + failureMessage.postfixMessage += " <\(error)>" } else if errorType != nil || closure != nil { failureMessage.postfixMessage += " from type <\(T.self)>" } - if let _ = closure { + if closure != nil { failureMessage.postfixMessage += " that satisfies block" } if error == nil && errorType == nil && closure == nil { @@ -44,8 +40,7 @@ internal func errorMatchesExpectedError( internal func errorMatchesExpectedError( _ actualError: Error, expectedError: T) -> Bool - where T: Equatable -{ + where T: Equatable { if let actualError = actualError as? T { return actualError == expectedError } @@ -106,7 +101,7 @@ internal func setFailureMessageForError( closure: ((Error) -> Void)?) { failureMessage.postfixMessage = "throw error" - if let _ = closure { + if closure != nil { failureMessage.postfixMessage += " that satisfies block" } else { failureMessage.postfixMessage = "throw any error" diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift index a7279aa..4e37aef 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift @@ -5,13 +5,13 @@ import Foundation // stdlib, and because recent versions of the XCTest overlay require `StaticString` // when calling `XCTFail`. Under the Objective-C runtime (i.e. building on Mac), we // have to use `String` instead because StaticString can't be generated from Objective-C -#if _runtime(_ObjC) -public typealias FileString = String -#else +#if SWIFT_PACKAGE public typealias FileString = StaticString +#else +public typealias FileString = String #endif -public final class SourceLocation : NSObject { +public final class SourceLocation: NSObject { public let file: FileString public let line: UInt diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift index 012e1e3..8a15c4c 100644 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift +++ b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift @@ -1,6 +1,5 @@ import Foundation - internal func identityAsString(_ value: Any?) -> String { let anyObject: AnyObject? #if os(Linux) @@ -51,7 +50,7 @@ extension NSNumber: TestOutputStringConvertible { // the travis CI build on linux. public var testDescription: String { let description = self.description - + if description.contains(".") { // Travis linux swiftpm build doesn't like casting String to NSString, // which is why this annoying nested initializer thing is here. @@ -87,14 +86,14 @@ extension AnySequence: TestOutputStringConvertible { let generator = self.makeIterator() var strings = [String]() var value: AnySequence.Iterator.Element? - + repeat { value = generator.next() if let value = value { strings.append(stringify(value)) } } while value != nil - + let list = strings.joined(separator: ", ") return "[\(list)]" } @@ -149,11 +148,11 @@ public func stringify(_ value: T) -> String { if let value = value as? TestOutputStringConvertible { return value.testDescription } - + if let value = value as? CustomDebugStringConvertible { return value.debugDescription } - + return String(describing: value) } diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h index 54677ee..4538fb4 100644 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h +++ b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h @@ -186,6 +186,8 @@ NIMBLE_EXPORT_INLINE id beginWith(id itemElementOrSubstring) { DEFINE_OVERLOAD(unsigned long, @(expectedValue)) DEFINE_OVERLOAD(int, @(expectedValue)) DEFINE_OVERLOAD(unsigned int, @(expectedValue)) + DEFINE_OVERLOAD(float, @(expectedValue)) + DEFINE_OVERLOAD(double, @(expectedValue)) DEFINE_OVERLOAD(long long, @(expectedValue)) DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) DEFINE_OVERLOAD(char, @(expectedValue)) @@ -322,6 +324,10 @@ NIMBLE_EXPORT id NMB_containWithNilTermination(id itemOrSubstring, . #define contain(...) NMB_contain(__VA_ARGS__) #endif +NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)); +NIMBLE_SHORT(id containElementSatisfying(BOOL(^predicate)(id)), + NMB_containElementSatisfying(predicate)); + NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring); NIMBLE_SHORT(id endWith(id itemElementOrSubstring), NMB_endWith(itemElementOrSubstring)); diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m index cd93ddd..31ff810 100644 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m +++ b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m @@ -113,6 +113,10 @@ NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger return [NMBObjCMatcher containMatcher:itemOrSubstringArray]; } +NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)) { + return [NMBObjCMatcher containElementSatisfyingMatcher:predicate]; +} + NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring) { return [NMBObjCMatcher endWithMatcher:itemElementOrSubstring]; } diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h index e0ec05a..d2a54d2 100644 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h +++ b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h @@ -4,7 +4,7 @@ @interface NMBExceptionCapture : NSObject - (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)())finally; -- (void)tryBlock:(void(^ _Nonnull)())unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); +- (void)tryBlock:(__attribute__((noescape)) void(^ _Nonnull)())unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); @end diff --git a/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift b/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift index 4210ef0..16c6953 100644 --- a/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift +++ b/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift @@ -10,7 +10,7 @@ XCTMain([ // Matchers testCase(AllPassTest.allTests), - // testCase(BeAKindOfTest.allTests), + testCase(BeAKindOfSwiftTest.allTests), testCase(BeAnInstanceOfTest.allTests), testCase(BeCloseToTest.allTests), testCase(BeginWithTest.allTests), diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift index ff78d47..47db724 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift @@ -45,10 +45,10 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { failsWithErrorMessage("expected to eventually equal <1>, got <0>") { expect { value }.toEventually(equal(1)) } - failsWithErrorMessage("expected to eventually equal <1>, got an unexpected error thrown: <\(errorToThrow)>") { + failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { expect { try self.doThrowError() }.toEventually(equal(1)) } - failsWithErrorMessage("expected to eventually not equal <0>, got an unexpected error thrown: <\(errorToThrow)>") { + failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { expect { try self.doThrowError() }.toEventuallyNot(equal(0)) } } @@ -61,12 +61,12 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { var value = 0 - let sleepThenSetValueTo: (Int) -> () = { newValue in + let sleepThenSetValueTo: (Int) -> Void = { newValue in Thread.sleep(forTimeInterval: 1.1) value = newValue } - var asyncOperation: () -> () = { sleepThenSetValueTo(1) } + var asyncOperation: () -> Void = { sleepThenSetValueTo(1) } if #available(OSX 10.10, *) { DispatchQueue.global().async(execute: asyncOperation) @@ -98,7 +98,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { func testWaitUntilTimesOutIfNotCalled() { failsWithErrorMessage("Waited more than 1.0 second") { - waitUntil(timeout: 1) { done in return } + waitUntil(timeout: 1) { _ in return } } } @@ -106,7 +106,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { var waiting = true failsWithErrorMessage("Waited more than 0.01 seconds") { waitUntil(timeout: 0.01) { done in - let asyncOperation: () -> () = { + let asyncOperation: () -> Void = { Thread.sleep(forTimeInterval: 0.1) done() waiting = false @@ -172,22 +172,20 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { } func testWaitUntilErrorsIfDoneIsCalledMultipleTimes() { -#if !SWIFT_PACKAGE - waitUntil { done in - deferToMainQueue { - done() - expect { + failsWithErrorMessage("waitUntil(..) expects its completion closure to be only called once") { + waitUntil { done in + deferToMainQueue { + done() done() - }.to(raiseException(named: "InvalidNimbleAPIUsage")) + } } } -#endif } func testWaitUntilMustBeInMainThread() { #if !SWIFT_PACKAGE var executedAsyncBlock: Bool = false - let asyncOperation: () -> () = { + let asyncOperation: () -> Void = { expect { waitUntil { done in done() } }.to(raiseException(named: "InvalidNimbleAPIUsage")) @@ -205,7 +203,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { func testToEventuallyMustBeInMainThread() { #if !SWIFT_PACKAGE var executedAsyncBlock: Bool = false - let asyncOperation: () -> () = { + let asyncOperation: () -> Void = { expect { expect(1).toEventually(equal(2)) }.to(raiseException(named: "InvalidNimbleAPIUsage")) diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift index f300d47..40d9760 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift @@ -24,7 +24,7 @@ public protocol XCTestCaseProvider: XCTestCaseProviderStatic, XCTestCaseNameProv extension XCTestCaseProvider where Self: XCTestCaseProviderStatic { var allTestNames: [String] { - return type(of: self).allTests.map({ name, test in + return type(of: self).allTests.map({ name, _ in return name }) } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift index 0b33ea6..bb552ef 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift @@ -66,7 +66,7 @@ func failsWithErrorMessageForNil(_ message: String, file: FileString = #file, li } } -public class NimbleHelper : NSObject { +public class NimbleHelper: NSObject { public class func expectFailureMessage(_ message: NSString, block: @escaping () -> Void, file: FileString, line: UInt) { failsWithErrorMessage(String(describing: message), file: file, line: line, preferOriginalSourceLocation: true, closure: block) } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift index 0f4327a..2050881 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift @@ -55,35 +55,35 @@ final class AllPassTest: XCTestCase, XCTestCaseProvider { } func testAllPassArray() { - expect([1,2,3,4]).to(allPass({$0 < 5})) - expect([1,2,3,4]).toNot(allPass({$0 > 5})) + expect([1, 2, 3, 4]).to(allPass({$0 < 5})) + expect([1, 2, 3, 4]).toNot(allPass({$0 > 5})) failsWithErrorMessage( "expected to all pass a condition, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1,2,3,4]).to(allPass({$0 < 3})) + expect([1, 2, 3, 4]).to(allPass({$0 < 3})) } failsWithErrorMessage("expected to not all pass a condition") { - expect([1,2,3,4]).toNot(allPass({$0 < 5})) + expect([1, 2, 3, 4]).toNot(allPass({$0 < 5})) } failsWithErrorMessage( "expected to all be something, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1,2,3,4]).to(allPass("be something", {$0 < 3})) + expect([1, 2, 3, 4]).to(allPass("be something", {$0 < 3})) } failsWithErrorMessage("expected to not all be something") { - expect([1,2,3,4]).toNot(allPass("be something", {$0 < 5})) + expect([1, 2, 3, 4]).toNot(allPass("be something", {$0 < 5})) } } func testAllPassMatcher() { - expect([1,2,3,4]).to(allPass(beLessThan(5))) - expect([1,2,3,4]).toNot(allPass(beGreaterThan(5))) - + expect([1, 2, 3, 4]).to(allPass(beLessThan(5))) + expect([1, 2, 3, 4]).toNot(allPass(beGreaterThan(5))) + failsWithErrorMessage( "expected to all be less than <3>, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1,2,3,4]).to(allPass(beLessThan(3))) + expect([1, 2, 3, 4]).to(allPass(beLessThan(3))) } failsWithErrorMessage("expected to not all be less than <5>") { - expect([1,2,3,4]).toNot(allPass(beLessThan(5))) + expect([1, 2, 3, 4]).toNot(allPass(beLessThan(5))) } } @@ -107,14 +107,14 @@ final class AllPassTest: XCTestCase, XCTestCaseProvider { } func testAllPassSet() { - expect(Set([1,2,3,4])).to(allPass({$0 < 5})) - expect(Set([1,2,3,4])).toNot(allPass({$0 > 5})) + expect(Set([1, 2, 3, 4])).to(allPass({$0 < 5})) + expect(Set([1, 2, 3, 4])).toNot(allPass({$0 > 5})) failsWithErrorMessage("expected to not all pass a condition") { - expect(Set([1,2,3,4])).toNot(allPass({$0 < 5})) + expect(Set([1, 2, 3, 4])).toNot(allPass({$0 < 5})) } failsWithErrorMessage("expected to not all be something") { - expect(Set([1,2,3,4])).toNot(allPass("be something", {$0 < 5})) + expect(Set([1, 2, 3, 4])).toNot(allPass("be something", {$0 < 5})) } } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift index 121ecbd..ea16913 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift @@ -1,16 +1,66 @@ +import Foundation import XCTest import Nimble -#if _runtime(_ObjC) +fileprivate class TestNull: NSNull {} +fileprivate protocol TestProtocol {} +fileprivate class TestClassConformingToProtocol: TestProtocol {} +fileprivate struct TestStructConformingToProtocol: TestProtocol {} + +final class BeAKindOfSwiftTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (BeAKindOfSwiftTest) -> () throws -> Void)] { + return [ + ("testPositiveMatch", testPositiveMatch), + ("testFailureMessages", testFailureMessages), + ] + } + + enum TestEnum { + case one, two + } + + func testPositiveMatch() { + expect(1).to(beAKindOf(Int.self)) + expect(1).toNot(beAKindOf(String.self)) + expect("turtle string").to(beAKindOf(String.self)) + expect("turtle string").toNot(beAKindOf(TestClassConformingToProtocol.self)) + + expect(TestEnum.one).to(beAKindOf(TestEnum.self)) -class TestNull : NSNull {} + let testProtocolClass = TestClassConformingToProtocol() + expect(testProtocolClass).to(beAKindOf(TestClassConformingToProtocol.self)) + expect(testProtocolClass).to(beAKindOf(TestProtocol.self)) + expect(testProtocolClass).toNot(beAKindOf(TestStructConformingToProtocol.self)) -final class BeAKindOfTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAKindOfTest) -> () throws -> Void)] { + let testProtocolStruct = TestStructConformingToProtocol() + expect(testProtocolStruct).to(beAKindOf(TestStructConformingToProtocol.self)) + expect(testProtocolStruct).to(beAKindOf(TestProtocol.self)) + expect(testProtocolStruct).toNot(beAKindOf(TestClassConformingToProtocol.self)) + } + + func testFailureMessages() { + failsWithErrorMessage("expected to not be a kind of Int, got ") { + expect(1).toNot(beAKindOf(Int.self)) + } + + let testClass = TestClassConformingToProtocol() + failsWithErrorMessage("expected to not be a kind of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { + expect(testClass).toNot(beAKindOf(TestProtocol.self)) + } + + failsWithErrorMessage("expected to be a kind of String, got ") { + expect(1).to(beAKindOf(String.self)) + } + } +} + +#if _runtime(_ObjC) + +final class BeAKindOfObjCTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (BeAKindOfObjCTest) -> () throws -> Void)] { return [ ("testPositiveMatch", testPositiveMatch), ("testFailureMessages", testFailureMessages), - ("testSwiftTypesFailureMessages", testSwiftTypesFailureMessages), ] } @@ -34,23 +84,6 @@ final class BeAKindOfTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1)).toNot(beAKindOf(NSNumber.self)) } } - - func testSwiftTypesFailureMessages() { - enum TestEnum { - case one, two - } - failsWithErrorMessage("beAKindOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(1).to(beAKindOf(Int.self)) - } - failsWithErrorMessage("beAKindOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect("test").to(beAKindOf(String.self)) - } - failsWithErrorMessage("beAKindOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(TestEnum.one).to(beAKindOf(TestEnum.self)) - } - } } + #endif diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift index c4a4954..0660a75 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift @@ -2,12 +2,17 @@ import Foundation import XCTest import Nimble +fileprivate protocol TestProtocol {} +fileprivate class TestClassConformingToProtocol: TestProtocol {} +fileprivate struct TestStructConformingToProtocol: TestProtocol {} + final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeAnInstanceOfTest) -> () throws -> Void)] { return [ ("testPositiveMatch", testPositiveMatch), + ("testPositiveMatchSwiftTypes", testPositiveMatchSwiftTypes), ("testFailureMessages", testFailureMessages), - ("testSwiftTypesFailureMessages", testSwiftTypesFailureMessages), + ("testFailureMessagesSwiftTypes", testFailureMessagesSwiftTypes), ] } @@ -16,6 +21,27 @@ final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSDate.self)) } + enum TestEnum { + case one, two + } + + func testPositiveMatchSwiftTypes() { + expect(1).to(beAnInstanceOf(Int.self)) + expect("test").to(beAnInstanceOf(String.self)) + + expect(TestEnum.one).to(beAnInstanceOf(TestEnum.self)) + + let testProtocolClass = TestClassConformingToProtocol() + expect(testProtocolClass).to(beAnInstanceOf(TestClassConformingToProtocol.self)) + expect(testProtocolClass).toNot(beAnInstanceOf(TestProtocol.self)) + expect(testProtocolClass).toNot(beAnInstanceOf(TestStructConformingToProtocol.self)) + + let testProtocolStruct = TestStructConformingToProtocol() + expect(testProtocolStruct).to(beAnInstanceOf(TestStructConformingToProtocol.self)) + expect(testProtocolStruct).toNot(beAnInstanceOf(TestProtocol.self)) + expect(testProtocolStruct).toNot(beAnInstanceOf(TestClassConformingToProtocol.self)) + } + func testFailureMessages() { failsWithErrorMessageForNil("expected to not be an instance of NSNull, got ") { expect(nil as NSNull?).toNot(beAnInstanceOf(NSNull.self)) @@ -35,24 +61,19 @@ final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSNumber.self)) } } - - func testSwiftTypesFailureMessages() { - enum TestEnum { - case one, two - } - failsWithErrorMessage("beAnInstanceOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(1).to(beAnInstanceOf(Int.self)) + func testFailureMessagesSwiftTypes() { + failsWithErrorMessage("expected to not be an instance of Int, got ") { + expect(1).toNot(beAnInstanceOf(Int.self)) } - failsWithErrorMessage("beAnInstanceOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect("test").to(beAnInstanceOf(String.self)) + + let testClass = TestClassConformingToProtocol() + failsWithErrorMessage("expected to be an instance of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { + expect(testClass).to(beAnInstanceOf(TestProtocol.self)) } - failsWithErrorMessage("beAnInstanceOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(TestEnum.one).to(beAnInstanceOf(TestEnum.self)) + + failsWithErrorMessage("expected to be an instance of String, got ") { + expect(1).to(beAnInstanceOf(String.self)) } } - } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift index c9e9c48..7a7e508 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift @@ -43,12 +43,12 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1.2)).to(beCloseTo(9.300, within: 10)) expect(NSNumber(value:1.2)).to(beCloseTo(NSNumber(value:9.300), within: 10)) expect(1.2).to(beCloseTo(NSNumber(value:9.300), within: 10)) - + failsWithErrorMessage("expected to not be close to <1.2001> (within 1), got <1.2>") { expect(NSNumber(value:1.2)).toNot(beCloseTo(1.2001, within: 1.0)) } } - + func testBeCloseToWithCGFloat() { expect(CGFloat(1.2)).to(beCloseTo(1.2001)) expect(CGFloat(1.2)).to(beCloseTo(CGFloat(1.2001))) @@ -60,7 +60,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToWithDate() { expect(Date(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(Date(dateTimeString: "2015-08-26 11:43:05"), within: 10)) - + failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") { let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) expect(Date(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.004)) @@ -79,7 +79,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToOperator() { expect(1.2) ≈ 1.2001 expect(1.2 as CDouble) ≈ 1.2001 - + failsWithErrorMessage("expected to be close to <1.2002> (within 0.0001), got <1.2>") { expect(1.2) ≈ 1.2002 } @@ -88,7 +88,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToWithinOperator() { expect(1.2) ≈ (9.300, 10) expect(1.2) == (9.300, 10) - + failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { expect(1.2) ≈ (1.0, 0.1) } @@ -96,11 +96,11 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { expect(1.2) == (1.0, 0.1) } } - + func testPlusMinusOperator() { expect(1.2) ≈ 9.300 ± 10 expect(1.2) == 9.300 ± 10 - + failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { expect(1.2) ≈ 1.0 ± 0.1 } @@ -149,7 +149,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToArray() { expect([0.0, 1.1, 2.2]) ≈ [0.0001, 1.1001, 2.2001] expect([0.0, 1.1, 2.2]).to(beCloseTo([0.1, 1.2, 2.3], within: 0.1)) - + failsWithErrorMessage("expected to be close to <[0, 1]> (each within 0.0001), got <[0, 1.1]>") { expect([0.0, 1.1]) ≈ [0.0, 1.0] } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift index d7f35aa..7c4abf3 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift @@ -22,7 +22,7 @@ final class BeEmptyTest: XCTestCase, XCTestCaseProvider { expect(NSDictionary(object: 1, forKey: 1 as NSNumber) as? [Int:Int]).toNot(beEmpty()) #endif - expect(Dictionary()).to(beEmpty()) + expect([Int: Int]()).to(beEmpty()) expect(["hi": 1]).toNot(beEmpty()) #if _runtime(_ObjC) @@ -59,17 +59,17 @@ final class BeEmptyTest: XCTestCase, XCTestCaseProvider { } failsWithErrorMessage("expected to not be empty, got <{()}>") { - expect(NSSet()).toNot(beEmpty()); + expect(NSSet()).toNot(beEmpty()) } failsWithErrorMessage("expected to be empty, got <{(1)}>") { - expect(NSSet(object: NSNumber(value: 1))).to(beEmpty()); + expect(NSSet(object: NSNumber(value: 1))).to(beEmpty()) } failsWithErrorMessage("expected to not be empty, got <()>") { - expect(NSIndexSet()).toNot(beEmpty()); + expect(NSIndexSet()).toNot(beEmpty()) } failsWithErrorMessage("expected to be empty, got <(1)>") { - expect(NSIndexSet(index: 1)).to(beEmpty()); + expect(NSIndexSet(index: 1)).to(beEmpty()) } failsWithErrorMessage("expected to not be empty, got <>") { diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift index beec4d7..ea524ce 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift @@ -41,6 +41,10 @@ final class BeGreaterThanOrEqualToTest: XCTestCase, XCTestCaseProvider { expect(1) >= 0 expect(NSNumber(value:1)) >= 1 expect(NSNumber(value:1)) >= NSNumber(value:1) + expect(2.5) >= 2.5 + expect(2.5) >= 2 + expect(Float(2.5)) >= Float(2.5) + expect(Float(2.5)) >= 2 failsWithErrorMessage("expected to be greater than or equal to <2>, got <1>") { expect(1) >= 2 diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift index b7dbf47..ea024a3 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift @@ -9,7 +9,7 @@ final class BeGreaterThanTest: XCTestCase, XCTestCaseProvider { ("testGreaterThanOperator", testGreaterThanOperator), ] } - + func testGreaterThan() { expect(10).to(beGreaterThan(2)) expect(1).toNot(beGreaterThan(2)) @@ -42,6 +42,9 @@ final class BeGreaterThanTest: XCTestCase, XCTestCaseProvider { #else expect(NSNumber(value:1)) > 0 as NSNumber #endif + expect(2.5) > 1.5 + expect(Float(2.5)) > Float(1.5) + failsWithErrorMessage("expected to be greater than <2>, got <1>") { expect(1) > 2 return diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift index a598bfb..923fa76 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift @@ -21,11 +21,11 @@ final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { func testBeIdenticalToPositive() { expect(self.testObjectA).to(beIdenticalTo(testObjectA)) } - + func testBeIdenticalToNegative() { expect(self.testObjectA).toNot(beIdenticalTo(testObjectB)) } - + func testBeIdenticalToPositiveMessage() { let message = String(describing: NSString(format: "expected to be identical to <%p>, got <%p>", unsafeBitCast(testObjectB, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) @@ -33,7 +33,7 @@ final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { expect(self.testObjectA).to(beIdenticalTo(self.testObjectB)) } } - + func testBeIdenticalToNegativeMessage() { let message = String(describing: NSString(format: "expected to not be identical to <%p>, got <%p>", unsafeBitCast(testObjectA, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) @@ -55,7 +55,7 @@ final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { expect(nil as BeIdenticalToObjectTester?).toNot(beIdenticalTo(self.testObjectA)) } } - + func testOperators() { expect(self.testObjectA) === testObjectA expect(self.testObjectA) !== testObjectB diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift index a68260a..0f49160 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift @@ -10,7 +10,7 @@ final class BeIdenticalToTest: XCTestCase, XCTestCaseProvider { ("testBeIdenticalToPositiveMessage", testBeIdenticalToPositiveMessage), ("testBeIdenticalToNegativeMessage", testBeIdenticalToNegativeMessage), ("testOperators", testOperators), - ("testBeAlias", testBeAlias) + ("testBeAlias", testBeAlias), ] } @@ -51,7 +51,7 @@ final class BeIdenticalToTest: XCTestCase, XCTestCaseProvider { func testBeAlias() { let value = NSDate() expect(value).to(be(value)) - expect(NSNumber(value:1)).toNot(be(NSString(stringLiteral: "turtles"))) + expect(NSNumber(value:1)).toNot(be(NSString(string: "turtles"))) #if _runtime(_ObjC) expect([1]).toNot(be([1])) #else diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift index 9b8735c..947a1b4 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift @@ -2,7 +2,7 @@ import XCTest import Nimble import Foundation -enum ConvertsToBool : ExpressibleByBooleanLiteral, CustomStringConvertible { +enum ConvertsToBool: ExpressibleByBooleanLiteral, CustomStringConvertible { case trueLike, falseLike typealias BooleanLiteralType = Bool @@ -14,14 +14,14 @@ enum ConvertsToBool : ExpressibleByBooleanLiteral, CustomStringConvertible { } } - var boolValue : Bool { + var boolValue: Bool { switch self { case .trueLike: return true case .falseLike: return false } } - var description : String { + var description: String { switch self { case .trueLike: return "TrueLike" case .falseLike: return "FalseLike" @@ -29,7 +29,7 @@ enum ConvertsToBool : ExpressibleByBooleanLiteral, CustomStringConvertible { } } -final class BeTruthyTest : XCTestCase, XCTestCaseProvider { +final class BeTruthyTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeTruthyTest) -> () throws -> Void)] { return [ ("testShouldMatchNonNilTypes", testShouldMatchNonNilTypes), @@ -122,7 +122,7 @@ final class BeTruthyTest : XCTestCase, XCTestCaseProvider { } } -final class BeTrueTest : XCTestCase, XCTestCaseProvider { +final class BeTrueTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeTrueTest) -> () throws -> Void)] { return [ ("testShouldMatchTrue", testShouldMatchTrue), @@ -158,7 +158,7 @@ final class BeTrueTest : XCTestCase, XCTestCaseProvider { } } -final class BeFalsyTest : XCTestCase, XCTestCaseProvider { +final class BeFalsyTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeFalsyTest) -> () throws -> Void)] { return [ ("testShouldMatchNilTypes", testShouldMatchNilTypes), @@ -233,7 +233,7 @@ final class BeFalsyTest : XCTestCase, XCTestCaseProvider { } } -final class BeFalseTest : XCTestCase, XCTestCaseProvider { +final class BeFalseTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeFalseTest) -> () throws -> Void)] { return [ ("testShouldNotMatchTrue", testShouldNotMatchTrue), diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift index 78cade0..69f4185 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift @@ -8,7 +8,7 @@ final class BeNilTest: XCTestCase, XCTestCaseProvider { ] } - func producesNil() -> Array? { + func producesNil() -> [Int]? { return nil } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift new file mode 100644 index 0000000..a9fe80e --- /dev/null +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift @@ -0,0 +1,86 @@ +import Foundation +import XCTest +import Nimble + +final class ContainElementSatisfyingTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (ContainElementSatisfyingTest) -> () throws -> Void)] { + return [ + ("testContainElementSatisfying", testContainElementSatisfying), + ("testContainElementSatisfyingDefaultErrorMessage", testContainElementSatisfyingDefaultErrorMessage), + ("testContainElementSatisfyingSpecificErrorMessage", testContainElementSatisfyingSpecificErrorMessage), + ("testContainElementSatisfyingNegativeCase", + testContainElementSatisfyingNegativeCase), + ("testContainElementSatisfyingNegativeCaseDefaultErrorMessage", + testContainElementSatisfyingNegativeCaseDefaultErrorMessage), + ("testContainElementSatisfyingNegativeCaseSpecificErrorMessage", + testContainElementSatisfyingNegativeCaseSpecificErrorMessage), + ] + } + + func testContainElementSatisfying() { + var orderIndifferentArray = [1, 2, 3] + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 1 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 2 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 3 + })) + + orderIndifferentArray = [3, 1, 2] + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 1 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 2 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 3 + })) + } + + func testContainElementSatisfyingDefaultErrorMessage() { + let orderIndifferentArray = [1, 2, 3] + failsWithErrorMessage("expected to find object in collection that satisfies predicate") { + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 4 + })) + } + } + + func testContainElementSatisfyingSpecificErrorMessage() { + let orderIndifferentArray = [1, 2, 3] + failsWithErrorMessage("expected to find object in collection equal to 4") { + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 4 + }, "equal to 4")) + } + } + + func testContainElementSatisfyingNegativeCase() { + let orderIndifferentArray = ["puppies", "kittens", "turtles"] + expect(orderIndifferentArray).toNot(containElementSatisfying({ string in + return string == "armadillos" + })) + } + + func testContainElementSatisfyingNegativeCaseDefaultErrorMessage() { + let orderIndifferentArray = ["puppies", "kittens", "turtles"] + failsWithErrorMessage("expected to not find object in collection that satisfies predicate") { + expect(orderIndifferentArray).toNot(containElementSatisfying({ string in + return string == "kittens" + })) + } + } + + func testContainElementSatisfyingNegativeCaseSpecificErrorMessage() { + let orderIndifferentArray = ["puppies", "kittens", "turtles"] + failsWithErrorMessage("expected to not find object in collection equal to 'kittens'") { + expect(orderIndifferentArray).toNot(containElementSatisfying({ string in + return string == "kittens" + }, "equal to 'kittens'")) + } + } +} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift index 6b20d15..93b0331 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift @@ -16,7 +16,7 @@ final class ContainTest: XCTestCase, XCTestCaseProvider { func testContain() { expect([1, 2, 3]).to(contain(1)) expect([1, 2, 3] as [CInt]).to(contain(1 as CInt)) - expect([1, 2, 3] as Array).to(contain(1 as CInt)) + expect([1, 2, 3] as [CInt]).toNot(contain(4 as CInt)) expect(["foo", "bar", "baz"]).to(contain("baz")) expect([1, 2, 3]).toNot(contain(4)) expect(["foo", "bar", "baz"]).toNot(contain("ba")) diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift index a66a784..e54b535 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift @@ -45,11 +45,11 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { expect([1, 2, 3]).toNot(equal([1, 2])) expect([1, 2, 3]).toNot(equal([1, 2, 4])) - let array1: Array = [1, 2, 3] - let array2: Array = [1, 2, 3] + let array1: [Int] = [1, 2, 3] + let array2: [Int] = [1, 2, 3] expect(array1).to(equal(array2)) expect(array1).to(equal([1, 2, 3])) - expect(array1).toNot(equal([1, 2] as Array)) + expect(array1).toNot(equal([1, 2] as [Int])) #if _runtime(_ObjC) expect(NSArray(array: [1, 2, 3])).to(equal(NSArray(array: [1, 2, 3]))) @@ -121,6 +121,10 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { failsWithErrorMessageForNil("expected to not equal , got <[1: 1]>") { expect([1: 1]).toNot(equal(nil as [Int: Int]?)) } + + failsWithErrorMessageForNil("expected to not equal , got <1>") { + expect(1).toNot(equal(nil)) + } } func testDictionaryEquality() { @@ -182,9 +186,9 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { } func testOperatorEqualityWithArrays() { - let array1: Array = [1, 2, 3] - let array2: Array = [1, 2, 3] - let array3: Array = [1, 2] + let array1: [Int] = [1, 2, 3] + let array2: [Int] = [1, 2, 3] + let array3: [Int] = [1, 2] expect(array1) == array2 expect(array1) != array3 } @@ -200,34 +204,32 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { func testOptionalEquality() { expect(1 as CInt?).to(equal(1)) expect(1 as CInt?).to(equal(1 as CInt?)) - - expect(1).toNot(equal(nil)) } - + func testArrayOfOptionalsEquality() { - let array1: Array = [1, nil, 3] - let array2: Array = [nil, 2, 3] - let array3: Array = [1, nil, 3] - + let array1: [Int?] = [1, nil, 3] + let array2: [Int?] = [nil, 2, 3] + let array3: [Int?] = [1, nil, 3] + expect(array1).toNot(equal(array2)) expect(array1).to(equal(array3)) expect(array2).toNot(equal(array3)) - - let allNils1: Array = [nil, nil, nil, nil] - let allNils2: Array = [nil, nil, nil, nil] - let notReallyAllNils: Array = [nil, nil, nil, "turtles"] - + + let allNils1: [String?] = [nil, nil, nil, nil] + let allNils2: [String?] = [nil, nil, nil, nil] + let notReallyAllNils: [String?] = [nil, nil, nil, "turtles"] + expect(allNils1).to(equal(allNils2)) expect(allNils1).toNot(equal(notReallyAllNils)) - - let noNils1: Array = [1, 2, 3, 4, 5] - let noNils2: Array = [1, 3, 5, 7, 9] - + + let noNils1: [Int?] = [1, 2, 3, 4, 5] + let noNils2: [Int?] = [1, 3, 5, 7, 9] + expect(noNils1).toNot(equal(noNils2)) - + failsWithErrorMessage("expected to equal <[Optional(1), nil]>, got <[nil, Optional(2)]>") { - let arrayOfOptionalInts: Array = [nil, 2] - let anotherArrayOfOptionalInts: Array = [1, nil] + let arrayOfOptionalInts: [Int?] = [nil, 2] + let anotherArrayOfOptionalInts: [Int?] = [1, nil] expect(arrayOfOptionalInts).to(equal(anotherArrayOfOptionalInts)) return } @@ -236,38 +238,38 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { func testDictionariesWithDifferentSequences() { // see: https://github.com/Quick/Nimble/issues/61 // these dictionaries generate different orderings of sequences. - let result = ["how":1, "think":1, "didnt":2, "because":1, - "interesting":1, "always":1, "right":1, "such":1, - "to":3, "say":1, "cool":1, "you":1, - "weather":3, "be":1, "went":1, "was":2, - "sometimes":1, "and":3, "mind":1, "rain":1, - "whole":1, "everything":1, "weather.":1, "down":1, - "kind":1, "mood.":1, "it":2, "everyday":1, "might":1, - "more":1, "have":2, "person":1, "could":1, "tenth":2, - "night":1, "write":1, "Youd":1, "affects":1, "of":3, - "Who":1, "us":1, "an":1, "I":4, "my":1, "much":2, - "wrong.":1, "peacefully.":1, "amazing":3, "would":4, - "just":1, "grade.":1, "Its":2, "The":2, "had":1, "that":1, - "the":5, "best":1, "but":1, "essay":1, "for":1, "summer":2, - "your":1, "grade":1, "vary":1, "pretty":1, "at":1, "rain.":1, - "about":1, "allow":1, "thought":1, "in":1, "sleep":1, "a":1, - "hot":1, "really":1, "beach":1, "life.":1, "we":1, "although":1] - - let storyCount = ["The":2, "summer":2, "of":3, "tenth":2, "grade":1, - "was":2, "the":5, "best":1, "my":1, "life.":1, "I":4, - "went":1, "to":3, "beach":1, "everyday":1, "and":3, - "we":1, "had":1, "amazing":3, "weather.":1, "weather":3, - "didnt":2, "really":1, "vary":1, "much":2, "always":1, - "pretty":1, "hot":1, "although":1, "sometimes":1, "at":1, - "night":1, "it":2, "would":4, "rain.":1, "mind":1, "rain":1, - "because":1, "cool":1, "everything":1, "down":1, "allow":1, - "us":1, "sleep":1, "peacefully.":1, "Its":2, "how":1, - "affects":1, "your":1, "mood.":1, "Who":1, "have":2, - "thought":1, "that":1, "could":1, "write":1, "a":1, - "whole":1, "essay":1, "just":1, "about":1, "in":1, - "grade.":1, "kind":1, "right":1, "Youd":1, "think":1, - "for":1, "such":1, "an":1, "interesting":1, "person":1, - "might":1, "more":1, "say":1, "but":1, "you":1, "be":1, "wrong.":1] + let result = ["how": 1, "think": 1, "didnt": 2, "because": 1, + "interesting": 1, "always": 1, "right": 1, "such": 1, + "to": 3, "say": 1, "cool": 1, "you": 1, + "weather": 3, "be": 1, "went": 1, "was": 2, + "sometimes": 1, "and": 3, "mind": 1, "rain": 1, + "whole": 1, "everything": 1, "weather.": 1, "down": 1, + "kind": 1, "mood.": 1, "it": 2, "everyday": 1, "might": 1, + "more": 1, "have": 2, "person": 1, "could": 1, "tenth": 2, + "night": 1, "write": 1, "Youd": 1, "affects": 1, "of": 3, + "Who": 1, "us": 1, "an": 1, "I": 4, "my": 1, "much": 2, + "wrong.": 1, "peacefully.": 1, "amazing": 3, "would": 4, + "just": 1, "grade.": 1, "Its": 2, "The": 2, "had": 1, "that": 1, + "the": 5, "best": 1, "but": 1, "essay": 1, "for": 1, "summer": 2, + "your": 1, "grade": 1, "vary": 1, "pretty": 1, "at": 1, "rain.": 1, + "about": 1, "allow": 1, "thought": 1, "in": 1, "sleep": 1, "a": 1, + "hot": 1, "really": 1, "beach": 1, "life.": 1, "we": 1, "although": 1, ] + + let storyCount = ["The": 2, "summer": 2, "of": 3, "tenth": 2, "grade": 1, + "was": 2, "the": 5, "best": 1, "my": 1, "life.": 1, "I": 4, + "went": 1, "to": 3, "beach": 1, "everyday": 1, "and": 3, + "we": 1, "had": 1, "amazing": 3, "weather.": 1, "weather": 3, + "didnt": 2, "really": 1, "vary": 1, "much": 2, "always": 1, + "pretty": 1, "hot": 1, "although": 1, "sometimes": 1, "at": 1, + "night": 1, "it": 2, "would": 4, "rain.": 1, "mind": 1, "rain": 1, + "because": 1, "cool": 1, "everything": 1, "down": 1, "allow": 1, + "us": 1, "sleep": 1, "peacefully.": 1, "Its": 2, "how": 1, + "affects": 1, "your": 1, "mood.": 1, "Who": 1, "have": 2, + "thought": 1, "that": 1, "could": 1, "write": 1, "a": 1, + "whole": 1, "essay": 1, "just": 1, "about": 1, "in": 1, + "grade.": 1, "kind": 1, "right": 1, "Youd": 1, "think": 1, + "for": 1, "such": 1, "an": 1, "interesting": 1, "person": 1, + "might": 1, "more": 1, "say": 1, "but": 1, "you": 1, "be": 1, "wrong.": 1, ] expect(result).to(equal(storyCount)) } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift index de5033d..a0294c3 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift @@ -24,7 +24,7 @@ final class HaveCountTest: XCTestCase, XCTestCaseProvider { } func testHaveCountForDictionary() { - let dictionary = ["1":1, "2":2, "3":3] + let dictionary = ["1": 1, "2": 2, "3": 3] expect(dictionary).to(haveCount(3)) expect(dictionary).notTo(haveCount(1)) diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift index 5b6d77f..a95ba56 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift @@ -1,7 +1,7 @@ import XCTest import Nimble -final class MatchTest:XCTestCase, XCTestCaseProvider { +final class MatchTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (MatchTest) -> () throws -> Void)] { return [ ("testMatchPositive", testMatchPositive), @@ -15,18 +15,18 @@ final class MatchTest:XCTestCase, XCTestCaseProvider { func testMatchPositive() { expect("11:14").to(match("\\d{2}:\\d{2}")) } - + func testMatchNegative() { expect("hello").toNot(match("\\d{2}:\\d{2}")) } - + func testMatchPositiveMessage() { let message = "expected to match <\\d{2}:\\d{2}>, got " failsWithErrorMessage(message) { expect("hello").to(match("\\d{2}:\\d{2}")) } } - + func testMatchNegativeMessage() { let message = "expected to not match <\\d{2}:\\d{2}>, got <11:14>" failsWithErrorMessage(message) { diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift index 302a2f5..20461d9 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift @@ -93,7 +93,7 @@ final class RaisesExceptionTest: XCTestCase, XCTestCaseProvider { expect(exception.name).to(equal(NSExceptionName(rawValue:"foo"))) }) } - + failsWithErrorMessage("expected to raise exception with name that satisfies block, got no exception") { expect { self.anException }.to(raiseException(named: "foo") { (exception: NSException) in expect(exception.name.rawValue).to(equal("foo")) diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift index 9378956..0bd9495 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift @@ -17,19 +17,19 @@ final class SatisfyAnyOfTest: XCTestCase, XCTestCaseProvider { #else expect(2 as NSNumber).toNot(satisfyAnyOf(equal(3 as NSNumber), equal("turtles" as NSString))) #endif - expect([1,2,3]).to(satisfyAnyOf(equal([1,2,3]), allPass({$0 < 4}), haveCount(3))) + expect([1, 2, 3]).to(satisfyAnyOf(equal([1, 2, 3]), allPass({$0 < 4}), haveCount(3))) expect("turtle").toNot(satisfyAnyOf(contain("a"), endWith("magic"))) expect(82.0).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) expect(false).to(satisfyAnyOf(beTrue(), beFalse())) expect(true).to(satisfyAnyOf(beTruthy(), beFalsy())) - + failsWithErrorMessage( "expected to match one of: {equal <3>}, or {equal <4>}, or {equal <5>}, got 2") { expect(2).to(satisfyAnyOf(equal(3), equal(4), equal(5))) } failsWithErrorMessage( "expected to match one of: {all be less than 4, but failed first at element <5> in <[5, 6, 7]>}, or {equal <[1, 2, 3, 4]>}, got [5, 6, 7]") { - expect([5,6,7]).to(satisfyAnyOf(allPass("be less than 4", {$0 < 4}), equal([1,2,3,4]))) + expect([5, 6, 7]).to(satisfyAnyOf(allPass("be less than 4", {$0 < 4}), equal([1, 2, 3, 4]))) } failsWithErrorMessage( "expected to match one of: {be true}, got false") { @@ -40,7 +40,7 @@ final class SatisfyAnyOfTest: XCTestCase, XCTestCaseProvider { expect(50.10001).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) } } - + func testOperatorOr() { expect(2).to(equal(2) || equal(3)) #if SUPPORT_IMPLICIT_BRIDGING_CONVERSION diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift index c227b1b..9c66fe6 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift @@ -42,7 +42,7 @@ final class ThrowAssertionTest: XCTestCase, XCTestCaseProvider { var reachedPoint1 = false expect { reachedPoint1 = true }.toNot(throwAssertion()) - + expect(reachedPoint1) == true } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift index d7cd312..1c7674c 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift @@ -1,32 +1,32 @@ import XCTest import Nimble -enum NimbleError : Error { +enum NimbleError: Error { case laugh case cry } -enum EquatableError : Error { +enum EquatableError: Error { case parameterized(x: Int) } extension EquatableError : Equatable { } -func ==(lhs: EquatableError, rhs: EquatableError) -> Bool { +func == (lhs: EquatableError, rhs: EquatableError) -> Bool { switch (lhs, rhs) { case (.parameterized(let l), .parameterized(let r)): return l == r } } -enum CustomDebugStringConvertibleError : Error { +enum CustomDebugStringConvertibleError: Error { case a case b } extension CustomDebugStringConvertibleError : CustomDebugStringConvertible { - var debugDescription : String { + var debugDescription: String { return "code=\(_code)" } } @@ -120,13 +120,13 @@ final class ThrowErrorTest: XCTestCase, XCTestCaseProvider { func testNegativeMatchesDoNotCallClosureWithoutError() { failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError { error in + expect { return }.to(throwError { _ in fail() }) } - + failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError(NimbleError.laugh) { error in + expect { return }.to(throwError(NimbleError.laugh) { _ in fail() }) } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift new file mode 100644 index 0000000..dde999a --- /dev/null +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift @@ -0,0 +1,36 @@ +import XCTest +import Nimble + +final class ToSucceedTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (ToSucceedTest) -> () throws -> Void)] { + return [ + ("testToSucceed", testToSucceed), + ] + } + + func testToSucceed() { + expect({ + return .succeeded + }).to(succeed()) + + expect({ + return .failed(reason: "") + }).toNot(succeed()) + + failsWithErrorMessageForNil("expected a closure, got ") { + expect(nil as (() -> ToSucceedResult)?).to(succeed()) + } + + failsWithErrorMessage("expected to succeed, got because ") { + expect({ + .failed(reason: "something went wrong") + }).to(succeed()) + } + + failsWithErrorMessage("expected to not succeed, got ") { + expect({ + return .succeeded + }).toNot(succeed()) + } + } +} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift index 6234932..ce8181b 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift @@ -38,28 +38,28 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { } func testUnexpectedErrorsThrownFails() { - failsWithErrorMessage("expected to equal <1>, got an unexpected error thrown: <\(errorToThrow)>") { + failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { expect { try self.doThrowError() }.to(equal(1)) } - failsWithErrorMessage("expected to not equal <1>, got an unexpected error thrown: <\(errorToThrow)>") { + failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { expect { try self.doThrowError() }.toNot(equal(1)) } } func testToMatchesIfMatcherReturnsTrue() { - expect(1).to(MatcherFunc { expr, failure in true }) - expect{1}.to(MatcherFunc { expr, failure in true }) + expect(1).to(MatcherFunc { _, _ in true }) + expect {1}.to(MatcherFunc { _, _ in true }) } func testToProvidesActualValueExpression() { var value: Int? - expect(1).to(MatcherFunc { expr, failure in value = try expr.evaluate(); return true }) + expect(1).to(MatcherFunc { expr, _ in value = try expr.evaluate(); return true }) expect(value).to(equal(1)) } func testToProvidesAMemoizedActualValueExpression() { var callCount = 0 - expect{ callCount += 1 }.to(MatcherFunc { expr, failure in + expect { callCount += 1 }.to(MatcherFunc { expr, _ in _ = try expr.evaluate() _ = try expr.evaluate() return true @@ -69,7 +69,7 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { func testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { var callCount = 0 - expect{ callCount += 1 }.to(MatcherFunc { expr, failure in + expect { callCount += 1 }.to(MatcherFunc { expr, _ in expect(callCount).to(equal(0)) _ = try expr.evaluate() return true @@ -86,19 +86,19 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { // repeated tests from to() for toNot() func testToNotMatchesIfMatcherReturnsTrue() { - expect(1).toNot(MatcherFunc { expr, failure in false }) - expect{1}.toNot(MatcherFunc { expr, failure in false }) + expect(1).toNot(MatcherFunc { _, _ in false }) + expect {1}.toNot(MatcherFunc { _, _ in false }) } func testToNotProvidesActualValueExpression() { var value: Int? - expect(1).toNot(MatcherFunc { expr, failure in value = try expr.evaluate(); return false }) + expect(1).toNot(MatcherFunc { expr, _ in value = try expr.evaluate(); return false }) expect(value).to(equal(1)) } func testToNotProvidesAMemoizedActualValueExpression() { var callCount = 0 - expect{ callCount += 1 }.toNot(MatcherFunc { expr, failure in + expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in _ = try expr.evaluate() _ = try expr.evaluate() return false @@ -108,7 +108,7 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { func testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { var callCount = 0 - expect{ callCount += 1 }.toNot(MatcherFunc { expr, failure in + expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in expect(callCount).to(equal(0)) _ = try expr.evaluate() return false @@ -118,12 +118,11 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { func testToNotNegativeMatches() { failsWithErrorMessage("expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { expr, failure in true }) + expect(1).toNot(MatcherFunc { _, _ in true }) } } - func testNotToMatchesLikeToNot() { - expect(1).notTo(MatcherFunc { expr, failure in false }) + expect(1).notTo(MatcherFunc { _, _ in false }) } } diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift index e22d64e..9bb64b6 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift @@ -12,31 +12,31 @@ final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { ("testToNotEventuallyMatch_CustomFailureMessage", testToNotEventuallyMatch_CustomFailureMessage), ] } - + func testToMatcher_CustomFailureMessage() { failsWithErrorMessage( "These aren't equal!\n" + "expected to match, got <1>") { - expect(1).to(MatcherFunc { expr, failure in false }, description: "These aren't equal!") + expect(1).to(MatcherFunc { _, _ in false }, description: "These aren't equal!") } } - + func testNotToMatcher_CustomFailureMessage() { failsWithErrorMessage( "These aren't equal!\n" + "expected to not match, got <1>") { - expect(1).notTo(MatcherFunc { expr, failure in true }, description: "These aren't equal!") + expect(1).notTo(MatcherFunc { _, _ in true }, description: "These aren't equal!") } } - + func testToNotMatcher_CustomFailureMessage() { failsWithErrorMessage( "These aren't equal!\n" + "expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { expr, failure in true }, description: "These aren't equal!") + expect(1).toNot(MatcherFunc { _, _ in true }, description: "These aren't equal!") } } - + func testToEventuallyMatch_CustomFailureMessage() { failsWithErrorMessage( "These aren't eventually equal!\n" + @@ -44,7 +44,7 @@ final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { expect { 0 }.toEventually(equal(1), description: "These aren't eventually equal!") } } - + func testToEventuallyNotMatch_CustomFailureMessage() { failsWithErrorMessage( "These are eventually equal!\n" + @@ -52,7 +52,7 @@ final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { expect { 1 }.toEventuallyNot(equal(1), description: "These are eventually equal!") } } - + func testToNotEventuallyMatch_CustomFailureMessage() { failsWithErrorMessage( "These are eventually equal!\n" + diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m index 22cab3a..28862ba 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m @@ -13,6 +13,8 @@ - (void)testPositiveMatches { expect(2).to(beGreaterThanOrEqualTo(0)); expect(2).to(beGreaterThanOrEqualTo(2)); expect(2).toNot(beGreaterThanOrEqualTo(3)); + expect(2.5).to(beGreaterThanOrEqualTo(2)); + expect(2.5).to(beGreaterThanOrEqualTo(2.5)); } - (void)testNegativeMatches { diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m index 13336d5..4356f63 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m @@ -12,6 +12,7 @@ - (void)testPositiveMatches { expect(@2).toNot(beGreaterThan(@2)); expect(@2).to(beGreaterThan(0)); expect(@2).toNot(beGreaterThan(2)); + expect(2.5).to(beGreaterThan(1.5)); } - (void)testNegativeMatches { diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m new file mode 100644 index 0000000..b15d6c3 --- /dev/null +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m @@ -0,0 +1,64 @@ +#import +#import "NimbleSpecHelper.h" + +@interface ObjCContainElementSatisfyingTest : XCTestCase + +@end + +@implementation ObjCContainElementSatisfyingTest + +- (void)testPassingMatches { + NSArray *orderIndifferentArray = @[@1, @2, @3]; + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@1]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@2]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + + orderIndifferentArray = @[@3, @1, @2]; + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@1]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@2]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + + NSSet *orderIndifferentSet = [NSSet setWithObjects:@"turtle test", @"turtle assessment", nil]; + expect(orderIndifferentSet).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToString:@"turtle assessment"]; + })); +} + +- (void)testFailingMatches { + expectFailureMessage(@"expected to find object in collection that satisfies predicate", ^{ + expect(@[@1]).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@2]; + })); + }); + expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ + expect((nil)).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + }); + expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ + expect((@3)).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + }); +} + +- (void)testNegativeCases { + NSArray *orderIndifferentArray = @[@"puppies", @"kittens", @"turtles"]; + expect(orderIndifferentArray).toNot(containElementSatisfying(^BOOL(id object) { + return [object isEqualToString:@"armadillos"]; + })); +} + +@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m index d84915a..e64c2f2 100644 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m +++ b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m @@ -141,7 +141,7 @@ - (void)testNegativeMatchesWithNegativeBlocks { userInfo:@{@"key": @"value"}]; NSString *outerFailureMessage; - NSString const *innerFailureMessage = @"expected to equal , got "; + NSString *const innerFailureMessage = @"expected to equal , got "; outerFailureMessage = @"expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ expectAction(^{ [exception raise]; }).to(raiseException(). diff --git a/Carthage/Checkouts/Nimble/test b/Carthage/Checkouts/Nimble/test index 8ea482e..0766351 100755 --- a/Carthage/Checkouts/Nimble/test +++ b/Carthage/Checkouts/Nimble/test @@ -74,7 +74,8 @@ function test_podspec { echo "Gathering CocoaPods installation information..." run bundle exec pod --version echo "Linting podspec..." - run bundle exec pod lib lint Nimble.podspec + # Note: remove `--allow-warnings` once old Matcher API has been removed + run bundle exec pod lib lint Nimble.podspec --allow-warnings } function test_swiftpm { @@ -84,6 +85,11 @@ function test_swiftpm { run swift build && swift test } +function test_swiftpm_docker { + run docker build -t nimble-tests -f Dockerfile.test --no-cache . + run docker run -it --privileged=true nimble-tests +} + function test() { test_ios test_tvos @@ -94,6 +100,12 @@ function test() { else echo "Not testing with the Swift Package Manager because swift-test is not installed" fi + + if which docker; then + test_swiftpm_docker + else + echo "Not testing linux in docker container since docker is not in PATH!" + fi } function clean { @@ -104,14 +116,15 @@ function help { echo "Usage: $0 COMMANDS" echo echo "COMMANDS:" - echo " clean - Cleans the derived data directory of Xcode. Assumes default location" - echo " ios - Runs the tests as an iOS device" - echo " tvos - Runs the tests as an tvOS device" - echo " macos - Runs the tests on macOS 10.10 (Yosemite and newer only)" - echo " podspec - Runs pod lib lint against the podspec to detect breaking changes" - echo " all - Runs the all tests of macos, ios and tvos" - echo " swiftpm - Runs the tests built by the Swift Package Manager" - echo " help - Displays this help" + echo " all - Runs the all tests of macos, ios and tvos" + echo " clean - Cleans the derived data directory of Xcode. Assumes default location" + echo " help - Displays this help" + echo " ios - Runs the tests as an iOS device" + echo " macos - Runs the tests on macOS 10.10 (Yosemite and newer only)" + echo " podspec - Runs pod lib lint against the podspec to detect breaking changes" + echo " swiftpm - Runs the tests built by the Swift Package Manager" + echo " swiftpm_docker - Runs the tests built by the Swift Package Manager in a docker linux container" + echo " tvos - Runs the tests as an tvOS device" echo exit 1 } @@ -129,6 +142,7 @@ function main { test) test ;; all) test ;; swiftpm) test_swiftpm ;; + swiftpm_docker) test_swiftpm_docker ;; help) help ;; esac done diff --git a/Carthage/Checkouts/Quick/.Package.test.swift b/Carthage/Checkouts/Quick/.Package.test.swift index 34b9608..7058701 100644 --- a/Carthage/Checkouts/Quick/.Package.test.swift +++ b/Carthage/Checkouts/Quick/.Package.test.swift @@ -2,18 +2,38 @@ import PackageDescription let package = Package( name: "Quick", + targets: { +#if _runtime(_ObjC) + return [ + Target(name: "QuickSpecBase"), + Target(name: "Quick", dependencies: [ "QuickSpecBase" ]), + Target(name: "QuickTests", dependencies: [ "Quick" ]), + ] +#else + return [ + Target(name: "Quick"), + Target(name: "QuickTests", dependencies: [ "Quick" ]), + ] +#endif + }(), // TODO: Once the `test` command has been implemented in the Swift Package Manager, this should be changed to // be `testDependencies:` instead. For now it has to be done like this for the library to get linked with the test targets. // See: https://github.com/apple/swift-evolution/blob/master/proposals/0019-package-manager-testing.md dependencies: [ - .Package(url: "https://github.com/Quick/Nimble", majorVersion: 5) + .Package(url: "https://github.com/Quick/Nimble", majorVersion: 6) ], - exclude: [ - "Sources/QuickObjectiveC", - "Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m", - "Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m", - "Tests/QuickTests/QuickTests/FunctionalTests/ObjC", - "Tests/QuickTests/QuickTests/Helpers", - "Tests/QuickTests/QuickTests/QuickConfigurationTests.m", - ] + exclude: { + var excludes = [ + "Sources/QuickObjectiveC", + "Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m", + "Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m", + "Tests/QuickTests/QuickTests/FunctionalTests/ObjC", + "Tests/QuickTests/QuickTests/Helpers", + "Tests/QuickTests/QuickTests/QuickConfigurationTests.m", + ] +#if !_runtime(_ObjC) + excludes.append("Sources/QuickSpecBase") +#endif + return excludes + }() ) diff --git a/Carthage/Checkouts/Quick/.swiftlint.yml b/Carthage/Checkouts/Quick/.swiftlint.yml index 64760d5..7355ecc 100644 --- a/Carthage/Checkouts/Quick/.swiftlint.yml +++ b/Carthage/Checkouts/Quick/.swiftlint.yml @@ -1,10 +1,7 @@ - disabled_rules: - line_length - type_name - valid_docs - - empty_count - - force_unwrapping - function_body_length - variable_name included: diff --git a/Carthage/Checkouts/Quick/.travis.yml b/Carthage/Checkouts/Quick/.travis.yml index 4c57144..c22030e 100644 --- a/Carthage/Checkouts/Quick/.travis.yml +++ b/Carthage/Checkouts/Quick/.travis.yml @@ -14,6 +14,9 @@ matrix: env: - PLATFORM=tvos - XCODE_ACTION="build-for-testing test-without-building" + - os: osx + env: + - PLATFORM=swiftpm - os: osx sudo: required env: @@ -28,3 +31,4 @@ install: script: - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./script/travis-script-macos; fi - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./script/travis-script-linux; fi + - if [[ "$PODSPEC" ]]; then danger; fi diff --git a/Carthage/Checkouts/Quick/Dangerfile b/Carthage/Checkouts/Quick/Dangerfile new file mode 100644 index 0000000..719de60 --- /dev/null +++ b/Carthage/Checkouts/Quick/Dangerfile @@ -0,0 +1,53 @@ +# set the number of lines that must be changed before this classifies as a 'Big PR' +@SDM_DANGER_BIG_PR_LINES = 50 + +# set the files to watch and fail if there are changes +@SDM_DANGER_IMMUTABLE_FILES = ['LICENSE', 'CONTRIBUTING.md', 'CODE_OF_CONDUCT.md'] + +# Sometimes it's a README fix, or something like that which is trivial +not_declared_trivial = !(github.pr_title.include? "#trivial") +has_app_changes = !git.modified_files.grep(/Sources/).empty? +no_test_modify = git.modified_files.grep(/Tests/).empty? + +# Warns when changing source files +if has_app_changes && not_declared_trivial && no_test_modify + warn("Need to add an unit test if you're modifying swift source") +end + +# determine if any of the files were modified +def did_modify(files_array) + did_modify_files = false + files_array.each do |file_name| + if git.modified_files.include?(file_name) || git.deleted_files.include?(file_name) + did_modify_files = true + end + end + return did_modify_files +end + +# Fail if changes to immutable files, such as License or CoC +fail('Do not modify the license or Code of Conduct') if did_modify(@SDM_DANGER_IMMUTABLE_FILES) + +# Make it more obvious that a PR is a work in progress and shouldn't be merged yet +warn("PR is classed as Work in Progress") if github.pr_title.include? "[WIP]" + +# Warn when there is a big PR +warn("Big PR") if git.lines_of_code > @SDM_DANGER_BIG_PR_LINES + +# Make a note about contributors not in the organization +unless github.api.organization_member?('Quick', github.pr_author) + # Pay extra attention if they modify the podspec + if git.modified_files.include?("*.podspec") + warn "External contributor has edited the Podspec file" + end +end + +# Mainly to encourage writing up some reasoning about the PR, rather than +# just leaving a title +if github.pr_body.length < 5 + warn "Please provide a summary in the Pull Request description" +end + +swiftlint.config_file = '.swiftlint.yml' +swiftlint.lint_files + diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md b/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md index dd49355..76e9d3e 100644 --- a/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md +++ b/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md @@ -29,6 +29,9 @@ class MyClassTests: XCTestCase { } ``` +> Quick integration in the Xcode Test Navigator suffers from some limitations (open [issue](https://github.com/Quick/Quick/issues/219)). Quick tests will not show up in the navigator until they've been run, repeat runs tend to reset the list in unpredictable ways and the tests cannot be run from the gutter next to the source code. +> Please file a radar to Apple and mention this as a duplicate to [rdar://26152293](http://openradar.appspot.com/radar?id=4974047628623872) to promote this feature request for Apple Engineers. + > Some developers advocate adding Swift source files to your test target. However, this leads to [subtle, hard-to-diagnose errors](https://github.com/Quick/Quick/issues/91), and is not diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md b/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md index 3e67cb5..339bf34 100644 --- a/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md +++ b/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md @@ -81,7 +81,7 @@ beforeEach(^{ mackerel = [[Mackerel alloc] init]; }); -itBehavesLike(@"someting edible", ^{ return @{ @"edible": mackerel }; }); +itBehavesLike(@"something edible", ^{ return @{ @"edible": mackerel }; }); QuickSpecEnd @@ -92,7 +92,7 @@ beforeEach(^{ cod = [[Cod alloc] init]; }); -itBehavesLike(@"someting edible", ^{ return @{ @"edible": cod }; }); +itBehavesLike(@"something edible", ^{ return @{ @"edible": cod }; }); QuickSpecEnd ``` diff --git a/Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md b/Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md new file mode 100644 index 0000000..eabde35 --- /dev/null +++ b/Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md @@ -0,0 +1,116 @@ +# Reduzindo Teste Boilerplate com Assertions Compartilhados + +Em alguns casos, o mesmo conjunto de especificações se aplica a múltiplos objetos. + +Por exemplo, considere um protocol chamado `Edible` (comestível). Quando um golfinho come algo `Edible`, ele fica feliz. `Mackerel` (um tipo de peixe) e `Cod` (bacalhau) são comestíveis. Quick permite testar facilmente que um golfinho fica feliz quando come qualquer um desses peixes. + +O exemplo abaixo define um conjunto de "exemplos compartilhados" para "algo comestível", e especifica que tanto `Mackerel` quanto `Cod` se comportam como "algo comestível": + + +```swift +// Swift + +import Quick +import Nimble + +class EdibleSharedExamplesConfiguration: QuickConfiguration { + override class func configure(_ configuration: Configuration) { + sharedExamples("something edible") { (sharedExampleContext: SharedExampleContext) in + it("makes dolphins happy") { + let dolphin = Dolphin(happy: false) + let edible = sharedExampleContext()["edible"] + dolphin.eat(edible) + expect(dolphin.isHappy).to(beTruthy()) + } + } + } +} + +class MackerelSpec: QuickSpec { + override func spec() { + var mackerel: Mackerel! + beforeEach { + mackerel = Mackerel() + } + + itBehavesLike("something edible") { ["edible": mackerel] } + } +} + +class CodSpec: QuickSpec { + override func spec() { + var cod: Cod! + beforeEach { + cod = Cod() + } + + itBehavesLike("something edible") { ["edible": cod] } + } +} +``` + +```objc +// Objective-C + +@import Quick; +@import Nimble; + +QuickConfigurationBegin(EdibleSharedExamplesConfiguration) + ++ (void)configure:(Configuration *configuration) { + sharedExamples(@"something edible", ^(QCKDSLSharedExampleContext exampleContext) { + it(@"makes dolphins happy") { + Dolphin *dolphin = [[Dolphin alloc] init]; + dolphin.happy = NO; + id edible = exampleContext()[@"edible"]; + [dolphin eat:edible]; + expect(dolphin.isHappy).to(beTruthy()) + } + }); +} + +QuickConfigurationEnd + +QuickSpecBegin(MackerelSpec) + +__block Mackerel *mackerel = nil; +beforeEach(^{ + mackerel = [[Mackerel alloc] init]; +}); + +itBehavesLike(@"something edible", ^{ return @{ @"edible": mackerel }; }); + +QuickSpecEnd + +QuickSpecBegin(CodSpec) + +__block Mackerel *cod = nil; +beforeEach(^{ + cod = [[Cod alloc] init]; +}); + +itBehavesLike(@"something edible", ^{ return @{ @"edible": cod }; }); + +QuickSpecEnd +``` + +Exemplos compartilhados podem incluir qualquer número de blocos `it`, `context` e `describe`. Isso economiza *muito* quando deve-se escrever os mesmos testes para diferentes objetos. + +Em alguns casos, nenhum `context` adicional é necessário. Em Swift, é possível usar `sharedExamples` closures que não recebem parâmetros. Isso pode ser útil quando se esta algum estado global: + + +```swift +// Swift + +import Quick + +sharedExamples("everything under the sea") { + // ... +} + +itBehavesLike("everything under the sea") +``` + +> Em Objective-C, é necessário passar um bloco que recebe um `QCKDSLSharedExampleContext`, mesmo se esse argumento não for usado. Desculpe, mas é assim que a banda toca! :trumpet: :notes: + +Também é possível "focar" exemplos compartilhados usando a função `fitBehavesLike`. \ No newline at end of file diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE b/Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE new file mode 100644 index 0000000..85e591e --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE @@ -0,0 +1,36 @@ +- [ ] I have read [CONTRIBUTING](https://github.com/Quick/Nimble/blob/master/CONTRIBUTING.md) and have done my best to follow them. + +### What did you do? + +Please replace this with what you did. + +### What did you expect to happen? + +Please replace this with what you expected to happen. + +### What actually happened instead? + +Please replace this with what happened instead. + +### Environment + +List the software versions you're using: + + - Quick: *?.?.?* + - Nimble: *?.?.?* + - Xcode Version: *?.? (????)* (Open Xcode; In menubar: Xcode > About Xcode) + - Swift Version: *?.?* (Open Xcode Preferences; Components > Toolchains. If none, use `Xcode Default`.) + +Please also mention which package manager you used and its version. Delete the +other package managers in this list: + + - Cocoapods: *?.?.?* (Use `pod --version` in Terminal) + - Carthage: *?.?* (Use `carthage version` in Terminal) + - Swift Package Manager *?.?.? (swiftpm-???)* (Use `swift build --version` in Terminal) + +### Project that demonstrates the issue + +Please link to a project we can download that reproduces the issue. Feel free +to delete this section if it's not relevant to the issue (eg - feature request). + +The project should be [short, self-contained, and correct example](http://sscce.org/). diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE b/Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE new file mode 100644 index 0000000..20e40c8 --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE @@ -0,0 +1,14 @@ +The PR should summarize what was changed and why. Here are some questions to +help you if you're not sure: + + - What behavior was changed? + - What code was refactored / updated to support this change? + - What issues are related to this PR? Or why was this change introduced? + +Checklist - While not every PR needs it, new features should consider this list: + + - [ ] Does this have tests? + - [ ] Does this have documentation? + - [ ] Does this break the public API (Requires major version bump)? + - [ ] Is this a new feature (Requires minor version bump)? + diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml b/Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml new file mode 100644 index 0000000..b867fd9 --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml @@ -0,0 +1,2 @@ +swift: + config_file: .swiftlint.yml diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml b/Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml new file mode 100644 index 0000000..d412589 --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml @@ -0,0 +1,16 @@ +disabled_rules: + - line_length + - todo + - variable_name + - force_try + - function_parameter_count + - force_cast + - type_name + - large_tuple + +included: + - Sources + - Tests + +trailing_comma: + mandatory_comma: true diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE b/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE new file mode 100644 index 0000000..82b84bf --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 Quick Team + + 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. diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec index 8ca36a1..d9ad8a0 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec @@ -1,12 +1,12 @@ Pod::Spec.new do |s| s.name = "Nimble" - s.version = "5.1.1" + s.version = "6.0.1" s.summary = "A Matcher Framework for Swift and Objective-C" s.description = <<-DESC Use Nimble to express the expected outcomes of Swift or Objective-C expressions. Inspired by Cedar. DESC s.homepage = "https://github.com/Quick/Nimble" - s.license = { :type => "Apache 2.0", :file => "LICENSE.md" } + s.license = { :type => "Apache 2.0", :file => "LICENSE" } s.author = "Quick Contributors" s.ios.deployment_target = "8.0" s.osx.deployment_target = "10.10" diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj index 7c2c084..54f1cce 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj @@ -286,6 +286,15 @@ 6CAEDD0A1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; 6CAEDD0B1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; 6CAEDD0C1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; + 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; + 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; + 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; + 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; + 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; + 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; + 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; + 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; + 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; 7B5358BA1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; 7B5358BB1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; 7B5358BC1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; @@ -410,28 +419,28 @@ containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; 1F9B7BFD1968AD760094EB8F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; 1F9B7BFF1968AD760094EB8F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; 1F9B7C011968AD820094EB8F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 1F1A74201940169200FFFC47 /* Project object */; proxyType = 1; remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; + remoteInfo = "Nimble-macOS"; }; /* End PBXContainerItemProxy section */ @@ -543,6 +552,9 @@ 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HaveCountTest.swift; sourceTree = ""; }; 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCHaveCount.m; sourceTree = ""; }; 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinuxSupport.swift; sourceTree = ""; }; + 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; + 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCContainElementSatisfying.m; sourceTree = ""; }; + 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfyingTest.swift; sourceTree = ""; }; 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOfTest.swift; sourceTree = ""; }; 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCSatisfyAnyOfTest.m; sourceTree = ""; }; @@ -745,6 +757,7 @@ 1F925EEE195C136500ED456B /* BeLogicalTest.swift */, 1F925EF8195C175000ED456B /* BeNilTest.swift */, 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */, + 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */, 1F925F01195C189500ED456B /* ContainTest.swift */, 1F925EFE195C187600ED456B /* EndWithTest.swift */, 1F925F04195C18B700ED456B /* EqualTest.swift */, @@ -793,6 +806,7 @@ 1FD8CD171968AB07008ED995 /* BeLogical.swift */, 1FD8CD181968AB07008ED995 /* BeNil.swift */, 1F91DD301C74BF61002C309F /* BeVoid.swift */, + 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */, 1FD8CD1A1968AB07008ED995 /* Contain.swift */, 1FD8CD1B1968AB07008ED995 /* EndWith.swift */, 1FD8CD1C1968AB07008ED995 /* Equal.swift */, @@ -843,6 +857,7 @@ 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */, 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */, 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */, + 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */, 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */, 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */, 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */, @@ -939,6 +954,7 @@ 1F1A74251940169200FFFC47 /* Frameworks */, 1F1A74261940169200FFFC47 /* Headers */, 1F1A74271940169200FFFC47 /* Resources */, + 36D948361E0C6F4E0088F9E9 /* ShellScript */, ); buildRules = ( ); @@ -978,6 +994,7 @@ 1F5DF1511BDCA0CE00C3A531 /* Frameworks */, 1F5DF1521BDCA0CE00C3A531 /* Headers */, 1F5DF1531BDCA0CE00C3A531 /* Resources */, + 36D948371E0C6F590088F9E9 /* ShellScript */, ); buildRules = ( ); @@ -1014,13 +1031,14 @@ 1F925EA9195C0D6300ED456B /* Frameworks */, 1F925EAA195C0D6300ED456B /* Headers */, 1F925EAB195C0D6300ED456B /* Resources */, + 36D948351E0C6F420088F9E9 /* ShellScript */, ); buildRules = ( ); dependencies = ( ); name = "Nimble-macOS"; - productName = "Nimble-OSX"; + productName = "Nimble-macOS"; productReference = 1F925EAD195C0D6300ED456B /* Nimble.framework */; productType = "com.apple.product-type.framework"; }; @@ -1150,6 +1168,48 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 36D948351E0C6F420088F9E9 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; + }; + 36D948361E0C6F4E0088F9E9 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; + }; + 36D948371E0C6F590088F9E9 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 1F1A74241940169200FFFC47 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -1173,6 +1233,7 @@ 1FD8CD3E1968AB07008ED995 /* BeAKindOf.swift in Sources */, DDB4D5ED19FE43C200E9D9FE /* Match.swift in Sources */, 1F91DD311C74BF61002C309F /* BeVoid.swift in Sources */, + 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */, 1FCF91531C61C8A400B15DCB /* PostNotification.swift in Sources */, 1FD8CD2E1968AB07008ED995 /* AssertionRecorder.swift in Sources */, 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */, @@ -1229,6 +1290,7 @@ DDB4D5F019FE442800E9D9FE /* MatchTest.swift in Sources */, 1F4A56731A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, 1F4A56821A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, + 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, 1F925F02195C189500ED456B /* ContainTest.swift in Sources */, 1F4A56881A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, 1F4A568E1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, @@ -1251,6 +1313,7 @@ 1F8A37B01B7C5042001C8357 /* ObjCSyncTest.m in Sources */, 1F4A56941A3B346F009E1637 /* ObjCContainTest.m in Sources */, 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */, + 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, 1F925EF6195C147800ED456B /* BeCloseToTest.swift in Sources */, 1F4A56791A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, AE7ADE491C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, @@ -1331,6 +1394,7 @@ 1F5DF1701BDCA0F500C3A531 /* DSL.swift in Sources */, 1F5DF1721BDCA0F500C3A531 /* Expectation.swift in Sources */, 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, + 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */, 1F5DF18B1BDCA0F500C3A531 /* Functional.swift in Sources */, 1F5DF1871BDCA0F500C3A531 /* Match.swift in Sources */, ); @@ -1355,7 +1419,9 @@ 1F5DF1AB1BDCA10200C3A531 /* ThrowErrorTest.swift in Sources */, CD79C9A91D2CC848004B6F9A /* ObjCBeKindOfTest.m in Sources */, 1F5DF1A51BDCA10200C3A531 /* ContainTest.swift in Sources */, + 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, AE7ADE4B1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, + 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, CD79C9B31D2CC848004B6F9A /* ObjCMatchTest.m in Sources */, 1F5DF19E1BDCA10200C3A531 /* BeGreaterThanTest.swift in Sources */, 1F5DF1A21BDCA10200C3A531 /* BeLessThanTest.swift in Sources */, @@ -1424,6 +1490,7 @@ DDB1BC7A1A92235600F743C3 /* AllPass.swift in Sources */, 1FD8CD3F1968AB07008ED995 /* BeAKindOf.swift in Sources */, 1FD8CD2F1968AB07008ED995 /* AssertionRecorder.swift in Sources */, + 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */, 1F91DD321C74BF61002C309F /* BeVoid.swift in Sources */, 1FCF91541C61C8A400B15DCB /* PostNotification.swift in Sources */, DDB4D5EE19FE43C200E9D9FE /* Match.swift in Sources */, @@ -1480,6 +1547,7 @@ DDB4D5F119FE442800E9D9FE /* MatchTest.swift in Sources */, 1F4A56741A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, 1F4A56831A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, + 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */, 1F925F03195C189500ED456B /* ContainTest.swift in Sources */, 1F4A56891A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, 1F4A568F1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, @@ -1502,6 +1570,7 @@ 1F8A37B11B7C5042001C8357 /* ObjCSyncTest.m in Sources */, 1F4A56951A3B346F009E1637 /* ObjCContainTest.m in Sources */, 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */, + 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */, 1F925EF7195C147800ED456B /* BeCloseToTest.swift in Sources */, 1F4A567A1A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, AE7ADE4A1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/README.md b/Carthage/Checkouts/Quick/Externals/Nimble/README.md index 684255e..ecf9501 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/README.md +++ b/Carthage/Checkouts/Quick/Externals/Nimble/README.md @@ -23,7 +23,7 @@ expect(ocean.isClean).toEventually(beTruthy()) - [Some Background: Expressing Outcomes Using Assertions in XCTest](#some-background-expressing-outcomes-using-assertions-in-xctest) - [Nimble: Expectations Using `expect(...).to`](#nimble-expectations-using-expectto) - [Custom Failure Messages](#custom-failure-messages) - - [Type Checking](#type-checking) + - [Type Safety](#type-safety) - [Operator Overloads](#operator-overloads) - [Lazily Computed Values](#lazily-computed-values) - [C Primitives](#c-primitives) @@ -31,6 +31,7 @@ expect(ocean.isClean).toEventually(beTruthy()) - [Objective-C Support](#objective-c-support) - [Disabling Objective-C Shorthand](#disabling-objective-c-shorthand) - [Built-in Matcher Functions](#built-in-matcher-functions) + - [Type Checking](#type-checking) - [Equivalence](#equivalence) - [Identity](#identity) - [Comparisons](#comparisons) @@ -164,7 +165,7 @@ expect(@(1+1)).toWithDescription(equal(@3), @"Make sure libKindergartenMath is l // expected to equal <3.0000>, got <2.0000> ``` -## Type Checking +## Type Safety Nimble makes sure you don't compare two types that don't match: @@ -489,6 +490,67 @@ NMB_expect(^{ return seagull.squawk; }, __FILE__, __LINE__).to(NMB_equal(@"Squee Nimble includes a wide variety of matcher functions. +## Type Checking + +Nimble supports checking the type membership of any kind of object, whether +Objective-C conformant or not: + +```swift +// Swift + +protocol SomeProtocol{} +class SomeClassConformingToProtocol: SomeProtocol{} +struct SomeStructConformingToProtocol: SomeProtocol{} + +// The following tests pass +expect(1).to(beKindOf(Int.self)) +expect("turtle").to(beKindOf(String.self)) + +let classObject = SomeClassConformingToProtocol() +expect(classObject).to(beKindOf(SomeProtocol.self)) +expect(classObject).to(beKindOf(SomeClassConformingToProtocol.self)) +expect(classObject).toNot(beKindOf(SomeStructConformingToProtocol.self)) + +let structObject = SomeStructConformingToProtocol() +expect(structObject).to(beKindOf(SomeProtocol.self)) +expect(structObject).to(beKindOf(SomeStructConformingToProtocol.self)) +expect(structObject).toNot(beKindOf(SomeClassConformingToProtocol.self)) +``` + +```objc +// Objective-C + +// The following tests pass +NSMutableArray *array = [NSMutableArray array]; +expect(array).to(beAKindOf([NSArray class])); +expect(@1).toNot(beAKindOf([NSNull class])); +``` + +Objects can be tested for their exact types using the `beAnInstanceOf` matcher: +```swift +// Swift + +protocol SomeProtocol{} +class SomeClassConformingToProtocol: SomeProtocol{} +struct SomeStructConformingToProtocol: SomeProtocol{} + +// Unlike the 'beKindOf' matcher, the 'beAnInstanceOf' matcher only +// passes if the object is the EXACT type requested. The following +// tests pass -- note its behavior when working in an inheritance hierarchy. +expect(1).to(beAnInstanceOf(Int.self)) +expect("turtle").to(beAnInstanceOf(String.self)) + +let classObject = SomeClassConformingToProtocol() +expect(classObject).toNot(beAnInstanceOf(SomeProtocol.self)) +expect(classObject).to(beAnInstanceOf(SomeClassConformingToProtocol.self)) +expect(classObject).toNot(beAnInstanceOf(SomeStructConformingToProtocol.self)) + +let structObject = SomeStructConformingToProtocol() +expect(structObject).toNot(beAnInstanceOf(SomeProtocol.self)) +expect(structObject).to(beAnInstanceOf(SomeStructConformingToProtocol.self)) +expect(structObject).toNot(beAnInstanceOf(SomeClassConformingToProtocol.self)) +```` + ## Equivalence ```swift @@ -911,6 +973,47 @@ expect(actual).to(endWith(expected)); Like `contain`, in Objective-C `beginWith` and `endWith` only support a single argument [for now](https://github.com/Quick/Nimble/issues/27). +For code that returns collections of complex objects without a strict +ordering, there is the `containElementSatisfying` matcher: + +```swift +struct Turtle { + var color: String! +} + +var turtles = functionThatReturnsSomeTurtlesInAnyOrder() + +// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] +// or [{color: "green"}, {color: "blue"}] +expect(turtles).to(containElementSatisfying({ turtle in + return turtle.color == "green" +})) +expect(turtles).to(containElementSatisfying({ turtle in + return turtle.color == "blue" +}, "that is a turtle with color 'blue'")) + +// The second matcher will incorporate the provided string in the error message +// should it fail +``` + +```objc +@interface Turtle: NSObject +@property(nonatomic) NSString *color; +@end +@implementation Turtle @end + +NSArray *turtles = functionThatReturnsSomeTurtlesInAnyOrder(); + +// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] +// or [{color: "green"}, {color: "blue"}] +expect(turtles).to(containElementSatisfying(^BOOL(id object) { + return [turtle.color isEqualToString:@"green"]; +})); +expect(turtles).to(containElementSatisfying(^BOOL(id object) { + return [turtle.color isEqualToString:@"blue"]; +})); +``` + ## Strings ```swift diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift index 2fa67c9..5bf2794 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift @@ -27,43 +27,43 @@ private func raiseBadInstructionException() { /// A simple NSException subclass. It's not required to subclass NSException (since the exception type is represented in the name) but this helps for identifying the exception through runtime type. @objc public class BadInstructionException: NSException { static var name: String = "com.cocoawithlove.BadInstruction" - + init() { super.init(name: NSExceptionName(rawValue: BadInstructionException.name), reason: nil, userInfo: nil) } - + required public init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } - + /// An Objective-C callable function, invoked from the `mach_exc_server` callback function `catch_mach_exception_raise_state` to push the `raiseBadInstructionException` function onto the stack. public class func catch_mach_exception_raise_state(_ exception_port: mach_port_t, exception: exception_type_t, code: UnsafePointer, codeCnt: mach_msg_type_number_t, flavor: UnsafeMutablePointer, old_state: UnsafePointer, old_stateCnt: mach_msg_type_number_t, new_state: thread_state_t, new_stateCnt: UnsafeMutablePointer) -> kern_return_t { - + #if arch(x86_64) // Make sure we've been given enough memory if old_stateCnt != x86_THREAD_STATE64_COUNT || new_stateCnt.pointee < x86_THREAD_STATE64_COUNT { return KERN_INVALID_ARGUMENT } - + // Read the old thread state var state = old_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { return $0.pointee } - + // 1. Decrement the stack pointer state.__rsp -= __uint64_t(MemoryLayout.size) - + // 2. Save the old Instruction Pointer to the stack. if let pointer = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(state.__rsp)) { pointer.pointee = state.__rip } else { return KERN_INVALID_ARGUMENT } - + // 3. Set the Instruction Pointer to the new function's address var f: @convention(c) () -> Void = raiseBadInstructionException withUnsafePointer(to: &f) { state.__rip = $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { return $0.pointee } } - + // Write the new thread state new_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { $0.pointee = state } new_stateCnt.pointee = x86_THREAD_STATE64_COUNT diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift index ab460b3..4d82f7a 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift @@ -21,10 +21,10 @@ import Foundation #if arch(x86_64) - + private enum PthreadError: Error { case code(Int32) } private enum MachExcServer: Error { case code(kern_return_t) } - + /// A quick function for converting Mach error results into Swift errors private func kernCheck(_ f: () -> Int32) throws { let r = f() @@ -32,7 +32,7 @@ import Foundation throw NSError(domain: NSMachErrorDomain, code: Int(r), userInfo: nil) } } - + extension execTypesCountTuple { mutating func pointer(in block: (UnsafeMutablePointer) -> R) -> R { return withUnsafeMutablePointer(to: &self) { p -> R in @@ -42,7 +42,7 @@ import Foundation } } } - + extension request_mach_exception_raise_t { mutating func withMsgHeaderPointer(in block: (UnsafeMutablePointer) -> R) -> R { return withUnsafeMutablePointer(to: &self) { p -> R in @@ -52,7 +52,7 @@ import Foundation } } } - + extension reply_mach_exception_raise_state_t { mutating func withMsgHeaderPointer(in block: (UnsafeMutablePointer) -> R) -> R { return withUnsafeMutablePointer(to: &self) { p -> R in @@ -62,7 +62,7 @@ import Foundation } } } - + /// A structure used to store context associated with the Mach message port private struct MachContext { var masks = execTypesCountTuple() @@ -72,7 +72,7 @@ import Foundation var flavors = execTypesCountTuple() var currentExceptionPort: mach_port_t = 0 var handlerThread: pthread_t? = nil - + mutating func withUnsafeMutablePointers(in block: (UnsafeMutablePointer, UnsafeMutablePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> R) -> R { return masks.pointer { masksPtr in return ports.pointer { portsPtr in @@ -85,13 +85,13 @@ import Foundation } } } - + /// A function for receiving mach messages and parsing the first with mach_exc_server (and if any others are received, throwing them away). private func machMessageHandler(_ arg: UnsafeMutableRawPointer) -> UnsafeMutableRawPointer? { let context = arg.assumingMemoryBound(to: MachContext.self).pointee var request = request_mach_exception_raise_t() var reply = reply_mach_exception_raise_state_t() - + var handledfirstException = false repeat { do { // Request the next mach message from the port @@ -100,26 +100,26 @@ import Foundation try kernCheck { request.withMsgHeaderPointer { requestPtr in mach_msg(requestPtr, MACH_RCV_MSG | MACH_RCV_INTERRUPT, 0, request.Head.msgh_size, context.currentExceptionPort, 0, UInt32(MACH_PORT_NULL)) } } - + // Prepare the reply structure reply.Head.msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(request.Head.msgh_bits), 0) reply.Head.msgh_local_port = UInt32(MACH_PORT_NULL) reply.Head.msgh_remote_port = request.Head.msgh_remote_port reply.Head.msgh_size = UInt32(MemoryLayout.size) reply.NDR = NDR_record - + if !handledfirstException { // Use the MiG generated server to invoke our handler for the request and fill in the rest of the reply structure guard request.withMsgHeaderPointer(in: { requestPtr in reply.withMsgHeaderPointer { replyPtr in mach_exc_server(requestPtr, replyPtr) } }) != 0 else { throw MachExcServer.code(reply.RetCode) } - + handledfirstException = true } else { // If multiple fatal errors occur, don't handle subsquent errors (let the program crash) reply.RetCode = KERN_FAILURE } - + // Send the reply try kernCheck { reply.withMsgHeaderPointer { replyPtr in mach_msg(replyPtr, MACH_SEND_MSG, reply.Head.msgh_size, 0, UInt32(MACH_PORT_NULL), 0, UInt32(MACH_PORT_NULL)) @@ -133,7 +133,7 @@ import Foundation fatalError("Mach message error: \(error)") } } while true } - + /// Run the provided block. If a mach "BAD_INSTRUCTION" exception is raised, catch it and return a BadInstructionException (which captures stack information about the throw site, if desired). Otherwise return nil. /// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a "BAD_INSTRUCTION" exception is raised, the block will be exited before completion via Objective-C exception. The risks associated with an Objective-C exception apply here: most Swift/Objective-C functions are *not* exception-safe. Memory may be leaked and the program will not necessarily be left in a safe state. /// - parameter block: a function without parameters that will be run @@ -150,7 +150,7 @@ import Foundation pthread_join(handlerThread!, nil) } } - + try kernCheck { // 1. Create the mach port mach_port_allocate(mach_task_self_, MACH_PORT_RIGHT_RECEIVE, &context.currentExceptionPort) @@ -159,27 +159,27 @@ import Foundation // 7. Cleanup the mach port mach_port_destroy(mach_task_self_, context.currentExceptionPort) } - + try kernCheck { // 2. Configure the mach port mach_port_insert_right(mach_task_self_, context.currentExceptionPort, context.currentExceptionPort, MACH_MSG_TYPE_MAKE_SEND) } - + try kernCheck { context.withUnsafeMutablePointers { masksPtr, portsPtr, behaviorsPtr, flavorsPtr in // 3. Apply the mach port as the handler for this thread thread_swap_exception_ports(mach_thread_self(), EXC_MASK_BAD_INSTRUCTION, context.currentExceptionPort, Int32(bitPattern: UInt32(EXCEPTION_STATE) | MACH_EXCEPTION_CODES), x86_THREAD_STATE64, masksPtr, &context.count, portsPtr, behaviorsPtr, flavorsPtr) } } - + defer { context.withUnsafeMutablePointers { masksPtr, portsPtr, behaviorsPtr, flavorsPtr in // 6. Unapply the mach port _ = thread_swap_exception_ports(mach_thread_self(), EXC_MASK_BAD_INSTRUCTION, 0, EXCEPTION_DEFAULT, THREAD_STATE_NONE, masksPtr, &context.count, portsPtr, behaviorsPtr, flavorsPtr) } } - + try withUnsafeMutablePointer(to: &context) { c throws in // 4. Create the thread let e = pthread_create(&handlerThread, nil, machMessageHandler, c) guard e == 0 else { throw PthreadError.code(e) } - + // 5. Run the block result = BadInstructionException.catchException(in: block) } @@ -191,4 +191,3 @@ import Foundation } #endif - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift index b3afb12..bf30908 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift @@ -34,7 +34,7 @@ import Foundation // * Plus all of the same caveats as the Mach exceptions version (doesn't play well with other handlers, probably leaks ARC memory, etc) // Treat it like a loaded shotgun. Don't point it at your face. -private var env = jmp_buf(0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0) +private var env = jmp_buf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) private func triggerLongJmp() { longjmp(&env.0, 1) @@ -72,7 +72,7 @@ public func catchBadInstruction( block: () -> Void) -> BadInstructionException? var sigActionPrev = sigaction() let action = __sigaction_u(__sa_sigaction: sigIllHandler) var sigActionNew = sigaction(__sigaction_u: action, sa_mask: sigset_t(), sa_flags: SA_SIGINFO) - + // Install the signal action if sigaction(SIGILL, &sigActionNew, &sigActionPrev) != 0 { fatalError("Sigaction error: \(errno)") @@ -93,7 +93,7 @@ public func catchBadInstruction( block: () -> Void) -> BadInstructionException? // Run the block block() - + return nil } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift index 12a6b9f..35e1ad5 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift @@ -55,7 +55,7 @@ let EXC_TYPES_COUNT = 14 struct execTypesCountTuple { // From /usr/include/mach/i386/exception.h // #define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ - var value: (T,T,T,T,T,T,T,T,T,T,T,T,T,T) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + var value: (T, T, T, T, T, T, T, T, T, T, T, T, T, T) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) init() { } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift index 2e30f61..94a9030 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift @@ -1,4 +1,3 @@ - /// AssertionDispatcher allows multiple AssertionHandlers to receive /// assertion messages. /// diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift index 7d0bab2..740c392 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift @@ -22,7 +22,7 @@ public struct AssertionRecord: CustomStringConvertible { /// This is useful for testing failure messages for matchers. /// /// @see AssertionHandler -public class AssertionRecorder : AssertionHandler { +public class AssertionRecorder: AssertionHandler { /// All the assertions that were captured by this recorder public var assertions = [AssertionRecord]() @@ -43,7 +43,7 @@ public class AssertionRecorder : AssertionHandler { /// Once the closure finishes, then the original Nimble assertion handler is restored. /// /// @see AssertionHandler -public func withAssertionHandler(_ tempAssertionHandler: AssertionHandler, closure: @escaping () throws -> Void) { +public func withAssertionHandler(_ tempAssertionHandler: AssertionHandler, closure: () throws -> Void) { let environment = NimbleEnvironment.activeInstance let oldRecorder = environment.assertionHandler let capturer = NMBExceptionCapture(handler: nil, finally: ({ diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift index 47d4eed..1c51cd7 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift @@ -2,7 +2,7 @@ import Foundation #if _runtime(_ObjC) -internal struct ObjCMatcherWrapper : Matcher { +internal struct ObjCMatcherWrapper: Matcher { let matcher: NMBMatcher func matches(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { @@ -21,7 +21,7 @@ internal struct ObjCMatcherWrapper : Matcher { } // Equivalent to Expectation, but for Nimble's Objective-C interface -public class NMBExpectation : NSObject { +public class NMBExpectation: NSObject { internal let _actualBlock: () -> NSObject! internal var _negative: Bool internal let _file: FileString @@ -36,7 +36,7 @@ public class NMBExpectation : NSObject { } private var expectValue: Expectation { - return expect(_file, line: _line){ + return expect(_file, line: _line) { self._actualBlock() as NSObject? } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift index c609f69..19a4567 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift @@ -5,7 +5,7 @@ import Foundation public typealias MatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage) -> Bool public typealias FullMatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage, _ shouldNotMatch: Bool) -> Bool -public class NMBObjCMatcher : NSObject, NMBMatcher { +public class NMBObjCMatcher: NSObject, NMBMatcher { let _match: MatcherBlock let _doesNotMatch: MatcherBlock let canMatchNil: Bool diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift index 1aba8bc..78e6dd9 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift @@ -3,7 +3,7 @@ import XCTest /// Default handler for Nimble. This assertion handler passes failures along to /// XCTest. -public class NimbleXCTestHandler : AssertionHandler { +public class NimbleXCTestHandler: AssertionHandler { public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { if !assertion { recordFailure("\(message.stringValue)\n", location: location) @@ -29,14 +29,14 @@ public class NimbleShortXCTestHandler: AssertionHandler { /// Fallback handler in case XCTest is unavailable. This assertion handler will abort /// the program if it is invoked. -class NimbleXCTestUnavailableHandler : AssertionHandler { +class NimbleXCTestUnavailableHandler: AssertionHandler { func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { fatalError("XCTest is not available and no custom assertion handler was configured. Aborting.") } } -#if _runtime(_ObjC) - /// Helper class providing access to the currently executing XCTestCase instance, if any +#if !SWIFT_PACKAGE +/// Helper class providing access to the currently executing XCTestCase instance, if any @objc final internal class CurrentTestCaseTracker: NSObject, XCTestObservation { @objc static let sharedInstance = CurrentTestCaseTracker() @@ -52,7 +52,6 @@ class NimbleXCTestUnavailableHandler : AssertionHandler { } #endif - func isXCTestAvailable() -> Bool { #if _runtime(_ObjC) // XCTest is weakly linked and so may not be present @@ -63,7 +62,9 @@ func isXCTestAvailable() -> Bool { } private func recordFailure(_ message: String, location: SourceLocation) { -#if _runtime(_ObjC) +#if SWIFT_PACKAGE + XCTFail("\(message)", file: location.file, line: location.line) +#else if let testCase = CurrentTestCaseTracker.sharedInstance.currentTestCase { testCase.recordFailure(withDescription: message, inFile: location.file, atLine: location.line, expected: true) } else { @@ -71,7 +72,5 @@ private func recordFailure(_ message: String, location: SourceLocation) { "The failure was:\n\"\(message)\"\nIt occurred at: \(location.file):\(location.line)" NSException(name: .internalInconsistencyException, reason: msg, userInfo: nil).raise() } -#else - XCTFail("\(message)\n", file: location.file, line: location.line) #endif } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift index 619b6dc..f7f373f 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift @@ -39,7 +39,7 @@ internal class NMBWait: NSObject { ) capture.tryBlock { do { - try action() { + try action { done(.none) } } catch let e { @@ -70,12 +70,12 @@ internal class NMBWait: NSObject { } } - #if _runtime(_ObjC) - @objc(untilFile:line:action:) + #if SWIFT_PACKAGE internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) -> Void { until(timeout: 1, file: file, line: line, action: action) } #else + @objc(untilFile:line:action:) internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) -> Void { until(timeout: 1, file: file, line: line, action: action) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift index 16d7c3b..c5978f4 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift @@ -1,8 +1,7 @@ import Foundation internal func expressionMatches(_ expression: Expression, matcher: U, to: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T -{ + where U: Matcher, U.ValueType == T { let msg = FailureMessage() msg.userDescription = description msg.to = to @@ -19,8 +18,7 @@ internal func expressionMatches(_ expression: Expression, matcher: U, t } internal func expressionDoesNotMatch(_ expression: Expression, matcher: U, toNot: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T -{ + where U: Matcher, U.ValueType == T { let msg = FailureMessage() msg.userDescription = description msg.to = toNot @@ -47,16 +45,14 @@ public struct Expectation { /// Tests the actual value using a matcher to match. public func to(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { let (pass, msg) = expressionMatches(expression, matcher: matcher, to: "to", description: description) verify(pass, msg) } /// Tests the actual value using a matcher to not match. public func toNot(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { let (pass, msg) = expressionDoesNotMatch(expression, matcher: matcher, toNot: "to not", description: description) verify(pass, msg) } @@ -65,8 +61,7 @@ public struct Expectation { /// /// Alias to toNot(). public func notTo(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { toNot(matcher, description: description) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift index 8ba53e4..f7afffe 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift @@ -5,7 +5,7 @@ import Foundation internal func memoizedClosure(_ closure: @escaping () throws -> T) -> (Bool) throws -> T { var cache: T? return ({ withoutCaching in - if (withoutCaching || cache == nil) { + if withoutCaching || cache == nil { cache = try closure() } return cache! diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift index 2d245e5..24b6c8f 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift @@ -59,7 +59,7 @@ public class FailureMessage: NSObject { if let userDescription = userDescription { return "\(userDescription)\n\(value)" } - + return value } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift index 3a9258d..73e79d3 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift @@ -1,36 +1,31 @@ import Foundation -public func allPass +public func allPass (_ passFunc: @escaping (T?) -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T -{ + where U: Sequence, U.Iterator.Element == T { return allPass("pass a condition", passFunc) } -public func allPass +public func allPass (_ passName: String, _ passFunc: @escaping (T?) -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T -{ - return createAllPassMatcher() { - expression, failureMessage in + where U: Sequence, U.Iterator.Element == T { + return createAllPassMatcher { expression, failureMessage in failureMessage.postfixMessage = passName return passFunc(try expression.evaluate()) } } -public func allPass +public func allPass (_ matcher: V) -> NonNilMatcherFunc - where U: Sequence, V: Matcher, U.Iterator.Element == V.ValueType -{ - return createAllPassMatcher() { + where U: Sequence, V: Matcher, U.Iterator.Element == V.ValueType { + return createAllPassMatcher { try matcher.matches($0, failureMessage: $1) } } -private func createAllPassMatcher +private func createAllPassMatcher (_ elementEvaluator: @escaping (Expression, FailureMessage) throws -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T -{ + where U: Sequence, U.Iterator.Element == T { return NonNilMatcherFunc { actualExpression, failureMessage in failureMessage.actualValue = nil if let actualValue = try actualExpression.evaluate() { @@ -62,7 +57,7 @@ extension NMBObjCMatcher { let location = actualExpression.location let actualValue = try! actualExpression.evaluate() var nsObjects = [NSObject]() - + var collectionIsUsable = true if let value = actualValue as? NSFastEnumeration { let generator = NSFastEnumerationIterator(value) @@ -77,7 +72,7 @@ extension NMBObjCMatcher { } else { collectionIsUsable = false } - + if !collectionIsUsable { failureMessage.postfixMessage = "allPass only works with NSFastEnumeration (NSArray, NSSet, ...) of NSObjects" @@ -85,12 +80,11 @@ extension NMBObjCMatcher { failureMessage.to = "" return false } - + let expr = Expression(expression: ({ nsObjects }), location: location) let elementEvaluator: (Expression, FailureMessage) -> Bool = { expression, failureMessage in - return matcher.matches( - {try! expression.evaluate()}, failureMessage: failureMessage, location: expr.location) + return matcher.matches({try! expression.evaluate()}, failureMessage: failureMessage, location: expr.location) } return try! createAllPassMatcher(elementEvaluator).matches( expr, failureMessage: failureMessage) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift index 6b89c76..b971ccc 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift @@ -8,8 +8,7 @@ public struct AsyncDefaults { } internal struct AsyncMatcherWrapper: Matcher - where U: Matcher, U.ValueType == T -{ + where U: Matcher, U.ValueType == T { let fullMatcher: U let timeoutInterval: TimeInterval let pollInterval: TimeInterval @@ -31,7 +30,7 @@ internal struct AsyncMatcherWrapper: Matcher fnName: fnName) { try self.fullMatcher.matches(uncachedExpression, failureMessage: failureMessage) } - switch (result) { + switch result { case let .completed(isSuccessful): return isSuccessful case .timedOut: return false case let .errorThrown(error): @@ -48,7 +47,7 @@ internal struct AsyncMatcherWrapper: Matcher } } - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { + func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { let uncachedExpression = actualExpression.withoutCaching() let result = pollBlock( pollInterval: pollInterval, @@ -58,7 +57,7 @@ internal struct AsyncMatcherWrapper: Matcher fnName: "expect(...).toEventuallyNot(...)") { try self.fullMatcher.doesNotMatch(uncachedExpression, failureMessage: failureMessage) } - switch (result) { + switch result { case let .completed(isSuccessful): return isSuccessful case .timedOut: return false case let .errorThrown(error): @@ -78,7 +77,6 @@ internal struct AsyncMatcherWrapper: Matcher private let toEventuallyRequiresClosureError = FailureMessage(stringValue: "expect(...).toEventually(...) requires an explicit closure (eg - expect { ... }.toEventually(...) )\nSwift 1.2 @autoclosure behavior has changed in an incompatible way for Nimble to function") - extension Expectation { /// Tests the actual value using a matcher to match by checking continuously /// at each pollInterval until the timeout is reached. @@ -87,8 +85,7 @@ extension Expectation { /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. public func toEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { if expression.isClosure { let (pass, msg) = expressionMatches( expression, @@ -112,8 +109,7 @@ extension Expectation { /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. public func toEventuallyNot(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { if expression.isClosure { let (pass, msg) = expressionDoesNotMatch( expression, @@ -139,8 +135,7 @@ extension Expectation { /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. public func toNotEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T - { + where U: Matcher, U.ValueType == T { return toEventuallyNot(matcher, timeout: timeout, pollInterval: pollInterval, description: description) } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift index 99b8f8f..f636a72 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift @@ -1,17 +1,27 @@ import Foundation -#if _runtime(_ObjC) - -// A Nimble matcher that catches attempts to use beAKindOf with non Objective-C types -public func beAKindOf(_ expectedClass: Any) -> NonNilMatcherFunc { +/// A Nimble matcher that succeeds when the actual value is an instance of the given class. +public func beAKindOf(_ expectedType: T.Type) -> NonNilMatcherFunc { return NonNilMatcherFunc {actualExpression, failureMessage in - failureMessage.stringValue = "beAKindOf only works on Objective-C types since" - + " the Swift compiler will automatically type check Swift-only types." - + " This expectation is redundant." - return false + failureMessage.postfixMessage = "be a kind of \(String(describing: expectedType))" + let instance = try actualExpression.evaluate() + guard let validInstance = instance else { + failureMessage.actualValue = "" + return false + } + + failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" + + guard validInstance is T else { + return false + } + + return true } } +#if _runtime(_ObjC) + /// A Nimble matcher that succeeds when the actual value is an instance of the given class. /// @see beAnInstanceOf if you want to match against the exact class public func beAKindOf(_ expectedClass: AnyClass) -> NonNilMatcherFunc { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift index 2298c78..07ce3d3 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift @@ -1,11 +1,21 @@ import Foundation -// A Nimble matcher that catches attempts to use beAnInstanceOf with non Objective-C types -public func beAnInstanceOf(_ expectedClass: Any) -> NonNilMatcherFunc { +/// A Nimble matcher that succeeds when the actual value is an _exact_ instance of the given class. +public func beAnInstanceOf(_ expectedType: T.Type) -> NonNilMatcherFunc { return NonNilMatcherFunc {actualExpression, failureMessage in - failureMessage.stringValue = "beAnInstanceOf only works on Objective-C types since" - + " the Swift compiler will automatically type check Swift-only types." - + " This expectation is redundant." + failureMessage.postfixMessage = "be an instance of \(String(describing: expectedType))" + let instance = try actualExpression.evaluate() + guard let validInstance = instance else { + failureMessage.actualValue = "" + return false + } + + failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" + + if type(of: validInstance) == expectedType { + return true + } + return false } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift index 48e9895..95c52cf 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift @@ -29,7 +29,7 @@ public func beCloseTo(_ expectedValue: NMBDoubleConvertible, within delta: Doubl } #if _runtime(_ObjC) -public class NMBObjCBeCloseToMatcher : NSObject, NMBMatcher { +public class NMBObjCBeCloseToMatcher: NSObject, NMBMatcher { var _expected: NSNumber var _delta: CDouble init(expected: NSNumber, within: CDouble) { @@ -106,7 +106,7 @@ public func ≈(lhs: Expectation, rhs: (expected: NMBDoubl lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) } -public func ==(lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { +public func == (lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift index 19df0d2..2ea2cdb 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift @@ -1,6 +1,5 @@ import Foundation - /// A Nimble matcher that succeeds when a value is "empty". For collections, this /// means the are no items in that collection. For strings, it is an empty string. public func beEmpty() -> NonNilMatcherFunc { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift index 1345199..c7eb84c 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift @@ -1,6 +1,5 @@ import Foundation - /// A Nimble matcher that succeeds when the actual value is greater than the expected value. public func beGreaterThan(_ expectedValue: T?) -> NonNilMatcherFunc { return NonNilMatcherFunc { actualExpression, failureMessage in @@ -26,7 +25,7 @@ public func >(lhs: Expectation, rhs: T) { lhs.to(beGreaterThan(rhs)) } -public func >(lhs: Expectation, rhs: NMBComparable?) { +public func > (lhs: Expectation, rhs: NMBComparable?) { lhs.to(beGreaterThan(rhs)) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift index ca3357b..8df7e5f 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift @@ -1,6 +1,5 @@ import Foundation - /// A Nimble matcher that succeeds when the actual value is the same instance /// as the expected instance. public func beIdenticalTo(_ expected: Any?) -> NonNilMatcherFunc { @@ -20,10 +19,10 @@ public func beIdenticalTo(_ expected: Any?) -> NonNilMatcherFunc { } } -public func ===(lhs: Expectation, rhs: Any?) { +public func === (lhs: Expectation, rhs: Any?) { lhs.to(beIdenticalTo(rhs)) } -public func !==(lhs: Expectation, rhs: Any?) { +public func !== (lhs: Expectation, rhs: Any?) { lhs.toNot(beIdenticalTo(rhs)) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift index fbcd7c7..5bbbf36 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift @@ -25,7 +25,7 @@ public func <(lhs: Expectation, rhs: T) { lhs.to(beLessThan(rhs)) } -public func <(lhs: Expectation, rhs: NMBComparable?) { +public func < (lhs: Expectation, rhs: NMBComparable?) { lhs.to(beLessThan(rhs)) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift index 8f86265..92a8d43 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift @@ -9,10 +9,10 @@ public func beVoid() -> MatcherFunc<()> { } } -public func ==(lhs: Expectation<()>, rhs: ()) { +public func == (lhs: Expectation<()>, rhs: ()) { lhs.to(beVoid()) } -public func !=(lhs: Expectation<()>, rhs: ()) { +public func != (lhs: Expectation<()>, rhs: ()) { lhs.toNot(beVoid()) -} \ No newline at end of file +} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift index ef6c603..31cbe5d 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift @@ -1,11 +1,9 @@ import Foundation - /// A Nimble matcher that succeeds when the actual sequence's first element /// is equal to the expected value. public func beginWith(_ startingElement: T) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ + where S.Iterator.Element == T { return NonNilMatcherFunc { actualExpression, failureMessage in failureMessage.postfixMessage = "begin with <\(startingElement)>" if let actualValue = try actualExpression.evaluate() { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift index 4400d30..5053642 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift @@ -2,14 +2,12 @@ import Foundation /// A Nimble matcher that succeeds when the actual sequence contains the expected value. public func contain(_ items: T...) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ + where S.Iterator.Element == T { return contain(items) } public func contain(_ items: [T]) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ + where S.Iterator.Element == T { return NonNilMatcherFunc { actualExpression, failureMessage in failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" if let actual = try actualExpression.evaluate() { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift new file mode 100644 index 0000000..ae8cca2 --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift @@ -0,0 +1,59 @@ +import Foundation + +public func containElementSatisfying(_ predicate: @escaping ((T) -> Bool), _ predicateDescription: String = "") -> NonNilMatcherFunc where S.Iterator.Element == T { + + return NonNilMatcherFunc { actualExpression, failureMessage in + failureMessage.actualValue = nil + + if predicateDescription == "" { + failureMessage.postfixMessage = "find object in collection that satisfies predicate" + } else { + failureMessage.postfixMessage = "find object in collection \(predicateDescription)" + } + + if let sequence = try actualExpression.evaluate() { + for object in sequence { + if predicate(object) { + return true + } + } + + return false + } + + return false + } +} + +#if _runtime(_ObjC) + extension NMBObjCMatcher { + public class func containElementSatisfyingMatcher(_ predicate: @escaping ((NSObject) -> Bool)) -> NMBObjCMatcher { + return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in + let value = try! actualExpression.evaluate() + guard let enumeration = value as? NSFastEnumeration else { + failureMessage.postfixMessage = "containElementSatisfying must be provided an NSFastEnumeration object" + failureMessage.actualValue = nil + failureMessage.expected = "" + failureMessage.to = "" + return false + } + + let iterator = NSFastEnumerationIterator(enumeration) + while let item = iterator.next() { + guard let object = item as? NSObject else { + continue + } + + if predicate(object) { + return true + } + } + + failureMessage.actualValue = nil + failureMessage.postfixMessage = "" + failureMessage.to = "to find object in collection that satisfies predicate" + return false + } + } + } +#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift index b96e96c..00c7e20 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift @@ -1,11 +1,9 @@ import Foundation - /// A Nimble matcher that succeeds when the actual sequence's last element /// is equal to the expected value. public func endWith(_ endingElement: T) -> NonNilMatcherFunc - where S.Iterator.Element == T -{ + where S.Iterator.Element == T { return NonNilMatcherFunc { actualExpression, failureMessage in failureMessage.postfixMessage = "end with <\(endingElement)>" @@ -17,7 +15,7 @@ public func endWith(_ endingElement: T) -> NonNilMatc lastItem = item item = actualGenerator.next() } while(item != nil) - + return lastItem == endingElement } return false @@ -43,7 +41,6 @@ public func endWith(_ endingElement: Any) -> NonNilMatcherFunc(_ expectedValue: [T?]) -> NonNilMatcherFunc<[T?] if expectedValue.count != actualValue.count { return false } - + for (index, item) in actualValue.enumerated() { let otherItem = expectedValue[index] if item == nil && otherItem == nil { @@ -74,12 +74,12 @@ public func equal(_ expectedValue: [T?]) -> NonNilMatcherFunc<[T?] return false } } - + return true } else { failureMessage.postfixActual = " (use beNil() to match nils)" } - + return false } } @@ -146,11 +146,11 @@ public func !=(lhs: Expectation<[T]>, rhs: [T]?) { lhs.toNot(equal(rhs)) } -public func ==(lhs: Expectation>, rhs: Set?) { +public func == (lhs: Expectation>, rhs: Set?) { lhs.to(equal(rhs)) } -public func !=(lhs: Expectation>, rhs: Set?) { +public func != (lhs: Expectation>, rhs: Set?) { lhs.toNot(equal(rhs)) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift index 3ad5fb5..7e80331 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift @@ -5,7 +5,7 @@ import Foundation public func match(_ expectedValue: String?) -> NonNilMatcherFunc { return NonNilMatcherFunc { actualExpression, failureMessage in failureMessage.postfixMessage = "match <\(stringify(expectedValue))>" - + if let actual = try actualExpression.evaluate() { if let regexp = expectedValue { return actual.range(of: regexp, options: .regularExpression) != nil diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift index ac1eb9d..3f27ec1 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift @@ -57,12 +57,12 @@ extension NSDictionary : NMBCollection {} #if _runtime(_ObjC) /// Protocol for types that support beginWith(), endWith(), beEmpty() matchers -@objc public protocol NMBOrderedCollection : NMBCollection { +@objc public protocol NMBOrderedCollection: NMBCollection { @objc(objectAtIndex:) func object(at index: Int) -> Any } #else -public protocol NMBOrderedCollection : NMBCollection { +public protocol NMBOrderedCollection: NMBCollection { func object(at index: Int) -> Any } #endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift index 84b9d49..ac8ee5a 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift @@ -15,9 +15,9 @@ internal class NotificationCollector { } func startObserving() { - self.token = self.notificationCenter.addObserver(forName: nil, object: nil, queue: nil) { + self.token = self.notificationCenter.addObserver(forName: nil, object: nil, queue: nil) { [weak self] n in // linux-swift gets confused by .append(n) - [weak self] n in self?.observedNotifications.append(n) + self?.observedNotifications.append(n) } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift index 09e28c7..2867a1b 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift @@ -97,11 +97,11 @@ internal func exceptionMatchesNonNilFieldsOrClosure( } } } - + return matches } -public class NMBObjCRaiseExceptionMatcher : NSObject, NMBMatcher { +public class NMBObjCRaiseExceptionMatcher: NSObject, NMBMatcher { internal var _name: String? internal var _reason: String? internal var _userInfo: NSDictionary? diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift index b24b3ec..6cef4c2 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift @@ -2,15 +2,13 @@ import Foundation /// A Nimble matcher that succeeds when the actual value matches with any of the matchers /// provided in the variable list of matchers. -public func satisfyAnyOf(_ matchers: U...) -> NonNilMatcherFunc - where U: Matcher, U.ValueType == T -{ +public func satisfyAnyOf(_ matchers: U...) -> NonNilMatcherFunc + where U: Matcher, U.ValueType == T { return satisfyAnyOf(matchers) } -internal func satisfyAnyOf(_ matchers: [U]) -> NonNilMatcherFunc - where U: Matcher, U.ValueType == T -{ +internal func satisfyAnyOf(_ matchers: [U]) -> NonNilMatcherFunc + where U: Matcher, U.ValueType == T { return NonNilMatcherFunc { actualExpression, failureMessage in let postfixMessages = NSMutableArray() var matches = false @@ -30,11 +28,11 @@ internal func satisfyAnyOf(_ matchers: [U]) -> NonNilMatcherFunc } } -public func ||(left: NonNilMatcherFunc, right: NonNilMatcherFunc) -> NonNilMatcherFunc { +public func || (left: NonNilMatcherFunc, right: NonNilMatcherFunc) -> NonNilMatcherFunc { return satisfyAnyOf(left, right) } -public func ||(left: MatcherFunc, right: MatcherFunc) -> NonNilMatcherFunc { +public func || (left: MatcherFunc, right: MatcherFunc) -> NonNilMatcherFunc { return satisfyAnyOf(left, right) } @@ -46,18 +44,17 @@ extension NMBObjCMatcher { failureMessage.stringValue = "satisfyAnyOf must be called with at least one matcher" return false } - + var elementEvaluators = [NonNilMatcherFunc]() for matcher in matchers { let elementEvaluator: (Expression, FailureMessage) -> Bool = { expression, failureMessage in - return matcher.matches( - {try! expression.evaluate()}, failureMessage: failureMessage, location: actualExpression.location) + return matcher.matches({try! expression.evaluate()}, failureMessage: failureMessage, location: actualExpression.location) } - + elementEvaluators.append(NonNilMatcherFunc(elementEvaluator)) } - + return try! satisfyAnyOf(elementEvaluators).matches(actualExpression, failureMessage: failureMessage) } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift index 67f9cf6..c847a1a 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift @@ -5,12 +5,12 @@ public func throwAssertion() -> MatcherFunc { #if arch(x86_64) && _runtime(_ObjC) && !SWIFT_PACKAGE failureMessage.postfixMessage = "throw an assertion" failureMessage.actualValue = nil - + var succeeded = true - + let caughtException: BadInstructionException? = catchBadInstruction { #if os(tvOS) - if (!NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning) { + if !NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning { print() print("[Nimble Warning]: If you're getting stuck on a debugger breakpoint for a " + "fatal error while using throwAssertion(), please disable 'Debug Executable' " + @@ -36,11 +36,11 @@ public func throwAssertion() -> MatcherFunc { if !succeeded { return false } - + if caughtException == nil { return false } - + return true #elseif SWIFT_PACKAGE fatalError("The throwAssertion Nimble matcher does not currently support Swift CLI." + diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift index 8c9b91b..151eb9a 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift @@ -39,14 +39,14 @@ public func throwError( public func throwError( closure: ((Error) -> Void)? = nil) -> MatcherFunc { return MatcherFunc { actualExpression, failureMessage in - + var actualError: Error? do { _ = try actualExpression.evaluate() } catch let catchedError { actualError = catchedError } - + setFailureMessageForError(failureMessage, actualError: actualError, closure: closure) return errorMatchesNonNilFieldsOrClosure(actualError, closure: closure) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift index c902692..943fd30 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift @@ -179,7 +179,7 @@ internal class AwaitPromiseBuilder { trigger.timeoutSource.scheduleOneshot( deadline: DispatchTime.now() + timeoutInterval, leeway: timeoutLeeway) - trigger.timeoutSource.setEventHandler() { + trigger.timeoutSource.setEventHandler { guard self.promise.asyncResult.isIncomplete() else { return } let timedOutSem = DispatchSemaphore(value: 0) let semTimedOutOrBlocked = DispatchSemaphore(value: 0) @@ -287,7 +287,7 @@ internal class Awaiter { let timeoutSource = createTimerSource(timeoutQueue) var completionCount = 0 let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: nil) { - try closure() { + try closure { completionCount += 1 nimblePrecondition( completionCount < 2, @@ -314,7 +314,7 @@ internal class Awaiter { let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: asyncSource) { let interval = DispatchTimeInterval.nanoseconds(Int(pollInterval * TimeInterval(NSEC_PER_SEC))) asyncSource.scheduleRepeating(deadline: .now(), interval: interval, leeway: pollLeeway) - asyncSource.setEventHandler() { + asyncSource.setEventHandler { do { if let result = try closure() { if promise.resolveResult(.completed(result)) { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift index d424c98..f376505 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift @@ -44,8 +44,7 @@ internal func errorMatchesExpectedError( internal func errorMatchesExpectedError( _ actualError: Error, expectedError: T) -> Bool - where T: Equatable -{ + where T: Equatable { if let actualError = actualError as? T { return actualError == expectedError } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift index a7279aa..4e37aef 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift @@ -5,13 +5,13 @@ import Foundation // stdlib, and because recent versions of the XCTest overlay require `StaticString` // when calling `XCTFail`. Under the Objective-C runtime (i.e. building on Mac), we // have to use `String` instead because StaticString can't be generated from Objective-C -#if _runtime(_ObjC) -public typealias FileString = String -#else +#if SWIFT_PACKAGE public typealias FileString = StaticString +#else +public typealias FileString = String #endif -public final class SourceLocation : NSObject { +public final class SourceLocation: NSObject { public let file: FileString public let line: UInt diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift index 012e1e3..8a15c4c 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift @@ -1,6 +1,5 @@ import Foundation - internal func identityAsString(_ value: Any?) -> String { let anyObject: AnyObject? #if os(Linux) @@ -51,7 +50,7 @@ extension NSNumber: TestOutputStringConvertible { // the travis CI build on linux. public var testDescription: String { let description = self.description - + if description.contains(".") { // Travis linux swiftpm build doesn't like casting String to NSString, // which is why this annoying nested initializer thing is here. @@ -87,14 +86,14 @@ extension AnySequence: TestOutputStringConvertible { let generator = self.makeIterator() var strings = [String]() var value: AnySequence.Iterator.Element? - + repeat { value = generator.next() if let value = value { strings.append(stringify(value)) } } while value != nil - + let list = strings.joined(separator: ", ") return "[\(list)]" } @@ -149,11 +148,11 @@ public func stringify(_ value: T) -> String { if let value = value as? TestOutputStringConvertible { return value.testDescription } - + if let value = value as? CustomDebugStringConvertible { return value.debugDescription } - + return String(describing: value) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h index 54677ee..2089607 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h @@ -322,6 +322,10 @@ NIMBLE_EXPORT id NMB_containWithNilTermination(id itemOrSubstring, . #define contain(...) NMB_contain(__VA_ARGS__) #endif +NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)); +NIMBLE_SHORT(id containElementSatisfying(BOOL(^predicate)(id)), + NMB_containElementSatisfying(predicate)); + NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring); NIMBLE_SHORT(id endWith(id itemElementOrSubstring), NMB_endWith(itemElementOrSubstring)); diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m index cd93ddd..31ff810 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m @@ -113,6 +113,10 @@ NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger return [NMBObjCMatcher containMatcher:itemOrSubstringArray]; } +NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)) { + return [NMBObjCMatcher containElementSatisfyingMatcher:predicate]; +} + NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring) { return [NMBObjCMatcher endWithMatcher:itemElementOrSubstring]; } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h index e0ec05a..d2a54d2 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h @@ -4,7 +4,7 @@ @interface NMBExceptionCapture : NSObject - (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)())finally; -- (void)tryBlock:(void(^ _Nonnull)())unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); +- (void)tryBlock:(__attribute__((noescape)) void(^ _Nonnull)())unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); @end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift index 4210ef0..16c6953 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift @@ -10,7 +10,7 @@ XCTMain([ // Matchers testCase(AllPassTest.allTests), - // testCase(BeAKindOfTest.allTests), + testCase(BeAKindOfSwiftTest.allTests), testCase(BeAnInstanceOfTest.allTests), testCase(BeCloseToTest.allTests), testCase(BeginWithTest.allTests), diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift index ff78d47..cafa67e 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift @@ -61,12 +61,12 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { var value = 0 - let sleepThenSetValueTo: (Int) -> () = { newValue in + let sleepThenSetValueTo: (Int) -> Void = { newValue in Thread.sleep(forTimeInterval: 1.1) value = newValue } - var asyncOperation: () -> () = { sleepThenSetValueTo(1) } + var asyncOperation: () -> Void = { sleepThenSetValueTo(1) } if #available(OSX 10.10, *) { DispatchQueue.global().async(execute: asyncOperation) @@ -98,7 +98,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { func testWaitUntilTimesOutIfNotCalled() { failsWithErrorMessage("Waited more than 1.0 second") { - waitUntil(timeout: 1) { done in return } + waitUntil(timeout: 1) { _ in return } } } @@ -106,7 +106,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { var waiting = true failsWithErrorMessage("Waited more than 0.01 seconds") { waitUntil(timeout: 0.01) { done in - let asyncOperation: () -> () = { + let asyncOperation: () -> Void = { Thread.sleep(forTimeInterval: 0.1) done() waiting = false @@ -187,7 +187,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { func testWaitUntilMustBeInMainThread() { #if !SWIFT_PACKAGE var executedAsyncBlock: Bool = false - let asyncOperation: () -> () = { + let asyncOperation: () -> Void = { expect { waitUntil { done in done() } }.to(raiseException(named: "InvalidNimbleAPIUsage")) @@ -205,7 +205,7 @@ final class AsyncTest: XCTestCase, XCTestCaseProvider { func testToEventuallyMustBeInMainThread() { #if !SWIFT_PACKAGE var executedAsyncBlock: Bool = false - let asyncOperation: () -> () = { + let asyncOperation: () -> Void = { expect { expect(1).toEventually(equal(2)) }.to(raiseException(named: "InvalidNimbleAPIUsage")) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift index f300d47..40d9760 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift @@ -24,7 +24,7 @@ public protocol XCTestCaseProvider: XCTestCaseProviderStatic, XCTestCaseNameProv extension XCTestCaseProvider where Self: XCTestCaseProviderStatic { var allTestNames: [String] { - return type(of: self).allTests.map({ name, test in + return type(of: self).allTests.map({ name, _ in return name }) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift index 0b33ea6..bb552ef 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift @@ -66,7 +66,7 @@ func failsWithErrorMessageForNil(_ message: String, file: FileString = #file, li } } -public class NimbleHelper : NSObject { +public class NimbleHelper: NSObject { public class func expectFailureMessage(_ message: NSString, block: @escaping () -> Void, file: FileString, line: UInt) { failsWithErrorMessage(String(describing: message), file: file, line: line, preferOriginalSourceLocation: true, closure: block) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift index 0f4327a..2050881 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift @@ -55,35 +55,35 @@ final class AllPassTest: XCTestCase, XCTestCaseProvider { } func testAllPassArray() { - expect([1,2,3,4]).to(allPass({$0 < 5})) - expect([1,2,3,4]).toNot(allPass({$0 > 5})) + expect([1, 2, 3, 4]).to(allPass({$0 < 5})) + expect([1, 2, 3, 4]).toNot(allPass({$0 > 5})) failsWithErrorMessage( "expected to all pass a condition, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1,2,3,4]).to(allPass({$0 < 3})) + expect([1, 2, 3, 4]).to(allPass({$0 < 3})) } failsWithErrorMessage("expected to not all pass a condition") { - expect([1,2,3,4]).toNot(allPass({$0 < 5})) + expect([1, 2, 3, 4]).toNot(allPass({$0 < 5})) } failsWithErrorMessage( "expected to all be something, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1,2,3,4]).to(allPass("be something", {$0 < 3})) + expect([1, 2, 3, 4]).to(allPass("be something", {$0 < 3})) } failsWithErrorMessage("expected to not all be something") { - expect([1,2,3,4]).toNot(allPass("be something", {$0 < 5})) + expect([1, 2, 3, 4]).toNot(allPass("be something", {$0 < 5})) } } func testAllPassMatcher() { - expect([1,2,3,4]).to(allPass(beLessThan(5))) - expect([1,2,3,4]).toNot(allPass(beGreaterThan(5))) - + expect([1, 2, 3, 4]).to(allPass(beLessThan(5))) + expect([1, 2, 3, 4]).toNot(allPass(beGreaterThan(5))) + failsWithErrorMessage( "expected to all be less than <3>, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1,2,3,4]).to(allPass(beLessThan(3))) + expect([1, 2, 3, 4]).to(allPass(beLessThan(3))) } failsWithErrorMessage("expected to not all be less than <5>") { - expect([1,2,3,4]).toNot(allPass(beLessThan(5))) + expect([1, 2, 3, 4]).toNot(allPass(beLessThan(5))) } } @@ -107,14 +107,14 @@ final class AllPassTest: XCTestCase, XCTestCaseProvider { } func testAllPassSet() { - expect(Set([1,2,3,4])).to(allPass({$0 < 5})) - expect(Set([1,2,3,4])).toNot(allPass({$0 > 5})) + expect(Set([1, 2, 3, 4])).to(allPass({$0 < 5})) + expect(Set([1, 2, 3, 4])).toNot(allPass({$0 > 5})) failsWithErrorMessage("expected to not all pass a condition") { - expect(Set([1,2,3,4])).toNot(allPass({$0 < 5})) + expect(Set([1, 2, 3, 4])).toNot(allPass({$0 < 5})) } failsWithErrorMessage("expected to not all be something") { - expect(Set([1,2,3,4])).toNot(allPass("be something", {$0 < 5})) + expect(Set([1, 2, 3, 4])).toNot(allPass("be something", {$0 < 5})) } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift index 121ecbd..ea16913 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift @@ -1,16 +1,66 @@ +import Foundation import XCTest import Nimble -#if _runtime(_ObjC) +fileprivate class TestNull: NSNull {} +fileprivate protocol TestProtocol {} +fileprivate class TestClassConformingToProtocol: TestProtocol {} +fileprivate struct TestStructConformingToProtocol: TestProtocol {} + +final class BeAKindOfSwiftTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (BeAKindOfSwiftTest) -> () throws -> Void)] { + return [ + ("testPositiveMatch", testPositiveMatch), + ("testFailureMessages", testFailureMessages), + ] + } + + enum TestEnum { + case one, two + } + + func testPositiveMatch() { + expect(1).to(beAKindOf(Int.self)) + expect(1).toNot(beAKindOf(String.self)) + expect("turtle string").to(beAKindOf(String.self)) + expect("turtle string").toNot(beAKindOf(TestClassConformingToProtocol.self)) + + expect(TestEnum.one).to(beAKindOf(TestEnum.self)) -class TestNull : NSNull {} + let testProtocolClass = TestClassConformingToProtocol() + expect(testProtocolClass).to(beAKindOf(TestClassConformingToProtocol.self)) + expect(testProtocolClass).to(beAKindOf(TestProtocol.self)) + expect(testProtocolClass).toNot(beAKindOf(TestStructConformingToProtocol.self)) -final class BeAKindOfTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAKindOfTest) -> () throws -> Void)] { + let testProtocolStruct = TestStructConformingToProtocol() + expect(testProtocolStruct).to(beAKindOf(TestStructConformingToProtocol.self)) + expect(testProtocolStruct).to(beAKindOf(TestProtocol.self)) + expect(testProtocolStruct).toNot(beAKindOf(TestClassConformingToProtocol.self)) + } + + func testFailureMessages() { + failsWithErrorMessage("expected to not be a kind of Int, got ") { + expect(1).toNot(beAKindOf(Int.self)) + } + + let testClass = TestClassConformingToProtocol() + failsWithErrorMessage("expected to not be a kind of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { + expect(testClass).toNot(beAKindOf(TestProtocol.self)) + } + + failsWithErrorMessage("expected to be a kind of String, got ") { + expect(1).to(beAKindOf(String.self)) + } + } +} + +#if _runtime(_ObjC) + +final class BeAKindOfObjCTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (BeAKindOfObjCTest) -> () throws -> Void)] { return [ ("testPositiveMatch", testPositiveMatch), ("testFailureMessages", testFailureMessages), - ("testSwiftTypesFailureMessages", testSwiftTypesFailureMessages), ] } @@ -34,23 +84,6 @@ final class BeAKindOfTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1)).toNot(beAKindOf(NSNumber.self)) } } - - func testSwiftTypesFailureMessages() { - enum TestEnum { - case one, two - } - failsWithErrorMessage("beAKindOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(1).to(beAKindOf(Int.self)) - } - failsWithErrorMessage("beAKindOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect("test").to(beAKindOf(String.self)) - } - failsWithErrorMessage("beAKindOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(TestEnum.one).to(beAKindOf(TestEnum.self)) - } - } } + #endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift index c4a4954..0660a75 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift @@ -2,12 +2,17 @@ import Foundation import XCTest import Nimble +fileprivate protocol TestProtocol {} +fileprivate class TestClassConformingToProtocol: TestProtocol {} +fileprivate struct TestStructConformingToProtocol: TestProtocol {} + final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeAnInstanceOfTest) -> () throws -> Void)] { return [ ("testPositiveMatch", testPositiveMatch), + ("testPositiveMatchSwiftTypes", testPositiveMatchSwiftTypes), ("testFailureMessages", testFailureMessages), - ("testSwiftTypesFailureMessages", testSwiftTypesFailureMessages), + ("testFailureMessagesSwiftTypes", testFailureMessagesSwiftTypes), ] } @@ -16,6 +21,27 @@ final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSDate.self)) } + enum TestEnum { + case one, two + } + + func testPositiveMatchSwiftTypes() { + expect(1).to(beAnInstanceOf(Int.self)) + expect("test").to(beAnInstanceOf(String.self)) + + expect(TestEnum.one).to(beAnInstanceOf(TestEnum.self)) + + let testProtocolClass = TestClassConformingToProtocol() + expect(testProtocolClass).to(beAnInstanceOf(TestClassConformingToProtocol.self)) + expect(testProtocolClass).toNot(beAnInstanceOf(TestProtocol.self)) + expect(testProtocolClass).toNot(beAnInstanceOf(TestStructConformingToProtocol.self)) + + let testProtocolStruct = TestStructConformingToProtocol() + expect(testProtocolStruct).to(beAnInstanceOf(TestStructConformingToProtocol.self)) + expect(testProtocolStruct).toNot(beAnInstanceOf(TestProtocol.self)) + expect(testProtocolStruct).toNot(beAnInstanceOf(TestClassConformingToProtocol.self)) + } + func testFailureMessages() { failsWithErrorMessageForNil("expected to not be an instance of NSNull, got ") { expect(nil as NSNull?).toNot(beAnInstanceOf(NSNull.self)) @@ -35,24 +61,19 @@ final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSNumber.self)) } } - - func testSwiftTypesFailureMessages() { - enum TestEnum { - case one, two - } - failsWithErrorMessage("beAnInstanceOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(1).to(beAnInstanceOf(Int.self)) + func testFailureMessagesSwiftTypes() { + failsWithErrorMessage("expected to not be an instance of Int, got ") { + expect(1).toNot(beAnInstanceOf(Int.self)) } - failsWithErrorMessage("beAnInstanceOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect("test").to(beAnInstanceOf(String.self)) + + let testClass = TestClassConformingToProtocol() + failsWithErrorMessage("expected to be an instance of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { + expect(testClass).to(beAnInstanceOf(TestProtocol.self)) } - failsWithErrorMessage("beAnInstanceOf only works on Objective-C types since the Swift compiler" - + " will automatically type check Swift-only types. This expectation is redundant.") { - expect(TestEnum.one).to(beAnInstanceOf(TestEnum.self)) + + failsWithErrorMessage("expected to be an instance of String, got ") { + expect(1).to(beAnInstanceOf(String.self)) } } - } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift index c9e9c48..7a7e508 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift @@ -43,12 +43,12 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { expect(NSNumber(value:1.2)).to(beCloseTo(9.300, within: 10)) expect(NSNumber(value:1.2)).to(beCloseTo(NSNumber(value:9.300), within: 10)) expect(1.2).to(beCloseTo(NSNumber(value:9.300), within: 10)) - + failsWithErrorMessage("expected to not be close to <1.2001> (within 1), got <1.2>") { expect(NSNumber(value:1.2)).toNot(beCloseTo(1.2001, within: 1.0)) } } - + func testBeCloseToWithCGFloat() { expect(CGFloat(1.2)).to(beCloseTo(1.2001)) expect(CGFloat(1.2)).to(beCloseTo(CGFloat(1.2001))) @@ -60,7 +60,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToWithDate() { expect(Date(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(Date(dateTimeString: "2015-08-26 11:43:05"), within: 10)) - + failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") { let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) expect(Date(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.004)) @@ -79,7 +79,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToOperator() { expect(1.2) ≈ 1.2001 expect(1.2 as CDouble) ≈ 1.2001 - + failsWithErrorMessage("expected to be close to <1.2002> (within 0.0001), got <1.2>") { expect(1.2) ≈ 1.2002 } @@ -88,7 +88,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToWithinOperator() { expect(1.2) ≈ (9.300, 10) expect(1.2) == (9.300, 10) - + failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { expect(1.2) ≈ (1.0, 0.1) } @@ -96,11 +96,11 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { expect(1.2) == (1.0, 0.1) } } - + func testPlusMinusOperator() { expect(1.2) ≈ 9.300 ± 10 expect(1.2) == 9.300 ± 10 - + failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { expect(1.2) ≈ 1.0 ± 0.1 } @@ -149,7 +149,7 @@ final class BeCloseToTest: XCTestCase, XCTestCaseProvider { func testBeCloseToArray() { expect([0.0, 1.1, 2.2]) ≈ [0.0001, 1.1001, 2.2001] expect([0.0, 1.1, 2.2]).to(beCloseTo([0.1, 1.2, 2.3], within: 0.1)) - + failsWithErrorMessage("expected to be close to <[0, 1]> (each within 0.0001), got <[0, 1.1]>") { expect([0.0, 1.1]) ≈ [0.0, 1.0] } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift index d7f35aa..7c4abf3 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift @@ -22,7 +22,7 @@ final class BeEmptyTest: XCTestCase, XCTestCaseProvider { expect(NSDictionary(object: 1, forKey: 1 as NSNumber) as? [Int:Int]).toNot(beEmpty()) #endif - expect(Dictionary()).to(beEmpty()) + expect([Int: Int]()).to(beEmpty()) expect(["hi": 1]).toNot(beEmpty()) #if _runtime(_ObjC) @@ -59,17 +59,17 @@ final class BeEmptyTest: XCTestCase, XCTestCaseProvider { } failsWithErrorMessage("expected to not be empty, got <{()}>") { - expect(NSSet()).toNot(beEmpty()); + expect(NSSet()).toNot(beEmpty()) } failsWithErrorMessage("expected to be empty, got <{(1)}>") { - expect(NSSet(object: NSNumber(value: 1))).to(beEmpty()); + expect(NSSet(object: NSNumber(value: 1))).to(beEmpty()) } failsWithErrorMessage("expected to not be empty, got <()>") { - expect(NSIndexSet()).toNot(beEmpty()); + expect(NSIndexSet()).toNot(beEmpty()) } failsWithErrorMessage("expected to be empty, got <(1)>") { - expect(NSIndexSet(index: 1)).to(beEmpty()); + expect(NSIndexSet(index: 1)).to(beEmpty()) } failsWithErrorMessage("expected to not be empty, got <>") { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift index b7dbf47..6da2c0c 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift @@ -9,7 +9,7 @@ final class BeGreaterThanTest: XCTestCase, XCTestCaseProvider { ("testGreaterThanOperator", testGreaterThanOperator), ] } - + func testGreaterThan() { expect(10).to(beGreaterThan(2)) expect(1).toNot(beGreaterThan(2)) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift index a598bfb..923fa76 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift @@ -21,11 +21,11 @@ final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { func testBeIdenticalToPositive() { expect(self.testObjectA).to(beIdenticalTo(testObjectA)) } - + func testBeIdenticalToNegative() { expect(self.testObjectA).toNot(beIdenticalTo(testObjectB)) } - + func testBeIdenticalToPositiveMessage() { let message = String(describing: NSString(format: "expected to be identical to <%p>, got <%p>", unsafeBitCast(testObjectB, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) @@ -33,7 +33,7 @@ final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { expect(self.testObjectA).to(beIdenticalTo(self.testObjectB)) } } - + func testBeIdenticalToNegativeMessage() { let message = String(describing: NSString(format: "expected to not be identical to <%p>, got <%p>", unsafeBitCast(testObjectA, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) @@ -55,7 +55,7 @@ final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { expect(nil as BeIdenticalToObjectTester?).toNot(beIdenticalTo(self.testObjectA)) } } - + func testOperators() { expect(self.testObjectA) === testObjectA expect(self.testObjectA) !== testObjectB diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift index a68260a..6092988 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift @@ -10,7 +10,7 @@ final class BeIdenticalToTest: XCTestCase, XCTestCaseProvider { ("testBeIdenticalToPositiveMessage", testBeIdenticalToPositiveMessage), ("testBeIdenticalToNegativeMessage", testBeIdenticalToNegativeMessage), ("testOperators", testOperators), - ("testBeAlias", testBeAlias) + ("testBeAlias", testBeAlias), ] } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift index 9b8735c..947a1b4 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift @@ -2,7 +2,7 @@ import XCTest import Nimble import Foundation -enum ConvertsToBool : ExpressibleByBooleanLiteral, CustomStringConvertible { +enum ConvertsToBool: ExpressibleByBooleanLiteral, CustomStringConvertible { case trueLike, falseLike typealias BooleanLiteralType = Bool @@ -14,14 +14,14 @@ enum ConvertsToBool : ExpressibleByBooleanLiteral, CustomStringConvertible { } } - var boolValue : Bool { + var boolValue: Bool { switch self { case .trueLike: return true case .falseLike: return false } } - var description : String { + var description: String { switch self { case .trueLike: return "TrueLike" case .falseLike: return "FalseLike" @@ -29,7 +29,7 @@ enum ConvertsToBool : ExpressibleByBooleanLiteral, CustomStringConvertible { } } -final class BeTruthyTest : XCTestCase, XCTestCaseProvider { +final class BeTruthyTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeTruthyTest) -> () throws -> Void)] { return [ ("testShouldMatchNonNilTypes", testShouldMatchNonNilTypes), @@ -122,7 +122,7 @@ final class BeTruthyTest : XCTestCase, XCTestCaseProvider { } } -final class BeTrueTest : XCTestCase, XCTestCaseProvider { +final class BeTrueTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeTrueTest) -> () throws -> Void)] { return [ ("testShouldMatchTrue", testShouldMatchTrue), @@ -158,7 +158,7 @@ final class BeTrueTest : XCTestCase, XCTestCaseProvider { } } -final class BeFalsyTest : XCTestCase, XCTestCaseProvider { +final class BeFalsyTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeFalsyTest) -> () throws -> Void)] { return [ ("testShouldMatchNilTypes", testShouldMatchNilTypes), @@ -233,7 +233,7 @@ final class BeFalsyTest : XCTestCase, XCTestCaseProvider { } } -final class BeFalseTest : XCTestCase, XCTestCaseProvider { +final class BeFalseTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeFalseTest) -> () throws -> Void)] { return [ ("testShouldNotMatchTrue", testShouldNotMatchTrue), diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift index 78cade0..69f4185 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift @@ -8,7 +8,7 @@ final class BeNilTest: XCTestCase, XCTestCaseProvider { ] } - func producesNil() -> Array? { + func producesNil() -> [Int]? { return nil } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift new file mode 100644 index 0000000..a9fe80e --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift @@ -0,0 +1,86 @@ +import Foundation +import XCTest +import Nimble + +final class ContainElementSatisfyingTest: XCTestCase, XCTestCaseProvider { + static var allTests: [(String, (ContainElementSatisfyingTest) -> () throws -> Void)] { + return [ + ("testContainElementSatisfying", testContainElementSatisfying), + ("testContainElementSatisfyingDefaultErrorMessage", testContainElementSatisfyingDefaultErrorMessage), + ("testContainElementSatisfyingSpecificErrorMessage", testContainElementSatisfyingSpecificErrorMessage), + ("testContainElementSatisfyingNegativeCase", + testContainElementSatisfyingNegativeCase), + ("testContainElementSatisfyingNegativeCaseDefaultErrorMessage", + testContainElementSatisfyingNegativeCaseDefaultErrorMessage), + ("testContainElementSatisfyingNegativeCaseSpecificErrorMessage", + testContainElementSatisfyingNegativeCaseSpecificErrorMessage), + ] + } + + func testContainElementSatisfying() { + var orderIndifferentArray = [1, 2, 3] + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 1 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 2 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 3 + })) + + orderIndifferentArray = [3, 1, 2] + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 1 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 2 + })) + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 3 + })) + } + + func testContainElementSatisfyingDefaultErrorMessage() { + let orderIndifferentArray = [1, 2, 3] + failsWithErrorMessage("expected to find object in collection that satisfies predicate") { + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 4 + })) + } + } + + func testContainElementSatisfyingSpecificErrorMessage() { + let orderIndifferentArray = [1, 2, 3] + failsWithErrorMessage("expected to find object in collection equal to 4") { + expect(orderIndifferentArray).to(containElementSatisfying({ number in + return number == 4 + }, "equal to 4")) + } + } + + func testContainElementSatisfyingNegativeCase() { + let orderIndifferentArray = ["puppies", "kittens", "turtles"] + expect(orderIndifferentArray).toNot(containElementSatisfying({ string in + return string == "armadillos" + })) + } + + func testContainElementSatisfyingNegativeCaseDefaultErrorMessage() { + let orderIndifferentArray = ["puppies", "kittens", "turtles"] + failsWithErrorMessage("expected to not find object in collection that satisfies predicate") { + expect(orderIndifferentArray).toNot(containElementSatisfying({ string in + return string == "kittens" + })) + } + } + + func testContainElementSatisfyingNegativeCaseSpecificErrorMessage() { + let orderIndifferentArray = ["puppies", "kittens", "turtles"] + failsWithErrorMessage("expected to not find object in collection equal to 'kittens'") { + expect(orderIndifferentArray).toNot(containElementSatisfying({ string in + return string == "kittens" + }, "equal to 'kittens'")) + } + } +} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift index 6b20d15..93b0331 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift @@ -16,7 +16,7 @@ final class ContainTest: XCTestCase, XCTestCaseProvider { func testContain() { expect([1, 2, 3]).to(contain(1)) expect([1, 2, 3] as [CInt]).to(contain(1 as CInt)) - expect([1, 2, 3] as Array).to(contain(1 as CInt)) + expect([1, 2, 3] as [CInt]).toNot(contain(4 as CInt)) expect(["foo", "bar", "baz"]).to(contain("baz")) expect([1, 2, 3]).toNot(contain(4)) expect(["foo", "bar", "baz"]).toNot(contain("ba")) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift index a66a784..102e8e1 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift @@ -45,11 +45,11 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { expect([1, 2, 3]).toNot(equal([1, 2])) expect([1, 2, 3]).toNot(equal([1, 2, 4])) - let array1: Array = [1, 2, 3] - let array2: Array = [1, 2, 3] + let array1: [Int] = [1, 2, 3] + let array2: [Int] = [1, 2, 3] expect(array1).to(equal(array2)) expect(array1).to(equal([1, 2, 3])) - expect(array1).toNot(equal([1, 2] as Array)) + expect(array1).toNot(equal([1, 2] as [Int])) #if _runtime(_ObjC) expect(NSArray(array: [1, 2, 3])).to(equal(NSArray(array: [1, 2, 3]))) @@ -182,9 +182,9 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { } func testOperatorEqualityWithArrays() { - let array1: Array = [1, 2, 3] - let array2: Array = [1, 2, 3] - let array3: Array = [1, 2] + let array1: [Int] = [1, 2, 3] + let array2: [Int] = [1, 2, 3] + let array3: [Int] = [1, 2] expect(array1) == array2 expect(array1) != array3 } @@ -203,31 +203,31 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { expect(1).toNot(equal(nil)) } - + func testArrayOfOptionalsEquality() { - let array1: Array = [1, nil, 3] - let array2: Array = [nil, 2, 3] - let array3: Array = [1, nil, 3] - + let array1: [Int?] = [1, nil, 3] + let array2: [Int?] = [nil, 2, 3] + let array3: [Int?] = [1, nil, 3] + expect(array1).toNot(equal(array2)) expect(array1).to(equal(array3)) expect(array2).toNot(equal(array3)) - - let allNils1: Array = [nil, nil, nil, nil] - let allNils2: Array = [nil, nil, nil, nil] - let notReallyAllNils: Array = [nil, nil, nil, "turtles"] - + + let allNils1: [String?] = [nil, nil, nil, nil] + let allNils2: [String?] = [nil, nil, nil, nil] + let notReallyAllNils: [String?] = [nil, nil, nil, "turtles"] + expect(allNils1).to(equal(allNils2)) expect(allNils1).toNot(equal(notReallyAllNils)) - - let noNils1: Array = [1, 2, 3, 4, 5] - let noNils2: Array = [1, 3, 5, 7, 9] - + + let noNils1: [Int?] = [1, 2, 3, 4, 5] + let noNils2: [Int?] = [1, 3, 5, 7, 9] + expect(noNils1).toNot(equal(noNils2)) - + failsWithErrorMessage("expected to equal <[Optional(1), nil]>, got <[nil, Optional(2)]>") { - let arrayOfOptionalInts: Array = [nil, 2] - let anotherArrayOfOptionalInts: Array = [1, nil] + let arrayOfOptionalInts: [Int?] = [nil, 2] + let anotherArrayOfOptionalInts: [Int?] = [1, nil] expect(arrayOfOptionalInts).to(equal(anotherArrayOfOptionalInts)) return } @@ -236,38 +236,38 @@ final class EqualTest: XCTestCase, XCTestCaseProvider { func testDictionariesWithDifferentSequences() { // see: https://github.com/Quick/Nimble/issues/61 // these dictionaries generate different orderings of sequences. - let result = ["how":1, "think":1, "didnt":2, "because":1, - "interesting":1, "always":1, "right":1, "such":1, - "to":3, "say":1, "cool":1, "you":1, - "weather":3, "be":1, "went":1, "was":2, - "sometimes":1, "and":3, "mind":1, "rain":1, - "whole":1, "everything":1, "weather.":1, "down":1, - "kind":1, "mood.":1, "it":2, "everyday":1, "might":1, - "more":1, "have":2, "person":1, "could":1, "tenth":2, - "night":1, "write":1, "Youd":1, "affects":1, "of":3, - "Who":1, "us":1, "an":1, "I":4, "my":1, "much":2, - "wrong.":1, "peacefully.":1, "amazing":3, "would":4, - "just":1, "grade.":1, "Its":2, "The":2, "had":1, "that":1, - "the":5, "best":1, "but":1, "essay":1, "for":1, "summer":2, - "your":1, "grade":1, "vary":1, "pretty":1, "at":1, "rain.":1, - "about":1, "allow":1, "thought":1, "in":1, "sleep":1, "a":1, - "hot":1, "really":1, "beach":1, "life.":1, "we":1, "although":1] - - let storyCount = ["The":2, "summer":2, "of":3, "tenth":2, "grade":1, - "was":2, "the":5, "best":1, "my":1, "life.":1, "I":4, - "went":1, "to":3, "beach":1, "everyday":1, "and":3, - "we":1, "had":1, "amazing":3, "weather.":1, "weather":3, - "didnt":2, "really":1, "vary":1, "much":2, "always":1, - "pretty":1, "hot":1, "although":1, "sometimes":1, "at":1, - "night":1, "it":2, "would":4, "rain.":1, "mind":1, "rain":1, - "because":1, "cool":1, "everything":1, "down":1, "allow":1, - "us":1, "sleep":1, "peacefully.":1, "Its":2, "how":1, - "affects":1, "your":1, "mood.":1, "Who":1, "have":2, - "thought":1, "that":1, "could":1, "write":1, "a":1, - "whole":1, "essay":1, "just":1, "about":1, "in":1, - "grade.":1, "kind":1, "right":1, "Youd":1, "think":1, - "for":1, "such":1, "an":1, "interesting":1, "person":1, - "might":1, "more":1, "say":1, "but":1, "you":1, "be":1, "wrong.":1] + let result = ["how": 1, "think": 1, "didnt": 2, "because": 1, + "interesting": 1, "always": 1, "right": 1, "such": 1, + "to": 3, "say": 1, "cool": 1, "you": 1, + "weather": 3, "be": 1, "went": 1, "was": 2, + "sometimes": 1, "and": 3, "mind": 1, "rain": 1, + "whole": 1, "everything": 1, "weather.": 1, "down": 1, + "kind": 1, "mood.": 1, "it": 2, "everyday": 1, "might": 1, + "more": 1, "have": 2, "person": 1, "could": 1, "tenth": 2, + "night": 1, "write": 1, "Youd": 1, "affects": 1, "of": 3, + "Who": 1, "us": 1, "an": 1, "I": 4, "my": 1, "much": 2, + "wrong.": 1, "peacefully.": 1, "amazing": 3, "would": 4, + "just": 1, "grade.": 1, "Its": 2, "The": 2, "had": 1, "that": 1, + "the": 5, "best": 1, "but": 1, "essay": 1, "for": 1, "summer": 2, + "your": 1, "grade": 1, "vary": 1, "pretty": 1, "at": 1, "rain.": 1, + "about": 1, "allow": 1, "thought": 1, "in": 1, "sleep": 1, "a": 1, + "hot": 1, "really": 1, "beach": 1, "life.": 1, "we": 1, "although": 1, ] + + let storyCount = ["The": 2, "summer": 2, "of": 3, "tenth": 2, "grade": 1, + "was": 2, "the": 5, "best": 1, "my": 1, "life.": 1, "I": 4, + "went": 1, "to": 3, "beach": 1, "everyday": 1, "and": 3, + "we": 1, "had": 1, "amazing": 3, "weather.": 1, "weather": 3, + "didnt": 2, "really": 1, "vary": 1, "much": 2, "always": 1, + "pretty": 1, "hot": 1, "although": 1, "sometimes": 1, "at": 1, + "night": 1, "it": 2, "would": 4, "rain.": 1, "mind": 1, "rain": 1, + "because": 1, "cool": 1, "everything": 1, "down": 1, "allow": 1, + "us": 1, "sleep": 1, "peacefully.": 1, "Its": 2, "how": 1, + "affects": 1, "your": 1, "mood.": 1, "Who": 1, "have": 2, + "thought": 1, "that": 1, "could": 1, "write": 1, "a": 1, + "whole": 1, "essay": 1, "just": 1, "about": 1, "in": 1, + "grade.": 1, "kind": 1, "right": 1, "Youd": 1, "think": 1, + "for": 1, "such": 1, "an": 1, "interesting": 1, "person": 1, + "might": 1, "more": 1, "say": 1, "but": 1, "you": 1, "be": 1, "wrong.": 1, ] expect(result).to(equal(storyCount)) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift index de5033d..a0294c3 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift @@ -24,7 +24,7 @@ final class HaveCountTest: XCTestCase, XCTestCaseProvider { } func testHaveCountForDictionary() { - let dictionary = ["1":1, "2":2, "3":3] + let dictionary = ["1": 1, "2": 2, "3": 3] expect(dictionary).to(haveCount(3)) expect(dictionary).notTo(haveCount(1)) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift index 5b6d77f..a95ba56 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift @@ -1,7 +1,7 @@ import XCTest import Nimble -final class MatchTest:XCTestCase, XCTestCaseProvider { +final class MatchTest: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (MatchTest) -> () throws -> Void)] { return [ ("testMatchPositive", testMatchPositive), @@ -15,18 +15,18 @@ final class MatchTest:XCTestCase, XCTestCaseProvider { func testMatchPositive() { expect("11:14").to(match("\\d{2}:\\d{2}")) } - + func testMatchNegative() { expect("hello").toNot(match("\\d{2}:\\d{2}")) } - + func testMatchPositiveMessage() { let message = "expected to match <\\d{2}:\\d{2}>, got " failsWithErrorMessage(message) { expect("hello").to(match("\\d{2}:\\d{2}")) } } - + func testMatchNegativeMessage() { let message = "expected to not match <\\d{2}:\\d{2}>, got <11:14>" failsWithErrorMessage(message) { diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift index 302a2f5..20461d9 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift @@ -93,7 +93,7 @@ final class RaisesExceptionTest: XCTestCase, XCTestCaseProvider { expect(exception.name).to(equal(NSExceptionName(rawValue:"foo"))) }) } - + failsWithErrorMessage("expected to raise exception with name that satisfies block, got no exception") { expect { self.anException }.to(raiseException(named: "foo") { (exception: NSException) in expect(exception.name.rawValue).to(equal("foo")) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift index 9378956..0bd9495 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift @@ -17,19 +17,19 @@ final class SatisfyAnyOfTest: XCTestCase, XCTestCaseProvider { #else expect(2 as NSNumber).toNot(satisfyAnyOf(equal(3 as NSNumber), equal("turtles" as NSString))) #endif - expect([1,2,3]).to(satisfyAnyOf(equal([1,2,3]), allPass({$0 < 4}), haveCount(3))) + expect([1, 2, 3]).to(satisfyAnyOf(equal([1, 2, 3]), allPass({$0 < 4}), haveCount(3))) expect("turtle").toNot(satisfyAnyOf(contain("a"), endWith("magic"))) expect(82.0).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) expect(false).to(satisfyAnyOf(beTrue(), beFalse())) expect(true).to(satisfyAnyOf(beTruthy(), beFalsy())) - + failsWithErrorMessage( "expected to match one of: {equal <3>}, or {equal <4>}, or {equal <5>}, got 2") { expect(2).to(satisfyAnyOf(equal(3), equal(4), equal(5))) } failsWithErrorMessage( "expected to match one of: {all be less than 4, but failed first at element <5> in <[5, 6, 7]>}, or {equal <[1, 2, 3, 4]>}, got [5, 6, 7]") { - expect([5,6,7]).to(satisfyAnyOf(allPass("be less than 4", {$0 < 4}), equal([1,2,3,4]))) + expect([5, 6, 7]).to(satisfyAnyOf(allPass("be less than 4", {$0 < 4}), equal([1, 2, 3, 4]))) } failsWithErrorMessage( "expected to match one of: {be true}, got false") { @@ -40,7 +40,7 @@ final class SatisfyAnyOfTest: XCTestCase, XCTestCaseProvider { expect(50.10001).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) } } - + func testOperatorOr() { expect(2).to(equal(2) || equal(3)) #if SUPPORT_IMPLICIT_BRIDGING_CONVERSION diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift index c227b1b..9c66fe6 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift @@ -42,7 +42,7 @@ final class ThrowAssertionTest: XCTestCase, XCTestCaseProvider { var reachedPoint1 = false expect { reachedPoint1 = true }.toNot(throwAssertion()) - + expect(reachedPoint1) == true } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift index d7cd312..1c7674c 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift @@ -1,32 +1,32 @@ import XCTest import Nimble -enum NimbleError : Error { +enum NimbleError: Error { case laugh case cry } -enum EquatableError : Error { +enum EquatableError: Error { case parameterized(x: Int) } extension EquatableError : Equatable { } -func ==(lhs: EquatableError, rhs: EquatableError) -> Bool { +func == (lhs: EquatableError, rhs: EquatableError) -> Bool { switch (lhs, rhs) { case (.parameterized(let l), .parameterized(let r)): return l == r } } -enum CustomDebugStringConvertibleError : Error { +enum CustomDebugStringConvertibleError: Error { case a case b } extension CustomDebugStringConvertibleError : CustomDebugStringConvertible { - var debugDescription : String { + var debugDescription: String { return "code=\(_code)" } } @@ -120,13 +120,13 @@ final class ThrowErrorTest: XCTestCase, XCTestCaseProvider { func testNegativeMatchesDoNotCallClosureWithoutError() { failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError { error in + expect { return }.to(throwError { _ in fail() }) } - + failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError(NimbleError.laugh) { error in + expect { return }.to(throwError(NimbleError.laugh) { _ in fail() }) } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift index 6234932..eefd178 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift @@ -47,19 +47,19 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { } func testToMatchesIfMatcherReturnsTrue() { - expect(1).to(MatcherFunc { expr, failure in true }) - expect{1}.to(MatcherFunc { expr, failure in true }) + expect(1).to(MatcherFunc { _, _ in true }) + expect {1}.to(MatcherFunc { _, _ in true }) } func testToProvidesActualValueExpression() { var value: Int? - expect(1).to(MatcherFunc { expr, failure in value = try expr.evaluate(); return true }) + expect(1).to(MatcherFunc { expr, _ in value = try expr.evaluate(); return true }) expect(value).to(equal(1)) } func testToProvidesAMemoizedActualValueExpression() { var callCount = 0 - expect{ callCount += 1 }.to(MatcherFunc { expr, failure in + expect { callCount += 1 }.to(MatcherFunc { expr, _ in _ = try expr.evaluate() _ = try expr.evaluate() return true @@ -69,7 +69,7 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { func testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { var callCount = 0 - expect{ callCount += 1 }.to(MatcherFunc { expr, failure in + expect { callCount += 1 }.to(MatcherFunc { expr, _ in expect(callCount).to(equal(0)) _ = try expr.evaluate() return true @@ -86,19 +86,19 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { // repeated tests from to() for toNot() func testToNotMatchesIfMatcherReturnsTrue() { - expect(1).toNot(MatcherFunc { expr, failure in false }) - expect{1}.toNot(MatcherFunc { expr, failure in false }) + expect(1).toNot(MatcherFunc { _, _ in false }) + expect {1}.toNot(MatcherFunc { _, _ in false }) } func testToNotProvidesActualValueExpression() { var value: Int? - expect(1).toNot(MatcherFunc { expr, failure in value = try expr.evaluate(); return false }) + expect(1).toNot(MatcherFunc { expr, _ in value = try expr.evaluate(); return false }) expect(value).to(equal(1)) } func testToNotProvidesAMemoizedActualValueExpression() { var callCount = 0 - expect{ callCount += 1 }.toNot(MatcherFunc { expr, failure in + expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in _ = try expr.evaluate() _ = try expr.evaluate() return false @@ -108,7 +108,7 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { func testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { var callCount = 0 - expect{ callCount += 1 }.toNot(MatcherFunc { expr, failure in + expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in expect(callCount).to(equal(0)) _ = try expr.evaluate() return false @@ -118,12 +118,11 @@ final class SynchronousTest: XCTestCase, XCTestCaseProvider { func testToNotNegativeMatches() { failsWithErrorMessage("expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { expr, failure in true }) + expect(1).toNot(MatcherFunc { _, _ in true }) } } - func testNotToMatchesLikeToNot() { - expect(1).notTo(MatcherFunc { expr, failure in false }) + expect(1).notTo(MatcherFunc { _, _ in false }) } } diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift index e22d64e..9bb64b6 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift @@ -12,31 +12,31 @@ final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { ("testToNotEventuallyMatch_CustomFailureMessage", testToNotEventuallyMatch_CustomFailureMessage), ] } - + func testToMatcher_CustomFailureMessage() { failsWithErrorMessage( "These aren't equal!\n" + "expected to match, got <1>") { - expect(1).to(MatcherFunc { expr, failure in false }, description: "These aren't equal!") + expect(1).to(MatcherFunc { _, _ in false }, description: "These aren't equal!") } } - + func testNotToMatcher_CustomFailureMessage() { failsWithErrorMessage( "These aren't equal!\n" + "expected to not match, got <1>") { - expect(1).notTo(MatcherFunc { expr, failure in true }, description: "These aren't equal!") + expect(1).notTo(MatcherFunc { _, _ in true }, description: "These aren't equal!") } } - + func testToNotMatcher_CustomFailureMessage() { failsWithErrorMessage( "These aren't equal!\n" + "expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { expr, failure in true }, description: "These aren't equal!") + expect(1).toNot(MatcherFunc { _, _ in true }, description: "These aren't equal!") } } - + func testToEventuallyMatch_CustomFailureMessage() { failsWithErrorMessage( "These aren't eventually equal!\n" + @@ -44,7 +44,7 @@ final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { expect { 0 }.toEventually(equal(1), description: "These aren't eventually equal!") } } - + func testToEventuallyNotMatch_CustomFailureMessage() { failsWithErrorMessage( "These are eventually equal!\n" + @@ -52,7 +52,7 @@ final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { expect { 1 }.toEventuallyNot(equal(1), description: "These are eventually equal!") } } - + func testToNotEventuallyMatch_CustomFailureMessage() { failsWithErrorMessage( "These are eventually equal!\n" + diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m new file mode 100644 index 0000000..b15d6c3 --- /dev/null +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m @@ -0,0 +1,64 @@ +#import +#import "NimbleSpecHelper.h" + +@interface ObjCContainElementSatisfyingTest : XCTestCase + +@end + +@implementation ObjCContainElementSatisfyingTest + +- (void)testPassingMatches { + NSArray *orderIndifferentArray = @[@1, @2, @3]; + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@1]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@2]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + + orderIndifferentArray = @[@3, @1, @2]; + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@1]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@2]; + })); + expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + + NSSet *orderIndifferentSet = [NSSet setWithObjects:@"turtle test", @"turtle assessment", nil]; + expect(orderIndifferentSet).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToString:@"turtle assessment"]; + })); +} + +- (void)testFailingMatches { + expectFailureMessage(@"expected to find object in collection that satisfies predicate", ^{ + expect(@[@1]).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@2]; + })); + }); + expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ + expect((nil)).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + }); + expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ + expect((@3)).to(containElementSatisfying(^BOOL(id object) { + return [object isEqualToNumber:@3]; + })); + }); +} + +- (void)testNegativeCases { + NSArray *orderIndifferentArray = @[@"puppies", @"kittens", @"turtles"]; + expect(orderIndifferentArray).toNot(containElementSatisfying(^BOOL(id object) { + return [object isEqualToString:@"armadillos"]; + })); +} + +@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m index d84915a..e64c2f2 100644 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m +++ b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m @@ -141,7 +141,7 @@ - (void)testNegativeMatchesWithNegativeBlocks { userInfo:@{@"key": @"value"}]; NSString *outerFailureMessage; - NSString const *innerFailureMessage = @"expected to equal , got "; + NSString *const innerFailureMessage = @"expected to equal , got "; outerFailureMessage = @"expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ expectAction(^{ [exception raise]; }).to(raiseException(). diff --git a/Carthage/Checkouts/Quick/Gemfile b/Carthage/Checkouts/Quick/Gemfile index f64c938..621b34e 100644 --- a/Carthage/Checkouts/Quick/Gemfile +++ b/Carthage/Checkouts/Quick/Gemfile @@ -1,3 +1,5 @@ source "https://rubygems.org" gem 'cocoapods', '~> 1.1.0.rc.2' +gem 'danger' +gem 'danger-swiftlint' diff --git a/Carthage/Checkouts/Quick/Gemfile.lock b/Carthage/Checkouts/Quick/Gemfile.lock index 5f9326b..43c1ed9 100644 --- a/Carthage/Checkouts/Quick/Gemfile.lock +++ b/Carthage/Checkouts/Quick/Gemfile.lock @@ -1,67 +1,113 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.6) + CFPropertyList (2.3.4) + activesupport (4.2.7.1) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - claide (1.0.0) - cocoapods (1.0.0) - activesupport (>= 4.0.2) - claide (>= 1.0.0, < 2.0) - cocoapods-core (= 1.0.0) - cocoapods-deintegrate (>= 1.0.0, < 2.0) - cocoapods-downloader (>= 1.0.0, < 2.0) + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) + claide (1.0.1) + claide-plugins (0.9.2) + cork + nap + open4 (~> 1.3) + cocoapods (1.1.1) + activesupport (>= 4.0.2, < 5) + claide (>= 1.0.1, < 2.0) + cocoapods-core (= 1.1.1) + cocoapods-deintegrate (>= 1.0.1, < 2.0) + cocoapods-downloader (>= 1.1.2, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.0.0, < 2.0) - cocoapods-try (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.1.1, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) colored (~> 1.2) escape (~> 0.0.4) - fourflusher (~> 0.3.0) - molinillo (~> 0.4.5) + fourflusher (~> 2.0.1) + gh_inspector (~> 1.0) + molinillo (~> 0.5.1) nap (~> 1.0) - xcodeproj (>= 1.0.0, < 2.0) - cocoapods-core (1.0.0) - activesupport (>= 4.0.2) + xcodeproj (>= 1.3.3, < 2.0) + cocoapods-core (1.1.1) + activesupport (>= 4.0.2, < 5) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.0) - cocoapods-downloader (1.0.0) + cocoapods-deintegrate (1.0.1) + cocoapods-downloader (1.1.3) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) cocoapods-stats (1.0.0) - cocoapods-trunk (1.0.0) + cocoapods-trunk (1.1.2) nap (>= 0.8, < 2.0) netrc (= 0.7.8) - cocoapods-try (1.0.0) + cocoapods-try (1.1.0) colored (1.2) + cork (0.2.0) + colored (~> 1.2) + danger (4.0.4) + claide (~> 1.0) + claide-plugins (>= 0.9.2) + colored (~> 1.2) + cork (~> 0.1) + faraday (~> 0.9) + faraday-http-cache (~> 1.0) + git (~> 1) + kramdown (~> 1.5) + octokit (~> 4.2) + terminal-table (~> 1) + danger-swiftlint (0.2.1) + danger escape (0.0.4) - fourflusher (0.3.0) + faraday (0.10.1) + multipart-post (>= 1.2, < 3) + faraday-http-cache (1.3.1) + faraday (~> 0.8) + fourflusher (2.0.1) fuzzy_match (2.0.4) + gh_inspector (1.0.2) + git (1.3.0) i18n (0.7.0) json (1.8.3) - minitest (5.8.4) - molinillo (0.4.5) + kramdown (1.13.2) + minitest (5.10.1) + molinillo (0.5.5) + multipart-post (2.0.0) + nanaimo (0.2.3) nap (1.1.0) netrc (0.7.8) + octokit (4.6.2) + sawyer (~> 0.8.0, >= 0.5.3) + open4 (1.3.4) + public_suffix (2.0.5) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.7.3) + unicode-display_width (~> 1.1.1) thread_safe (0.3.5) tzinfo (1.2.2) thread_safe (~> 0.1) - xcodeproj (1.0.0) + unicode-display_width (1.1.2) + xcodeproj (1.4.2) + CFPropertyList (~> 2.3.3) activesupport (>= 3) - claide (>= 1.0.0, < 2.0) + claide (>= 1.0.1, < 2.0) colored (~> 1.2) + nanaimo (~> 0.2.3) PLATFORMS ruby DEPENDENCIES - cocoapods (= 1.0) + cocoapods (~> 1.1.0.rc.2) + danger + danger-swiftlint BUNDLED WITH - 1.11.2 + 1.13.2 diff --git a/Carthage/Checkouts/Quick/Package.swift b/Carthage/Checkouts/Quick/Package.swift index 6d2fac9..3b43f38 100644 --- a/Carthage/Checkouts/Quick/Package.swift +++ b/Carthage/Checkouts/Quick/Package.swift @@ -2,12 +2,32 @@ import PackageDescription let package = Package( name: "Quick", - exclude: [ - "Sources/QuickObjectiveC", - "Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m", - "Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m", - "Tests/QuickTests/QuickTests/FunctionalTests/ObjC", - "Tests/QuickTests/QuickTests/Helpers", - "Tests/QuickTests/QuickTests/QuickConfigurationTests.m", - ] + targets: { +#if _runtime(_ObjC) + return [ + Target(name: "QuickSpecBase"), + Target(name: "Quick", dependencies: [ "QuickSpecBase" ]), + Target(name: "QuickTests", dependencies: [ "Quick" ]), + ] +#else + return [ + Target(name: "Quick"), + Target(name: "QuickTests", dependencies: [ "Quick" ]), + ] +#endif + }(), + exclude: { + var excludes = [ + "Sources/QuickObjectiveC", + "Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m", + "Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m", + "Tests/QuickTests/QuickTests/FunctionalTests/ObjC", + "Tests/QuickTests/QuickTests/Helpers", + "Tests/QuickTests/QuickTests/QuickConfigurationTests.m", + ] +#if !_runtime(_ObjC) + excludes.append("Sources/QuickSpecBase") +#endif + return excludes + }() ) diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift index 3f25328..ae0acbb 100644 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift +++ b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift @@ -9,7 +9,7 @@ import Quick class ___FILEBASENAMEASIDENTIFIER___: QuickConfiguration { - override class func configure(configuration: Configuration) { + override class func configure(_ configuration: Configuration) { } } diff --git a/Carthage/Checkouts/Quick/Quick.podspec b/Carthage/Checkouts/Quick/Quick.podspec index 1cdc852..a0a2c21 100644 --- a/Carthage/Checkouts/Quick/Quick.podspec +++ b/Carthage/Checkouts/Quick/Quick.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Quick" - s.version = "1.0.0" + s.version = "1.1.0" s.summary = "The Swift (and Objective-C) testing framework." s.description = <<-DESC diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj b/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj index 613590c..bd37459 100644 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj @@ -24,7 +24,6 @@ 1F118D071BDCA536005013A2 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759C19515CA700CE1B99 /* Callsite.swift */; }; 1F118D081BDCA536005013A2 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6B30171A4DB0D500FFB148 /* Filter.swift */; }; 1F118D091BDCA536005013A2 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A519515CA700CE1B99 /* QuickSpec.m */; }; - 1F118D0A1BDCA536005013A2 /* NSString+QCKSelectorName.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A119515CA700CE1B99 /* NSString+QCKSelectorName.m */; }; 1F118D0C1BDCA543005013A2 /* QuickConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8C00201A01E4B900CE58A6 /* QuickConfigurationTests.m */; }; 1F118D0D1BDCA547005013A2 /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; 1F118D0E1BDCA547005013A2 /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; @@ -51,7 +50,6 @@ 1F118D251BDCA561005013A2 /* FocusedTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */; }; 1F118D261BDCA5AF005013A2 /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC81B110699006F61EC /* World+DSL.h */; }; 1F118D271BDCA5AF005013A2 /* World.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC21B1105BC006F61EC /* World.h */; }; - 1F118D281BDCA5AF005013A2 /* NSString+QCKSelectorName.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A019515CA700CE1B99 /* NSString+QCKSelectorName.h */; }; 1F118D291BDCA5B6005013A2 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE714FC19FF6A62005905B8 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F118D2A1BDCA5B6005013A2 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3124E319FCAEE8002858A7 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1F118D2B1BDCA5B6005013A2 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB6B931943873100289F44 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -76,10 +74,6 @@ 34F375AC19515CA700CE1B99 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759E19515CA700CE1B99 /* Example.swift */; }; 34F375AD19515CA700CE1B99 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */; }; 34F375AE19515CA700CE1B99 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */; }; - 34F375AF19515CA700CE1B99 /* NSString+QCKSelectorName.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A019515CA700CE1B99 /* NSString+QCKSelectorName.h */; }; - 34F375B019515CA700CE1B99 /* NSString+QCKSelectorName.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A019515CA700CE1B99 /* NSString+QCKSelectorName.h */; }; - 34F375B119515CA700CE1B99 /* NSString+QCKSelectorName.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A119515CA700CE1B99 /* NSString+QCKSelectorName.m */; }; - 34F375B219515CA700CE1B99 /* NSString+QCKSelectorName.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A119515CA700CE1B99 /* NSString+QCKSelectorName.m */; }; 34F375B719515CA700CE1B99 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A419515CA700CE1B99 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34F375B819515CA700CE1B99 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A419515CA700CE1B99 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34F375B919515CA700CE1B99 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A519515CA700CE1B99 /* QuickSpec.m */; }; @@ -226,6 +220,12 @@ DAED1ECB1B110699006F61EC /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC81B110699006F61EC /* World+DSL.h */; }; DAF28BC31A4DB8EC00A5D9BF /* FocusedTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */; }; DAF28BC41A4DB8EC00A5D9BF /* FocusedTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */; }; + DED3036B1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */; }; + DED3036C1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */; }; + DED3036D1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */; }; + DED3037D1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */; }; + DED3037E1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */; }; + DED3037F1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -450,8 +450,8 @@ /* Begin PBXFileReference section */ 1F118CD51BDCA4AB005013A2 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F118CDE1BDCA4AB005013A2 /* Quick-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F118CF01BDCA4BB005013A2 /* QuickFocused-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F118CDE1BDCA4AB005013A2 /* Quick - tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick - tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F118CF01BDCA4BB005013A2 /* QuickFocused - tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused - tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 1F118D341BDCA657005013A2 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Externals/Nimble/build/Debug-appletvos/Nimble.framework"; sourceTree = ""; }; 1F118D361BDCA65C005013A2 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Externals/Nimble/build/Debug-appletvos/Nimble.framework"; sourceTree = ""; }; 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = XCTestCaseProvider.swift; path = ../../QuickTestHelpers/XCTestCaseProvider.swift; sourceTree = ""; }; @@ -459,8 +459,6 @@ 34F3759C19515CA700CE1B99 /* Callsite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Callsite.swift; sourceTree = ""; }; 34F3759E19515CA700CE1B99 /* Example.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExampleGroup.swift; sourceTree = ""; }; - 34F375A019515CA700CE1B99 /* NSString+QCKSelectorName.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+QCKSelectorName.h"; sourceTree = ""; }; - 34F375A119515CA700CE1B99 /* NSString+QCKSelectorName.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+QCKSelectorName.m"; sourceTree = ""; }; 34F375A419515CA700CE1B99 /* QuickSpec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuickSpec.h; sourceTree = ""; }; 34F375A519515CA700CE1B99 /* QuickSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuickSpec.m; sourceTree = ""; }; 34F375A619515CA700CE1B99 /* World.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = World.swift; sourceTree = ""; }; @@ -472,10 +470,10 @@ 479C31E11A36156E00DA8718 /* ItTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ItTests+ObjC.m"; sourceTree = ""; }; 47FAEA341A3F45ED005A1D2F /* BeforeEachTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BeforeEachTests+ObjC.m"; sourceTree = ""; }; 5A5D117C19473F2100F6D13D /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5A5D118619473F2100F6D13D /* Quick-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076CF51D6D7C2000E2B499 /* QuickAfterSuite-macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite-macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076D081D6D7CD600E2B499 /* QuickAfterSuite-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5A5D118619473F2100F6D13D /* Quick - iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick - iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 64076CF51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite - macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 64076D081D6D7CD600E2B499 /* QuickAfterSuite - iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite - iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite - tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 64076D1D1D6D7D0B00E2B499 /* AfterSuiteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AfterSuiteTests.swift; sourceTree = ""; }; 64076D241D6D80B500E2B499 /* AfterSuiteTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AfterSuiteTests+ObjC.m"; sourceTree = ""; }; 7B44ADBD1C5444940007AF2E /* HooksPhase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HooksPhase.swift; sourceTree = ""; }; @@ -485,6 +483,9 @@ 96327C621C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "QuickSpec+QuickSpec_MethodList.m"; sourceTree = ""; }; AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XCTestObservationCenter+QCKSuspendObservation.m"; sourceTree = ""; }; AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossReferencingSpecs.swift; sourceTree = ""; }; + CD261AC81DEC8B0000A8863C /* QuickConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickConfiguration.swift; sourceTree = ""; }; + CD3451461E4703D4000C8633 /* QuickMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickMain.swift; sourceTree = ""; }; + CD3451471E4703D4000C8633 /* QuickSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickSpec.swift; sourceTree = ""; }; CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickTestSuite.swift; sourceTree = ""; }; @@ -500,7 +501,7 @@ DA408BDF19FF5599005DF92A /* Closures.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Closures.swift; sourceTree = ""; }; DA408BE019FF5599005DF92A /* ExampleHooks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExampleHooks.swift; sourceTree = ""; }; DA408BE119FF5599005DF92A /* SuiteHooks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuiteHooks.swift; sourceTree = ""; }; - DA5663E81A4C8D8500193C88 /* QuickFocused-macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused-macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + DA5663E81A4C8D8500193C88 /* QuickFocused - macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused - macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; DA6B30171A4DB0D500FFB148 /* Filter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; DA7AE6F019FC493F000AFDCE /* ItTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItTests.swift; sourceTree = ""; }; DA87078219F48775008C04AC /* BeforeEachTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeforeEachTests.swift; sourceTree = ""; }; @@ -514,7 +515,7 @@ DA8F91A419F3208B006F6675 /* BeforeSuiteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeforeSuiteTests.swift; sourceTree = ""; }; DA8F91AA19F3299E006F6675 /* SharedExamplesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharedExamplesTests.swift; sourceTree = ""; }; DA8F91AD19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FunctionalTests_SharedExamplesTests_SharedExamples.swift; sourceTree = ""; }; - DA9876B21A4C70EB0004AA17 /* QuickFocused-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + DA9876B21A4C70EB0004AA17 /* QuickFocused - iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused - iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; DA9876BF1A4C87200004AA17 /* FocusedTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FocusedTests.swift; sourceTree = ""; }; DA9876C01A4C87200004AA17 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DAA63EA219F7637300CD0A3B /* PendingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingTests.swift; sourceTree = ""; }; @@ -528,11 +529,13 @@ DAEB6B8E1943873100289F44 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DAEB6B921943873100289F44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DAEB6B931943873100289F44 /* Quick.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Quick.h; sourceTree = ""; }; - DAEB6B991943873100289F44 /* Quick-macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick-macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + DAEB6B991943873100289F44 /* Quick - macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick - macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; DAEB6B9F1943873100289F44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DAED1EC21B1105BC006F61EC /* World.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = World.h; sourceTree = ""; }; DAED1EC81B110699006F61EC /* World+DSL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "World+DSL.h"; sourceTree = ""; }; DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "FocusedTests+ObjC.m"; sourceTree = ""; }; + DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSString+C99ExtendedIdentifier.swift"; sourceTree = ""; }; + DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BundleModuleNameTests.swift; sourceTree = ""; }; F8100E901A1E4447007595ED /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -670,8 +673,6 @@ DAED1EC21B1105BC006F61EC /* World.h */, 34F375A419515CA700CE1B99 /* QuickSpec.h */, 34F375A519515CA700CE1B99 /* QuickSpec.m */, - 34F375A019515CA700CE1B99 /* NSString+QCKSelectorName.h */, - 34F375A119515CA700CE1B99 /* NSString+QCKSelectorName.m */, CE57CEDC1C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m */, ); name = QuickObjectiveC; @@ -717,6 +718,7 @@ isa = PBXGroup; children = ( DA169E4719FF5DF100619816 /* Configuration.swift */, + CD261AC81DEC8B0000A8863C /* QuickConfiguration.swift */, ); path = Configuration; sourceTree = ""; @@ -771,6 +773,7 @@ DAB0136E19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift */, 7B5358CA1C3D4E2A00A23FAA /* ContextTests.swift */, AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */, + DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */, ); path = FunctionalTests; sourceTree = ""; @@ -840,17 +843,17 @@ isa = PBXGroup; children = ( DAEB6B8E1943873100289F44 /* Quick.framework */, - DAEB6B991943873100289F44 /* Quick-macOSTests.xctest */, + DAEB6B991943873100289F44 /* Quick - macOSTests.xctest */, 5A5D117C19473F2100F6D13D /* Quick.framework */, - 5A5D118619473F2100F6D13D /* Quick-iOSTests.xctest */, - DA9876B21A4C70EB0004AA17 /* QuickFocused-iOSTests.xctest */, - DA5663E81A4C8D8500193C88 /* QuickFocused-macOSTests.xctest */, + 5A5D118619473F2100F6D13D /* Quick - iOSTests.xctest */, + DA9876B21A4C70EB0004AA17 /* QuickFocused - iOSTests.xctest */, + DA5663E81A4C8D8500193C88 /* QuickFocused - macOSTests.xctest */, 1F118CD51BDCA4AB005013A2 /* Quick.framework */, - 1F118CDE1BDCA4AB005013A2 /* Quick-tvOSTests.xctest */, - 1F118CF01BDCA4BB005013A2 /* QuickFocused-tvOSTests.xctest */, - 64076CF51D6D7C2000E2B499 /* QuickAfterSuite-macOSTests.xctest */, - 64076D081D6D7CD600E2B499 /* QuickAfterSuite-iOSTests.xctest */, - 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite-tvOSTests.xctest */, + 1F118CDE1BDCA4AB005013A2 /* Quick - tvOSTests.xctest */, + 1F118CF01BDCA4BB005013A2 /* QuickFocused - tvOSTests.xctest */, + 64076CF51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests.xctest */, + 64076D081D6D7CD600E2B499 /* QuickAfterSuite - iOSTests.xctest */, + 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests.xctest */, ); name = Products; sourceTree = ""; @@ -861,6 +864,8 @@ DA169E4619FF5DF100619816 /* Configuration */, DA3124E119FCAEE8002858A7 /* DSL */, DA408BDE19FF5599005DF92A /* Hooks */, + CD3451461E4703D4000C8633 /* QuickMain.swift */, + CD3451471E4703D4000C8633 /* QuickSpec.swift */, 34F375A619515CA700CE1B99 /* World.swift */, 34F3759E19515CA700CE1B99 /* Example.swift */, DA02C91819A8073100093156 /* ExampleMetadata.swift */, @@ -870,6 +875,7 @@ CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */, CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */, CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */, + DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */, CE57CEDB1C430BD200D63004 /* URL+FileName.swift */, 34C586071C4AC5E500D4F057 /* ErrorUtility.swift */, DAEB6B911943873100289F44 /* Supporting Files */, @@ -937,7 +943,6 @@ 1F118D271BDCA5AF005013A2 /* World.h in Headers */, 1F118D2A1BDCA5B6005013A2 /* QCKDSL.h in Headers */, 1F118D2C1BDCA5B6005013A2 /* QuickSpec.h in Headers */, - 1F118D281BDCA5AF005013A2 /* NSString+QCKSelectorName.h in Headers */, 1F118D291BDCA5B6005013A2 /* QuickConfiguration.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -946,7 +951,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 34F375B019515CA700CE1B99 /* NSString+QCKSelectorName.h in Headers */, DAE714FF19FF6A62005905B8 /* QuickConfiguration.h in Headers */, 96327C641C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */, DA3124E919FCAEE8002858A7 /* QCKDSL.h in Headers */, @@ -961,7 +965,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 34F375AF19515CA700CE1B99 /* NSString+QCKSelectorName.h in Headers */, DAE714FE19FF6A62005905B8 /* QuickConfiguration.h in Headers */, 96327C631C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */, DA3124E819FCAEE8002858A7 /* QCKDSL.h in Headers */, @@ -994,9 +997,9 @@ productReference = 1F118CD51BDCA4AB005013A2 /* Quick.framework */; productType = "com.apple.product-type.framework"; }; - 1F118CDD1BDCA4AB005013A2 /* Quick-tvOSTests */ = { + 1F118CDD1BDCA4AB005013A2 /* Quick - tvOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 1F118CE91BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick-tvOSTests" */; + buildConfigurationList = 1F118CE91BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick - tvOSTests" */; buildPhases = ( 1F118CDA1BDCA4AB005013A2 /* Sources */, 1F118CDB1BDCA4AB005013A2 /* Frameworks */, @@ -1007,14 +1010,14 @@ dependencies = ( 1F118CE11BDCA4AB005013A2 /* PBXTargetDependency */, ); - name = "Quick-tvOSTests"; + name = "Quick - tvOSTests"; productName = "Quick-tvOSTests"; - productReference = 1F118CDE1BDCA4AB005013A2 /* Quick-tvOSTests.xctest */; + productReference = 1F118CDE1BDCA4AB005013A2 /* Quick - tvOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 1F118CEF1BDCA4BB005013A2 /* QuickFocused-tvOSTests */ = { + 1F118CEF1BDCA4BB005013A2 /* QuickFocused - tvOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 1F118CF81BDCA4BC005013A2 /* Build configuration list for PBXNativeTarget "QuickFocused-tvOSTests" */; + buildConfigurationList = 1F118CF81BDCA4BC005013A2 /* Build configuration list for PBXNativeTarget "QuickFocused - tvOSTests" */; buildPhases = ( 1F118CEC1BDCA4BB005013A2 /* Sources */, 1F118CED1BDCA4BB005013A2 /* Frameworks */, @@ -1025,9 +1028,9 @@ dependencies = ( 1F118CF71BDCA4BB005013A2 /* PBXTargetDependency */, ); - name = "QuickFocused-tvOSTests"; + name = "QuickFocused - tvOSTests"; productName = "QuickFocused-tvOSTests"; - productReference = 1F118CF01BDCA4BB005013A2 /* QuickFocused-tvOSTests.xctest */; + productReference = 1F118CF01BDCA4BB005013A2 /* QuickFocused - tvOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; 5A5D117B19473F2100F6D13D /* Quick-iOS */ = { @@ -1049,9 +1052,9 @@ productReference = 5A5D117C19473F2100F6D13D /* Quick.framework */; productType = "com.apple.product-type.framework"; }; - 5A5D118519473F2100F6D13D /* Quick-iOSTests */ = { + 5A5D118519473F2100F6D13D /* Quick - iOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 5A5D119419473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick-iOSTests" */; + buildConfigurationList = 5A5D119419473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick - iOSTests" */; buildPhases = ( 5A5D118219473F2100F6D13D /* Sources */, 5A5D118319473F2100F6D13D /* Frameworks */, @@ -1072,14 +1075,14 @@ 04DC9803194B836300CE00B6 /* PBXTargetDependency */, 04DC9807194B838700CE00B6 /* PBXTargetDependency */, ); - name = "Quick-iOSTests"; + name = "Quick - iOSTests"; productName = "Quick-iOSTests"; - productReference = 5A5D118619473F2100F6D13D /* Quick-iOSTests.xctest */; + productReference = 5A5D118619473F2100F6D13D /* Quick - iOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 64076CE51D6D7C2000E2B499 /* QuickAfterSuite-macOSTests */ = { + 64076CE51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 64076CF21D6D7C2000E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite-macOSTests" */; + buildConfigurationList = 64076CF21D6D7C2000E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - macOSTests" */; buildPhases = ( 64076CE81D6D7C2000E2B499 /* Sources */, 64076CEE1D6D7C2000E2B499 /* Frameworks */, @@ -1090,14 +1093,14 @@ dependencies = ( 64076CE61D6D7C2000E2B499 /* PBXTargetDependency */, ); - name = "QuickAfterSuite-macOSTests"; + name = "QuickAfterSuite - macOSTests"; productName = "QuickFocused-macOSTests"; - productReference = 64076CF51D6D7C2000E2B499 /* QuickAfterSuite-macOSTests.xctest */; + productReference = 64076CF51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 64076CF81D6D7CD600E2B499 /* QuickAfterSuite-iOSTests */ = { + 64076CF81D6D7CD600E2B499 /* QuickAfterSuite - iOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 64076D051D6D7CD600E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite-iOSTests" */; + buildConfigurationList = 64076D051D6D7CD600E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - iOSTests" */; buildPhases = ( 64076CFB1D6D7CD600E2B499 /* Sources */, 64076D011D6D7CD600E2B499 /* Frameworks */, @@ -1108,14 +1111,14 @@ dependencies = ( 64076CF91D6D7CD600E2B499 /* PBXTargetDependency */, ); - name = "QuickAfterSuite-iOSTests"; + name = "QuickAfterSuite - iOSTests"; productName = "QuickFocused-iOSTests"; - productReference = 64076D081D6D7CD600E2B499 /* QuickAfterSuite-iOSTests.xctest */; + productReference = 64076D081D6D7CD600E2B499 /* QuickAfterSuite - iOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 64076D0A1D6D7CEA00E2B499 /* QuickAfterSuite-tvOSTests */ = { + 64076D0A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 64076D171D6D7CEA00E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite-tvOSTests" */; + buildConfigurationList = 64076D171D6D7CEA00E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - tvOSTests" */; buildPhases = ( 64076D0D1D6D7CEA00E2B499 /* Sources */, 64076D131D6D7CEA00E2B499 /* Frameworks */, @@ -1126,14 +1129,14 @@ dependencies = ( 64076D0B1D6D7CEA00E2B499 /* PBXTargetDependency */, ); - name = "QuickAfterSuite-tvOSTests"; + name = "QuickAfterSuite - tvOSTests"; productName = "QuickFocused-tvOSTests"; - productReference = 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite-tvOSTests.xctest */; + productReference = 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DA5663E71A4C8D8500193C88 /* QuickFocused-macOSTests */ = { + DA5663E71A4C8D8500193C88 /* QuickFocused - macOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = DA5663F31A4C8D8500193C88 /* Build configuration list for PBXNativeTarget "QuickFocused-macOSTests" */; + buildConfigurationList = DA5663F31A4C8D8500193C88 /* Build configuration list for PBXNativeTarget "QuickFocused - macOSTests" */; buildPhases = ( DA5663E41A4C8D8500193C88 /* Sources */, DA5663E51A4C8D8500193C88 /* Frameworks */, @@ -1144,14 +1147,14 @@ dependencies = ( DA5663F01A4C8D8500193C88 /* PBXTargetDependency */, ); - name = "QuickFocused-macOSTests"; + name = "QuickFocused - macOSTests"; productName = "QuickFocused-macOSTests"; - productReference = DA5663E81A4C8D8500193C88 /* QuickFocused-macOSTests.xctest */; + productReference = DA5663E81A4C8D8500193C88 /* QuickFocused - macOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DA9876B11A4C70EB0004AA17 /* QuickFocused-iOSTests */ = { + DA9876B11A4C70EB0004AA17 /* QuickFocused - iOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = DA9876BD1A4C70EB0004AA17 /* Build configuration list for PBXNativeTarget "QuickFocused-iOSTests" */; + buildConfigurationList = DA9876BD1A4C70EB0004AA17 /* Build configuration list for PBXNativeTarget "QuickFocused - iOSTests" */; buildPhases = ( DA9876AE1A4C70EB0004AA17 /* Sources */, DA9876AF1A4C70EB0004AA17 /* Frameworks */, @@ -1162,9 +1165,9 @@ dependencies = ( DA9876BA1A4C70EB0004AA17 /* PBXTargetDependency */, ); - name = "QuickFocused-iOSTests"; + name = "QuickFocused - iOSTests"; productName = "QuickFocused-iOSTests"; - productReference = DA9876B21A4C70EB0004AA17 /* QuickFocused-iOSTests.xctest */; + productReference = DA9876B21A4C70EB0004AA17 /* QuickFocused - iOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; DAEB6B8D1943873100289F44 /* Quick-macOS */ = { @@ -1186,9 +1189,9 @@ productReference = DAEB6B8E1943873100289F44 /* Quick.framework */; productType = "com.apple.product-type.framework"; }; - DAEB6B981943873100289F44 /* Quick-macOSTests */ = { + DAEB6B981943873100289F44 /* Quick - macOSTests */ = { isa = PBXNativeTarget; - buildConfigurationList = DAEB6BA71943873200289F44 /* Build configuration list for PBXNativeTarget "Quick-macOSTests" */; + buildConfigurationList = DAEB6BA71943873200289F44 /* Build configuration list for PBXNativeTarget "Quick - macOSTests" */; buildPhases = ( DAEB6B951943873100289F44 /* Sources */, DAEB6B961943873100289F44 /* Frameworks */, @@ -1211,9 +1214,9 @@ 04DC9809194B838B00CE00B6 /* PBXTargetDependency */, 93625F391951DDC8006B1FE1 /* PBXTargetDependency */, ); - name = "Quick-macOSTests"; + name = "Quick - macOSTests"; productName = QuickTests; - productReference = DAEB6B991943873100289F44 /* Quick-macOSTests.xctest */; + productReference = DAEB6B991943873100289F44 /* Quick - macOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ @@ -1222,7 +1225,7 @@ DAEB6B851943873100289F44 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0710; + LastSwiftUpdateCheck = 0810; LastUpgradeCheck = 0810; ORGANIZATIONNAME = "Brian Ivan Gesiak"; TargetAttributes = { @@ -1279,17 +1282,17 @@ projectRoot = ""; targets = ( DAEB6B8D1943873100289F44 /* Quick-macOS */, - DAEB6B981943873100289F44 /* Quick-macOSTests */, - DA5663E71A4C8D8500193C88 /* QuickFocused-macOSTests */, - 64076CE51D6D7C2000E2B499 /* QuickAfterSuite-macOSTests */, + DAEB6B981943873100289F44 /* Quick - macOSTests */, + DA5663E71A4C8D8500193C88 /* QuickFocused - macOSTests */, + 64076CE51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests */, 5A5D117B19473F2100F6D13D /* Quick-iOS */, - 5A5D118519473F2100F6D13D /* Quick-iOSTests */, - DA9876B11A4C70EB0004AA17 /* QuickFocused-iOSTests */, - 64076CF81D6D7CD600E2B499 /* QuickAfterSuite-iOSTests */, + 5A5D118519473F2100F6D13D /* Quick - iOSTests */, + DA9876B11A4C70EB0004AA17 /* QuickFocused - iOSTests */, + 64076CF81D6D7CD600E2B499 /* QuickAfterSuite - iOSTests */, 1F118CD41BDCA4AB005013A2 /* Quick-tvOS */, - 1F118CDD1BDCA4AB005013A2 /* Quick-tvOSTests */, - 1F118CEF1BDCA4BB005013A2 /* QuickFocused-tvOSTests */, - 64076D0A1D6D7CEA00E2B499 /* QuickAfterSuite-tvOSTests */, + 1F118CDD1BDCA4AB005013A2 /* Quick - tvOSTests */, + 1F118CEF1BDCA4BB005013A2 /* QuickFocused - tvOSTests */, + 64076D0A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests */, ); }; /* End PBXProject section */ @@ -1393,7 +1396,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi"; + shellScript = "if which swiftlint >/dev/null; then\nswiftlint; fi"; }; A870E6161DE00E50006891AD /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1406,7 +1409,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi"; + shellScript = "if which swiftlint >/dev/null; then\nswiftlint; fi"; }; A870E6171DE00FC7006891AD /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1419,7 +1422,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi"; + shellScript = "if which swiftlint >/dev/null; then\nswiftlint; fi"; }; /* End PBXShellScriptBuildPhase section */ @@ -1437,13 +1440,13 @@ 34C5860A1C4AC5E500D4F057 /* ErrorUtility.swift in Sources */, 1F118D041BDCA536005013A2 /* Example.swift in Sources */, 1F118CFF1BDCA536005013A2 /* QCKDSL.m in Sources */, + DED3036D1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */, CE590E211C431FE400253D19 /* NSBundle+CurrentTestBundle.swift in Sources */, 1F118D071BDCA536005013A2 /* Callsite.swift in Sources */, CE590E231C431FE400253D19 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, 1F118D081BDCA536005013A2 /* Filter.swift in Sources */, 1F118CFD1BDCA536005013A2 /* World+DSL.swift in Sources */, CE590E221C431FE400253D19 /* URL+FileName.swift in Sources */, - 1F118D0A1BDCA536005013A2 /* NSString+QCKSelectorName.m in Sources */, 1F118CFE1BDCA536005013A2 /* DSL.swift in Sources */, 7B44ADC01C5444940007AF2E /* HooksPhase.swift in Sources */, 1F118D001BDCA536005013A2 /* Closures.swift in Sources */, @@ -1465,6 +1468,7 @@ 1F118D1D1BDCA556005013A2 /* BeforeSuiteTests+ObjC.m in Sources */, 1F118D0E1BDCA547005013A2 /* QCKSpecRunner.m in Sources */, 1F118D141BDCA556005013A2 /* FailureTests+ObjC.m in Sources */, + DED3037F1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */, 1F118D0F1BDCA54B005013A2 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */, 1F118D101BDCA556005013A2 /* Configuration+AfterEach.swift in Sources */, 1F118D1A1BDCA556005013A2 /* PendingTests.swift in Sources */, @@ -1507,7 +1511,6 @@ buildActionMask = 2147483647; files = ( 96327C671C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */, - 34F375B219515CA700CE1B99 /* NSString+QCKSelectorName.m in Sources */, CE590E1B1C431FE300253D19 /* QuickSelectedTestSuiteBuilder.swift in Sources */, DA3124EB19FCAEE8002858A7 /* QCKDSL.m in Sources */, DA408BE319FF5599005DF92A /* Closures.swift in Sources */, @@ -1515,6 +1518,7 @@ 34C586091C4AC5E500D4F057 /* ErrorUtility.swift in Sources */, DA408BE719FF5599005DF92A /* SuiteHooks.swift in Sources */, 34F375BA19515CA700CE1B99 /* QuickSpec.m in Sources */, + DED3036C1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */, CE590E1C1C431FE300253D19 /* NSBundle+CurrentTestBundle.swift in Sources */, DAE7150119FF6A62005905B8 /* QuickConfiguration.m in Sources */, CE590E1E1C431FE300253D19 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, @@ -1543,6 +1547,7 @@ DA8940F11B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m in Sources */, 4728253C1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m in Sources */, DAE714F119FF65D3005905B8 /* Configuration+BeforeEachTests.swift in Sources */, + DED3037E1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */, DA05D61119F73A3800771050 /* AfterEachTests.swift in Sources */, DAB0137019FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift in Sources */, DA8F91A619F3208B006F6675 /* BeforeSuiteTests.swift in Sources */, @@ -1624,7 +1629,6 @@ buildActionMask = 2147483647; files = ( 96327C661C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */, - 34F375B119515CA700CE1B99 /* NSString+QCKSelectorName.m in Sources */, CE57CEDE1C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift in Sources */, DA3124EA19FCAEE8002858A7 /* QCKDSL.m in Sources */, DA408BE219FF5599005DF92A /* Closures.swift in Sources */, @@ -1632,6 +1636,7 @@ DA02C91919A8073100093156 /* ExampleMetadata.swift in Sources */, CE57CEDF1C430BD200D63004 /* QuickTestSuite.swift in Sources */, 34C586081C4AC5E500D4F057 /* ErrorUtility.swift in Sources */, + DED3036B1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */, DA408BE619FF5599005DF92A /* SuiteHooks.swift in Sources */, 34F375B919515CA700CE1B99 /* QuickSpec.m in Sources */, CE57CEE11C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, @@ -1660,6 +1665,7 @@ DA8940F01B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m in Sources */, 4728253B1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m in Sources */, DAE714F019FF65D3005905B8 /* Configuration+BeforeEachTests.swift in Sources */, + DED3037D1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */, DA05D61019F73A3800771050 /* AfterEachTests.swift in Sources */, DAB0136F19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift in Sources */, DA8F91A519F3208B006F6675 /* BeforeSuiteTests.swift in Sources */, @@ -2440,6 +2446,7 @@ PRODUCT_MODULE_NAME = Quick; PRODUCT_NAME = Quick; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; VALID_ARCHS = x86_64; }; name = Debug; @@ -2466,6 +2473,7 @@ PRODUCT_MODULE_NAME = Quick; PRODUCT_NAME = Quick; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; VALID_ARCHS = x86_64; }; @@ -2527,7 +2535,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1F118CE91BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick-tvOSTests" */ = { + 1F118CE91BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick - tvOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 1F118CEA1BDCA4AB005013A2 /* Debug */, @@ -2536,7 +2544,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1F118CF81BDCA4BC005013A2 /* Build configuration list for PBXNativeTarget "QuickFocused-tvOSTests" */ = { + 1F118CF81BDCA4BC005013A2 /* Build configuration list for PBXNativeTarget "QuickFocused - tvOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 1F118CF91BDCA4BC005013A2 /* Debug */, @@ -2554,7 +2562,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5A5D119419473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick-iOSTests" */ = { + 5A5D119419473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick - iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 5A5D119119473F2100F6D13D /* Debug */, @@ -2563,7 +2571,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 64076CF21D6D7C2000E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite-macOSTests" */ = { + 64076CF21D6D7C2000E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - macOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 64076CF31D6D7C2000E2B499 /* Debug */, @@ -2572,7 +2580,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 64076D051D6D7CD600E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite-iOSTests" */ = { + 64076D051D6D7CD600E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 64076D061D6D7CD600E2B499 /* Debug */, @@ -2581,7 +2589,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 64076D171D6D7CEA00E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite-tvOSTests" */ = { + 64076D171D6D7CEA00E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - tvOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 64076D181D6D7CEA00E2B499 /* Debug */, @@ -2590,7 +2598,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DA5663F31A4C8D8500193C88 /* Build configuration list for PBXNativeTarget "QuickFocused-macOSTests" */ = { + DA5663F31A4C8D8500193C88 /* Build configuration list for PBXNativeTarget "QuickFocused - macOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( DA5663F11A4C8D8500193C88 /* Debug */, @@ -2599,7 +2607,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DA9876BD1A4C70EB0004AA17 /* Build configuration list for PBXNativeTarget "QuickFocused-iOSTests" */ = { + DA9876BD1A4C70EB0004AA17 /* Build configuration list for PBXNativeTarget "QuickFocused - iOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( DA9876BB1A4C70EB0004AA17 /* Debug */, @@ -2626,7 +2634,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DAEB6BA71943873200289F44 /* Build configuration list for PBXNativeTarget "Quick-macOSTests" */ = { + DAEB6BA71943873200289F44 /* Build configuration list for PBXNativeTarget "Quick - macOSTests" */ = { isa = XCConfigurationList; buildConfigurations = ( DAEB6BA81943873200289F44 /* Debug */, diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme index 988da03..c8b0c3b 100644 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme +++ b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme @@ -33,8 +33,8 @@ @@ -43,8 +43,8 @@ @@ -53,8 +53,8 @@ diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme index a4551d2..db251d5 100644 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme +++ b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme @@ -33,8 +33,8 @@ @@ -43,8 +43,8 @@ @@ -53,8 +53,8 @@ diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme index bfb06ad..4537096 100644 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme +++ b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme @@ -33,8 +33,8 @@ @@ -43,8 +43,8 @@ @@ -53,8 +53,8 @@ diff --git a/Carthage/Checkouts/Quick/README.md b/Carthage/Checkouts/Quick/README.md index 637a989..e6dc0ad 100644 --- a/Carthage/Checkouts/Quick/README.md +++ b/Carthage/Checkouts/Quick/README.md @@ -1,6 +1,9 @@ ![](http://f.cl.ly/items/0r1E192C1R0b2g2Q3h2w/QuickLogo_Color.png) [![Build Status](https://travis-ci.org/Quick/Quick.svg?branch=master)](https://travis-ci.org/Quick/Quick) +[![CocoaPods](https://img.shields.io/cocoapods/v/Quick.svg)](https://cocoapods.org/pods/Quick) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +[![Platforms](https://img.shields.io/cocoapods/p/Quick.svg)](https://cocoapods.org/pods/Quick) Quick is a behavior-driven development framework for Swift and Objective-C. Inspired by [RSpec](https://github.com/rspec/rspec), [Specta](https://github.com/specta/specta), and [Ginkgo](https://github.com/onsi/ginkgo). @@ -41,7 +44,7 @@ Certain versions of Quick and Nimble only support certain versions of Swift. Dep |Swift version |Quick version |Nimble version | |:--------------------|:---------------|:--------------| -|Swift 3 |v0.10.0 or later|v5.0.0 or later| +|Swift 3 |v1.0.0 or later |v5.0.0 or later| |Swift 2.2 / Swift 2.3|v0.9.3 |v4.1.0 | ## Documentation @@ -53,23 +56,23 @@ All documentation can be found in the [Documentation folder](./Documentation), i use_frameworks! -def testing_pods - pod 'Quick' - pod 'Nimble' -end +target "MyApp" do + # Normal libraries -target 'MyTests' do - testing_pods -end + abstract_target 'Tests' do + inherit! :search_paths + target "MyAppTests" + target "MyAppUITests" -target 'MyUITests' do - testing_pods + pod 'Quick' + pod 'Nimble' + end end ``` ## Projects using Quick -Many apps use both Quick and Nimble however, as they are not included in the app binary, neither appear in “Top Used Libraries” blog posts. Therefore, it would be greatly appreciated to remind contributors that their efforts are valued by compiling a list of organizations and projects that use them. +Over ten-thousand apps use either Quick and Nimble however, as they are not included in the app binary, neither appear in “Top Used Libraries” blog posts. Therefore, it would be greatly appreciated to remind contributors that their efforts are valued by compiling a list of organizations and projects that use them. Does your organization or project use Quick and Nimble? If yes, [please add your project to the list](https://github.com/Quick/Quick/wiki/Projects-using-Quick). diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift b/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift index e617bc7..bb5cc0c 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift @@ -21,10 +21,12 @@ final public class Callsite: NSObject { } } -/** - Returns a boolean indicating whether two Callsite objects are equal. - If two callsites are in the same file and on the same line, they must be equal. -*/ -public func == (lhs: Callsite, rhs: Callsite) -> Bool { - return lhs.file == rhs.file && lhs.line == rhs.line +extension Callsite { + /** + Returns a boolean indicating whether two Callsite objects are equal. + If two callsites are in the same file and on the same line, they must be equal. + */ + @nonobjc public static func == (lhs: Callsite, rhs: Callsite) -> Bool { + return lhs.file == rhs.file && lhs.line == rhs.line + } } diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift b/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift index 99c1c93..583651b 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift @@ -4,7 +4,7 @@ import Foundation A closure that temporarily exposes a Configuration object within the scope of the closure. */ -public typealias QuickConfigurer = (_ configuration: Configuration) -> () +public typealias QuickConfigurer = (_ configuration: Configuration) -> Void /** A closure that, given metadata about an example, returns a boolean value diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift b/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift index c0378f4..6f5d0e6 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift @@ -1,8 +1,39 @@ +import Foundation import XCTest // NOTE: This file is not intended to be included in the Xcode project or CocoaPods. // It is picked up by the Swift Package Manager during its build process. -open class QuickConfiguration { +#if SWIFT_PACKAGE + +open class QuickConfiguration: NSObject { open class func configure(_ configuration: Configuration) {} } + +#if _runtime(_ObjC) + +internal func qck_enumerateSubclasses(_ klass: T.Type, block: (T.Type) -> Void) { + var classesCount = objc_getClassList(nil, 0) + + guard classesCount > 0 else { + return + } + + let classes = UnsafeMutablePointer.allocate(capacity: Int(classesCount)) + classesCount = objc_getClassList(AutoreleasingUnsafeMutablePointer(classes), classesCount) + + var subclass, superclass: AnyClass! + for i in 0.. ()) { - World.sharedWorld.sharedExamples(name, closure: { (NSDictionary) in closure() }) +public func sharedExamples(_ name: String, closure: @escaping () -> Void) { + World.sharedWorld.sharedExamples(name) { _ in closure() } } /** @@ -65,14 +65,14 @@ public func sharedExamples(_ name: String, closure: @escaping SharedExampleClosu - parameter closure: A closure that can contain other examples. - parameter flags: A mapping of string keys to booleans that can be used to filter examples or example groups. */ -public func describe(_ description: String, flags: FilterFlags = [:], closure: () -> ()) { +public func describe(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { World.sharedWorld.describe(description, flags: flags, closure: closure) } /** Defines an example group. Equivalent to `describe`. */ -public func context(_ description: String, flags: FilterFlags = [:], closure: () -> ()) { +public func context(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { World.sharedWorld.context(description, flags: flags, closure: closure) } @@ -127,7 +127,7 @@ public func afterEach(_ closure: @escaping AfterExampleWithMetadataClosure) { - parameter file: The absolute path to the file containing the example. A sensible default is provided. - parameter line: The line containing the example. A sensible default is provided. */ -public func it(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> ()) { +public func it(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> Void) { World.sharedWorld.it(description, flags: flags, file: file, line: line, closure: closure) } @@ -174,7 +174,7 @@ public func itBehavesLike(_ name: String, flags: FilterFlags = [:], file: String - parameter description: An arbitrary string describing the example or example group. - parameter closure: A closure that will not be evaluated. */ -public func pending(_ description: String, closure: () -> ()) { +public func pending(_ description: String, closure: () -> Void) { World.sharedWorld.pending(description, closure: closure) } @@ -182,7 +182,7 @@ public func pending(_ description: String, closure: () -> ()) { Use this to quickly mark a `describe` closure as pending. This disables all examples within the closure. */ -public func xdescribe(_ description: String, flags: FilterFlags, closure: () -> ()) { +public func xdescribe(_ description: String, flags: FilterFlags, closure: () -> Void) { World.sharedWorld.xdescribe(description, flags: flags, closure: closure) } @@ -190,7 +190,7 @@ public func xdescribe(_ description: String, flags: FilterFlags, closure: () -> Use this to quickly mark a `context` closure as pending. This disables all examples within the closure. */ -public func xcontext(_ description: String, flags: FilterFlags, closure: () -> ()) { +public func xcontext(_ description: String, flags: FilterFlags, closure: () -> Void) { xdescribe(description, flags: flags, closure: closure) } @@ -198,7 +198,7 @@ public func xcontext(_ description: String, flags: FilterFlags, closure: () -> ( Use this to quickly mark an `it` closure as pending. This disables the example and ensures the code within the closure is never run. */ -public func xit(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> ()) { +public func xit(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> Void) { World.sharedWorld.xit(description, flags: flags, file: file, line: line, closure: closure) } @@ -207,14 +207,14 @@ public func xit(_ description: String, flags: FilterFlags = [:], file: String = If any examples in the test suite are focused, only those examples are executed. This trumps any explicitly focused or unfocused examples within the closure--they are all treated as focused. */ -public func fdescribe(_ description: String, flags: FilterFlags = [:], closure: () -> ()) { +public func fdescribe(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { World.sharedWorld.fdescribe(description, flags: flags, closure: closure) } /** Use this to quickly focus a `context` closure. Equivalent to `fdescribe`. */ -public func fcontext(_ description: String, flags: FilterFlags = [:], closure: () -> ()) { +public func fcontext(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { fdescribe(description, flags: flags, closure: closure) } @@ -222,6 +222,20 @@ public func fcontext(_ description: String, flags: FilterFlags = [:], closure: ( Use this to quickly focus an `it` closure, focusing the example. If any examples in the test suite are focused, only those examples are executed. */ -public func fit(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> ()) { +public func fit(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> Void) { World.sharedWorld.fit(description, flags: flags, file: file, line: line, closure: closure) } + +/** + Use this to quickly focus an `itBehavesLike` closure. +*/ +public func fitBehavesLike(_ name: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line) { + fitBehavesLike(name, flags: flags, file: file, line: line, sharedExampleContext: { return [:] }) +} + +/** + Use this to quickly focus an `itBehavesLike` closure. +*/ +public func fitBehavesLike(_ name: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, sharedExampleContext: @escaping SharedExampleContext) { + World.sharedWorld.fitBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: flags, file: file, line: line) +} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift b/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift index ab35341..127ca54 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift @@ -18,7 +18,7 @@ extension World { registerSharedExample(name, closure: closure) } - internal func describe(_ description: String, flags: FilterFlags, closure: () -> ()) { + internal func describe(_ description: String, flags: FilterFlags, closure: () -> Void) { guard currentExampleMetadata == nil else { raiseError("'describe' cannot be used inside '\(currentPhase)', 'describe' may only be used inside 'context' or 'describe'. ") } @@ -30,20 +30,20 @@ extension World { performWithCurrentExampleGroup(group, closure: closure) } - internal func context(_ description: String, flags: FilterFlags, closure: () -> ()) { + internal func context(_ description: String, flags: FilterFlags, closure: () -> Void) { guard currentExampleMetadata == nil else { raiseError("'context' cannot be used inside '\(currentPhase)', 'context' may only be used inside 'context' or 'describe'. ") } self.describe(description, flags: flags, closure: closure) } - internal func fdescribe(_ description: String, flags: FilterFlags, closure: () -> ()) { + internal func fdescribe(_ description: String, flags: FilterFlags, closure: () -> Void) { var focusedFlags = flags focusedFlags[Filter.focused] = true self.describe(description, flags: focusedFlags, closure: closure) } - internal func xdescribe(_ description: String, flags: FilterFlags, closure: () -> ()) { + internal func xdescribe(_ description: String, flags: FilterFlags, closure: () -> Void) { var pendingFlags = flags pendingFlags[Filter.pending] = true self.describe(description, flags: pendingFlags, closure: closure) @@ -85,7 +85,7 @@ extension World { } #endif - internal func it(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> ()) { + internal func it(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { if beforesCurrentlyExecuting { raiseError("'it' cannot be used inside 'beforeEach', 'it' may only be used inside 'context' or 'describe'. ") } @@ -100,13 +100,13 @@ extension World { currentExampleGroup.appendExample(example) } - internal func fit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> ()) { + internal func fit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { var focusedFlags = flags focusedFlags[Filter.focused] = true self.it(description, flags: focusedFlags, file: file, line: line, closure: closure) } - internal func xit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> ()) { + internal func xit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { var pendingFlags = flags pendingFlags[Filter.pending] = true self.it(description, flags: pendingFlags, file: file, line: line, closure: closure) @@ -131,19 +131,25 @@ extension World { } } + internal func fitBehavesLike(_ name: String, sharedExampleContext: @escaping SharedExampleContext, flags: FilterFlags, file: String, line: UInt) { + var focusedFlags = flags + focusedFlags[Filter.focused] = true + self.itBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: focusedFlags, file: file, line: line) + } + #if _runtime(_ObjC) @objc(itWithDescription:flags:file:line:closure:) - private func objc_it(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> ()) { + private func objc_it(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { it(description, flags: flags, file: file, line: line, closure: closure) } @objc(fitWithDescription:flags:file:line:closure:) - private func objc_fit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> ()) { + private func objc_fit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { fit(description, flags: flags, file: file, line: line, closure: closure) } @objc(xitWithDescription:flags:file:line:closure:) - private func objc_xit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> ()) { + private func objc_xit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { xit(description, flags: flags, file: file, line: line, closure: closure) } @@ -153,7 +159,7 @@ extension World { } #endif - internal func pending(_ description: String, closure: () -> ()) { + internal func pending(_ description: String, closure: () -> Void) { print("Pending: \(description)") } diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Example.swift b/Carthage/Checkouts/Quick/Sources/Quick/Example.swift index 07bc529..56b3303 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/Example.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/Example.swift @@ -23,10 +23,10 @@ final public class Example: NSObject { weak internal var group: ExampleGroup? private let internalDescription: String - private let closure: () -> () + private let closure: () -> Void private let flags: FilterFlags - internal init(description: String, callsite: Callsite, flags: FilterFlags, closure: @escaping () -> ()) { + internal init(description: String, callsite: Callsite, flags: FilterFlags, closure: @escaping () -> Void) { self.internalDescription = description self.closure = closure self.callsite = callsite @@ -102,10 +102,12 @@ final public class Example: NSObject { } } -/** - Returns a boolean indicating whether two Example objects are equal. - If two examples are defined at the exact same callsite, they must be equal. -*/ -public func == (lhs: Example, rhs: Example) -> Bool { - return lhs.callsite == rhs.callsite +extension Example { + /** + Returns a boolean indicating whether two Example objects are equal. + If two examples are defined at the exact same callsite, they must be equal. + */ + @nonobjc public static func == (lhs: Example, rhs: Example) -> Bool { + return lhs.callsite == rhs.callsite + } } diff --git a/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift b/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift index 79f24ca..ca38356 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift @@ -50,7 +50,7 @@ final public class ExampleGroup: NSObject { internal var filterFlags: FilterFlags { var aggregateFlags = flags - walkUp() { (group: ExampleGroup) -> () in + walkUp { group in for (key, value) in group.flags { aggregateFlags[key] = value } @@ -60,7 +60,7 @@ final public class ExampleGroup: NSObject { internal var befores: [BeforeExampleWithMetadataClosure] { var closures = Array(hooks.befores.reversed()) - walkUp() { (group: ExampleGroup) -> () in + walkUp { group in closures.append(contentsOf: Array(group.hooks.befores.reversed())) } return Array(closures.reversed()) @@ -68,13 +68,13 @@ final public class ExampleGroup: NSObject { internal var afters: [AfterExampleWithMetadataClosure] { var closures = hooks.afters - walkUp() { (group: ExampleGroup) -> () in + walkUp { group in closures.append(contentsOf: group.hooks.afters) } return closures } - internal func walkDownExamples(_ callback: (_ example: Example) -> ()) { + internal func walkDownExamples(_ callback: (_ example: Example) -> Void) { for example in childExamples { callback(example) } @@ -93,7 +93,7 @@ final public class ExampleGroup: NSObject { childExamples.append(example) } - private func walkUp(_ callback: (_ group: ExampleGroup) -> ()) { + private func walkUp(_ callback: (_ group: ExampleGroup) -> Void) { var group = self while let parent = group.parent { callback(parent) diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift index a241b33..9c7d310 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift @@ -3,13 +3,13 @@ /** A closure executed before an example is run. */ -public typealias BeforeExampleClosure = () -> () +public typealias BeforeExampleClosure = () -> Void /** A closure executed before an example is run. The closure is given example metadata, which contains information about the example that is about to be run. */ -public typealias BeforeExampleWithMetadataClosure = (_ exampleMetadata: ExampleMetadata) -> () +public typealias BeforeExampleWithMetadataClosure = (_ exampleMetadata: ExampleMetadata) -> Void /** A closure executed after an example is run. @@ -27,7 +27,7 @@ public typealias AfterExampleWithMetadataClosure = BeforeExampleWithMetadataClos /** A closure executed before any examples are run. */ -public typealias BeforeSuiteClosure = () -> () +public typealias BeforeSuiteClosure = () -> Void /** A closure executed after all examples have finished running. diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift index 565287b..449cbfc 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift @@ -11,7 +11,7 @@ final internal class ExampleHooks { } internal func appendBefore(_ closure: @escaping BeforeExampleClosure) { - befores.append { (exampleMetadata: ExampleMetadata) in closure() } + befores.append { (_: ExampleMetadata) in closure() } } internal func appendAfter(_ closure: @escaping AfterExampleWithMetadataClosure) { @@ -19,7 +19,7 @@ final internal class ExampleHooks { } internal func appendAfter(_ closure: @escaping AfterExampleClosure) { - afters.append { (exampleMetadata: ExampleMetadata) in closure() } + afters.append { (_: ExampleMetadata) in closure() } } internal func executeBefores(_ exampleMetadata: ExampleMetadata) { diff --git a/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift b/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift index 730843e..994dd72 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift @@ -11,6 +11,15 @@ extension Bundle { return allBundles.first { $0.bundlePath.hasSuffix(".xctest") } } + /** + Return the module name of the bundle. + Uses the bundle filename and transform it to match Xcode's transformation. + Module name has to be a valid "C99 extended identifier". + */ + internal var moduleName: String { + let fileName = bundleURL.fileName as NSString + return fileName.c99ExtendedIdentifier + } } #endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift b/Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift new file mode 100644 index 0000000..4514863 --- /dev/null +++ b/Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift @@ -0,0 +1,33 @@ +#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) +import Foundation + +public extension NSString { + + private static var invalidCharacters: CharacterSet = { + var invalidCharacters = CharacterSet() + + let invalidCharacterSets: [CharacterSet] = [ + .whitespacesAndNewlines, + .illegalCharacters, + .controlCharacters, + .punctuationCharacters, + .nonBaseCharacters, + .symbols, + ] + + for invalidSet in invalidCharacterSets { + invalidCharacters.formUnion(invalidSet) + } + + return invalidCharacters + }() + + @objc(qck_c99ExtendedIdentifier) + var c99ExtendedIdentifier: String { + let validComponents = components(separatedBy: NSString.invalidCharacters) + let result = validComponents.joined(separator: "_") + + return result.isEmpty ? "_" : result + } +} +#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift index e3bed9f..eb9aba5 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift @@ -1,8 +1,10 @@ import XCTest -#if os(Linux) + // NOTE: This file is not intended to be included in the Xcode project or CocoaPods. // It is picked up by the Swift Package Manager during its build process. +#if SWIFT_PACKAGE && os(Linux) + /// When using Quick with swift-corelibs-xctest, automatic discovery of specs and /// configurations is not available. Instead, you should create a standalone /// executable and call this function from its main.swift file. This will execute @@ -18,16 +20,19 @@ import XCTest /// info `XCTMain` if you were using swift-corelibs-xctest directly. /// This allows for mixing Quick specs and XCTestCase tests in one run. public func QCKMain(_ specs: [QuickSpec.Type], - configurations: [QuickConfiguration.Type] = [], - testCases: [XCTestCaseEntry] = []) -> Never { - // Perform all configuration (ensures that shared examples have been discovered) - World.sharedWorld.configure { configuration in + configurations: [QuickConfiguration.Type] = [], + testCases: [XCTestCaseEntry] = []) -> Never { + let world = World.sharedWorld + + // Perform all configurations (ensures that shared examples have been discovered) + world.configure { configuration in for configurationClass in configurations { configurationClass.configure(configuration) } } - World.sharedWorld.finalizeConfiguration() + world.finalizeConfiguration() XCTMain(specs.flatMap { testCase($0.allTests) } + testCases) } + #endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift index ec2e308..d49e859 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift @@ -66,8 +66,7 @@ private func testCaseClassForTestCaseWithName(_ name: String) -> AnyClass? { if let testCaseClass = bundle.classNamed(className) { return testCaseClass } - let bundleFileName = bundle.bundleURL.fileName - let moduleName = bundleFileName.replacingOccurrences(of: " ", with: "_") + let moduleName = bundle.moduleName return NSClassFromString("\(moduleName).\(className)") } diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift index e4dd728..5682a78 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift @@ -3,10 +3,20 @@ import XCTest // NOTE: This file is not intended to be included in the Xcode project or CocoaPods. // It is picked up by the Swift Package Manager during its build process. -open class QuickSpec: XCTestCase { +#if SWIFT_PACKAGE + +#if _runtime(_ObjC) +import QuickSpecBase + +public typealias QuickSpecBase = _QuickSpecBase +#else +public typealias QuickSpecBase = XCTestCase +#endif + +open class QuickSpec: QuickSpecBase { open func spec() {} -#if os(Linux) +#if !_runtime(_ObjC) public required init() { super.init(name: "", testClosure: { _ in }) } @@ -17,9 +27,71 @@ open class QuickSpec: XCTestCase { public required override init() { super.init() } + + /// This method is used as a hook for the following two purposes + /// + /// 1. Performing all configurations + /// 2. Gathering examples for each spec classes + /// + /// On Linux, those are done in `LinuxMain.swift` and `Quick.QCKMain`. But + /// SwiftPM on macOS does not have the mechanism (test cases are automatically + /// discovered powered by Objective-C runtime), so we needed the alternative + /// way. + override open class func defaultTestSuite() -> XCTestSuite { + let world = World.sharedWorld + + if !world.isConfigurationFinalized { + // Perform all configurations (ensures that shared examples have been discovered) + world.configure { configuration in + qck_enumerateSubclasses(QuickConfiguration.self) { configurationClass in + configurationClass.configure(configuration) + } + } + world.finalizeConfiguration() + } + + // Let's gather examples for each spec classes. This has the same effect + // as listing spec classes in `LinuxMain.swift` on Linux. + _ = allTests + + return super.defaultTestSuite() + } + + override open class func _qck_testMethodSelectors() -> [_QuickSelectorWrapper] { + let examples = World.sharedWorld.examples(self) + + var selectorNames = Set() + return examples.map { example in + let selector = addInstanceMethod(for: example, classSelectorNames: &selectorNames) + return _QuickSelectorWrapper(selector: selector) + } + } + + private static func addInstanceMethod(for example: Example, classSelectorNames selectorNames : inout Set) -> Selector { + let block: @convention(block) (QuickSpec) -> Void = { _ in + example.run() + } + let implementation = imp_implementationWithBlock(block as Any) + + let originalName = example.name + var selectorName = originalName + var i: UInt = 2 + + while selectorNames.contains(selectorName) { + selectorName = String(format: "%@_%tu", originalName, i) + i += 1 + } + + selectorNames.insert(selectorName) + + let selector = NSSelectorFromString(selectorName) + class_addMethod(self, selector, implementation, "v@:") + + return selector + } #endif - static var allTestsCache = [String : [(String, (XCTestCase) -> () throws -> Void)]]() + static var allTestsCache = [String: [(String, (XCTestCase) -> () throws -> Void)]]() public class var allTests: [(String, (XCTestCase) -> () throws -> Void)] { if let cached = allTestsCache[String(describing: self)] { @@ -46,3 +118,5 @@ open class QuickSpec: XCTestCase { } } } + +#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/World.swift b/Carthage/Checkouts/Quick/Sources/Quick/World.swift index 487902e..fb5ec25 100644 --- a/Carthage/Checkouts/Quick/Sources/Quick/World.swift +++ b/Carthage/Checkouts/Quick/Sources/Quick/World.swift @@ -4,13 +4,13 @@ import Foundation A closure that, when evaluated, returns a dictionary of key-value pairs that can be accessed from within a group of shared examples. */ -public typealias SharedExampleContext = () -> (NSDictionary) +public typealias SharedExampleContext = () -> [String: Any] /** A closure that is used to define a group of shared examples. This closure may contain any number of example and example groups. */ -public typealias SharedExampleClosure = (@escaping SharedExampleContext) -> () +public typealias SharedExampleClosure = (@escaping SharedExampleContext) -> Void /** A collection of state Quick builds up in order to work its magic. @@ -52,10 +52,11 @@ final internal class World: NSObject { internal var isRunningAdditionalSuites = false #endif - private var specs: Dictionary = [:] + private var specs: [String: ExampleGroup] = [:] private var sharedExamples: [String: SharedExampleClosure] = [:] private let configuration = Configuration() - private var isConfigurationFinalized = false + + internal private(set) var isConfigurationFinalized = false internal var exampleHooks: ExampleHooks {return configuration.exampleHooks } internal var suiteHooks: SuiteHooks { return configuration.suiteHooks } diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m index ea64934..4891679 100644 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m +++ b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m @@ -1,13 +1,10 @@ #import "QuickSpec.h" #import "QuickConfiguration.h" -#import "NSString+QCKSelectorName.h" #import "World.h" -#import +#import static QuickSpec *currentSpec = nil; -const void * const QCKExampleKey = &QCKExampleKey; - @interface QuickSpec () @property (nonatomic, strong) Example *example; @end @@ -63,24 +60,17 @@ + (NSArray *)testInvocations { for (Example *example in examples) { SEL selector = [self addInstanceMethodForExample:example classSelectorNames:selectorNames]; - NSInvocation *invocation = [self invocationForInstanceMethodWithSelector:selector - example:example]; + + NSMethodSignature *signature = [self instanceMethodSignatureForSelector:selector]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + invocation.selector = selector; + [invocations addObject:invocation]; } return invocations; } -/** - XCTest sets the invocation for the current test case instance using this setter. - QuickSpec hooks into this event to give the test case a reference to the current example. - It will need this reference to correctly report its name to XCTest. - */ -- (void)setInvocation:(NSInvocation *)invocation { - self.example = objc_getAssociatedObject(invocation, QCKExampleKey); - [super setInvocation:invocation]; -} - #pragma mark - Public Interface - (void)spec { } @@ -105,21 +95,14 @@ - (void)spec { } */ + (SEL)addInstanceMethodForExample:(Example *)example classSelectorNames:(NSMutableSet *)selectorNames { IMP implementation = imp_implementationWithBlock(^(QuickSpec *self){ + self.example = example; currentSpec = self; [example run]; }); - NSCharacterSet *characterSet = [NSCharacterSet alphanumericCharacterSet]; - NSMutableString *sanitizedFileName = [NSMutableString string]; - for (NSUInteger i = 0; i < example.callsite.file.length; i++) { - unichar ch = [example.callsite.file characterAtIndex:i]; - if ([characterSet characterIsMember:ch]) { - [sanitizedFileName appendFormat:@"%c", ch]; - } - } - const char *types = [[NSString stringWithFormat:@"%s%s%s", @encode(id), @encode(id), @encode(SEL)] UTF8String]; + const char *types = [[NSString stringWithFormat:@"%s%s%s", @encode(void), @encode(id), @encode(SEL)] UTF8String]; - NSString *originalName = example.name.qck_selectorName; + NSString *originalName = example.name.qck_c99ExtendedIdentifier; NSString *selectorName = originalName; NSUInteger i = 2; @@ -135,18 +118,6 @@ + (SEL)addInstanceMethodForExample:(Example *)example classSelectorNames:(NSMuta return selector; } -+ (NSInvocation *)invocationForInstanceMethodWithSelector:(SEL)selector - example:(Example *)example { - NSMethodSignature *signature = [self instanceMethodSignatureForSelector:selector]; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; - invocation.selector = selector; - objc_setAssociatedObject(invocation, - QCKExampleKey, - example, - OBJC_ASSOCIATION_RETAIN_NONATOMIC); - return invocation; -} - /** This method is used to record failures, whether they represent example expectations that were not met, or exceptions raised during test setup diff --git a/Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m b/Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m new file mode 100644 index 0000000..10b6f7e --- /dev/null +++ b/Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m @@ -0,0 +1,55 @@ +#import "QuickSpecBase.h" + +#pragma mark - _QuickSelectorWrapper + +@interface _QuickSelectorWrapper () +@property(nonatomic, assign) SEL selector; +@end + +@implementation _QuickSelectorWrapper + +- (instancetype)initWithSelector:(SEL)selector { + self = [super init]; + _selector = selector; + return self; +} + +@end + + +#pragma mark - _QuickSpecBase + +@implementation _QuickSpecBase + +- (instancetype)init { + self = [super initWithInvocation: nil]; + return self; +} + +/** + Invocations for each test method in the test case. QuickSpec overrides this method to define a + new method for each example defined in +[QuickSpec spec]. + + @return An array of invocations that execute the newly defined example methods. + */ ++ (NSArray *)testInvocations { + NSArray<_QuickSelectorWrapper *> *wrappers = [self _qck_testMethodSelectors]; + NSMutableArray *invocations = [NSMutableArray arrayWithCapacity:wrappers.count]; + + for (_QuickSelectorWrapper *wrapper in wrappers) { + SEL selector = wrapper.selector; + NSMethodSignature *signature = [self instanceMethodSignatureForSelector:selector]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + invocation.selector = selector; + + [invocations addObject:invocation]; + } + + return invocations; +} + ++ (NSArray<_QuickSelectorWrapper *> *)_qck_testMethodSelectors { + return @[]; +} + +@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h b/Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h new file mode 100644 index 0000000..69e96cc --- /dev/null +++ b/Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h @@ -0,0 +1,11 @@ +@import Foundation; +@import XCTest; + +@interface _QuickSelectorWrapper : NSObject +- (instancetype)initWithSelector:(SEL)selector; +@end + +@interface _QuickSpecBase : XCTestCase ++ (NSArray<_QuickSelectorWrapper *> *)_qck_testMethodSelectors; +- (instancetype)init NS_DESIGNATED_INITIALIZER; +@end diff --git a/Carthage/Checkouts/Quick/Tests/LinuxMain.swift b/Carthage/Checkouts/Quick/Tests/LinuxMain.swift index 938f54f..2a67c4a 100644 --- a/Carthage/Checkouts/Quick/Tests/LinuxMain.swift +++ b/Carthage/Checkouts/Quick/Tests/LinuxMain.swift @@ -18,15 +18,15 @@ Quick.QCKMain([ Configuration_BeforeEachSpec.self, FunctionalTests_CrossReferencingSpecA.self, FunctionalTests_CrossReferencingSpecB.self, - FunctionalTests_FocusedSpec_Focused.self, - FunctionalTests_FocusedSpec_Unfocused.self, + _FunctionalTests_FocusedSpec_Focused.self, + _FunctionalTests_FocusedSpec_Unfocused.self ], configurations: [ FunctionalTests_SharedExamples_BeforeEachTests_SharedExamples.self, FunctionalTests_SharedExamplesTests_SharedExamples.self, FunctionalTests_Configuration_AfterEach.self, FunctionalTests_Configuration_BeforeEach.self, - FunctionalTests_FocusedSpec_SharedExamplesConfiguration.self, + FunctionalTests_FocusedSpec_SharedExamplesConfiguration.self ], testCases: [ testCase(AfterEachTests.allTests), @@ -41,5 +41,5 @@ testCases: [ testCase(Configuration_BeforeEachTests.allTests), testCase(FocusedTests.allTests), testCase(FunctionalTests_CrossReferencingSpecA.allTests), - testCase(FunctionalTests_CrossReferencingSpecB.allTests), + testCase(FunctionalTests_CrossReferencingSpecB.allTests) ]) diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift index 0569a7b..777629f 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift @@ -11,7 +11,13 @@ class FunctionalTests_FocusedSpec_SharedExamplesConfiguration: QuickConfiguratio } } -class FunctionalTests_FocusedSpec_Focused: QuickSpec { +// The following `QuickSpec`s will be run in a same test suite with other specs +// on SwiftPM. We must avoid that the focused flags below affect other specs, so +// the examples of the two specs must be gathered lastly. That is the reason why +// the two specs have underscore prefix (and are listed at the bottom of `QCKMain`s +// `specs` array). + +class _FunctionalTests_FocusedSpec_Focused: QuickSpec { override func spec() { it("has an unfocused example that fails, but is never run") { fail() } fit("has a focused example that passes (1)") {} @@ -21,11 +27,11 @@ class FunctionalTests_FocusedSpec_Focused: QuickSpec { fit("has a focused example that passes (3)") {} } - itBehavesLike("two passing shared examples", flags: [Filter.focused: true]) + fitBehavesLike("two passing shared examples") } } -class FunctionalTests_FocusedSpec_Unfocused: QuickSpec { +class _FunctionalTests_FocusedSpec_Unfocused: QuickSpec { override func spec() { it("has an unfocused example that fails, but is never run") { fail() } @@ -39,14 +45,14 @@ class FunctionalTests_FocusedSpec_Unfocused: QuickSpec { final class FocusedTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (FocusedTests) -> () throws -> Void)] { return [ - ("testOnlyFocusedExamplesAreExecuted", testOnlyFocusedExamplesAreExecuted), + ("testOnlyFocusedExamplesAreExecuted", testOnlyFocusedExamplesAreExecuted) ] } func testOnlyFocusedExamplesAreExecuted() { let result = qck_runSpecs([ - FunctionalTests_FocusedSpec_Focused.self, - FunctionalTests_FocusedSpec_Unfocused.self + _FunctionalTests_FocusedSpec_Focused.self, + _FunctionalTests_FocusedSpec_Unfocused.self ]) XCTAssertEqual(result?.executionCount, 5 as UInt) } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift index 0b02978..43dc05f 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift @@ -24,9 +24,9 @@ public protocol XCTestCaseProvider: XCTestCaseProviderStatic, XCTestCaseNameProv public extension XCTestCaseProvider where Self: XCTestCaseProviderStatic { var allTestNames: [String] { - return type(of: self).allTests.map({ name, test in + return type(of: self).allTests.map { name, _ in return name - }) + } } } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift index 713e8ae..2879a4b 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift @@ -41,7 +41,7 @@ class FunctionalTests_AfterEachSpec: QuickSpec { // The list should contain the afterEach for those example, executed from top to bottom. expect(afterEachOrder).to(equal([ AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree, - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree, + AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree ])) } } @@ -68,7 +68,7 @@ class FunctionalTests_AfterEachSpec: QuickSpec { final class AfterEachTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (AfterEachTests) -> () throws -> Void)] { return [ - ("testAfterEachIsExecutedInTheCorrectOrder", testAfterEachIsExecutedInTheCorrectOrder), + ("testAfterEachIsExecutedInTheCorrectOrder", testAfterEachIsExecutedInTheCorrectOrder) ] } @@ -84,7 +84,7 @@ final class AfterEachTests: XCTestCase, XCTestCaseProvider { // [3] The inner afterEach closures are executed from top to bottom, // then the outer afterEach closures are executed from top to bottom. AfterEachType.InnerOne, AfterEachType.InnerTwo, - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree, + AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree ] XCTAssertEqual(afterEachOrder, expectedOrder) diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift index d46ae68..a770b5f 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift @@ -53,7 +53,7 @@ class FunctionalTests_BeforeEachSpec: QuickSpec { final class BeforeEachTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeforeEachTests) -> () throws -> Void)] { return [ - ("testBeforeEachIsExecutedInTheCorrectOrder", testBeforeEachIsExecutedInTheCorrectOrder), + ("testBeforeEachIsExecutedInTheCorrectOrder", testBeforeEachIsExecutedInTheCorrectOrder) ] } @@ -69,7 +69,7 @@ final class BeforeEachTests: XCTestCase, XCTestCaseProvider { // [3] The outer beforeEach closures are executed from top to bottom, // then the inner beforeEach closures are executed from top to bottom. BeforeEachType.OuterOne, BeforeEachType.OuterTwo, - BeforeEachType.InnerOne, BeforeEachType.InnerTwo, BeforeEachType.InnerThree, + BeforeEachType.InnerOne, BeforeEachType.InnerTwo, BeforeEachType.InnerThree ] XCTAssertEqual(beforeEachOrder, expectedOrder) } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift index d3d6bc1..df39126 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift @@ -23,7 +23,7 @@ class FunctionalTests_BeforeSuite_Spec: QuickSpec { final class BeforeSuiteTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (BeforeSuiteTests) -> () throws -> Void)] { return [ - ("testBeforeSuiteIsExecutedBeforeAnyExamples", testBeforeSuiteIsExecutedBeforeAnyExamples), + ("testBeforeSuiteIsExecutedBeforeAnyExamples", testBeforeSuiteIsExecutedBeforeAnyExamples) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift new file mode 100644 index 0000000..4f99689 --- /dev/null +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift @@ -0,0 +1,30 @@ +#if !SWIFT_PACKAGE + +import XCTest +@testable import Quick +import Nimble + +class BundleModuleNameSpecs: QuickSpec { + override func spec() { + describe("Bundle module name") { + it("should repalce invalid characters with underscores") { + let bundle = Bundle.currentTestBundle + let moduleName = bundle?.moduleName + expect(moduleName?.contains("Quick_")).to(beTrue()) + } + + it("should be the correct module name to be able to retreive classes") { + guard let bundle = Bundle.currentTestBundle else { + XCTFail("test bundle not found") + return + } + + let moduleName = bundle.moduleName + let className: AnyClass? = NSClassFromString("\(moduleName).BundleModuleNameSpecs") + expect(className).to(be(BundleModuleNameSpecs.self)) + } + } + } +} + +#endif diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift index 2cb0113..d7c2105 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift @@ -16,7 +16,7 @@ class Configuration_AfterEachSpec: QuickSpec { final class Configuration_AfterEachTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (Configuration_AfterEachTests) -> () throws -> Void)] { return [ - ("testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted", testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted), + ("testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted", testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift index a7a8c3c..ddf1509 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift @@ -13,7 +13,7 @@ class Configuration_BeforeEachSpec: QuickSpec { final class Configuration_BeforeEachTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (Configuration_BeforeEachTests) -> () throws -> Void)] { return [ - ("testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted", testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted), + ("testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted", testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift index df79d91..875cf4e 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift @@ -7,7 +7,7 @@ import Quick final class DescribeTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (DescribeTests) -> () throws -> Void)] { return [ - ("testDescribeThrowsIfUsedOutsideOfQuickSpec", testDescribeThrowsIfUsedOutsideOfQuickSpec), + ("testDescribeThrowsIfUsedOutsideOfQuickSpec", testDescribeThrowsIfUsedOutsideOfQuickSpec) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift index 61e4504..0973dc8 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift @@ -109,7 +109,7 @@ class FunctionalTests_ItSpec: QuickSpec { final class ItTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (ItTests) -> () throws -> Void)] { return [ - ("testAllExamplesAreExecuted", testAllExamplesAreExecuted), + ("testAllExamplesAreExecuted", testAllExamplesAreExecuted) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift index f8db0f2..e9951b5 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift @@ -29,7 +29,7 @@ final class PendingTests: XCTestCase, XCTestCaseProvider { return [ ("testAnOtherwiseFailingExampleWhenMarkedPendingDoesNotCauseTheSuiteToFail", testAnOtherwiseFailingExampleWhenMarkedPendingDoesNotCauseTheSuiteToFail), ("testBeforeEachOnlyRunForEnabledExamples", testBeforeEachOnlyRunForEnabledExamples), - ("testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples", testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples), + ("testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples", testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift index c458075..2b0fd77 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift @@ -28,7 +28,7 @@ final class SharedExamples_BeforeEachTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (SharedExamples_BeforeEachTests) -> () throws -> Void)] { return [ ("testBeforeEachOutsideOfSharedExamplesExecutedOnceBeforeEachExample", testBeforeEachOutsideOfSharedExamplesExecutedOnceBeforeEachExample), - ("testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample", testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample), + ("testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample", testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample) ] } diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift index 9b2834d..d296601 100644 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift +++ b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift @@ -37,7 +37,7 @@ final class SharedExamplesTests: XCTestCase, XCTestCaseProvider { static var allTests: [(String, (SharedExamplesTests) -> () throws -> Void)] { return [ ("testAGroupOfThreeSharedExamplesExecutesThreeExamples", testAGroupOfThreeSharedExamplesExecutesThreeExamples), - ("testSharedExamplesWithContextPassContextToExamples", testSharedExamplesWithContextPassContextToExamples), + ("testSharedExamplesWithContextPassContextToExamples", testSharedExamplesWithContextPassContextToExamples) ] } diff --git a/Carthage/Checkouts/ReSwift/.gitignore b/Carthage/Checkouts/ReSwift/.gitignore index a43f253..6180475 100644 --- a/Carthage/Checkouts/ReSwift/.gitignore +++ b/Carthage/Checkouts/ReSwift/.gitignore @@ -35,13 +35,11 @@ xcuserdata # Packages/ .build/ -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ +# While ReSwift has no dependencies we are still using CocoaPods, but only +# to ensure developers use the same binary version of SwiftLint. Since +# this is just a development dependency it is ok to ignore it, and rely on +# developers to generate it when required. +Pods/ # Carthage # diff --git a/Carthage/Checkouts/ReSwift/.swiftlint.yml b/Carthage/Checkouts/ReSwift/.swiftlint.yml index ae20603..6516f6e 100644 --- a/Carthage/Checkouts/ReSwift/.swiftlint.yml +++ b/Carthage/Checkouts/ReSwift/.swiftlint.yml @@ -4,4 +4,4 @@ excluded: # paths to ignore during linting. overridden by `included`. disabled_rules: # rule identifiers to exclude from running - force_cast - - conditional_binding_cascade + - opening_brace diff --git a/Carthage/Checkouts/ReSwift/.travis.yml b/Carthage/Checkouts/ReSwift/.travis.yml index 595ae3a..bae4908 100644 --- a/Carthage/Checkouts/ReSwift/.travis.yml +++ b/Carthage/Checkouts/ReSwift/.travis.yml @@ -16,12 +16,12 @@ env: matrix: include: - - osx_image: xcode8.1sneakpeek + - osx_image: xcode8.2 env: SCHEME="macOS" SDK="macosx10.12" DESTINATION="arch=x86_64" - - osx_image: xcode8.1sneakpeek - env: SCHEME="iOS" SDK="iphonesimulator10.1" DESTINATION="OS=10.1,name=iPhone 6S Plus" - - osx_image: xcode8.1sneakpeek - env: SCHEME="tvOS" SDK="appletvsimulator10.0" DESTINATION="OS=10.0,name=Apple TV 1080p" + - osx_image: xcode8.2 + env: SCHEME="iOS" SDK="iphonesimulator10.2" DESTINATION="OS=10.1,name=iPhone 6S Plus" + - osx_image: xcode8.2 + env: SCHEME="tvOS" SDK="appletvsimulator10.1" DESTINATION="OS=10.1,name=Apple TV 1080p" script: - set -o pipefail diff --git a/Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint b/Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint new file mode 100755 index 0000000..9a78fbb --- /dev/null +++ b/Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +swiftlint="$SRCROOT/Pods/SwiftLint/swiftlint" + +if [ -f "$swiftlint" ]; then + "$swiftlint" +else + echo 'warning: Cannot find SwiftLint in the expected location. If you are developing ReSwift please install it via `pod install`. If you are building ReSwift as a dependency of your project feel free to ignore this.' +fi diff --git a/Carthage/Checkouts/ReSwift/CHANGELOG.md b/Carthage/Checkouts/ReSwift/CHANGELOG.md index cde9ee1..6a99b46 100644 --- a/Carthage/Checkouts/ReSwift/CHANGELOG.md +++ b/Carthage/Checkouts/ReSwift/CHANGELOG.md @@ -1,6 +1,84 @@ -#Upcoming Release +# 4.0.0 + +*Work in Progress* + +**Breaking API Changes:** + +- Introduced a new Subscription API (#203) - @Ben-G, @mjarvis, @DivineDominion + + - The subscription API provides basic operators, such as `skipRepeats` (skip calls to `newState` unless state value changed) and `select` (sub-select a state). + + - This is a breaking API change that requires migrating existing subscriptions that sub-select a portion of a store's state: + + - Subselecting state in 3.0.0: + + ```swift + store.subscribe(subscriber) { ($0.testValue, $0.otherState?.name) } + ``` + - Subselecting state in 4.0.0: + + ```swift + store.subscribe(subscriber) { + $0.select { + ($0.testValue, $0.otherState?.name) + } + } + ``` + + - For any store state that is `Equatable` or any sub-selected state that is `Equatable`, `skipRepeats` will be used by default. + + - For states/substates that are not `Equatable`, `skipRepeats` can be implemented via a closure: + + ```swift + store.subscribe(subscriber) { + $0.select { + $0.testValue + }.skipRepeats { + return $0 == $1 + } + } + ``` + +- Reducer type has been removed in favor of reducer function (#177) - Ben-G + + - Here's an example of a new app reducer, for details see the README: + + ```swift + func counterReducer(action: Action, state: AppState?) -> AppState { + var state = state ?? AppState() + + switch action { + case _ as CounterActionIncrease: + state.counter += 1 + case _ as CounterActionDecrease: + state.counter -= 1 + default: + break + } + + return state + } + ``` + +- `dispatch` functions now return `Void` instead of `Any` (#187) - @Qata + + - The return type has been removed without any replacement, since the core team did not find any use cases of it. A common usage of the return type in redux is returning a promise that is fullfilled when a dispatched action is processed. While it's generally discouraged to disrupt the unidirectional data flow using this mechanism we do provide a `dispatch` overload that takes a `callback` argument and serves this purpose. + +- Make `dispatch` argument in middleware non-optional (#225) - @dimazen, @mjarvis, @Ben-G + +- `Middleware` now has a generic type parameter that is used for the `getState` method and matches the Store's `State` type. This allows accessing the state in middleware code without type casting (#226) - @mjarvis + + +**Other:** + +- Extend `StoreType` with substate selector subscription (#192) - @mjarvis +- Add `DispatchingStoreType` protocol for testing (#197) - @mjarvis +- Installation guide for Swift Package Manager - @thomaspaulmann +- Update documentation to reflect breaking API changes - @mjarvis +- Clarify error message on concurrent usage of ReSwift - @langford + +# 3.0.0 -#3.0.0 *Released: 11/12/2016* **Breaking API Changes:** @@ -13,7 +91,7 @@ - Update to Swift 3.0.1 - @Cristiam, @Ben-G - Documentation changes - @vkotovv -#2.1.0 +# 2.1.0 *Released: 09/15/2016* @@ -25,7 +103,7 @@ - Automatically build docs via Travis CI (#128) - @agentk - Documentation Updates & Fixes- @mikekavouras, @ColinEberhardt -#2.0.0 +# 2.0.0 *Released: 06/27/2016* @@ -39,7 +117,7 @@ - Documentation Updates & Fixes - @okla, @gregpardo, @tomj, @askielboe, @mitsuse, @esttorhe, @RyanCCollins, @thomaspaulmann, @jlampa -#1.0.0 +# 1.0.0 *Released: 03/19/2016* @@ -53,7 +131,7 @@ - Set CocoaPods documentation URL - (#56) @agentk - Update documentation for 1.0 release - @Ben-G -#0.2.5 +# 0.2.5 *Released: 02/20/2016* @@ -74,7 +152,7 @@ - Refactored subscribers into a explicit `Subscription` typealias - @DivineDominion - Refactored `dispatch` for `AsyncActionCreator` to avoid duplicate code - @sendyhalim -#0.2.4 +# 0.2.4 *Released: 01/23/2016* diff --git a/Carthage/Checkouts/ReSwift/CONTRIBUTING.md b/Carthage/Checkouts/ReSwift/CONTRIBUTING.md index 0ea973c..432ff32 100644 --- a/Carthage/Checkouts/ReSwift/CONTRIBUTING.md +++ b/Carthage/Checkouts/ReSwift/CONTRIBUTING.md @@ -1,4 +1,4 @@ -#Contributing to ReSwift +# Contributing to ReSwift Some design decisions for the core of ReSwift are still up in the air (see [issues](https://github.com/ReSwift/ReSwift/issues)), there's lots of useful documentation that can be written and a ton of extensions and tools are waiting to be built on top of ReSwift. diff --git a/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md b/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md index c08b3f8..ea9cabc 100644 --- a/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md +++ b/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md @@ -81,22 +81,18 @@ You can do this implementing a top-level reducer that conforms to the `Reducer` Here's an example in which we construct a new state, by calling sub-reducers with different sub-states: ```swift -struct AppReducer: Reducer { - - func handleAction(action: Action, state: State?) -> State { - return State( - navigationState: NavigationReducer.handleAction(action, state: state?.navigationState), - authenticationState: authenticationReducer(state?.authenticationState, action: action), - repositories: repositoriesReducer(state?.repositories, action: action), - bookmarks: bookmarksReducer(state?.bookmarks, action: action) - ) - } - +func appReducer(action: Action, state: State?) -> State { + return State( + navigationState: navigationReducer(action, state: state?.navigationState), + authenticationState: authenticationReducer(state?.authenticationState, action: action), + repositories: repositoriesReducer(state?.repositories, action: action), + bookmarks: bookmarksReducer(state?.bookmarks, action: action) + ) } ``` -The `Reducer` protocol has a single method that takes an `Action` and an `State?` and returns a `State`. Typically reducers will be responsible for initializing the application state. When they receive `nil` as the current state, they should return the initial default value for their portion of the state. In the example above the `AppReducer` delegates all calls to other reducer functions. E.g. the `authenticationReducer` is responsible for providing the `authenticationState`. +The `Reducer` typealias is a method that takes an `Action` and an `State?` and returns a `State`. Typically reducers will be responsible for initializing the application state. When they receive `nil` as the current state, they should return the initial default value for their portion of the state. In the example above the `appReducer` delegates all calls to other reducer functions. E.g. the `authenticationReducer` is responsible for providing the `authenticationState`. -Here's what the `authenticationReducer` function that is called from the `AppReducer` looks like: +Here's what the `authenticationReducer` function that is called from the `appReducer` looks like: ```swift func authenticationReducer(state: AuthenticationState?, action: Action) -> AuthenticationState { @@ -116,13 +112,13 @@ func authenticationReducer(state: AuthenticationState?, action: Action) -> Authe return state } ``` -You can see that the `authenticationReducer` function is a free function. You can define it with any arbitrary method signature, but we recommend that it matches the method in the `Reducer` protocol (current state and action in, new state out). +You can see that the `authenticationReducer` function is a free function. You can define it with any arbitrary method signature, but we recommend that it matches the `Reducer` typealias (current state and action in, new state out). This sub-reducer first checks if the state provided is `nil`. If that's the case, it sets the state to the initial default state. Next, the reducer switches over the provided `action` and checks its type. Depending on the type of action, this reducer will updated the state differently. This specific reducer is very simple, each action only triggers a single property of the state to update. Once the state update is complete, the reducer function returns the new state. -After the `AppReducer` has called all of the sub-reducer functions, we have a new application state. `ReSwift` will take care of publishing this new state to all subscribers. +After the `appReducer` has called all of the sub-reducer functions, we have a new application state. `ReSwift` will take care of publishing this new state to all subscribers. # Store Subscribers @@ -146,8 +142,8 @@ override func viewWillAppear(animated: Bool) { // subscribe when VC appears // we are only interested in repository substate, filter it out of the overall state - store.subscribe(self) { state in - state.repositories + store.subscribe(self) { subcription in + subcription.select { state in state.repositories } } } @@ -171,9 +167,9 @@ When selecting a substate as part of calling the `subscribe` method, you need to When subscribing within a ViewController you will typically update the view from within the `newState` method. -#Beyond the Basics +# Beyond the Basics -##Asynchronous Operations +## Asynchronous Operations Conceptually asynchronous operations can simply be treated as state updates that occur at a later point in time. Here's a simple example of how to tie an asynchronous network request to `ReSwift` state update: @@ -193,7 +189,7 @@ func fetchGitHubRepositories(state: State, store: Store) -> Action? { In this example we're using the `Octokit` library to perform a network request that fetches a users repositories. Within the callback block of the method we dispatch a state update that injects the received repositories into the app state. This will trigger all receivers to be informed about the new state. -Note that the callback block from the network request arrives on a background thread, therefore we're using `dispatch_async(dispatch_get_main_queue())` to perform the state update on the main thread. `ReSwift` will call reducers and subscribers on whatever thread you have dispatched an action from. We recommend to always dispatch from the main thread, but `ReSwift` does not enforce this recommendation. +Note that the callback block from the network request arrives on a background thread, therefore we're using `dispatch_async(dispatch_get_main_queue())` to perform the state update on the main thread. `ReSwift` will call reducers and subscribers on whatever thread you have dispatched an action from. We recommend to always dispatch from the main thread, but `ReSwift` does not enforce this recommendation. ReSwift *will* enforce that all Dispatches, Store Subscribes and Store Unsubscribes are on the same thread or serial Grand Central Dispatch queue. Therefore the main dispatch queue works, however the global dispatch queue, being concurrent, will fail. In many cases your asynchronous tasks will consist of two separate steps: @@ -218,7 +214,7 @@ func fetchGitHubRepositories(state: State, store: Store) -> Action? { In the example above, we're using an `enum` to represent the different states of a single state slice that depends on a network request (e.g. loading, result available, network request failed). There are many different ways to model states of a network request but it will mostly involve using multiple dispatched actions at different stages of your network requests. -##Action Creators +## Action Creators An important aspect of adopting `ReSwift` is an improved separation of concerns. Specifically, your view layer should mostly be concerned with adopting its representation to match a new app state and for triggering `Action`s upon user interactions. @@ -251,7 +247,7 @@ Let's take a look at a quick example that shows how ReSwift supports Redux style The simplest example of a middleware, is one that prints all actions to the console. Here's how you can implement it: ```swift -let loggingMiddleware: Middleware = { dispatch, getState in +let loggingMiddleware: Middleware = { dispatch, getState in return { next in return { action in // perform middleware logic @@ -263,6 +259,8 @@ let loggingMiddleware: Middleware = { dispatch, getState in } } ``` +The generic in middleware refers to the return type in `getState`, and needs to be compatible with the `State` associated type in your `Store`. + You can define which middleware you would like to use when creating your store: ```swift diff --git a/Carthage/Checkouts/ReSwift/Podfile b/Carthage/Checkouts/ReSwift/Podfile new file mode 100644 index 0000000..64f5f13 --- /dev/null +++ b/Carthage/Checkouts/ReSwift/Podfile @@ -0,0 +1,8 @@ +# CocoaPods is used only to fetch and pin the version of SwiftLint that we want +# to use in the project. The Podfile DSL (at the time of CP 1.2.0) requires +# pods to be defined within a target. To work with that without having to make +# any of the actual ReSwift targets dirty or bloated a dummy target called +# SwiftLintIntegration has been added. +target 'SwiftLintIntegration' do + pod 'SwiftLint' +end diff --git a/Carthage/Checkouts/ReSwift/Podfile.lock b/Carthage/Checkouts/ReSwift/Podfile.lock new file mode 100644 index 0000000..bf20961 --- /dev/null +++ b/Carthage/Checkouts/ReSwift/Podfile.lock @@ -0,0 +1,12 @@ +PODS: + - SwiftLint (0.17.0) + +DEPENDENCIES: + - SwiftLint + +SPEC CHECKSUMS: + SwiftLint: 9fb1dd71d5952d130f8c2fb60ae2e1475cf5d575 + +PODFILE CHECKSUM: 937d436496e317ef5f238fab841c0529d8f5d201 + +COCOAPODS: 1.2.0 diff --git a/Carthage/Checkouts/ReSwift/README.md b/Carthage/Checkouts/ReSwift/README.md index 314ef50..163c475 100644 --- a/Carthage/Checkouts/ReSwift/README.md +++ b/Carthage/Checkouts/ReSwift/README.md @@ -63,23 +63,19 @@ struct CounterActionDecrease: Action {} Your reducer needs to respond to these different action types, that can be done by switching over the type of action: ```swift -struct CounterReducer: Reducer { - - func handleAction(action: Action, state: AppState?) -> AppState { - var state = state ?? AppState() - - switch action { - case _ as CounterActionIncrease: - state.counter += 1 - case _ as CounterActionDecrease: - state.counter -= 1 - default: - break - } - - return state +func counterReducer(action: Action, state: AppState?) -> AppState { + var state = state ?? AppState() + + switch action { + case _ as CounterActionIncrease: + state.counter += 1 + case _ as CounterActionDecrease: + state.counter -= 1 + default: + break } + return state } ``` In order to have a predictable app state, it is important that the reducer is always free of side effects, it receives the current app state and an action and returns the new app state. @@ -88,7 +84,7 @@ To maintain our state and delegate the actions to the reducers, we need a store. ```swift let mainStore = Store( - reducer: CounterReducer(), + reducer: counterReducer, state: nil ) @@ -170,25 +166,43 @@ The ReSwift tooling is still in a very early stage, but aforementioned prospects ## CocoaPods You can install ReSwift via CocoaPods by adding it to your `Podfile`: +``` +use_frameworks! - use_frameworks! - - source 'https://github.com/CocoaPods/Specs.git' - platform :ios, '8.0' +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '8.0' - pod 'ReSwift' +pod 'ReSwift' +``` And run `pod install`. ## Carthage -You can install ReSwift via [Carthage](https://github.com/Carthage/Carthage) by adding the following line to your Cartfile: +You can install ReSwift via [Carthage](https://github.com/Carthage/Carthage) by adding the following line to your `Cartfile`: - github "ReSwift/ReSwift" +``` +github "ReSwift/ReSwift" +``` + +## Swift Package Manager + +You can install ReSwift via [Swift Package Manager](https://swift.org/package-manager/) by adding the following line to your `Package.swift`: + +```swift +import PackageDescription + +let package = Package( + [...] + dependencies: [ + .Package(url: "https://github.com/ReSwift/ReSwift.git", majorVersion: XYZ) + ] +) +``` # Checking out Source Code -ReSwift no longer has any carthage dependencies for development. Just checkout the project and run. +After checking out the project run `pod install` to get the latest supported version of [SwiftLint](https://github.com/realm/SwiftLint), which we use to ensure a consistent style in the codebase. # Demo @@ -210,7 +224,7 @@ This repository contains the core component for ReSwift, the following extension - [GitHubBrowserExample](https://github.com/ReSwift/GitHubBrowserExample): A real world example, involving authentication, network requests and navigation. Still WIP but should be the best resource for starting to adapt `ReSwift` in your own app. - [Meet](https://github.com/Ben-G/Meet): A real world application being built with ReSwift - currently still very early on. It is not up to date with the latest version of ReSwift, but is the best project for demonstrating time travel. -##Production Apps with Open Source Code +## Production Apps with Open Source Code - [Product Hunt for OS X](https://github.com/producthunt/producthunt-osx) Official Product Hunt client for OS X. @@ -230,6 +244,7 @@ If you have any questions, you can find the core team on twitter: - [@karlbowden](https://twitter.com/karlbowden) - [@ARendtslev](https://twitter.com/ARendtslev) - [@ctietze](https://twitter.com/ctietze) +- [@mjarvis](https://twitter.com/mjarvis) We also have a [public gitter chat!](https://gitter.im/ReSwift/public) diff --git a/Carthage/Checkouts/ReSwift/ReSwift.podspec b/Carthage/Checkouts/ReSwift/ReSwift.podspec index 2332c60..78d2a4e 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift.podspec +++ b/Carthage/Checkouts/ReSwift/ReSwift.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "ReSwift" - s.version = "3.0.0" + s.version = "4.0.0" s.summary = "Unidirectional Data Flow in Swift" s.description = <<-DESC ReSwift is a Redux-like implementation of the unidirectional data flow architecture in Swift. diff --git a/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.pbxproj b/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.pbxproj index 8a1a07c..41780a3 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.pbxproj @@ -17,7 +17,6 @@ 25AB3B811C54A84500A41513 /* StoreSubscriberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25AB3B7F1C54A79F00A41513 /* StoreSubscriberTests.swift */; }; 25AB3B821C54A84600A41513 /* StoreSubscriberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25AB3B7F1C54A79F00A41513 /* StoreSubscriberTests.swift */; }; 25AB3B831C54A84700A41513 /* StoreSubscriberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25AB3B7F1C54A79F00A41513 /* StoreSubscriberTests.swift */; }; - 25DBCF3F1C30C16000D63A58 /* CombinedReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E67051C20032E0027C288 /* CombinedReducer.swift */; }; 25DBCF401C30C16000D63A58 /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B61C1FFC880027C288 /* Action.swift */; }; 25DBCF411C30C16000D63A58 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B71C1FFC880027C288 /* Store.swift */; }; 25DBCF421C30C16000D63A58 /* Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B81C1FFC880027C288 /* Reducer.swift */; }; @@ -26,7 +25,6 @@ 25DBCF461C30C16000D63A58 /* Middleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 259737FC1C2C661100869B8F /* Middleware.swift */; }; 25DBCF471C30C16000D63A58 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B11C1FFC830027C288 /* Coding.swift */; }; 25DBCF481C30C16000D63A58 /* TypeHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B21C1FFC830027C288 /* TypeHelper.swift */; }; - 25DBCF561C30C19500D63A58 /* CombinedReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E67051C20032E0027C288 /* CombinedReducer.swift */; }; 25DBCF571C30C19500D63A58 /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B61C1FFC880027C288 /* Action.swift */; }; 25DBCF581C30C19500D63A58 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B71C1FFC880027C288 /* Store.swift */; }; 25DBCF591C30C19500D63A58 /* Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B81C1FFC880027C288 /* Reducer.swift */; }; @@ -38,11 +36,9 @@ 25DBCF691C30C1AC00D63A58 /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25DBCF4E1C30C18D00D63A58 /* ReSwift.framework */; }; 25DBCF711C30C34000D63A58 /* StoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66A61C1FFA640027C288 /* StoreTests.swift */; }; 25DBCF721C30C34000D63A58 /* StoreMiddlewareTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 259737E91C2C611600869B8F /* StoreMiddlewareTests.swift */; }; - 25DBCF731C30C34000D63A58 /* CombinedReducerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621C06851C277759008029AE /* CombinedReducerTests.swift */; }; 25DBCF741C30C34000D63A58 /* TypeHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621C068B1C278BEF008029AE /* TypeHelperTests.swift */; }; 25DBCF751C30C34000D63A58 /* TestFakes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 259737FA1C2C618A00869B8F /* TestFakes.swift */; }; 25DBCF8C1C30C4DB00D63A58 /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25DBCF7B1C30C4AA00D63A58 /* ReSwift.framework */; }; - 25DBCF921C30C4F000D63A58 /* CombinedReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E67051C20032E0027C288 /* CombinedReducer.swift */; }; 25DBCF931C30C4F000D63A58 /* Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B61C1FFC880027C288 /* Action.swift */; }; 25DBCF941C30C4F000D63A58 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B71C1FFC880027C288 /* Store.swift */; }; 25DBCF951C30C4F000D63A58 /* Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B81C1FFC880027C288 /* Reducer.swift */; }; @@ -53,10 +49,10 @@ 25DBCF9B1C30C4F000D63A58 /* TypeHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B21C1FFC830027C288 /* TypeHelper.swift */; }; 25DBCF9C1C30C50000D63A58 /* StoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66A61C1FFA640027C288 /* StoreTests.swift */; }; 25DBCF9D1C30C50000D63A58 /* StoreMiddlewareTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 259737E91C2C611600869B8F /* StoreMiddlewareTests.swift */; }; - 25DBCF9E1C30C50000D63A58 /* CombinedReducerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621C06851C277759008029AE /* CombinedReducerTests.swift */; }; 25DBCF9F1C30C50000D63A58 /* TypeHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621C068B1C278BEF008029AE /* TypeHelperTests.swift */; }; 25DBCFA01C30C50000D63A58 /* TestFakes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 259737FA1C2C618A00869B8F /* TestFakes.swift */; }; - 621C06861C277759008029AE /* CombinedReducerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621C06851C277759008029AE /* CombinedReducerTests.swift */; }; + 3F13C0EB1E7B3E4000D8442C /* SwiftLintIntegration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F13C0EA1E7B3E4000D8442C /* SwiftLintIntegration.swift */; }; + 3F13C0ED1E7B3E4000D8442C /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 625E66831C1FF97E0027C288 /* ReSwift.framework */; }; 621C068C1C278BEF008029AE /* TypeHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621C068B1C278BEF008029AE /* TypeHelperTests.swift */; }; 625AA6331C33AFB600FEB431 /* StandardActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625AA6311C33AFA600FEB431 /* StandardActionTests.swift */; }; 625AA6341C33AFB700FEB431 /* StandardActionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625AA6311C33AFA600FEB431 /* StandardActionTests.swift */; }; @@ -71,7 +67,6 @@ 625E66BE1C1FFC880027C288 /* Reducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B81C1FFC880027C288 /* Reducer.swift */; }; 625E66BF1C1FFC880027C288 /* State.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66B91C1FFC880027C288 /* State.swift */; }; 625E66C11C1FFC880027C288 /* StoreSubscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E66BB1C1FFC880027C288 /* StoreSubscriber.swift */; }; - 625E67061C20032E0027C288 /* CombinedReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 625E67051C20032E0027C288 /* CombinedReducer.swift */; }; 73723E041D30AEF3006139F0 /* XCTest+Compatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73723E031D30AEF3006139F0 /* XCTest+Compatibility.swift */; }; 73723E051D30AEF3006139F0 /* XCTest+Compatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73723E031D30AEF3006139F0 /* XCTest+Compatibility.swift */; }; 73723E061D30AEF3006139F0 /* XCTest+Compatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73723E031D30AEF3006139F0 /* XCTest+Compatibility.swift */; }; @@ -92,6 +87,11 @@ 81BCBECF1C63167A00AA4F03 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81BCBECD1C63167A00AA4F03 /* Subscription.swift */; }; 81BCBED01C63167A00AA4F03 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81BCBECD1C63167A00AA4F03 /* Subscription.swift */; }; 81BCBED11C63167A00AA4F03 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81BCBECD1C63167A00AA4F03 /* Subscription.swift */; }; + B7C9625775EAE647982F3EEE /* libPods-SwiftLintIntegration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B5C08F1806830A13C9006A27 /* libPods-SwiftLintIntegration.a */; }; + D47D2D561E32C3F50064769E /* DispatchingStoreType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47D2D551E32C3F50064769E /* DispatchingStoreType.swift */; }; + D47D2D571E32C4170064769E /* DispatchingStoreType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47D2D551E32C3F50064769E /* DispatchingStoreType.swift */; }; + D47D2D581E32C4180064769E /* DispatchingStoreType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47D2D551E32C3F50064769E /* DispatchingStoreType.swift */; }; + D47D2D591E32C4190064769E /* DispatchingStoreType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47D2D551E32C3F50064769E /* DispatchingStoreType.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -109,6 +109,13 @@ remoteGlobalIDString = 25DBCF7A1C30C4AA00D63A58; remoteInfo = "ReSwift-Mac"; }; + 3F13C0EE1E7B3E4000D8442C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 625E667A1C1FF97E0027C288 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 625E66821C1FF97E0027C288; + remoteInfo = "ReSwift-iOS"; + }; 625E66A01C1FFA3C0027C288 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 625E667A1C1FF97E0027C288 /* Project object */; @@ -129,7 +136,10 @@ 25DBCF641C30C1AC00D63A58 /* ReSwift-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ReSwift-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 25DBCF7B1C30C4AA00D63A58 /* ReSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 25DBCF871C30C4DB00D63A58 /* ReSwift-macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ReSwift-macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 621C06851C277759008029AE /* CombinedReducerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedReducerTests.swift; sourceTree = ""; }; + 3F13C0E81E7B3E4000D8442C /* SwiftLintIntegration.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftLintIntegration.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3F13C0EA1E7B3E4000D8442C /* SwiftLintIntegration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftLintIntegration.swift; sourceTree = ""; }; + 3F13C0EC1E7B3E4000D8442C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5FA6CE811A62136B33F7E836 /* Pods-SwiftLintIntegration.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftLintIntegration.release.xcconfig"; path = "Pods/Target Support Files/Pods-SwiftLintIntegration/Pods-SwiftLintIntegration.release.xcconfig"; sourceTree = ""; }; 621C068B1C278BEF008029AE /* TypeHelperTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypeHelperTests.swift; sourceTree = ""; }; 625AA6311C33AFA600FEB431 /* StandardActionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StandardActionTests.swift; sourceTree = ""; }; 625E66831C1FF97E0027C288 /* ReSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -145,13 +155,15 @@ 625E66B81C1FFC880027C288 /* Reducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Reducer.swift; sourceTree = ""; }; 625E66B91C1FFC880027C288 /* State.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = State.swift; sourceTree = ""; }; 625E66BB1C1FFC880027C288 /* StoreSubscriber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoreSubscriber.swift; sourceTree = ""; }; - 625E67051C20032E0027C288 /* CombinedReducer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CombinedReducer.swift; sourceTree = ""; }; 73723E031D30AEF3006139F0 /* XCTest+Compatibility.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTest+Compatibility.swift"; sourceTree = ""; }; 73E545D41D22BC3900D114E8 /* Assertions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Assertions.swift; sourceTree = ""; }; 73E545D91D22BCD600D114E8 /* XCTest+Assertions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTest+Assertions.swift"; sourceTree = ""; }; 73F39F331D3EE3C300DFFE62 /* StoreDispatchTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoreDispatchTests.swift; sourceTree = ""; }; 73F39F371D3EE46A00DFFE62 /* StoreSubscriptionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoreSubscriptionTests.swift; sourceTree = ""; }; 81BCBECD1C63167A00AA4F03 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; + 8DA430622E3D093002316DB5 /* Pods-SwiftLintIntegration.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SwiftLintIntegration.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SwiftLintIntegration/Pods-SwiftLintIntegration.debug.xcconfig"; sourceTree = ""; }; + B5C08F1806830A13C9006A27 /* libPods-SwiftLintIntegration.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SwiftLintIntegration.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + D47D2D551E32C3F50064769E /* DispatchingStoreType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchingStoreType.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -192,6 +204,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 3F13C0E51E7B3E4000D8442C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3F13C0ED1E7B3E4000D8442C /* ReSwift.framework in Frameworks */, + B7C9625775EAE647982F3EEE /* libPods-SwiftLintIntegration.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 625E667F1C1FF97E0027C288 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -210,12 +231,33 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 02EE66684F9DEF6554824E17 /* Pods */ = { + isa = PBXGroup; + children = ( + 8DA430622E3D093002316DB5 /* Pods-SwiftLintIntegration.debug.xcconfig */, + 5FA6CE811A62136B33F7E836 /* Pods-SwiftLintIntegration.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + 3F13C0E91E7B3E4000D8442C /* SwiftLintIntegration */ = { + isa = PBXGroup; + children = ( + 3F13C0EA1E7B3E4000D8442C /* SwiftLintIntegration.swift */, + 3F13C0EC1E7B3E4000D8442C /* Info.plist */, + ); + path = SwiftLintIntegration; + sourceTree = ""; + }; 625E66791C1FF97E0027C288 = { isa = PBXGroup; children = ( 625E66851C1FF97E0027C288 /* ReSwift */, 625E669B1C1FFA3C0027C288 /* ReSwiftTests */, + 3F13C0E91E7B3E4000D8442C /* SwiftLintIntegration */, 625E66841C1FF97E0027C288 /* Products */, + 02EE66684F9DEF6554824E17 /* Pods */, + 94839D2BD4CCEE6386BD477E /* Frameworks */, ); sourceTree = ""; }; @@ -229,6 +271,7 @@ 25DBCF641C30C1AC00D63A58 /* ReSwift-tvOSTests.xctest */, 25DBCF7B1C30C4AA00D63A58 /* ReSwift.framework */, 25DBCF871C30C4DB00D63A58 /* ReSwift-macOSTests.xctest */, + 3F13C0E81E7B3E4000D8442C /* SwiftLintIntegration.xctest */, ); name = Products; sourceTree = ""; @@ -248,7 +291,6 @@ isa = PBXGroup; children = ( 625E669E1C1FFA3C0027C288 /* Info.plist */, - 621C06851C277759008029AE /* CombinedReducerTests.swift */, 625AA6311C33AFA600FEB431 /* StandardActionTests.swift */, 73F39F331D3EE3C300DFFE62 /* StoreDispatchTests.swift */, 259737E91C2C611600869B8F /* StoreMiddlewareTests.swift */, @@ -277,7 +319,7 @@ isa = PBXGroup; children = ( 625E66B61C1FFC880027C288 /* Action.swift */, - 625E67051C20032E0027C288 /* CombinedReducer.swift */, + D47D2D551E32C3F50064769E /* DispatchingStoreType.swift */, 259737FC1C2C661100869B8F /* Middleware.swift */, 625E66B81C1FFC880027C288 /* Reducer.swift */, 625E66B91C1FFC880027C288 /* State.swift */, @@ -289,6 +331,14 @@ path = CoreTypes; sourceTree = ""; }; + 94839D2BD4CCEE6386BD477E /* Frameworks */ = { + isa = PBXGroup; + children = ( + B5C08F1806830A13C9006A27 /* libPods-SwiftLintIntegration.a */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -415,6 +465,27 @@ productReference = 25DBCF871C30C4DB00D63A58 /* ReSwift-macOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 3F13C0E71E7B3E4000D8442C /* SwiftLintIntegration */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3F13C0F21E7B3E4000D8442C /* Build configuration list for PBXNativeTarget "SwiftLintIntegration" */; + buildPhases = ( + 6012A4D4990919B303E1357A /* [CP] Check Pods Manifest.lock */, + 3F13C0E41E7B3E4000D8442C /* Sources */, + 3F13C0E51E7B3E4000D8442C /* Frameworks */, + 3F13C0E61E7B3E4000D8442C /* Resources */, + C6C5ED535A5FCEB5648419A2 /* [CP] Embed Pods Frameworks */, + 3BED8D2D43A452D599C2F312 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3F13C0EF1E7B3E4000D8442C /* PBXTargetDependency */, + ); + name = SwiftLintIntegration; + productName = SwiftLintIntegration; + productReference = 3F13C0E81E7B3E4000D8442C /* SwiftLintIntegration.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 625E66821C1FF97E0027C288 /* ReSwift-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 625E668B1C1FF97E0027C288 /* Build configuration list for PBXNativeTarget "ReSwift-iOS" */; @@ -458,7 +529,7 @@ 625E667A1C1FF97E0027C288 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0720; + LastSwiftUpdateCheck = 0820; LastUpgradeCheck = 0810; ORGANIZATIONNAME = "Benjamin Encz"; TargetAttributes = { @@ -479,6 +550,10 @@ CreatedOnToolsVersion = 7.2; LastSwiftMigration = 0800; }; + 3F13C0E71E7B3E4000D8442C = { + CreatedOnToolsVersion = 8.2.1; + ProvisioningStyle = Automatic; + }; 625E66821C1FF97E0027C288 = { CreatedOnToolsVersion = 7.1.1; }; @@ -506,6 +581,7 @@ 25DBCF4D1C30C18D00D63A58 /* ReSwift-tvOS */, 25DBCF631C30C1AC00D63A58 /* ReSwift-tvOSTests */, 25DBCF361C30BF2B00D63A58 /* ReSwift-watchOS */, + 3F13C0E71E7B3E4000D8442C /* SwiftLintIntegration */, ); }; /* End PBXProject section */ @@ -546,6 +622,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 3F13C0E61E7B3E4000D8442C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 625E66811C1FF97E0027C288 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -563,6 +646,36 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 3BED8D2D43A452D599C2F312 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SwiftLintIntegration/Pods-SwiftLintIntegration-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 6012A4D4990919B303E1357A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; 621C06541C277459008029AE /* SwiftLint */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -575,7 +688,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"SwiftLint does not exist, download from https://github.com/realm/SwiftLint\"\nfi"; + shellScript = "\"$SRCROOT/BuildPhases/run-swiftlint\""; }; 73E545D31D22B0D600D114E8 /* SwiftLint */ = { isa = PBXShellScriptBuildPhase; @@ -589,7 +702,22 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"SwiftLint does not exist, download from https://github.com/realm/SwiftLint\"\nfi"; + shellScript = "\"$SRCROOT/BuildPhases/run-swiftlint\""; + }; + C6C5ED535A5FCEB5648419A2 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SwiftLintIntegration/Pods-SwiftLintIntegration-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -598,7 +726,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 25DBCF3F1C30C16000D63A58 /* CombinedReducer.swift in Sources */, 25DBCF401C30C16000D63A58 /* Action.swift in Sources */, 25DBCF411C30C16000D63A58 /* Store.swift in Sources */, 25DBCF421C30C16000D63A58 /* Reducer.swift in Sources */, @@ -609,6 +736,7 @@ 25DBCF451C30C16000D63A58 /* StoreSubscriber.swift in Sources */, 25DBCF461C30C16000D63A58 /* Middleware.swift in Sources */, 25DBCF471C30C16000D63A58 /* Coding.swift in Sources */, + D47D2D591E32C4190064769E /* DispatchingStoreType.swift in Sources */, 25DBCF481C30C16000D63A58 /* TypeHelper.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -617,7 +745,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 25DBCF561C30C19500D63A58 /* CombinedReducer.swift in Sources */, 25DBCF571C30C19500D63A58 /* Action.swift in Sources */, 25DBCF581C30C19500D63A58 /* Store.swift in Sources */, 25DBCF591C30C19500D63A58 /* Reducer.swift in Sources */, @@ -628,6 +755,7 @@ 25DBCF5C1C30C19500D63A58 /* StoreSubscriber.swift in Sources */, 25DBCF5D1C30C19500D63A58 /* Middleware.swift in Sources */, 25DBCF5E1C30C19500D63A58 /* Coding.swift in Sources */, + D47D2D581E32C4180064769E /* DispatchingStoreType.swift in Sources */, 25DBCF5F1C30C19500D63A58 /* TypeHelper.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -644,7 +772,6 @@ 73723E061D30AEF3006139F0 /* XCTest+Compatibility.swift in Sources */, 625AA6351C33AFB800FEB431 /* StandardActionTests.swift in Sources */, 73F39F3A1D3EE46A00DFFE62 /* StoreSubscriptionTests.swift in Sources */, - 25DBCF731C30C34000D63A58 /* CombinedReducerTests.swift in Sources */, 25DBCF741C30C34000D63A58 /* TypeHelperTests.swift in Sources */, 25DBCF751C30C34000D63A58 /* TestFakes.swift in Sources */, ); @@ -654,7 +781,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 25DBCF921C30C4F000D63A58 /* CombinedReducer.swift in Sources */, 25DBCF931C30C4F000D63A58 /* Action.swift in Sources */, 25DBCF941C30C4F000D63A58 /* Store.swift in Sources */, 25DBCF951C30C4F000D63A58 /* Reducer.swift in Sources */, @@ -665,6 +791,7 @@ 25DBCF981C30C4F000D63A58 /* StoreSubscriber.swift in Sources */, 25DBCF991C30C4F000D63A58 /* Middleware.swift in Sources */, 25DBCF9A1C30C4F000D63A58 /* Coding.swift in Sources */, + D47D2D571E32C4170064769E /* DispatchingStoreType.swift in Sources */, 25DBCF9B1C30C4F000D63A58 /* TypeHelper.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -681,12 +808,19 @@ 73723E051D30AEF3006139F0 /* XCTest+Compatibility.swift in Sources */, 625AA6341C33AFB700FEB431 /* StandardActionTests.swift in Sources */, 73F39F391D3EE46A00DFFE62 /* StoreSubscriptionTests.swift in Sources */, - 25DBCF9E1C30C50000D63A58 /* CombinedReducerTests.swift in Sources */, 25DBCF9F1C30C50000D63A58 /* TypeHelperTests.swift in Sources */, 25DBCFA01C30C50000D63A58 /* TestFakes.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + 3F13C0E41E7B3E4000D8442C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3F13C0EB1E7B3E4000D8442C /* SwiftLintIntegration.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 625E667E1C1FF97E0027C288 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -701,7 +835,7 @@ 81BCBECE1C63167A00AA4F03 /* Subscription.swift in Sources */, 625E66BE1C1FFC880027C288 /* Reducer.swift in Sources */, 625E66B41C1FFC830027C288 /* TypeHelper.swift in Sources */, - 625E67061C20032E0027C288 /* CombinedReducer.swift in Sources */, + D47D2D561E32C3F50064769E /* DispatchingStoreType.swift in Sources */, 625E66BF1C1FFC880027C288 /* State.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -719,7 +853,6 @@ 625AA6331C33AFB600FEB431 /* StandardActionTests.swift in Sources */, 73F39F381D3EE46A00DFFE62 /* StoreSubscriptionTests.swift in Sources */, 621C068C1C278BEF008029AE /* TypeHelperTests.swift in Sources */, - 621C06861C277759008029AE /* CombinedReducerTests.swift in Sources */, 259737EA1C2C611600869B8F /* StoreMiddlewareTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -737,6 +870,11 @@ target = 25DBCF7A1C30C4AA00D63A58 /* ReSwift-macOS */; targetProxy = 25DBCF8D1C30C4DB00D63A58 /* PBXContainerItemProxy */; }; + 3F13C0EF1E7B3E4000D8442C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 625E66821C1FF97E0027C288 /* ReSwift-iOS */; + targetProxy = 3F13C0EE1E7B3E4000D8442C /* PBXContainerItemProxy */; + }; 625E66A11C1FFA3C0027C288 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 625E66821C1FF97E0027C288 /* ReSwift-iOS */; @@ -898,6 +1036,37 @@ }; name = Release; }; + 3F13C0F01E7B3E4000D8442C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8DA430622E3D093002316DB5 /* Pods-SwiftLintIntegration.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + INFOPLIST_FILE = SwiftLintIntegration/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = reswift.github.io.ReSwift.SwiftLintIntegration; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 3F13C0F11E7B3E4000D8442C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5FA6CE811A62136B33F7E836 /* Pods-SwiftLintIntegration.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + INFOPLIST_FILE = SwiftLintIntegration/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = reswift.github.io.ReSwift.SwiftLintIntegration; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; 625E66891C1FF97E0027C288 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -947,7 +1116,7 @@ PRODUCT_NAME = ReSwift; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0.1; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 9.0; VERSIONING_SYSTEM = "apple-generic"; @@ -998,7 +1167,7 @@ PRODUCT_NAME = ReSwift; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0.1; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 9.0; VALIDATE_PRODUCT = YES; @@ -1113,6 +1282,14 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3F13C0F21E7B3E4000D8442C /* Build configuration list for PBXNativeTarget "SwiftLintIntegration" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3F13C0F01E7B3E4000D8442C /* Debug */, + 3F13C0F11E7B3E4000D8442C /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; 625E667D1C1FF97E0027C288 /* Build configuration list for PBXProject "ReSwift" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Carthage/Checkouts/ReSwift/ReSwift.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/ReSwift/ReSwift.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..5bbd1ec --- /dev/null +++ b/Carthage/Checkouts/ReSwift/ReSwift.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/CombinedReducer.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/CombinedReducer.swift deleted file mode 100644 index 048c873..0000000 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/CombinedReducer.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// MainReducer.swift -// ReSwift -// -// Created by Benjamin Encz on 11/11/15. -// Copyright © 2015 DigiTales. All rights reserved. -// - -import Foundation -/** - A Reducer that combines multiple reducers into one. You will typically use this reducer during - initial store setup: - - ```swift - let reducer = CombinedReducer([IncreaseByOneReducer(), IncreaseByTwoReducer()]) - Store(reducer: reducer, appState: CounterState()) - ``` - - The order of the reducers in the array is the order in which the reducers will be invoked. -*/ -public struct CombinedReducer: AnyReducer { - - private let reducers: [AnyReducer] - - /// Creates a Combined Reducer from the given list of Reducers - public init(_ reducers: [AnyReducer]) { - precondition(reducers.count > 0) - - self.reducers = reducers - } - - public func _handleAction(action: Action, state: StateType?) -> StateType { - return reducers.reduce(state) { (currentState, reducer) -> StateType in - return reducer._handleAction(action: action, state: currentState) - }! - } -} diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/DispatchingStoreType.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/DispatchingStoreType.swift new file mode 100644 index 0000000..73d32e8 --- /dev/null +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/DispatchingStoreType.swift @@ -0,0 +1,24 @@ +import Foundation + +/** + Defines the interface of a dispatching, stateless Store in ReSwift. `StoreType` is + the default usage of this interface. Can be used for store variables where you don't + care about the state, but want to be able to dispatch actions. + */ +public protocol DispatchingStoreType { + + /** + Dispatches an action. This is the simplest way to modify the stores state. + + Example of dispatching an action: + + ``` + store.dispatch( CounterAction.IncreaseCounter ) + ``` + + - parameter action: The action that is being dispatched to the store + - returns: By default returns the dispatched action, but middlewares can change the + return type, e.g. to return promises + */ + func dispatch(_ action: Action) +} diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Middleware.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Middleware.swift index ae87404..e5df7a2 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Middleware.swift +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Middleware.swift @@ -8,7 +8,6 @@ import Foundation -public typealias DispatchFunction = (Action) -> Any -public typealias GetState = () -> StateType? -public typealias Middleware = - (DispatchFunction?, @escaping GetState) -> (@escaping DispatchFunction) -> DispatchFunction +public typealias DispatchFunction = (Action) -> Void +public typealias Middleware = (@escaping DispatchFunction, @escaping () -> State?) + -> (@escaping DispatchFunction) -> DispatchFunction diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Reducer.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Reducer.swift index c2c4dd9..6b9968b 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Reducer.swift +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Reducer.swift @@ -8,18 +8,5 @@ import Foundation -public protocol AnyReducer { - func _handleAction(action: Action, state: StateType?) -> StateType -} - -public protocol Reducer: AnyReducer { - associatedtype ReducerStateType - - func handleAction(action: Action, state: ReducerStateType?) -> ReducerStateType -} - -extension Reducer { - public func _handleAction(action: Action, state: StateType?) -> StateType { - return withSpecificTypes(action, state: state, function: handleAction) - } -} +public typealias Reducer = + (_ action: Action, _ state: ReducerStateType?) -> ReducerStateType diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Store.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Store.swift index 8494b7a..0d3ba9d 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Store.swift +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Store.swift @@ -17,35 +17,34 @@ import Foundation */ open class Store: StoreType { - typealias SubscriptionType = Subscription + typealias SubscriptionType = SubscriptionBox // swiftlint:disable todo // TODO: Setter should not be public; need way for store enhancers to modify appState anyway + // swiftlint:enable todo /*private (set)*/ public var state: State! { didSet { subscriptions = subscriptions.filter { $0.subscriber != nil } subscriptions.forEach { - // if a selector is available, subselect the relevant state - // otherwise pass the entire state to the subscriber - $0.subscriber?._newState(state: $0.selector?(state) ?? state) + $0.newValues(oldState: oldValue, newState: state) } } } public var dispatchFunction: DispatchFunction! - private var reducer: AnyReducer + private var reducer: Reducer var subscriptions: [SubscriptionType] = [] private var isDispatching = false - public required convenience init(reducer: AnyReducer, state: State?) { - self.init(reducer: reducer, state: state, middleware: []) - } - - public required init(reducer: AnyReducer, state: State?, middleware: [Middleware]) { + public required init( + reducer: @escaping Reducer, + state: State?, + middleware: [Middleware] = [] + ) { self.reducer = reducer // Wrap the dispatch function with all middlewares @@ -53,10 +52,12 @@ open class Store: StoreType { .reversed() .reduce({ [unowned self] action in return self._defaultDispatch(action: action) - }) { - [weak self] dispatchFunction, middleware in - let getState = { self?.state } - return middleware(self?.dispatch, getState)(dispatchFunction) + }) { dispatchFunction, middleware in + // If the store get's deinitialized before the middleware is complete; drop + // the action without dispatching. + let dispatch: (Action) -> Void = { [weak self] in self?.dispatch($0) } + let getState = { [weak self] in self?.state } + return middleware(dispatch, getState)(dispatchFunction) } if let state = state { @@ -66,32 +67,38 @@ open class Store: StoreType { } } - private func _isNewSubscriber(subscriber: AnyStoreSubscriber) -> Bool { - let contains = subscriptions.contains(where: { $0.subscriber === subscriber }) - - if contains { - print("Store subscriber is already added, ignoring.") - return false - } - - return true - } - open func subscribe(_ subscriber: S) where S.StoreSubscriberStateType == State { - subscribe(subscriber, selector: nil) + _ = subscribe(subscriber, transform: nil) } - open func subscribe - (_ subscriber: S, selector: ((State) -> SelectedState)?) - where S.StoreSubscriberStateType == SelectedState { - if !_isNewSubscriber(subscriber: subscriber) { return } + open func subscribe( + _ subscriber: S, transform: ((Subscription) -> Subscription)? + ) where S.StoreSubscriberStateType == SelectedState + { + // If the same subscriber is already registered with the store, replace the existing + // subscription with the new one. + if let index = subscriptions.index(where: { $0.subscriber === subscriber }) { + subscriptions.remove(at: index) + } + + // Create a subscription for the new subscriber. + let originalSubscription = Subscription() + // Call the optional transformation closure. This allows callers to modify + // the subscription, e.g. in order to subselect parts of the store's state. + let transformedSubscription = transform?(originalSubscription) - subscriptions.append(Subscription(subscriber: subscriber, selector: selector)) + let subscriptionBox = SubscriptionBox( + originalSubscription: originalSubscription, + transformedSubscription: transformedSubscription, + subscriber: subscriber + ) - if let state = self.state { - subscriber._newState(state: selector?(state) ?? state) - } + subscriptions.append(subscriptionBox) + + if let state = self.state { + originalSubscription.newValues(oldState: nil, newState: state) + } } open func unsubscribe(_ subscriber: AnyStoreSubscriber) { @@ -100,37 +107,32 @@ open class Store: StoreType { } } - open func _defaultDispatch(action: Action) -> Any { + // swiftlint:disable:next identifier_name + open func _defaultDispatch(action: Action) { guard !isDispatching else { raiseFatalError( - "ReSwift:IllegalDispatchFromReducer - Reducers may not dispatch actions.") + "ReSwift:ConcurrentMutationError- Action has been dispatched while" + + " a previous action is action is being processed. A reducer" + + " is dispatching an action, or ReSwift is used in a concurrent context" + + " (e.g. from multiple threads)." + ) } isDispatching = true - let newState = reducer._handleAction(action: action, state: state) as! State + let newState = reducer(action, state) isDispatching = false state = newState - - return action } - @discardableResult - open func dispatch(_ action: Action) -> Any { - let returnValue = dispatchFunction(action) - - return returnValue + open func dispatch(_ action: Action) { + dispatchFunction(action) } - @discardableResult - open func dispatch(_ actionCreatorProvider: @escaping ActionCreator) -> Any { - let action = actionCreatorProvider(state, self) - - if let action = action { + open func dispatch(_ actionCreatorProvider: @escaping ActionCreator) { + if let action = actionCreatorProvider(state, self) { dispatch(action) } - - return action as Any } open func dispatch(_ asyncActionCreatorProvider: @escaping AsyncActionCreator) { @@ -138,7 +140,7 @@ open class Store: StoreType { } open func dispatch(_ actionCreatorProvider: @escaping AsyncActionCreator, - callback: DispatchCallback?) { + callback: DispatchCallback?) { actionCreatorProvider(state, self) { actionProvider in let action = actionProvider(self.state, self) @@ -159,3 +161,12 @@ open class Store: StoreType { _ actionCreatorCallback: @escaping ((ActionCreator) -> Void) ) -> Void } + +// MARK: Skip Repeats for Equatable States + +extension Store where State: Equatable { + open func subscribe(_ subscriber: S) + where S.StoreSubscriberStateType == State { + _ = subscribe(subscriber, transform: { $0.skipRepeats() }) + } +} diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreSubscriber.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreSubscriber.swift index aef0770..837b339 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreSubscriber.swift +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreSubscriber.swift @@ -9,6 +9,7 @@ import Foundation public protocol AnyStoreSubscriber: class { + // swiftlint:disable:next identifier_name func _newState(state: Any) } @@ -19,6 +20,7 @@ public protocol StoreSubscriber: AnyStoreSubscriber { } extension StoreSubscriber { + // swiftlint:disable:next identifier_name public func _newState(state: Any) { if let typedState = state as? StoreSubscriberStateType { newState(state: typedState) diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreType.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreType.swift index 8da8504..364a82f 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreType.swift +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreType.swift @@ -14,16 +14,13 @@ import Foundation Stores receive actions and use reducers combined with these actions, to calculate state changes. Upon every state update a store informs all of its subscribers. */ -public protocol StoreType { +public protocol StoreType: DispatchingStoreType { associatedtype State: StateType - /// Initializes the store with a reducer and an intial state. - init(reducer: AnyReducer, state: State?) - /// Initializes the store with a reducer, an initial state and a list of middleware. /// Middleware is applied in the order in which it is passed into this constructor. - init(reducer: AnyReducer, state: State?, middleware: [Middleware]) + init(reducer: @escaping Reducer, state: State?, middleware: [Middleware]) /// The current state stored in the store. var state: State! { get } @@ -44,27 +41,27 @@ public protocol StoreType { func subscribe(_ subscriber: S) where S.StoreSubscriberStateType == State /** - Unsubscribes the provided subscriber. The subscriber will no longer - receive state updates from this store. + Subscribes the provided subscriber to this store. + Subscribers will receive a call to `newState` whenever the + state in this store changes and the subscription decides to forward + state update. - - parameter subscriber: Subscriber that will be unsubscribed + - parameter subscriber: Subscriber that will receive store updates + - parameter transform: A closure that receives a simple subscription and can return a + transformed subscription. Subscriptions can be transformed to only select a subset of the + state, or to skip certain state updates. */ - func unsubscribe(_ subscriber: AnyStoreSubscriber) + func subscribe( + _ subscriber: S, transform: ((Subscription) -> Subscription)? + ) where S.StoreSubscriberStateType == SelectedState /** - Dispatches an action. This is the simplest way to modify the stores state. - - Example of dispatching an action: - - ``` - store.dispatch( CounterAction.IncreaseCounter ) - ``` + Unsubscribes the provided subscriber. The subscriber will no longer + receive state updates from this store. - - parameter action: The action that is being dispatched to the store - - returns: By default returns the dispatched action, but middlewares can change the - return type, e.g. to return promises + - parameter subscriber: Subscriber that will be unsubscribed */ - func dispatch(_ action: Action) -> Any + func unsubscribe(_ subscriber: AnyStoreSubscriber) /** Dispatches an action creator to the store. Action creators are functions that generate @@ -99,7 +96,7 @@ public protocol StoreType { - returns: By default returns the dispatched action, but middlewares can change the return type, e.g. to return promises */ - func dispatch(_ actionCreator: ActionCreator) -> Any + func dispatch(_ actionCreator: ActionCreator) /** Dispatches an async action creator to the store. An async action creator generates an @@ -120,7 +117,6 @@ public protocol StoreType { */ func dispatch(_ asyncActionCreator: AsyncActionCreator, callback: DispatchCallback?) - /** An optional callback that can be passed to the `dispatch` method. This callback will be called when the dispatched action triggers a new state calculation. diff --git a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Subscription.swift b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Subscription.swift index 18ac73b..6cc2c6a 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Subscription.swift +++ b/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Subscription.swift @@ -8,7 +8,138 @@ import Foundation -struct Subscription { - private(set) weak var subscriber: AnyStoreSubscriber? = nil - let selector: ((State) -> Any)? +/// A box around subscriptions and subscribers. +/// +/// Acts as a type-erasing wrapper around a subscription and its transformed subscription. +/// The transformed subscription has a type argument that matches the selected substate of the +/// subscriber; however that type cannot be exposed to the store. +/// +/// The box subscribes either to the original subscription, or if available to the transformed +/// subscription and passes any values that come through this subscriptions to the subscriber. +class SubscriptionBox { + + private let originalSubscription: Subscription + weak var subscriber: AnyStoreSubscriber? + + init( + originalSubscription: Subscription, + transformedSubscription: Subscription?, + subscriber: AnyStoreSubscriber + ) { + self.originalSubscription = originalSubscription + self.subscriber = subscriber + + // If we received a transformed subscription, we subscribe to that subscription + // and forward all new values to the subscriber. + if let transformedSubscription = transformedSubscription { + transformedSubscription.observe { _, newState in + self.subscriber?._newState(state: newState as Any) + } + // If we haven't received a transformed subscription, we forward all values + // from the original subscription. + } else { + originalSubscription.observe { _, newState in + self.subscriber?._newState(state: newState as Any) + } + } + } + + func newValues(oldState: State, newState: State) { + // We pass all new values through the original subscription, which accepts + // values of type ``. If present, transformed subscriptions will + // receive this update and transform it before passing it on to the subscriber. + self.originalSubscription.newValues(oldState: oldState, newState: newState) + } +} + +/// Represents a subscription of a subscriber to the store. The subscription determines which new +/// values from the store are forwarded to the subscriber, and how they are transformed. +/// The subscription acts as a very-light weight signal/observable that you might know from +/// reactive programming libraries. +public class Subscription { + + private func _select( + _ selector: @escaping (State) -> Substate + ) -> Subscription + { + return Subscription { sink in + self.observe { oldState, newState in + sink(oldState.map(selector) ?? nil, newState.map(selector) ?? nil) + } + } + } + + // MARK: Public Interface + + /// Provides a subscription that selects a substate of the state of the original subscription. + /// - parameter selector: A closure that maps a state to a selected substate + public func select( + _ selector: @escaping (State) -> Substate + ) -> Subscription + { + return self._select(selector) + } + + /// Provides a subscription that selects a substate of the state of the original subscription. + /// If the selected substate is `Equatable` repeated state updates will be skipped. + /// - parameter selector: A closure that maps a state to a selected substate + public func select( + _ selector: @escaping (State) -> Substate + ) -> Subscription + { + return self._select(selector).skipRepeats() + } + + /// Provides a subscription that skips certain state updates of the original subscription. + /// - parameter isRepeat: A closure that determines whether a given state update is a repeat and + /// thus should be skipped and not forwarded to subscribers. + public func skipRepeats(_ isRepeat: @escaping (State, State) -> Bool) -> Subscription { + return Subscription { sink in + self.observe { oldState, newState in + switch (oldState, newState) { + case let (old?, new?): + if !isRepeat(old, new) { + sink(oldState, newState) + } else { + return + } + default: + sink(oldState, newState) + } + } + } + } + + // MARK: Internals + + var observer: ((State?, State?) -> Void)? + + init() {} + + /// Initializes a subscription with a sink closure. The closure provides a way to send + /// new values over this subscription. + private init(sink: @escaping (@escaping (State?, State?) -> Void) -> Void) { + // Provide the caller with a closure that will forward all values + // to observers of this subscription. + sink { old, new in + self.newValues(oldState: old, newState: new) + } + } + + /// Sends new values over this subscription. Observers will be notified of these new values. + func newValues(oldState: State?, newState: State?) { + self.observer?(oldState, newState) + } + + /// A caller can observe new values of this subscription through the provided closure. + /// - Note: subscriptions only support a single observer. + fileprivate func observe(observer: @escaping (State?, State?) -> Void) { + self.observer = observer + } +} + +extension Subscription where State: Equatable { + public func skipRepeats() -> Subscription{ + return self.skipRepeats(==) + } } diff --git a/Carthage/Checkouts/ReSwift/ReSwift/Info.plist b/Carthage/Checkouts/ReSwift/ReSwift/Info.plist index e0f4bf7..1bcfa6d 100644 --- a/Carthage/Checkouts/ReSwift/ReSwift/Info.plist +++ b/Carthage/Checkouts/ReSwift/ReSwift/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.0 + 4.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/CombinedReducerTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/CombinedReducerTests.swift deleted file mode 100644 index d03891d..0000000 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/CombinedReducerTests.swift +++ /dev/null @@ -1,87 +0,0 @@ -// -// CombinedReducerTests.swift -// ReSwift -// -// Created by Benjamin Encz on 12/20/15. -// Copyright © 2015 Benjamin Encz. All rights reserved. -// - -import XCTest -import ReSwift - -class MockReducer: Reducer { - - var calledWithAction: [Action] = [] - - func handleAction(action: Action, state: CounterState?) -> CounterState { - calledWithAction.append(action) - - return state ?? CounterState() - } - -} - -class IncreaseByOneReducer: Reducer { - func handleAction(action: Action, state: CounterState?) -> CounterState { - var state = state ?? CounterState() - - state.count = state.count + 1 - - return state - } -} - -class IncreaseByTwoReducer: Reducer { - func handleAction(action: Action, state: CounterState?) -> CounterState { - var state = state ?? CounterState() - - state.count = state.count + 2 - - return state - } -} - -struct CounterState: StateType { - var count: Int = 0 -} - -let emptyAction = "EMPTY_ACTION" - - -class CombinedReducerTest: XCTestCase { - - /** - it calls each of the reducers with the given action exactly once - */ - func testCallsReducersOnce() { - let mockReducer1 = MockReducer() - let mockReducer2 = MockReducer() - - let combinedReducer = CombinedReducer([mockReducer1, mockReducer2]) - - _ = combinedReducer._handleAction( - action: StandardAction(type: emptyAction), - state: CounterState()) - - XCTAssertEqual(mockReducer1.calledWithAction.count, 1) - XCTAssertEqual(mockReducer2.calledWithAction.count, 1) - XCTAssertEqual((mockReducer1.calledWithAction[0] as! StandardAction).type, emptyAction) - XCTAssertEqual((mockReducer2.calledWithAction[0] as! StandardAction).type, emptyAction) - } - - /** - it combines the results from each individual reducer correctly - */ - func testCombinesReducerResults() { - let increaseByOneReducer = IncreaseByOneReducer() - let increaseByTwoReducer = IncreaseByTwoReducer() - - let combinedReducer = CombinedReducer([increaseByOneReducer, increaseByTwoReducer]) - - let newState = combinedReducer._handleAction( - action: StandardAction(type: emptyAction), - state: CounterState()) as? CounterState - - XCTAssertEqual(newState?.count, 3) - } -} diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/StandardActionTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/StandardActionTests.swift index 0d82a91..af8fcbe 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/StandardActionTests.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/StandardActionTests.swift @@ -153,6 +153,13 @@ class StandardActionConvertibleInit: XCTestCase { XCTAssertEqual(action.value, 10) } + func testInitWithStringStandardAction() { + let standardAction = StandardAction(type: "Test", payload: ["value": "10" as AnyObject]) + let action = SetValueStringAction(standardAction) + + XCTAssertEqual(action.value, "10") + } + } class StandardActionConvertibleTests: XCTestCase { @@ -169,4 +176,14 @@ class StandardActionConvertibleTests: XCTestCase { XCTAssertEqual(standardAction.isTypedAction, true) XCTAssertEqual(standardAction.payload?["value"] as? Int, 5) } + + func testConvertToStringStandardAction() { + let action = SetValueStringAction("5") + + let standardAction = action.toStandardAction() + + XCTAssertEqual(standardAction.type, "SetValueStringAction") + XCTAssertEqual(standardAction.isTypedAction, true) + XCTAssertEqual(standardAction.payload?["value"] as? String, "5") + } } diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreDispatchTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreDispatchTests.swift index 2e86abc..2f65f14 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreDispatchTests.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreDispatchTests.swift @@ -20,17 +20,7 @@ class StoreDispatchTests: XCTestCase { override func setUp() { super.setUp() reducer = TestReducer() - store = Store(reducer: reducer, state: TestAppState()) - } - - /** - it returns the dispatched action - */ - func testReturnsDispatchedAction() { - let action = SetValueAction(10) - let returnValue = store.dispatch(action) - - XCTAssertEqual((returnValue as? SetValueAction)?.value, action.value) + store = Store(reducer: reducer.handleAction, state: TestAppState()) } /** @@ -39,7 +29,7 @@ class StoreDispatchTests: XCTestCase { func testThrowsExceptionWhenReducersDispatch() { // Expectation lives in the `DispatchingReducer` class let reducer = DispatchingReducer() - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) reducer.store = store store.dispatch(SetValueAction(10)) } @@ -68,9 +58,9 @@ class StoreDispatchTests: XCTestCase { withDescription: "It accepts async action creators") let asyncActionCreator: Store.AsyncActionCreator = { _, _, callback in - dispatchAsync() { + dispatchAsync { // Provide the callback with an action creator - callback { state, store in + callback { _, _ in return SetValueAction(5) } } @@ -100,9 +90,9 @@ class StoreDispatchTests: XCTestCase { "It calls the callback once state update from async action is complete") let asyncActionCreator: Store.AsyncActionCreator = { _, _, callback in - dispatchAsync() { + dispatchAsync { // Provide the callback with an action creator - callback { state, store in + callback { _, _ in return SetValueAction(5) } } @@ -124,8 +114,8 @@ class StoreDispatchTests: XCTestCase { } // Needs to be class so that shared reference can be modified to inject store -class DispatchingReducer: XCTestCase, Reducer { - var store: Store? = nil +class DispatchingReducer: XCTestCase { + var store: Store? func handleAction(action: Action, state: TestAppState?) -> TestAppState { expectFatalError { diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreMiddlewareTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreMiddlewareTests.swift index 254cf01..c6cb9ae 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreMiddlewareTests.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreMiddlewareTests.swift @@ -9,12 +9,12 @@ import XCTest import ReSwift -let firstMiddleware: Middleware = { dispatch, getState in +let firstMiddleware: Middleware = { dispatch, getState in return { next in return { action in if var action = action as? SetValueStringAction { - action.value = action.value + " First Middleware" + action.value += " First Middleware" return next(action) } else { return next(action) @@ -23,12 +23,12 @@ let firstMiddleware: Middleware = { dispatch, getState in } } -let secondMiddleware: Middleware = { dispatch, getState in +let secondMiddleware: Middleware = { dispatch, getState in return { next in return { action in if var action = action as? SetValueStringAction { - action.value = action.value + " Second Middleware" + action.value += " Second Middleware" return next(action) } else { return next(action) @@ -37,14 +37,12 @@ let secondMiddleware: Middleware = { dispatch, getState in } } -let dispatchingMiddleware: Middleware = { dispatch, getState in +let dispatchingMiddleware: Middleware = { dispatch, getState in return { next in return { action in if var action = action as? SetValueAction { - _ = dispatch?(SetValueStringAction("\(action.value)")) - - return "Converted Action Successfully" + dispatch(SetValueStringAction("\(action.value)")) } return next(action) @@ -52,17 +50,17 @@ let dispatchingMiddleware: Middleware = { dispatch, getState in } } -let stateAccessingMiddleware: Middleware = { dispatch, getState in +let stateAccessingMiddleware: Middleware = { dispatch, getState in return { next in return { action in - let appState = getState() as? TestStringAppState, + let appState = getState(), stringAction = action as? SetValueStringAction // avoid endless recursion by checking if we've dispatched exactly this action if appState?.testValue == "OK" && stringAction?.value != "Not OK" { // dispatch a new action - _ = dispatch?(SetValueStringAction("Not OK")) + dispatch(SetValueStringAction("Not OK")) // and swallow the current one return next(StandardAction(type: "No-Op-Action")) @@ -81,7 +79,7 @@ class StoreMiddlewareTests: XCTestCase { */ func testDecorateDispatch() { let reducer = TestValueStringReducer() - let store = Store(reducer: reducer, + let store = Store(reducer: reducer.handleAction, state: TestStringAppState(), middleware: [firstMiddleware, secondMiddleware]) @@ -99,7 +97,7 @@ class StoreMiddlewareTests: XCTestCase { */ func testCanDispatch() { let reducer = TestValueStringReducer() - let store = Store(reducer: reducer, + let store = Store(reducer: reducer.handleAction, state: TestStringAppState(), middleware: [firstMiddleware, secondMiddleware, dispatchingMiddleware]) @@ -112,21 +110,6 @@ class StoreMiddlewareTests: XCTestCase { XCTAssertEqual(store.state.testValue, "10 First Middleware Second Middleware") } - /** - it can change the return value of the dispatch function - */ - func testCanChangeReturnValue() { - let reducer = TestValueStringReducer() - let store = Store(reducer: reducer, - state: TestStringAppState(), - middleware: [firstMiddleware, secondMiddleware, dispatchingMiddleware]) - - let action = SetValueAction(10) - let returnValue = store.dispatch(action) as? String - - XCTAssertEqual(returnValue, "Converted Action Successfully") - } - /** it middleware can access the store's state */ @@ -135,7 +118,7 @@ class StoreMiddlewareTests: XCTestCase { var state = TestStringAppState() state.testValue = "OK" - let store = Store(reducer: reducer, state: state, + let store = Store(reducer: reducer.handleAction, state: state, middleware: [stateAccessingMiddleware]) store.dispatch(SetValueStringAction("Action That Won't Go Through")) diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriberTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriberTests.swift index 39f0ef2..ad68cef 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriberTests.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriberTests.swift @@ -16,12 +16,13 @@ class StoreSubscriberTests: XCTestCase { */ func testAllowsSelectorClosure() { let reducer = TestReducer() - let store = Store(reducer: reducer, state: TestAppState()) - let subscriber = TestFilteredSubscriber() + let store = Store(reducer: reducer.handleAction, state: TestAppState()) + let subscriber = TestFilteredSubscriber() store.subscribe(subscriber) { - $0.testValue + $0.select { $0.testValue } } + store.dispatch(SetValueAction(3)) XCTAssertEqual(subscriber.receivedValue, 3) @@ -32,10 +33,14 @@ class StoreSubscriberTests: XCTestCase { */ func testComplexStateSelector() { let reducer = TestComplexAppStateReducer() - let store = Store(reducer: reducer, state: TestComplexAppState()) + let store = Store(reducer: reducer.handleAction, state: TestComplexAppState()) let subscriber = TestSelectiveSubscriber() - store.subscribe(subscriber) { ($0.testValue, $0.otherState?.name) } + store.subscribe(subscriber) { + $0.select { + ($0.testValue, $0.otherState?.name) + } + } store.dispatch(SetValueAction(5)) store.dispatch(SetOtherStateAction( otherState: OtherState(name: "TestName", age: 99) @@ -44,13 +49,123 @@ class StoreSubscriberTests: XCTestCase { XCTAssertEqual(subscriber.receivedValue.0, 5) XCTAssertEqual(subscriber.receivedValue.1, "TestName") } + + /** + it does not notify subscriber for unchanged substate state when using `skipRepeats`. + */ + func testUnchangedStateSelector() { + let reducer = TestReducer() + var state = TestAppState() + state.testValue = 3 + let store = Store(reducer: reducer.handleAction, state: state) + let subscriber = TestFilteredSubscriber() + + store.subscribe(subscriber) { + $0.select { + $0.testValue + }.skipRepeats { + return $0 == $1 + } + } + + XCTAssertEqual(subscriber.receivedValue, 3) + + store.dispatch(SetValueAction(3)) + + XCTAssertEqual(subscriber.receivedValue, 3) + XCTAssertEqual(subscriber.newStateCallCount, 1) + } + + /** + it does not notify subscriber for unchanged substate state when using the default + `skipRepeats` implementation. + */ + func testUnchangedStateSelectorDefaultSkipRepeats() { + let reducer = TestValueStringReducer() + let state = TestStringAppState() + let store = Store(reducer: reducer.handleAction, state: state) + let subscriber = TestFilteredSubscriber() + + store.subscribe(subscriber) { + $0.select { $0.testValue }.skipRepeats() + } + + XCTAssertEqual(subscriber.receivedValue, "Initial") + + store.dispatch(SetValueStringAction("Initial")) + + XCTAssertEqual(subscriber.receivedValue, "Initial") + XCTAssertEqual(subscriber.newStateCallCount, 1) + } + + /** + it skips repeated state values by when `skipRepeats` returns `true`. + */ + func testSkipsStateUpdatesForCustomEqualityChecks() { + let reducer = TestCustomAppStateReducer() + let state = TestCustomAppState(substateValue: 5) + let store = Store(reducer: reducer.handleAction, state: state) + let subscriber = TestFilteredSubscriber() + + store.subscribe(subscriber) { + $0.select { $0.substate } + .skipRepeats { $0.value == $1.value } + } + + XCTAssertEqual(subscriber.receivedValue.value, 5) + + store.dispatch(SetCustomSubstateAction(5)) + + XCTAssertEqual(subscriber.receivedValue.value, 5) + XCTAssertEqual(subscriber.newStateCallCount, 1) + } + + /** + it skips repeated state values by default when the selected substate is `Equatable`. + */ + func testSkipsStateUpdatesForEquatableSubstatesByDefault() { + let reducer = TestValueStringReducer() + let state = TestStringAppState() + let store = Store(reducer: reducer.handleAction, state: state) + let subscriber = TestFilteredSubscriber() + + store.subscribe(subscriber) { + $0.select { $0.testValue } + } + + XCTAssertEqual(subscriber.receivedValue, "Initial") + + store.dispatch(SetValueStringAction("Initial")) + + XCTAssertEqual(subscriber.receivedValue, "Initial") + XCTAssertEqual(subscriber.newStateCallCount, 1) + } + + func testSkipsStateUpdatesForEquatableStateByDefault() { + let reducer = TestValueStringReducer() + let state = TestStringAppState() + let store = Store(reducer: reducer.handleAction, state: state) + let subscriber = TestFilteredSubscriber() + + store.subscribe(subscriber) + + XCTAssertEqual(subscriber.receivedValue.testValue, "Initial") + + store.dispatch(SetValueStringAction("Initial")) + + XCTAssertEqual(subscriber.receivedValue.testValue, "Initial") + XCTAssertEqual(subscriber.newStateCallCount, 1) + } + } -class TestFilteredSubscriber: StoreSubscriber { - var receivedValue: Int? +class TestFilteredSubscriber: StoreSubscriber { + var receivedValue: T! + var newStateCallCount = 0 - func newState(state: Int?) { + func newState(state: T) { receivedValue = state + newStateCallCount += 1 } } @@ -77,7 +192,7 @@ struct OtherState { var age: Int? } -struct TestComplexAppStateReducer: Reducer { +struct TestComplexAppStateReducer { func handleAction(action: Action, state: TestComplexAppState?) -> TestComplexAppState { var state = state ?? TestComplexAppState() diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriptionTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriptionTests.swift index 7759a02..318f912 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriptionTests.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriptionTests.swift @@ -22,14 +22,14 @@ class StoreSubscriptionTests: XCTestCase { override func setUp() { super.setUp() reducer = TestReducer() - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) } /** It does not strongly capture an observer */ func testStrongCapture() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) var subscriber: TestSubscriber? = TestSubscriber() store.subscribe(subscriber!) @@ -43,7 +43,7 @@ class StoreSubscriptionTests: XCTestCase { it removes deferenced subscribers before notifying state changes */ func testRemoveSubscribers() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) var subscriber1: TestSubscriber? = TestSubscriber() var subscriber2: TestSubscriber? = TestSubscriber() @@ -64,11 +64,34 @@ class StoreSubscriptionTests: XCTestCase { XCTAssertEqual(store.subscriptions.count, 0) } + /** + it replaces the subscription of an existing subscriber with the new one. + */ + func testDuplicateSubscription() { + store = Store(reducer: reducer.handleAction, state: TestAppState()) + let subscriber = TestSubscriber() + + // Initial subscription. + store.subscribe(subscriber) + // Subsequent subscription that skips repeated updates. + store.subscribe(subscriber) { $0.skipRepeats { $0.testValue == $1.testValue } } + + // One initial state update for every subscription. + XCTAssertEqual(subscriber.receivedStates.count, 2) + + store.dispatch(SetValueAction(3)) + store.dispatch(SetValueAction(3)) + store.dispatch(SetValueAction(3)) + store.dispatch(SetValueAction(3)) + + // Only a single further state update, since latest subscription skips repeated values. + XCTAssertEqual(subscriber.receivedStates.count, 3) + } /** it dispatches initial value upon subscription */ func testDispatchInitialValue() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) let subscriber = TestSubscriber() store.subscribe(subscriber) @@ -81,7 +104,7 @@ class StoreSubscriptionTests: XCTestCase { it allows dispatching from within an observer */ func testAllowDispatchWithinObserver() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) let subscriber = DispatchingSubscriber(store: store) store.subscribe(subscriber) @@ -94,7 +117,7 @@ class StoreSubscriptionTests: XCTestCase { it does not dispatch value after subscriber unsubscribes */ func testDontDispatchToUnsubscribers() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) let subscriber = TestSubscriber() store.dispatch(SetValueAction(5)) @@ -121,7 +144,7 @@ class StoreSubscriptionTests: XCTestCase { it ignores identical subscribers */ func testIgnoreIdenticalSubscribers() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) let subscriber = TestSubscriber() store.subscribe(subscriber) @@ -134,7 +157,7 @@ class StoreSubscriptionTests: XCTestCase { it ignores identical subscribers that provide substate selectors */ func testIgnoreIdenticalSubstateSubscribers() { - store = Store(reducer: reducer, state: TestAppState()) + store = Store(reducer: reducer.handleAction, state: TestAppState()) let subscriber = TestSubscriber() store.subscribe(subscriber) { $0 } diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreTests.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreTests.swift index 5d9c346..d0b5878 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreTests.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreTests.swift @@ -16,7 +16,7 @@ class StoreTests: XCTestCase { */ func testInit() { let reducer = MockReducer() - let _ = Store(reducer: reducer, state: nil) + _ = Store(reducer: reducer.handleAction, state: nil) XCTAssert(reducer.calledWithAction[0] is ReSwiftInit) } @@ -29,8 +29,8 @@ class StoreTests: XCTestCase { autoreleasepool { let reducer = TestReducer() - let _ = DeInitStore( - reducer: reducer, + _ = DeInitStore( + reducer: reducer.handleAction, state: TestAppState(), deInitAction: { deInitCount += 1 }) } @@ -49,14 +49,33 @@ class DeInitStore: Store { } required convenience init( - reducer: AnyReducer, + reducer: @escaping Reducer, state: State?, deInitAction: (() -> Void)?) { self.init(reducer: reducer, state: state, middleware: []) self.deInitAction = deInitAction } - required init(reducer: AnyReducer, state: State?, middleware: [Middleware]) { - super.init(reducer: reducer, state: state, middleware: middleware) + required init( + reducer: @escaping Reducer, + state: State?, + middleware: [Middleware]) { + super.init(reducer: reducer, state: state, middleware: middleware) + } +} + +struct CounterState: StateType { + var count: Int = 0 +} + +class MockReducer { + + var calledWithAction: [Action] = [] + + func handleAction(action: Action, state: CounterState?) -> CounterState { + calledWithAction.append(action) + + return state ?? CounterState() } + } diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/TestFakes.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/TestFakes.swift index 018c9e6..eaebacc 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/TestFakes.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/TestFakes.swift @@ -18,10 +18,32 @@ struct TestAppState: StateType { } struct TestStringAppState: StateType { - var testValue: String? + var testValue: String init() { - testValue = nil + testValue = "Initial" + } +} + +extension TestStringAppState: Equatable { + static func == (lhs: TestStringAppState, rhs: TestStringAppState) -> Bool { + return lhs.testValue == rhs.testValue + } +} + +struct TestCustomAppState: StateType { + var substate: TestCustomSubstate + + init(substate: TestCustomSubstate) { + self.substate = substate + } + + init(substateValue value: Int = 0) { + self.substate = TestCustomSubstate(value: value) + } + + struct TestCustomSubstate { + var value: Int } } @@ -66,7 +88,27 @@ struct SetValueStringAction: StandardActionConvertible { } -struct TestReducer: Reducer { +struct SetCustomSubstateAction: StandardActionConvertible { + + var value: Int + static let type = "SetCustomSubstateAction" + + init (_ value: Int) { + self.value = value + } + + init(_ standardAction: StandardAction) { + self.value = standardAction.payload!["value"] as! Int + } + + func toStandardAction() -> StandardAction { + return StandardAction(type: SetValueStringAction.type, + payload: ["value": value as AnyObject], + isTypedAction: true) + } +} + +struct TestReducer { func handleAction(action: Action, state: TestAppState?) -> TestAppState { var state = state ?? TestAppState() @@ -80,7 +122,7 @@ struct TestReducer: Reducer { } } -struct TestValueStringReducer: Reducer { +struct TestValueStringReducer { func handleAction(action: Action, state: TestStringAppState?) -> TestStringAppState { var state = state ?? TestStringAppState() @@ -94,6 +136,20 @@ struct TestValueStringReducer: Reducer { } } +struct TestCustomAppStateReducer { + func handleAction(action: Action, state: TestCustomAppState?) -> TestCustomAppState { + var state = state ?? TestCustomAppState() + + switch action { + case let action as SetCustomSubstateAction: + state.substate.value = action.value + return state + default: + return state + } + } +} + class TestStoreSubscriber: StoreSubscriber { var receivedStates: [T] = [] diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Assertions.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Assertions.swift index 3dc35e8..9a034a1 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Assertions.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Assertions.swift @@ -13,7 +13,6 @@ import XCTest private let noReturnFailureWaitTime = 0.1 - public extension XCTestCase { /** Expects an `fatalError` to be called. @@ -51,7 +50,7 @@ public extension XCTestCase { function: (_ caller: @escaping (String) -> Void) -> Void, expectedMessage: String? = nil, testCase: @escaping () -> Void, - cleanUp: @escaping () -> ()) { + cleanUp: @escaping () -> Void) { let asyncExpectation = futureExpectation(withDescription: funcName + "-Expectation") var assertionMessage: String? = nil diff --git a/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Compatibility.swift b/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Compatibility.swift index 24c4541..761512d 100644 --- a/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Compatibility.swift +++ b/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Compatibility.swift @@ -1,6 +1,5 @@ import XCTest - internal func dispatchAsync(execute work: @escaping @convention(block) () -> Swift.Void) { DispatchQueue.global(qos: .default).async(execute: work) } diff --git a/Carthage/Checkouts/ReSwift/SwiftLintIntegration/Info.plist b/Carthage/Checkouts/ReSwift/SwiftLintIntegration/Info.plist new file mode 100644 index 0000000..6c6c23c --- /dev/null +++ b/Carthage/Checkouts/ReSwift/SwiftLintIntegration/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Carthage/Checkouts/ReSwift/SwiftLintIntegration/SwiftLintIntegration.swift b/Carthage/Checkouts/ReSwift/SwiftLintIntegration/SwiftLintIntegration.swift new file mode 100644 index 0000000..82325bb --- /dev/null +++ b/Carthage/Checkouts/ReSwift/SwiftLintIntegration/SwiftLintIntegration.swift @@ -0,0 +1,15 @@ +// +// SwiftLintIntegration.swift +// SwiftLintIntegration +// +// Created by Gio on 17/3/17. +// Copyright © 2017 Benjamin Encz. All rights reserved. +// + +// +// SwiftLintIntegration is a dummy target that is present in the project only to enable us to fetch +// SwiftLint via CocoaPods. +// +// Rather than polluting the actual ReSwift targets with extra CP realted BuildPhases and imports, +// we shove all that in this target here. +// diff --git a/Carthage/Checkouts/ReSwiftRouter/.gitignore b/Carthage/Checkouts/ReSwiftRouter/.gitignore index 027c3f1..d432be3 100644 --- a/Carthage/Checkouts/ReSwiftRouter/.gitignore +++ b/Carthage/Checkouts/ReSwiftRouter/.gitignore @@ -44,8 +44,7 @@ xcuserdata # Carthage # # Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts -Carthage/Build +Carthage # fastlane # diff --git a/Carthage/Checkouts/ReSwiftRouter/.travis.yml b/Carthage/Checkouts/ReSwiftRouter/.travis.yml new file mode 100644 index 0000000..7633723 --- /dev/null +++ b/Carthage/Checkouts/ReSwiftRouter/.travis.yml @@ -0,0 +1,40 @@ +language: objective-c + +install: + - gem install xcpretty + +env: + global: + - LC_CTYPE=en_US.UTF-8 + - LANG=en_US.UTF-8 + - FRAMEWORK_NAME="ReSwiftRouter" + - UPDATE_DOCS="false" + +osx_image: xcode8.2 + +matrix: + include: + - env: SCHEME="macOS" SDK="macosx10.12" DESTINATION="arch=x86_64" + - env: SCHEME="iOS" SDK="iphonesimulator10.2" DESTINATION="OS=10.1,name=iPhone 6S Plus" + - env: SCHEME="tvOS" SDK="appletvsimulator10.1" DESTINATION="OS=10.1,name=Apple TV 1080p" + +before_install: + - carthage bootstrap + +script: + - set -o pipefail + - xcodebuild -version + - xcodebuild -showsdks + - xcodebuild + -project "$FRAMEWORK_NAME.xcodeproj" + -scheme "$FRAMEWORK_NAME-$SCHEME" + -sdk "$SDK" + -destination "$DESTINATION" + -configuration Debug + ONLY_ACTIVE_ARCH=YES + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES + GCC_GENERATE_TEST_COVERAGE_FILES=YES + test + +after_success: + - bash <(curl -s https://codecov.io/bash) -J ReSwiftRouter diff --git a/Carthage/Checkouts/ReSwiftRouter/Cartfile b/Carthage/Checkouts/ReSwiftRouter/Cartfile index df96f25..f43b92e 100644 --- a/Carthage/Checkouts/ReSwiftRouter/Cartfile +++ b/Carthage/Checkouts/ReSwiftRouter/Cartfile @@ -1 +1 @@ -github "ReSwift/ReSwift" ~> 3.0.0 +github "ReSwift/ReSwift" ~> 4.0.0 diff --git a/Carthage/Checkouts/ReSwiftRouter/Cartfile.resolved b/Carthage/Checkouts/ReSwiftRouter/Cartfile.resolved index 6291ac9..e16b75b 100644 --- a/Carthage/Checkouts/ReSwiftRouter/Cartfile.resolved +++ b/Carthage/Checkouts/ReSwiftRouter/Cartfile.resolved @@ -1,3 +1,3 @@ -github "Quick/Nimble" "v5.1.1" -github "Quick/Quick" "v0.10.0" -github "ReSwift/ReSwift" "3.0.0" +github "Quick/Nimble" "v6.1.0" +github "Quick/Quick" "v1.1.0" +github "ReSwift/ReSwift" "4.0.0" diff --git a/Carthage/Checkouts/ReSwiftRouter/README.md b/Carthage/Checkouts/ReSwiftRouter/README.md index 0d39417..315d843 100644 --- a/Carthage/Checkouts/ReSwiftRouter/README.md +++ b/Carthage/Checkouts/ReSwiftRouter/README.md @@ -166,3 +166,10 @@ Currently the only way to change the current application route is by using the ` } ``` As development continues, support for changing individual route segments will be added. + + +#Contributing + +##Compiling & Running tests + +ReSwiftRouter uses [Carthage]() for its development dependencies. To build or test any of the targets, run `carthage bootstrap`. diff --git a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.podspec b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.podspec index 7d29d14..bc65323 100644 --- a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.podspec +++ b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.podspec @@ -18,5 +18,5 @@ Pod::Spec.new do |s| s.watchos.deployment_target = '2.0' s.requires_arc = true s.source_files = 'ReSwiftRouter/**/*.swift' - s.dependency 'ReSwift', '~> 3.0.0' + s.dependency 'ReSwift', '~> 4.0.0' end diff --git a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/project.pbxproj b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/project.pbxproj index dd301b9..79c0e87 100644 --- a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/project.pbxproj @@ -44,16 +44,16 @@ 6209C0AB1C542BC7004E6B66 /* ReSwiftRouterTestsUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C0A9D51C50AF8B00139FA7 /* ReSwiftRouterTestsUnitTests.swift */; }; 6209C0AC1C542BCA004E6B66 /* ReSwiftRouterIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C0A9D41C50AF8B00139FA7 /* ReSwiftRouterIntegrationTests.swift */; }; 625E66F61C2000EA0027C288 /* ReSwiftRouter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 625E66CD1C1FFE280027C288 /* ReSwiftRouter.framework */; }; - 62AC57C81CA3A22E0007C9FA /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57BB1CA3A04D0007C9FA /* ReSwift.framework */; }; - 62AC57C91CA3A2350007C9FA /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57901CA3A01C0007C9FA /* Quick.framework */; }; - 62AC57CA1CA3A2390007C9FA /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57A51CA3A03E0007C9FA /* Nimble.framework */; }; - 62AC57CB1CA3A2420007C9FA /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57C71CA3A04D0007C9FA /* ReSwift.framework */; }; - 62AC57CC1CA3A2490007C9FA /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57C31CA3A04D0007C9FA /* ReSwift.framework */; }; - 62AC57CD1CA3A2540007C9FA /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57AD1CA3A03E0007C9FA /* Nimble.framework */; }; - 62AC57CE1CA3A2590007C9FA /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57961CA3A01C0007C9FA /* Quick.framework */; }; - 62AC57CF1CA3A2650007C9FA /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57BF1CA3A04D0007C9FA /* ReSwift.framework */; }; - 62AC57D01CA3A2700007C9FA /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC57A91CA3A03E0007C9FA /* Nimble.framework */; }; - 62AC57D11CA3A2740007C9FA /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62AC578A1CA3A01C0007C9FA /* Quick.framework */; }; + D47F3A4F1E0083B700AAA70A /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A4E1E0083B700AAA70A /* ReSwift.framework */; }; + D47F3A531E0083EB00AAA70A /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A511E0083EB00AAA70A /* Nimble.framework */; }; + D47F3A541E0083EB00AAA70A /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A521E0083EB00AAA70A /* Quick.framework */; }; + D47F3A5F1E0087BE00AAA70A /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A5E1E0087BE00AAA70A /* ReSwift.framework */; }; + D47F3A681E00880400AAA70A /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A621E00880400AAA70A /* Nimble.framework */; }; + D47F3A6A1E00880400AAA70A /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A641E00880400AAA70A /* Quick.framework */; }; + D47F3A7C1E0088E600AAA70A /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A751E0088E600AAA70A /* ReSwift.framework */; }; + D47F3A831E0088FE00AAA70A /* ReSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A801E0088FE00AAA70A /* ReSwift.framework */; }; + D47F3A8E1E00891200AAA70A /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A871E00891200AAA70A /* Nimble.framework */; }; + D47F3A901E00891200AAA70A /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D47F3A891E00891200AAA70A /* Quick.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -78,170 +78,17 @@ remoteGlobalIDString = 625E66CC1C1FFE280027C288; remoteInfo = SwiftFlowRouter; }; - 62AC57891CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = DAEB6B8E1943873100289F44; - remoteInfo = "Quick-OSX"; - }; - 62AC578B1CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = DAEB6B991943873100289F44; - remoteInfo = "Quick-OSXTests"; - }; - 62AC578D1CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = DA5663E81A4C8D8500193C88; - remoteInfo = "QuickFocused-OSXTests"; - }; - 62AC578F1CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 5A5D117C19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 62AC57911CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 5A5D118619473F2100F6D13D; - remoteInfo = "Quick-iOSTests"; - }; - 62AC57931CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = DA9876B21A4C70EB0004AA17; - remoteInfo = "QuickFocused-iOSTests"; - }; - 62AC57951CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F118CD51BDCA4AB005013A2; - remoteInfo = "Quick-tvOS"; - }; - 62AC57971CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F118CDE1BDCA4AB005013A2; - remoteInfo = "Quick-tvOSTests"; - }; - 62AC57991CA3A01C0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F118CF01BDCA4BB005013A2; - remoteInfo = "QuickFocused-tvOSTests"; - }; - 62AC57A41CA3A03E0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F1A74291940169200FFFC47; - remoteInfo = "Nimble-iOS"; - }; - 62AC57A61CA3A03E0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F1A74341940169200FFFC47; - remoteInfo = "Nimble-iOSTests"; - }; - 62AC57A81CA3A03E0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F925EAD195C0D6300ED456B; - remoteInfo = "Nimble-OSX"; - }; - 62AC57AA1CA3A03E0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F925EB7195C0D6300ED456B; - remoteInfo = "Nimble-OSXTests"; - }; - 62AC57AC1CA3A03E0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F5DF1551BDCA0CE00C3A531; - remoteInfo = "Nimble-tvOS"; - }; - 62AC57AE1CA3A03E0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 1F5DF15E1BDCA0CE00C3A531; - remoteInfo = "Nimble-tvOSTests"; - }; - 62AC57BA1CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 625E66831C1FF97E0027C288; - remoteInfo = "ReSwift-iOS"; - }; - 62AC57BC1CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 625E669A1C1FFA3C0027C288; - remoteInfo = "ReSwift-iOSTests"; - }; - 62AC57BE1CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 25DBCF7B1C30C4AA00D63A58; - remoteInfo = "ReSwift-OSX"; - }; - 62AC57C01CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 25DBCF871C30C4DB00D63A58; - remoteInfo = "ReSwift-OSXTests"; - }; - 62AC57C21CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 25DBCF4E1C30C18D00D63A58; - remoteInfo = "ReSwift-tvOS"; - }; - 62AC57C41CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 25DBCF641C30C1AC00D63A58; - remoteInfo = "ReSwift-tvOSTests"; - }; - 62AC57C61CA3A04D0007C9FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 25DBCF371C30BF2B00D63A58; - remoteInfo = "ReSwift-watchOS"; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 625E67091C2005190027C288 /* CopyFiles */ = { + D47F3A591E00871200AAA70A /* Copy Files */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 7; files = ( ); + name = "Copy Files"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ @@ -265,9 +112,16 @@ 6209C0911C5428DE004E6B66 /* ReSwiftRouter.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReSwiftRouter.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 625E66CD1C1FFE280027C288 /* ReSwiftRouter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReSwiftRouter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 625E66F11C2000EA0027C288 /* ReSwiftRouterTests-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ReSwiftRouterTests-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Quick.xcodeproj; path = Carthage/Checkouts/Quick/Quick.xcodeproj; sourceTree = SOURCE_ROOT; }; - 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Nimble.xcodeproj; path = Carthage/Checkouts/Nimble/Nimble.xcodeproj; sourceTree = SOURCE_ROOT; }; - 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReSwift.xcodeproj; path = Carthage/Checkouts/ReSwift/ReSwift.xcodeproj; sourceTree = SOURCE_ROOT; }; + D47F3A4E1E0083B700AAA70A /* ReSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReSwift.framework; path = Carthage/Build/iOS/ReSwift.framework; sourceTree = SOURCE_ROOT; }; + D47F3A511E0083EB00AAA70A /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = Carthage/Build/iOS/Nimble.framework; sourceTree = SOURCE_ROOT; }; + D47F3A521E0083EB00AAA70A /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/iOS/Quick.framework; sourceTree = SOURCE_ROOT; }; + D47F3A5E1E0087BE00AAA70A /* ReSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReSwift.framework; path = Carthage/Build/Mac/ReSwift.framework; sourceTree = SOURCE_ROOT; }; + D47F3A621E00880400AAA70A /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = ""; }; + D47F3A641E00880400AAA70A /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Quick.framework; sourceTree = ""; }; + D47F3A751E0088E600AAA70A /* ReSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ReSwift.framework; sourceTree = ""; }; + D47F3A801E0088FE00AAA70A /* ReSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ReSwift.framework; sourceTree = ""; }; + D47F3A871E00891200AAA70A /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = ""; }; + D47F3A891E00891200AAA70A /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Quick.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -275,7 +129,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57CB1CA3A2420007C9FA /* ReSwift.framework in Frameworks */, + D47F3A831E0088FE00AAA70A /* ReSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -283,7 +137,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57CC1CA3A2490007C9FA /* ReSwift.framework in Frameworks */, + D47F3A7C1E0088E600AAA70A /* ReSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -291,9 +145,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57CE1CA3A2590007C9FA /* Quick.framework in Frameworks */, - 62AC57CD1CA3A2540007C9FA /* Nimble.framework in Frameworks */, 6209C06B1C5427E0004E6B66 /* ReSwiftRouter.framework in Frameworks */, + D47F3A8E1E00891200AAA70A /* Nimble.framework in Frameworks */, + D47F3A901E00891200AAA70A /* Quick.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -301,7 +155,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57CF1CA3A2650007C9FA /* ReSwift.framework in Frameworks */, + D47F3A5F1E0087BE00AAA70A /* ReSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -309,9 +163,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57D11CA3A2740007C9FA /* Quick.framework in Frameworks */, - 62AC57D01CA3A2700007C9FA /* Nimble.framework in Frameworks */, 6209C0AA1C542B89004E6B66 /* ReSwiftRouter.framework in Frameworks */, + D47F3A681E00880400AAA70A /* Nimble.framework in Frameworks */, + D47F3A6A1E00880400AAA70A /* Quick.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -319,7 +173,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57C81CA3A22E0007C9FA /* ReSwift.framework in Frameworks */, + D47F3A4F1E0083B700AAA70A /* ReSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -327,9 +181,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 62AC57CA1CA3A2390007C9FA /* Nimble.framework in Frameworks */, - 62AC57C91CA3A2350007C9FA /* Quick.framework in Frameworks */, 625E66F61C2000EA0027C288 /* ReSwiftRouter.framework in Frameworks */, + D47F3A531E0083EB00AAA70A /* Nimble.framework in Frameworks */, + D47F3A541E0083EB00AAA70A /* Quick.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -378,7 +232,10 @@ 625E66E21C2000620027C288 /* Frameworks */ = { isa = PBXGroup; children = ( - 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */, + D47F3A4D1E00839D00AAA70A /* iOS */, + D47F3A5D1E0087B100AAA70A /* Mac */, + D47F3A6F1E0088E600AAA70A /* tvOS */, + D47F3A7E1E0088FE00AAA70A /* watchOS */, ); name = Frameworks; sourceTree = ""; @@ -399,55 +256,76 @@ 625E67001C2001F60027C288 /* Frameworks */ = { isa = PBXGroup; children = ( - 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */, - 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */, + D47F3A851E00891200AAA70A /* tvOS */, + D47F3A501E0083DB00AAA70A /* iOS */, + D47F3A611E00880400AAA70A /* Mac */, ); name = Frameworks; sourceTree = ""; }; - 62AC577E1CA3A01C0007C9FA /* Products */ = { + D47F3A4D1E00839D00AAA70A /* iOS */ = { isa = PBXGroup; children = ( - 62AC578A1CA3A01C0007C9FA /* Quick.framework */, - 62AC578C1CA3A01C0007C9FA /* Quick-macOSTests.xctest */, - 62AC578E1CA3A01C0007C9FA /* QuickFocused-macOSTests.xctest */, - 62AC57901CA3A01C0007C9FA /* Quick.framework */, - 62AC57921CA3A01C0007C9FA /* Quick-iOSTests.xctest */, - 62AC57941CA3A01C0007C9FA /* QuickFocused-iOSTests.xctest */, - 62AC57961CA3A01C0007C9FA /* Quick.framework */, - 62AC57981CA3A01C0007C9FA /* Quick-tvOSTests.xctest */, - 62AC579A1CA3A01C0007C9FA /* QuickFocused-tvOSTests.xctest */, + D47F3A4E1E0083B700AAA70A /* ReSwift.framework */, ); - name = Products; + name = iOS; sourceTree = ""; }; - 62AC579C1CA3A03E0007C9FA /* Products */ = { + D47F3A501E0083DB00AAA70A /* iOS */ = { isa = PBXGroup; children = ( - 62AC57A91CA3A03E0007C9FA /* Nimble.framework */, - 62AC57AB1CA3A03E0007C9FA /* NimbleTests.xctest */, - 62AC57A51CA3A03E0007C9FA /* Nimble.framework */, - 62AC57A71CA3A03E0007C9FA /* NimbleTests.xctest */, - 62AC57AD1CA3A03E0007C9FA /* Nimble.framework */, - 62AC57AF1CA3A03E0007C9FA /* NimbleTests.xctest */, + D47F3A511E0083EB00AAA70A /* Nimble.framework */, + D47F3A521E0083EB00AAA70A /* Quick.framework */, ); - name = Products; + name = iOS; sourceTree = ""; }; - 62AC57B11CA3A04D0007C9FA /* Products */ = { + D47F3A5D1E0087B100AAA70A /* Mac */ = { isa = PBXGroup; children = ( - 62AC57BB1CA3A04D0007C9FA /* ReSwift.framework */, - 62AC57BD1CA3A04D0007C9FA /* ReSwift-iOSTests.xctest */, - 62AC57BF1CA3A04D0007C9FA /* ReSwift.framework */, - 62AC57C11CA3A04D0007C9FA /* ReSwift-macOSTests.xctest */, - 62AC57C31CA3A04D0007C9FA /* ReSwift.framework */, - 62AC57C51CA3A04D0007C9FA /* ReSwift-tvOSTests.xctest */, - 62AC57C71CA3A04D0007C9FA /* ReSwift.framework */, + D47F3A5E1E0087BE00AAA70A /* ReSwift.framework */, ); - name = Products; + name = Mac; sourceTree = ""; }; + D47F3A611E00880400AAA70A /* Mac */ = { + isa = PBXGroup; + children = ( + D47F3A621E00880400AAA70A /* Nimble.framework */, + D47F3A641E00880400AAA70A /* Quick.framework */, + ); + name = Mac; + path = Carthage/Build/Mac; + sourceTree = SOURCE_ROOT; + }; + D47F3A6F1E0088E600AAA70A /* tvOS */ = { + isa = PBXGroup; + children = ( + D47F3A751E0088E600AAA70A /* ReSwift.framework */, + ); + name = tvOS; + path = Carthage/Build/tvOS; + sourceTree = SOURCE_ROOT; + }; + D47F3A7E1E0088FE00AAA70A /* watchOS */ = { + isa = PBXGroup; + children = ( + D47F3A801E0088FE00AAA70A /* ReSwift.framework */, + ); + name = watchOS; + path = Carthage/Build/watchOS; + sourceTree = SOURCE_ROOT; + }; + D47F3A851E00891200AAA70A /* tvOS */ = { + isa = PBXGroup; + children = ( + D47F3A871E00891200AAA70A /* Nimble.framework */, + D47F3A891E00891200AAA70A /* Quick.framework */, + ); + name = tvOS; + path = Carthage/Build/tvOS; + sourceTree = SOURCE_ROOT; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -512,6 +390,7 @@ 6209C05D1C5427E0004E6B66 /* Frameworks */, 6209C05E1C5427E0004E6B66 /* Headers */, 6209C05F1C5427E0004E6B66 /* Resources */, + D47F3A941E00896B00AAA70A /* Carthage Copy Frameworks */, ); buildRules = ( ); @@ -529,6 +408,7 @@ 6209C0661C5427E0004E6B66 /* Sources */, 6209C0671C5427E0004E6B66 /* Frameworks */, 6209C0681C5427E0004E6B66 /* Resources */, + D47F3A951E00899600AAA70A /* Carthage Copy Frameworks */, ); buildRules = ( ); @@ -548,6 +428,7 @@ 6209C0841C5428DE004E6B66 /* Frameworks */, 6209C0851C5428DE004E6B66 /* Headers */, 6209C0861C5428DE004E6B66 /* Resources */, + D47F3A601E0087D900AAA70A /* Carthage Copy Frameworks */, ); buildRules = ( ); @@ -565,6 +446,7 @@ 6209C08D1C5428DE004E6B66 /* Sources */, 6209C08E1C5428DE004E6B66 /* Frameworks */, 6209C08F1C5428DE004E6B66 /* Resources */, + D47F3A6E1E00881800AAA70A /* Carthage Copy Frameworks */, ); buildRules = ( ); @@ -601,7 +483,8 @@ 625E66ED1C2000EA0027C288 /* Sources */, 625E66EE1C2000EA0027C288 /* Frameworks */, 625E66EF1C2000EA0027C288 /* Resources */, - 625E67091C2005190027C288 /* CopyFiles */, + D47F3A581E0086C800AAA70A /* Carthage Copy Frameworks */, + D47F3A591E00871200AAA70A /* Copy Files */, ); buildRules = ( ); @@ -663,20 +546,6 @@ mainGroup = 625E66C31C1FFE270027C288; productRefGroup = 625E66CE1C1FFE280027C288 /* Products */; projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 62AC579C1CA3A03E0007C9FA /* Products */; - ProjectRef = 62AC579B1CA3A03E0007C9FA /* Nimble.xcodeproj */; - }, - { - ProductGroup = 62AC577E1CA3A01C0007C9FA /* Products */; - ProjectRef = 62AC577D1CA3A01C0007C9FA /* Quick.xcodeproj */; - }, - { - ProductGroup = 62AC57B11CA3A04D0007C9FA /* Products */; - ProjectRef = 62AC57B01CA3A04D0007C9FA /* ReSwift.xcodeproj */; - }, - ); projectRoot = ""; targets = ( 625E66CC1C1FFE280027C288 /* ReSwiftRouter-iOS */, @@ -690,163 +559,6 @@ }; /* End PBXProject section */ -/* Begin PBXReferenceProxy section */ - 62AC578A1CA3A01C0007C9FA /* Quick.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Quick.framework; - remoteRef = 62AC57891CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC578C1CA3A01C0007C9FA /* Quick-macOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "Quick-macOSTests.xctest"; - remoteRef = 62AC578B1CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC578E1CA3A01C0007C9FA /* QuickFocused-macOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "QuickFocused-macOSTests.xctest"; - remoteRef = 62AC578D1CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57901CA3A01C0007C9FA /* Quick.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Quick.framework; - remoteRef = 62AC578F1CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57921CA3A01C0007C9FA /* Quick-iOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "Quick-iOSTests.xctest"; - remoteRef = 62AC57911CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57941CA3A01C0007C9FA /* QuickFocused-iOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "QuickFocused-iOSTests.xctest"; - remoteRef = 62AC57931CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57961CA3A01C0007C9FA /* Quick.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Quick.framework; - remoteRef = 62AC57951CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57981CA3A01C0007C9FA /* Quick-tvOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "Quick-tvOSTests.xctest"; - remoteRef = 62AC57971CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC579A1CA3A01C0007C9FA /* QuickFocused-tvOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "QuickFocused-tvOSTests.xctest"; - remoteRef = 62AC57991CA3A01C0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57A51CA3A03E0007C9FA /* Nimble.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Nimble.framework; - remoteRef = 62AC57A41CA3A03E0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57A71CA3A03E0007C9FA /* NimbleTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = NimbleTests.xctest; - remoteRef = 62AC57A61CA3A03E0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57A91CA3A03E0007C9FA /* Nimble.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Nimble.framework; - remoteRef = 62AC57A81CA3A03E0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57AB1CA3A03E0007C9FA /* NimbleTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = NimbleTests.xctest; - remoteRef = 62AC57AA1CA3A03E0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57AD1CA3A03E0007C9FA /* Nimble.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Nimble.framework; - remoteRef = 62AC57AC1CA3A03E0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57AF1CA3A03E0007C9FA /* NimbleTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = NimbleTests.xctest; - remoteRef = 62AC57AE1CA3A03E0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57BB1CA3A04D0007C9FA /* ReSwift.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = ReSwift.framework; - remoteRef = 62AC57BA1CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57BD1CA3A04D0007C9FA /* ReSwift-iOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "ReSwift-iOSTests.xctest"; - remoteRef = 62AC57BC1CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57BF1CA3A04D0007C9FA /* ReSwift.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = ReSwift.framework; - remoteRef = 62AC57BE1CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57C11CA3A04D0007C9FA /* ReSwift-macOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "ReSwift-macOSTests.xctest"; - remoteRef = 62AC57C01CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57C31CA3A04D0007C9FA /* ReSwift.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = ReSwift.framework; - remoteRef = 62AC57C21CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57C51CA3A04D0007C9FA /* ReSwift-tvOSTests.xctest */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = "ReSwift-tvOSTests.xctest"; - remoteRef = 62AC57C41CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 62AC57C71CA3A04D0007C9FA /* ReSwift.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = ReSwift.framework; - remoteRef = 62AC57C61CA3A04D0007C9FA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - /* Begin PBXResourcesBuildPhase section */ 6209C0491C54256F004E6B66 /* Resources */ = { isa = PBXResourcesBuildPhase; @@ -900,6 +612,90 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + D47F3A581E0086C800AAA70A /* Carthage Copy Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/iOS/Nimble.framework", + "$(SRCROOT)/Carthage/Build/iOS/Quick.framework", + "$(SRCROOT)/Carthage/Build/iOS/ReSwift.framework", + ); + name = "Carthage Copy Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + }; + D47F3A601E0087D900AAA70A /* Carthage Copy Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/Mac/ReSwift.framework", + ); + name = "Carthage Copy Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + }; + D47F3A6E1E00881800AAA70A /* Carthage Copy Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/Mac/Nimble.framework", + "$(SRCROOT)/Carthage/Build/Mac/Quick.framework", + "$(SRCROOT)/Carthage/Build/Mac/ReSwift.framework", + ); + name = "Carthage Copy Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + }; + D47F3A941E00896B00AAA70A /* Carthage Copy Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/tvOS/ReSwift.framework", + ); + name = "Carthage Copy Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + }; + D47F3A951E00899600AAA70A /* Carthage Copy Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/tvOS/Nimble.framework", + "$(SRCROOT)/Carthage/Build/tvOS/Quick.framework", + "$(SRCROOT)/Carthage/Build/tvOS/ReSwift.framework", + ); + name = "Carthage Copy Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 6209C0461C54256F004E6B66 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -1009,6 +805,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -1031,6 +831,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/watchOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -1052,6 +856,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -1073,6 +881,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -1089,6 +901,10 @@ 6209C0761C5427E0004E6B66 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "de.benjamin-encz.ReSwiftRouter-tvOSTests"; @@ -1102,6 +918,10 @@ 6209C0771C5427E0004E6B66 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/tvOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "de.benjamin-encz.ReSwiftRouter-tvOSTests"; @@ -1121,6 +941,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); FRAMEWORK_VERSION = A; INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -1143,6 +967,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); FRAMEWORK_VERSION = A; INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -1161,6 +989,10 @@ buildSettings = { CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11; @@ -1177,6 +1009,10 @@ buildSettings = { CODE_SIGN_IDENTITY = "-"; COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11; @@ -1232,6 +1068,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1275,6 +1112,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1291,6 +1129,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; @@ -1312,6 +1154,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = ReSwiftRouter/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.1; @@ -1326,7 +1172,10 @@ 625E66FA1C2000EB0027C288 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = ReSwiftRouterTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "de.benjamin-encz.SwiftFlowRouterTests"; @@ -1338,7 +1187,10 @@ 625E66FB1C2000EB0027C288 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = ReSwiftRouterTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "de.benjamin-encz.SwiftFlowRouterTests"; diff --git a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Router.swift b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Router.swift index 8919c7a..78e76ec 100644 --- a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Router.swift +++ b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Router.swift @@ -11,18 +11,17 @@ import ReSwift open class Router: StoreSubscriber { - public typealias NavigationStateSelector = (State) -> NavigationState + public typealias NavigationStateTransform = (Subscription) -> Subscription var store: Store var lastNavigationState = NavigationState() var routables: [Routable] = [] let waitForRoutingCompletionQueue = DispatchQueue(label: "WaitForRoutingCompletionQueue", attributes: []) - public init(store: Store, rootRoutable: Routable, stateSelector: @escaping NavigationStateSelector) { + public init(store: Store, rootRoutable: Routable, stateTransform: @escaping NavigationStateTransform) { self.store = store self.routables.append(rootRoutable) - - self.store.subscribe(self, selector: stateSelector) + self.store.subscribe(self, transform: stateTransform) } open func newState(state: NavigationState) { diff --git a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/ReSwiftRouterIntegrationTests.swift b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/ReSwiftRouterIntegrationTests.swift index 9f50b0a..a537fa4 100644 --- a/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/ReSwiftRouterIntegrationTests.swift +++ b/Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/ReSwiftRouterIntegrationTests.swift @@ -65,18 +65,14 @@ struct FakeAppState: StateType { var navigationState = NavigationState() } -class FakeReducer: Reducer { - func handleAction(action: Action, state: FakeAppState?) -> FakeAppState { - return state ?? FakeAppState() - } +func fakeReducer(action: Action, state: FakeAppState?) -> FakeAppState { + return state ?? FakeAppState() } -struct AppReducer: Reducer { - func handleAction(action: Action, state: FakeAppState?) -> FakeAppState { - return FakeAppState( - navigationState: NavigationReducer.handleAction(action, state: state?.navigationState) - ) - } +func appReducer(action: Action, state: FakeAppState?) -> FakeAppState { + return FakeAppState( + navigationState: NavigationReducer.handleAction(action, state: state?.navigationState) + ) } class SwiftFlowRouterIntegrationTests: QuickSpec { @@ -88,7 +84,7 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { var store: Store! beforeEach { - store = Store(reducer: CombinedReducer([AppReducer()]), state: FakeAppState()) + store = Store(reducer: appReducer, state: FakeAppState()) } describe("setup") { @@ -107,7 +103,7 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { let routable = FakeRootRoutable() let _ = Router(store: store, rootRoutable: routable) { state in - state.navigationState + state.select { $0.navigationState } } expect(routable.called).to(beFalse()) @@ -144,7 +140,7 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { } let _ = Router(store: store, rootRoutable: rootRoutable) { state in - state.navigationState + state.select { $0.navigationState } } } } @@ -185,7 +181,9 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { self.injectedRoutable = injectedRoutable } - func pushRouteSegment(_ routeElementIdentifier: RouteElementIdentifier, animated: Bool, completionHandler: @escaping RoutingCompletionHandler) -> Routable { + func pushRouteSegment(_ routeElementIdentifier: RouteElementIdentifier, + animated: Bool, + completionHandler: @escaping RoutingCompletionHandler) -> Routable { completionHandler() return injectedRoutable } @@ -193,8 +191,8 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { let _ = Router(store: store, rootRoutable: FakeRootRoutable(injectedRoutable: fakeChildRoutable)) { state in - state.navigationState - } + state.select { $0.navigationState } + } } } @@ -208,7 +206,7 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { var store: Store! beforeEach { - store = Store(reducer: AppReducer(), state: nil) + store = Store(reducer: appReducer, state: nil) } context("when setting route specific data") { @@ -236,10 +234,10 @@ class SwiftFlowRouterIntegrationTests: QuickSpec { var router: Router! beforeEach { - store = Store(reducer: AppReducer(), state: nil) + store = Store(reducer: appReducer, state: nil) mockRoutable = MockRoutable() router = Router(store: store, rootRoutable: mockRoutable) { state in - state.navigationState + state.select { $0.navigationState } } // silence router not read warning, need to keep router alive via reference diff --git a/Carthage/Checkouts/ReSwiftRouter/codecov.yml b/Carthage/Checkouts/ReSwiftRouter/codecov.yml new file mode 100644 index 0000000..750c330 --- /dev/null +++ b/Carthage/Checkouts/ReSwiftRouter/codecov.yml @@ -0,0 +1,4 @@ +coverage: + ignore: + - ReSwiftRouterTests + - Carthage diff --git a/Carthage/Checkouts/RequestKit/.swift-version b/Carthage/Checkouts/RequestKit/.swift-version new file mode 100644 index 0000000..9f55b2c --- /dev/null +++ b/Carthage/Checkouts/RequestKit/.swift-version @@ -0,0 +1 @@ +3.0 diff --git a/Carthage/Checkouts/RequestKit/.travis.yml b/Carthage/Checkouts/RequestKit/.travis.yml index 7f04113..5275ec8 100644 --- a/Carthage/Checkouts/RequestKit/.travis.yml +++ b/Carthage/Checkouts/RequestKit/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode8 +osx_image: xcode8.2 sudo: false env: global: @@ -8,13 +8,13 @@ env: - FASTLANE_LANE=ci_commit matrix: include: - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_LANE=code_coverage FASTLANE_ENV=default - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_ENV=ios93 - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_ENV=tvos92 - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_ENV=osx before_install: - make install diff --git a/Carthage/Checkouts/RequestKit/Gemfile.lock b/Carthage/Checkouts/RequestKit/Gemfile.lock index 1151479..8086d1b 100644 --- a/Carthage/Checkouts/RequestKit/Gemfile.lock +++ b/Carthage/Checkouts/RequestKit/Gemfile.lock @@ -1,126 +1,102 @@ GEM remote: https://rubygems.org/ specs: + CFPropertyList (2.3.4) activesupport (4.2.7.1) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) babosa (1.0.2) - cert (1.4.2) - fastlane_core (>= 0.50.3, < 1.0.0) - spaceship (>= 0.32.0, < 1.0.0) - claide (0.9.1) + claide (1.0.1) clamp (0.6.5) - cocoapods (0.39.0) - activesupport (>= 4.0.2) - claide (~> 0.9.1) - cocoapods-core (= 0.39.0) - cocoapods-downloader (~> 0.9.3) - cocoapods-plugins (~> 0.4.2) - cocoapods-search (~> 0.1.0) - cocoapods-stats (~> 0.6.2) - cocoapods-trunk (~> 0.6.4) - cocoapods-try (~> 0.5.1) + cocoapods (1.1.1) + activesupport (>= 4.0.2, < 5) + claide (>= 1.0.1, < 2.0) + cocoapods-core (= 1.1.1) + cocoapods-deintegrate (>= 1.0.1, < 2.0) + cocoapods-downloader (>= 1.1.2, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-stats (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.1.1, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) colored (~> 1.2) escape (~> 0.0.4) - molinillo (~> 0.4.0) + fourflusher (~> 2.0.1) + gh_inspector (~> 1.0) + molinillo (~> 0.5.1) nap (~> 1.0) - xcodeproj (~> 0.28.2) - cocoapods-core (0.39.0) - activesupport (>= 4.0.2) + xcodeproj (>= 1.3.3, < 2.0) + cocoapods-core (1.1.1) + activesupport (>= 4.0.2, < 5) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-downloader (0.9.3) - cocoapods-plugins (0.4.2) + cocoapods-deintegrate (1.0.1) + cocoapods-downloader (1.1.3) + cocoapods-plugins (1.0.0) nap - cocoapods-search (0.1.0) - cocoapods-stats (0.6.2) - cocoapods-trunk (0.6.4) + cocoapods-search (1.0.0) + cocoapods-stats (1.0.0) + cocoapods-trunk (1.1.2) nap (>= 0.8, < 2.0) netrc (= 0.7.8) - cocoapods-try (0.5.1) + cocoapods-try (1.1.0) colored (1.2) - commander (4.4.0) + commander (4.4.3) highline (~> 1.7.2) - credentials_manager (0.16.0) - colored - commander (>= 4.3.5) - highline (>= 1.7.1) - security - deliver (1.13.3) - credentials_manager (>= 0.16.0, < 1.0.0) - fastimage (~> 1.6) - fastlane_core (>= 0.50.3, < 1.0.0) - plist (~> 3.1.0) - spaceship (>= 0.31.6, < 1.0.0) - domain_name (0.5.20160826) + domain_name (0.5.20161129) unf (>= 0.0.5, < 1.0.0) - dotenv (2.1.1) + dotenv (2.1.2) escape (0.0.4) - excon (0.45.4) - faraday (0.9.2) + excon (0.54.0) + faraday (0.11.0) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) http-cookie (~> 1.0.0) - faraday_middleware (0.10.0) - faraday (>= 0.7.4, < 0.10) - fastimage (1.6.8) - addressable (~> 2.3, >= 2.3.5) - fastlane (1.103.0) + faraday_middleware (0.11.0) + faraday (>= 0.7.4, < 1.0) + fastimage (2.0.1) + addressable (~> 2) + fastlane (2.9.0) activesupport (< 5) - addressable (~> 2.3) + addressable (>= 2.3, < 3.0.0) + babosa (>= 1.0.2, < 2.0.0) bundler (~> 1.12) - cert (>= 1.4.1, < 2.0.0) - credentials_manager (>= 0.16.0, < 1.0.0) - deliver (>= 1.13.3, < 2.0.0) - fastlane_core (>= 0.52.0, < 1.0.0) - frameit (>= 2.7.0, < 3.0.0) - gym (>= 1.7.0, < 2.0.0) - krausefx-shenzhen (>= 0.14.10) - match (>= 0.6.3, < 1.0.0) - multipart-post (~> 2.0.0) - pem (>= 1.3.2, < 2.0.0) - pilot (>= 1.10.0, < 2.0.0) - plist (~> 3.1.0) - produce (>= 1.2.0, < 2.0.0) - scan (>= 0.11.3, < 2.0.0) - screengrab (>= 0.5.0, < 1.0.0) - sigh (>= 1.10.2, < 2.0.0) - slack-notifier (~> 1.3) - snapshot (>= 1.14.0, < 2.0.0) - spaceship (>= 0.32.1, < 1.0.0) - supply (>= 0.7.0, < 1.0.0) - terminal-notifier (~> 1.6.2) - terminal-table (~> 1.4.5) - word_wrap (~> 1.0.0) - xcode-install (~> 2.0.0) - xcodeproj (>= 0.20, < 2.0.0) - xcpretty (>= 0.2.1) - fastlane_core (0.52.0) - babosa colored - commander (>= 4.4.0, <= 5.0.0) - credentials_manager (>= 0.16.0, < 1.0.0) - excon (~> 0.45.0) + commander (>= 4.4.0, < 5.0.0) + dotenv (>= 2.1.1, < 3.0.0) + excon (>= 0.45.0, < 1.0.0) + faraday (~> 0.9) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 0.9) + fastimage (>= 1.6) gh_inspector (>= 1.0.1, < 2.0.0) - highline (>= 1.7.2) - json - multi_json - plist (~> 3.1) - rubyzip (~> 1.1.6) - terminal-table (~> 1.4.5) - frameit (2.7.0) - deliver (> 0.3) - fastimage (~> 1.6.3) - fastlane_core (>= 0.36.1, < 1.0.0) + google-api-client (~> 0.9.2) + highline (>= 1.7.2, < 2.0.0) + json (< 3.0.0) mini_magick (~> 4.5.1) + multi_json + multi_xml (~> 0.5) + multipart-post (~> 2.0.0) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 1.1.0, < 2.0.0) + security (= 0.1.3) + slack-notifier (>= 1.3, < 2.0.0) + terminal-notifier (>= 1.6.2, < 2.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 0.20, < 2.0.0) + xcpretty (>= 0.2.4, < 1.0.0) + xcpretty-travis-formatter (>= 0.0.3) + fourflusher (2.0.1) fuzzy_match (2.0.4) - gh_inspector (1.0.2) - google-api-client (0.9.14) + gh_inspector (1.0.3) + google-api-client (0.9.20) addressable (~> 2.3) googleauth (~> 0.5) httpclient (~> 2.7) @@ -137,122 +113,57 @@ GEM multi_json (~> 1.11) os (~> 0.9) signet (~> 0.7) - gym (1.9.0) - fastlane_core (>= 0.51.0, < 1.0.0) - plist - rubyzip (>= 1.1.7) - terminal-table - xcpretty (>= 0.2.1) highline (1.7.8) - http-cookie (1.0.2) + http-cookie (1.0.3) domain_name (~> 0.5) - httpclient (2.8.2.4) + httpclient (2.8.3) hurley (0.2) i18n (0.7.0) - json (1.8.3) + json (1.8.6) jwt (1.5.6) - krausefx-shenzhen (0.14.10) - commander (>= 4.3, < 5.0) - dotenv (>= 0.7) - faraday (~> 0.9) - faraday_middleware (~> 0.9) - highline (>= 1.7.2) - json (~> 1.8) - net-sftp (~> 2.1.2) - plist (~> 3.1.0) - rubyzip (~> 1.1) - security (~> 0.1.3) - terminal-table (~> 1.4.5) little-plugger (1.1.4) logging (2.1.0) little-plugger (~> 1.1) multi_json (~> 1.10) - match (0.6.4) - cert (>= 1.4.1, < 2.0.0) - credentials_manager (>= 0.16.0, < 1.0.0) - fastlane_core (>= 0.50.3, < 1.0.0) - security - sigh (>= 1.10.2, < 2.0.0) - spaceship (>= 0.31.10, < 1.0.0) memoist (0.15.0) mime-types (3.1) mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_magick (4.5.1) - mini_portile2 (2.0.0) - minitest (5.9.0) - molinillo (0.4.4) + mini_portile2 (2.1.0) + minitest (5.10.1) + molinillo (0.5.5) multi_json (1.12.1) - multi_xml (0.5.5) + multi_xml (0.6.0) multipart-post (2.0.0) + nanaimo (0.2.3) nap (1.1.0) - net-sftp (2.1.2) - net-ssh (>= 2.6.5) - net-ssh (3.2.0) netrc (0.7.8) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) + nokogiri (1.6.8.1) + mini_portile2 (~> 2.1.0) os (0.9.6) - pem (1.3.2) - fastlane_core (>= 0.43.1, < 1.0.0) - spaceship (>= 0.26.2, < 1.0.0) - pilot (1.10.0) - credentials_manager (>= 0.3.0) - fastlane_core (>= 0.46.2, < 1.0.0) - spaceship (>= 0.29.0, < 1.0.0) - terminal-table (~> 1.4.5) - plist (3.1.0) - produce (1.2.0) - fastlane_core (>= 0.30.0, < 1.0.0) - spaceship (>= 0.31.1, < 1.0.0) + plist (3.2.0) + public_suffix (2.0.5) representable (2.3.0) uber (~> 0.0.7) retriable (2.1.0) rouge (1.11.1) - rubyzip (1.1.7) - scan (0.12.1) - fastlane_core (>= 0.51.0, < 1.0.0) - slack-notifier (~> 1.3) - terminal-table - xcpretty (>= 0.2.1) - xcpretty-travis-formatter (>= 0.0.3) - screengrab (0.5.2) - fastlane_core (>= 0.50.3, < 1.0.0) + rubyzip (1.2.0) security (0.1.3) - sigh (1.10.4) - fastlane_core (>= 0.52.0, < 1.0.0) - plist (~> 3.1) - spaceship (>= 0.32.4, < 1.0.0) signet (0.7.3) addressable (~> 2.3) faraday (~> 0.9) jwt (~> 1.5) multi_json (~> 1.10) slack-notifier (1.5.1) - slather (2.2.0) + slather (2.3.0) + activesupport (>= 4.0.2, < 5) clamp (~> 0.6) nokogiri (~> 1.6.3) - xcodeproj (>= 0.28.2, < 1.1.0) - snapshot (1.14.0) - fastimage (~> 1.6.3) - fastlane_core (>= 0.50.3, < 1.0.0) - plist (~> 3.1.0) - xcpretty (>= 0.2.1) - spaceship (0.32.4) - colored - credentials_manager (>= 0.16.0) - faraday (~> 0.9) - faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 0.9) - fastimage (~> 1.6) - multi_xml (~> 0.5) - plist (~> 3.1) - supply (0.7.1) - credentials_manager (>= 0.15.0) - fastlane_core (>= 0.43.4) - google-api-client (~> 0.9.1) - terminal-notifier (1.6.3) - terminal-table (1.4.5) + xcodeproj (>= 0.20, < 2.0.0) + terminal-notifier (1.7.1) + terminal-table (1.7.3) + unicode-display_width (~> 1.1.1) thread_safe (0.3.5) tzinfo (1.2.2) thread_safe (~> 0.1) @@ -260,15 +171,15 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.2) + unicode-display_width (1.1.3) word_wrap (1.0.0) - xcode-install (2.0.6) - claide (>= 0.9.1, < 1.1.0) - spaceship (>= 0.25.1, < 1.0.0) - xcodeproj (0.28.2) + xcodeproj (1.4.2) + CFPropertyList (~> 2.3.3) activesupport (>= 3) - claide (~> 0.9.1) + claide (>= 1.0.1, < 2.0) colored (~> 1.2) - xcpretty (0.2.2) + nanaimo (~> 0.2.3) + xcpretty (0.2.4) rouge (~> 1.8) xcpretty-travis-formatter (0.0.4) xcpretty (~> 0.2, >= 0.0.7) @@ -282,4 +193,4 @@ DEPENDENCIES slather (~> 2.0) BUNDLED WITH - 1.13.1 + 1.13.6 diff --git a/Carthage/Checkouts/RequestKit/NBNRequestKit.podspec b/Carthage/Checkouts/RequestKit/NBNRequestKit.podspec index 78800a9..2b31cd1 100644 --- a/Carthage/Checkouts/RequestKit/NBNRequestKit.podspec +++ b/Carthage/Checkouts/RequestKit/NBNRequestKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "NBNRequestKit" - s.version = "2.0.0" + s.version = "2.0.2" s.summary = "Networking library for OctoKit.swift" s.homepage = "https://github.com/nerdishbynature/RequestKit" s.license = 'MIT' diff --git a/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/project.pbxproj b/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/project.pbxproj index 82f97ff..b2f0d6d 100644 --- a/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/project.pbxproj @@ -368,7 +368,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0830; ORGANIZATIONNAME = nerdishbynature; TargetAttributes = { 233742FF1C7981A800013492 = { @@ -383,9 +383,11 @@ }; 233743191C7981E700013492 = { CreatedOnToolsVersion = 7.2.1; + LastSwiftMigration = 0830; }; 2337433D1C79832700013492 = { CreatedOnToolsVersion = 7.2.1; + LastSwiftMigration = 0830; }; 2337434C1C79833A00013492 = { CreatedOnToolsVersion = 7.2.1; @@ -585,6 +587,7 @@ 233743051C7981A800013492 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -602,6 +605,7 @@ 233743061C7981A800013492 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -620,6 +624,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -638,6 +643,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -667,6 +673,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; SDKROOT = macosx; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -686,6 +693,7 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -700,6 +708,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.nerdishbynature.RequestKit-MacTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -715,6 +724,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -756,8 +766,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -808,8 +820,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -844,6 +858,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; @@ -859,6 +874,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; diff --git a/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit Mac.xcscheme b/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit Mac.xcscheme index 04f35f6..8d5386d 100644 --- a/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit Mac.xcscheme +++ b/Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit Mac.xcscheme @@ -1,6 +1,6 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.0.0 + 2.0.2 CFBundleSignature ???? CFBundleVersion diff --git a/Carthage/Checkouts/RequestKit/RequestKit/Router.swift b/Carthage/Checkouts/RequestKit/RequestKit/Router.swift index 4f18f2f..72e2029 100644 --- a/Carthage/Checkouts/RequestKit/RequestKit/Router.swift +++ b/Carthage/Checkouts/RequestKit/RequestKit/Router.swift @@ -61,19 +61,19 @@ public extension Router { guard let value = parameters[key] else { continue } switch value { case let value as String: - if let escapedValue = value.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) { + if let escapedValue = value.addingPercentEncoding(withAllowedCharacters: CharacterSet.requestKit_URLQueryAllowedCharacterSet()) { components.append(URLQueryItem(name: key, value: escapedValue)) } case let valueArray as [String]: for (index, item) in valueArray.enumerated() { - if let escapedValue = item.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) { + if let escapedValue = item.addingPercentEncoding(withAllowedCharacters: CharacterSet.requestKit_URLQueryAllowedCharacterSet()) { components.append(URLQueryItem(name: "\(key)[\(index)]", value: escapedValue)) } } case let valueDict as [String: Any]: for nestedKey in valueDict.keys.sorted(by: <) { guard let value = valueDict[nestedKey] as? String else { continue } - if let escapedValue = value.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) { + if let escapedValue = value.addingPercentEncoding(withAllowedCharacters: CharacterSet.requestKit_URLQueryAllowedCharacterSet()) { components.append(URLQueryItem(name: "\(key)[\(nestedKey)]", value: escapedValue)) } } @@ -86,18 +86,17 @@ public extension Router { public func request(_ urlComponents: URLComponents, parameters: [String: Any]) -> URLRequest? { var urlComponents = urlComponents - urlComponents.queryItems = urlQuery(parameters) + urlComponents.percentEncodedQuery = urlQuery(parameters)?.map({ [$0.name, $0.value ?? ""].joined(separator: "=") }).joined(separator: "&") guard let url = urlComponents.url else { return nil } switch encoding { case .url, .json: - let mutableURLRequest = NSMutableURLRequest(url: url) + var mutableURLRequest = URLRequest(url: url) mutableURLRequest.httpMethod = method.rawValue - return mutableURLRequest as URLRequest + return mutableURLRequest case .form: - urlComponents.queryItems = urlQuery(parameters) let queryData = urlComponents.percentEncodedQuery?.data(using: String.Encoding.utf8) urlComponents.queryItems = nil // clear the query items as they go into the body - let mutableURLRequest = NSMutableURLRequest(url: urlComponents.url!) + var mutableURLRequest = URLRequest(url: urlComponents.url!) mutableURLRequest.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "content-type") mutableURLRequest.httpBody = queryData mutableURLRequest.httpMethod = method.rawValue @@ -137,6 +136,19 @@ public extension Router { } } +fileprivate extension CharacterSet { + + // https://github.com/Alamofire/Alamofire/blob/3.5.1/Source/ParameterEncoding.swift#L220-L225 + fileprivate static func requestKit_URLQueryAllowedCharacterSet() -> CharacterSet { + let generalDelimitersToEncode = ":#[]@" // does not include "?" or "/" due to RFC 3986 - Section 3.4 + let subDelimitersToEncode = "!$&'()*+,;=" + + var allowedCharacterSet = CharacterSet.urlQueryAllowed + allowedCharacterSet.remove(charactersIn: generalDelimitersToEncode + subDelimitersToEncode) + return allowedCharacterSet + } +} + public extension HTTPURLResponse { public var wasSuccessful: Bool { let successRange = 200..<300 diff --git a/Carthage/Checkouts/RequestKit/RequestKitTests/RequestKitURLTestSession.swift b/Carthage/Checkouts/RequestKit/RequestKitTests/RequestKitURLTestSession.swift index 189a633..27b897a 100644 --- a/Carthage/Checkouts/RequestKit/RequestKitTests/RequestKitURLTestSession.swift +++ b/Carthage/Checkouts/RequestKit/RequestKitTests/RequestKitURLTestSession.swift @@ -2,7 +2,7 @@ import RequestKit import XCTest class MockURLSessionDataTask: URLSessionDataTaskProtocol { - private (set) var resumeWasCalled = false + fileprivate (set) var resumeWasCalled = false func resume() { resumeWasCalled = true diff --git a/Carthage/Checkouts/RequestKit/RequestKitTests/RouterTests.swift b/Carthage/Checkouts/RequestKit/RequestKitTests/RouterTests.swift index b883cef..d36ad69 100644 --- a/Carthage/Checkouts/RequestKit/RequestKitTests/RouterTests.swift +++ b/Carthage/Checkouts/RequestKit/RequestKitTests/RouterTests.swift @@ -10,7 +10,7 @@ class RouterTests: XCTestCase { func testRequest() { let subject = router.request() - XCTAssertEqual(subject?.url?.absoluteString, "https://example.com/api/v1/some_route?access_token=1234&key1=value1&key2=value2") + XCTAssertEqual(subject?.url?.absoluteString, "https://example.com/api/v1/some_route?access_token=1234&key1=value1%3A456&key2=value2") XCTAssertEqual(subject?.httpMethod, "GET") } @@ -42,7 +42,7 @@ class RouterTests: XCTestCase { let router = TestRouter.formEncodedRoute(config) let subject = router.request() XCTAssertEqual(subject?.url?.absoluteString, "https://example.com/api/v1/route") - XCTAssertEqual(String(data: subject?.httpBody ?? Data(), encoding: String.Encoding.utf8), "access_token=1234&key1=value1&key2=value2") + XCTAssertEqual(String(data: subject?.httpBody ?? Data(), encoding: .utf8), "access_token=1234&key1=value1%3A456&key2=value2") XCTAssertEqual(subject?.httpMethod, "POST") } } @@ -86,12 +86,7 @@ enum TestRouter: Router { } var params: [String: Any] { - switch self { - case .testRoute(_): - return ["key1": "value1", "key2": "value2"] - case .formEncodedRoute: - return ["key1": "value1", "key2": "value2"] - } + return ["key1": "value1:456", "key2": "value2"] } } diff --git a/Carthage/Checkouts/RequestKit/fastlane/.env.default b/Carthage/Checkouts/RequestKit/fastlane/.env.default index ea2f547..76a6d9c 100644 --- a/Carthage/Checkouts/RequestKit/fastlane/.env.default +++ b/Carthage/Checkouts/RequestKit/fastlane/.env.default @@ -1,11 +1,10 @@ -AF_IOS_SDK=iphonesimulator10.0 +AF_IOS_SDK=iphonesimulator10.2 AF_MAC_SDK=macosx10.12 -AF_TVOS_SDK=appletvsimulator10.0 +AF_TVOS_SDK=appletvsimulator10.1 AF_CONFIGURATION=Release SCAN_SCHEME=$AF_IOS_FRAMEWORK_SCHEME -SCAN_DESTINATION="OS=10.0,name=iPhone 6s" SCAN_SDK=$AF_IOS_SDK SCAN_OUTPUT_DIRECTORY=fastlane/test-output DEPLOY_PODSPEC=NBNRequestKit.podspec diff --git a/Carthage/Checkouts/RequestKit/fastlane/.env.ios93 b/Carthage/Checkouts/RequestKit/fastlane/.env.ios93 index 61555b8..d677f88 100644 --- a/Carthage/Checkouts/RequestKit/fastlane/.env.ios93 +++ b/Carthage/Checkouts/RequestKit/fastlane/.env.ios93 @@ -1,2 +1,3 @@ -SCAN_DESTINATION="OS=10.0,name=iPhone 6s" -EXAMPLE_DESTINATION=$SCAN_DESTINATION +SCAN_DEVICE="iPhone 6s" +SCAN_SDK=iphonesimulator10.2 +EXAMPLE_DESTINATION="platform=iOS Simulator,name=iPhone 6s" diff --git a/Carthage/Checkouts/RequestKit/fastlane/.env.osx b/Carthage/Checkouts/RequestKit/fastlane/.env.osx index d56e363..91dafd4 100644 --- a/Carthage/Checkouts/RequestKit/fastlane/.env.osx +++ b/Carthage/Checkouts/RequestKit/fastlane/.env.osx @@ -1,6 +1,5 @@ SCAN_SCHEME=$AF_OSX_FRAMEWORK_SCHEME -SCAN_DESTINATION="arch=x86_64" SCAN_SDK=$AF_OSX_SDK EXAMPLE_SCHEME=$AF_OSX_EXAMPLE_SCHEME -EXAMPLE_DESTINATION=$SCAN_DESTINATION \ No newline at end of file +EXAMPLE_DESTINATION="platform=macOS" \ No newline at end of file diff --git a/Carthage/Checkouts/RequestKit/fastlane/.env.tvos92 b/Carthage/Checkouts/RequestKit/fastlane/.env.tvos92 index 128f8be..216d1be 100644 --- a/Carthage/Checkouts/RequestKit/fastlane/.env.tvos92 +++ b/Carthage/Checkouts/RequestKit/fastlane/.env.tvos92 @@ -1,6 +1,6 @@ SCAN_SCHEME=$AF_TVOS_FRAMEWORK_SCHEME -SCAN_DESTINATION="OS=10.0,name=Apple TV 1080p" +SCAN_DEVICE="Apple TV 1080p" SCAN_SDK=$AF_TVOS_SDK EXAMPLE_SCHEME=$AF_TVOS_EXAMPLE_SCHEME -EXAMPLE_DESTINATION=$SCAN_DESTINATION +EXAMPLE_DESTINATION="platform=tvOS Simulator,name=Apple TV 1080p" \ No newline at end of file diff --git a/Carthage/Checkouts/octokit.swift/.travis.yml b/Carthage/Checkouts/octokit.swift/.travis.yml index 7f04113..5275ec8 100644 --- a/Carthage/Checkouts/octokit.swift/.travis.yml +++ b/Carthage/Checkouts/octokit.swift/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode8 +osx_image: xcode8.2 sudo: false env: global: @@ -8,13 +8,13 @@ env: - FASTLANE_LANE=ci_commit matrix: include: - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_LANE=code_coverage FASTLANE_ENV=default - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_ENV=ios93 - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_ENV=tvos92 - - osx_image: xcode8 + - osx_image: xcode8.2 env: FASTLANE_ENV=osx before_install: - make install diff --git a/Carthage/Checkouts/octokit.swift/Cartfile.resolved b/Carthage/Checkouts/octokit.swift/Cartfile.resolved index 490733e..7b71126 100644 --- a/Carthage/Checkouts/octokit.swift/Cartfile.resolved +++ b/Carthage/Checkouts/octokit.swift/Cartfile.resolved @@ -1 +1 @@ -github "nerdishbynature/RequestKit" "2.0.0" +github "nerdishbynature/RequestKit" "2.0.2" diff --git a/Carthage/Checkouts/octokit.swift/Gemfile.lock b/Carthage/Checkouts/octokit.swift/Gemfile.lock index d0ac2ac..8086d1b 100644 --- a/Carthage/Checkouts/octokit.swift/Gemfile.lock +++ b/Carthage/Checkouts/octokit.swift/Gemfile.lock @@ -1,126 +1,102 @@ GEM remote: https://rubygems.org/ specs: + CFPropertyList (2.3.4) activesupport (4.2.7.1) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) babosa (1.0.2) - cert (1.4.2) - fastlane_core (>= 0.50.3, < 1.0.0) - spaceship (>= 0.32.0, < 1.0.0) - claide (0.9.1) + claide (1.0.1) clamp (0.6.5) - cocoapods (0.39.0) - activesupport (>= 4.0.2) - claide (~> 0.9.1) - cocoapods-core (= 0.39.0) - cocoapods-downloader (~> 0.9.3) - cocoapods-plugins (~> 0.4.2) - cocoapods-search (~> 0.1.0) - cocoapods-stats (~> 0.6.2) - cocoapods-trunk (~> 0.6.4) - cocoapods-try (~> 0.5.1) + cocoapods (1.1.1) + activesupport (>= 4.0.2, < 5) + claide (>= 1.0.1, < 2.0) + cocoapods-core (= 1.1.1) + cocoapods-deintegrate (>= 1.0.1, < 2.0) + cocoapods-downloader (>= 1.1.2, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-stats (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.1.1, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) colored (~> 1.2) escape (~> 0.0.4) - molinillo (~> 0.4.0) + fourflusher (~> 2.0.1) + gh_inspector (~> 1.0) + molinillo (~> 0.5.1) nap (~> 1.0) - xcodeproj (~> 0.28.2) - cocoapods-core (0.39.0) - activesupport (>= 4.0.2) + xcodeproj (>= 1.3.3, < 2.0) + cocoapods-core (1.1.1) + activesupport (>= 4.0.2, < 5) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-downloader (0.9.3) - cocoapods-plugins (0.4.2) + cocoapods-deintegrate (1.0.1) + cocoapods-downloader (1.1.3) + cocoapods-plugins (1.0.0) nap - cocoapods-search (0.1.0) - cocoapods-stats (0.6.2) - cocoapods-trunk (0.6.4) + cocoapods-search (1.0.0) + cocoapods-stats (1.0.0) + cocoapods-trunk (1.1.2) nap (>= 0.8, < 2.0) netrc (= 0.7.8) - cocoapods-try (0.5.1) + cocoapods-try (1.1.0) colored (1.2) - commander (4.4.0) + commander (4.4.3) highline (~> 1.7.2) - credentials_manager (0.16.0) - colored - commander (>= 4.3.5) - highline (>= 1.7.1) - security - deliver (1.13.3) - credentials_manager (>= 0.16.0, < 1.0.0) - fastimage (~> 1.6) - fastlane_core (>= 0.50.3, < 1.0.0) - plist (~> 3.1.0) - spaceship (>= 0.31.6, < 1.0.0) - domain_name (0.5.20160826) + domain_name (0.5.20161129) unf (>= 0.0.5, < 1.0.0) - dotenv (2.1.1) + dotenv (2.1.2) escape (0.0.4) - excon (0.45.4) - faraday (0.9.2) + excon (0.54.0) + faraday (0.11.0) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) http-cookie (~> 1.0.0) - faraday_middleware (0.10.0) - faraday (>= 0.7.4, < 0.10) - fastimage (1.6.8) - addressable (~> 2.3, >= 2.3.5) - fastlane (1.103.0) + faraday_middleware (0.11.0) + faraday (>= 0.7.4, < 1.0) + fastimage (2.0.1) + addressable (~> 2) + fastlane (2.9.0) activesupport (< 5) - addressable (~> 2.3) + addressable (>= 2.3, < 3.0.0) + babosa (>= 1.0.2, < 2.0.0) bundler (~> 1.12) - cert (>= 1.4.1, < 2.0.0) - credentials_manager (>= 0.16.0, < 1.0.0) - deliver (>= 1.13.3, < 2.0.0) - fastlane_core (>= 0.52.0, < 1.0.0) - frameit (>= 2.7.0, < 3.0.0) - gym (>= 1.7.0, < 2.0.0) - krausefx-shenzhen (>= 0.14.10) - match (>= 0.6.3, < 1.0.0) - multipart-post (~> 2.0.0) - pem (>= 1.3.2, < 2.0.0) - pilot (>= 1.10.0, < 2.0.0) - plist (~> 3.1.0) - produce (>= 1.2.0, < 2.0.0) - scan (>= 0.11.3, < 2.0.0) - screengrab (>= 0.5.0, < 1.0.0) - sigh (>= 1.10.2, < 2.0.0) - slack-notifier (~> 1.3) - snapshot (>= 1.14.0, < 2.0.0) - spaceship (>= 0.32.1, < 1.0.0) - supply (>= 0.7.0, < 1.0.0) - terminal-notifier (~> 1.6.2) - terminal-table (~> 1.4.5) - word_wrap (~> 1.0.0) - xcode-install (~> 2.0.0) - xcodeproj (>= 0.20, < 2.0.0) - xcpretty (>= 0.2.1) - fastlane_core (0.52.0) - babosa colored - commander (>= 4.4.0, <= 5.0.0) - credentials_manager (>= 0.16.0, < 1.0.0) - excon (~> 0.45.0) + commander (>= 4.4.0, < 5.0.0) + dotenv (>= 2.1.1, < 3.0.0) + excon (>= 0.45.0, < 1.0.0) + faraday (~> 0.9) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 0.9) + fastimage (>= 1.6) gh_inspector (>= 1.0.1, < 2.0.0) - highline (>= 1.7.2) - json - multi_json - plist (~> 3.1) - rubyzip (~> 1.1.6) - terminal-table (~> 1.4.5) - frameit (2.7.0) - deliver (> 0.3) - fastimage (~> 1.6.3) - fastlane_core (>= 0.36.1, < 1.0.0) + google-api-client (~> 0.9.2) + highline (>= 1.7.2, < 2.0.0) + json (< 3.0.0) mini_magick (~> 4.5.1) + multi_json + multi_xml (~> 0.5) + multipart-post (~> 2.0.0) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 1.1.0, < 2.0.0) + security (= 0.1.3) + slack-notifier (>= 1.3, < 2.0.0) + terminal-notifier (>= 1.6.2, < 2.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 0.20, < 2.0.0) + xcpretty (>= 0.2.4, < 1.0.0) + xcpretty-travis-formatter (>= 0.0.3) + fourflusher (2.0.1) fuzzy_match (2.0.4) - gh_inspector (1.0.2) - google-api-client (0.9.14) + gh_inspector (1.0.3) + google-api-client (0.9.20) addressable (~> 2.3) googleauth (~> 0.5) httpclient (~> 2.7) @@ -137,124 +113,57 @@ GEM multi_json (~> 1.11) os (~> 0.9) signet (~> 0.7) - gym (1.9.0) - fastlane_core (>= 0.51.0, < 1.0.0) - plist - rubyzip (>= 1.1.7) - terminal-table - xcpretty (>= 0.2.1) highline (1.7.8) - http-cookie (1.0.2) + http-cookie (1.0.3) domain_name (~> 0.5) - httpclient (2.8.2.4) + httpclient (2.8.3) hurley (0.2) i18n (0.7.0) - json (1.8.3) + json (1.8.6) jwt (1.5.6) - krausefx-shenzhen (0.14.10) - commander (>= 4.3, < 5.0) - dotenv (>= 0.7) - faraday (~> 0.9) - faraday_middleware (~> 0.9) - highline (>= 1.7.2) - json (~> 1.8) - net-sftp (~> 2.1.2) - plist (~> 3.1.0) - rubyzip (~> 1.1) - security (~> 0.1.3) - terminal-table (~> 1.4.5) little-plugger (1.1.4) logging (2.1.0) little-plugger (~> 1.1) multi_json (~> 1.10) - match (0.6.4) - cert (>= 1.4.1, < 2.0.0) - credentials_manager (>= 0.16.0, < 1.0.0) - fastlane_core (>= 0.50.3, < 1.0.0) - security - sigh (>= 1.10.2, < 2.0.0) - spaceship (>= 0.31.10, < 1.0.0) memoist (0.15.0) mime-types (3.1) mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_magick (4.5.1) mini_portile2 (2.1.0) - minitest (5.9.0) - molinillo (0.4.4) + minitest (5.10.1) + molinillo (0.5.5) multi_json (1.12.1) - multi_xml (0.5.5) + multi_xml (0.6.0) multipart-post (2.0.0) + nanaimo (0.2.3) nap (1.1.0) - net-sftp (2.1.2) - net-ssh (>= 2.6.5) - net-ssh (3.2.0) netrc (0.7.8) - nokogiri (1.6.8) + nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) - pkg-config (~> 1.1.7) os (0.9.6) - pem (1.3.2) - fastlane_core (>= 0.43.1, < 1.0.0) - spaceship (>= 0.26.2, < 1.0.0) - pilot (1.10.0) - credentials_manager (>= 0.3.0) - fastlane_core (>= 0.46.2, < 1.0.0) - spaceship (>= 0.29.0, < 1.0.0) - terminal-table (~> 1.4.5) - pkg-config (1.1.7) - plist (3.1.0) - produce (1.2.0) - fastlane_core (>= 0.30.0, < 1.0.0) - spaceship (>= 0.31.1, < 1.0.0) + plist (3.2.0) + public_suffix (2.0.5) representable (2.3.0) uber (~> 0.0.7) retriable (2.1.0) rouge (1.11.1) - rubyzip (1.1.7) - scan (0.12.1) - fastlane_core (>= 0.51.0, < 1.0.0) - slack-notifier (~> 1.3) - terminal-table - xcpretty (>= 0.2.1) - xcpretty-travis-formatter (>= 0.0.3) - screengrab (0.5.2) - fastlane_core (>= 0.50.3, < 1.0.0) + rubyzip (1.2.0) security (0.1.3) - sigh (1.10.4) - fastlane_core (>= 0.52.0, < 1.0.0) - plist (~> 3.1) - spaceship (>= 0.32.4, < 1.0.0) signet (0.7.3) addressable (~> 2.3) faraday (~> 0.9) jwt (~> 1.5) multi_json (~> 1.10) slack-notifier (1.5.1) - slather (2.2.0) + slather (2.3.0) + activesupport (>= 4.0.2, < 5) clamp (~> 0.6) nokogiri (~> 1.6.3) - xcodeproj (>= 0.28.2, < 1.1.0) - snapshot (1.14.0) - fastimage (~> 1.6.3) - fastlane_core (>= 0.50.3, < 1.0.0) - plist (~> 3.1.0) - xcpretty (>= 0.2.1) - spaceship (0.32.4) - colored - credentials_manager (>= 0.16.0) - faraday (~> 0.9) - faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 0.9) - fastimage (~> 1.6) - multi_xml (~> 0.5) - plist (~> 3.1) - supply (0.7.1) - credentials_manager (>= 0.15.0) - fastlane_core (>= 0.43.4) - google-api-client (~> 0.9.1) - terminal-notifier (1.6.3) - terminal-table (1.4.5) + xcodeproj (>= 0.20, < 2.0.0) + terminal-notifier (1.7.1) + terminal-table (1.7.3) + unicode-display_width (~> 1.1.1) thread_safe (0.3.5) tzinfo (1.2.2) thread_safe (~> 0.1) @@ -262,15 +171,15 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.2) + unicode-display_width (1.1.3) word_wrap (1.0.0) - xcode-install (2.0.6) - claide (>= 0.9.1, < 1.1.0) - spaceship (>= 0.25.1, < 1.0.0) - xcodeproj (0.28.2) + xcodeproj (1.4.2) + CFPropertyList (~> 2.3.3) activesupport (>= 3) - claide (~> 0.9.1) + claide (>= 1.0.1, < 2.0) colored (~> 1.2) - xcpretty (0.2.2) + nanaimo (~> 0.2.3) + xcpretty (0.2.4) rouge (~> 1.8) xcpretty-travis-formatter (0.0.4) xcpretty (~> 0.2, >= 0.0.7) @@ -284,4 +193,4 @@ DEPENDENCIES slather (~> 2.0) BUNDLED WITH - 1.13.1 + 1.13.6 diff --git a/Carthage/Checkouts/octokit.swift/OctoKit.swift.podspec b/Carthage/Checkouts/octokit.swift/OctoKit.swift.podspec index fdca2b2..86024a8 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit.swift.podspec +++ b/Carthage/Checkouts/octokit.swift/OctoKit.swift.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "OctoKit.swift" - s.version = "0.7.0" + s.version = "0.7.3" s.summary = "A Swift API Client for GitHub and GitHub Enterprise" s.description = <<-DESC You are looking at the A Swift API Client for GitHub and GitHub Enterprise. diff --git a/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/project.pbxproj b/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/project.pbxproj index bd1e788..ae79da7 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/project.pbxproj +++ b/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/project.pbxproj @@ -21,6 +21,10 @@ 234F4BE11BDDE44600A58EF7 /* user_repos.json in Resources */ = {isa = PBXBuildFile; fileRef = 234F4BDC1BDDE44600A58EF7 /* user_repos.json */; }; 234F4C3F1BDE0FE200A58EF7 /* RequestKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 234F4C3E1BDE0FE200A58EF7 /* RequestKit.framework */; }; 234F4C401BDE113800A58EF7 /* RequestKit.framework in Carthage embed */ = {isa = PBXBuildFile; fileRef = 234F4C3E1BDE0FE200A58EF7 /* RequestKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 237F91E41E5AEC82005FAA6B /* URL+URLParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 237F91E31E5AEC82005FAA6B /* URL+URLParameters.swift */; }; + 237F91E51E5AEC87005FAA6B /* URL+URLParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 237F91E31E5AEC82005FAA6B /* URL+URLParameters.swift */; }; + 237F91E61E5AEC88005FAA6B /* URL+URLParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 237F91E31E5AEC82005FAA6B /* URL+URLParameters.swift */; }; + 237F91E71E5AEC89005FAA6B /* URL+URLParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 237F91E31E5AEC82005FAA6B /* URL+URLParameters.swift */; }; 239BE7CE1B8C47A100D2CE22 /* OctoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 239BE7CD1B8C47A100D2CE22 /* OctoKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23A0521F1CA924950068BFF7 /* OctoKitURLTestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23A0521E1CA924950068BFF7 /* OctoKitURLTestSession.swift */; }; 23A052201CA924950068BFF7 /* OctoKitURLTestSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23A0521E1CA924950068BFF7 /* OctoKitURLTestSession.swift */; }; @@ -196,6 +200,7 @@ 234F4BDB1BDDE44600A58EF7 /* user_mietzmithut.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = user_mietzmithut.json; path = Fixtures/user_mietzmithut.json; sourceTree = ""; }; 234F4BDC1BDDE44600A58EF7 /* user_repos.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = user_repos.json; path = Fixtures/user_repos.json; sourceTree = ""; }; 234F4C3E1BDE0FE200A58EF7 /* RequestKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RequestKit.framework; path = Carthage/Build/iOS/RequestKit.framework; sourceTree = ""; }; + 237F91E31E5AEC82005FAA6B /* URL+URLParameters.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "URL+URLParameters.swift"; sourceTree = ""; }; 239BE7C91B8C47A100D2CE22 /* OctoKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OctoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 239BE7CC1B8C47A100D2CE22 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 239BE7CD1B8C47A100D2CE22 /* OctoKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OctoKit.h; sourceTree = ""; }; @@ -339,6 +344,7 @@ 23B267891BDDD756003887E3 /* User.swift */, E7EE59D71BDFEFB30012E3D2 /* Stars.swift */, F8711EA11BFCAE9F005DDACA /* Time.swift */, + 237F91E31E5AEC82005FAA6B /* URL+URLParameters.swift */, 239BE7CB1B8C47A100D2CE22 /* Supporting Files */, ); path = OctoKit; @@ -565,7 +571,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0820; ORGANIZATIONNAME = "nerdish by nature"; TargetAttributes = { 234F4BA81BDDE31A00A58EF7 = { @@ -586,9 +592,11 @@ }; 23CAF27D1C7AB60C005011C4 = { CreatedOnToolsVersion = 7.2.1; + LastSwiftMigration = 0830; }; 23CAF2861C7AB60D005011C4 = { CreatedOnToolsVersion = 7.2.1; + LastSwiftMigration = 0830; }; 23CAF2991C7AB619005011C4 = { CreatedOnToolsVersion = 7.2.1; @@ -724,6 +732,7 @@ F8711EA21BFCAE9F005DDACA /* Time.swift in Sources */, 23B2678C1BDDD756003887E3 /* PublicKey.swift in Sources */, 23B2678E1BDDD756003887E3 /* User.swift in Sources */, + 237F91E41E5AEC82005FAA6B /* URL+URLParameters.swift in Sources */, DAEFC5951C83EF0D00CF3785 /* Milestone.swift in Sources */, 23B2678B1BDDD756003887E3 /* Octokit.swift in Sources */, E7EDEA6A1C871CEB006BAAF2 /* Issue.swift in Sources */, @@ -742,6 +751,7 @@ 23CAF2B71C7AB6EB005011C4 /* Time.swift in Sources */, 23CAF2B41C7AB6D4005011C4 /* Stars.swift in Sources */, 23CAF2AB1C7AB6C9005011C4 /* PublicKey.swift in Sources */, + 237F91E51E5AEC87005FAA6B /* URL+URLParameters.swift in Sources */, DAEFC5961C83EF0D00CF3785 /* Milestone.swift in Sources */, 23CAF2A81C7AB6C6005011C4 /* Octokit.swift in Sources */, E7EDEA6F1C871F81006BAAF2 /* Issue.swift in Sources */, @@ -777,6 +787,7 @@ 23CAF2B81C7AB6EB005011C4 /* Time.swift in Sources */, 23CAF2B51C7AB6D5005011C4 /* Stars.swift in Sources */, 23CAF2AC1C7AB6CA005011C4 /* PublicKey.swift in Sources */, + 237F91E61E5AEC88005FAA6B /* URL+URLParameters.swift in Sources */, DAEFC5971C83EF0D00CF3785 /* Milestone.swift in Sources */, 23CAF2A91C7AB6C6005011C4 /* Octokit.swift in Sources */, E7EDEA701C871F81006BAAF2 /* Issue.swift in Sources */, @@ -812,6 +823,7 @@ 23CAF2B91C7AB6EC005011C4 /* Time.swift in Sources */, 23CAF2B61C7AB6D5005011C4 /* Stars.swift in Sources */, 23CAF2AD1C7AB6CA005011C4 /* PublicKey.swift in Sources */, + 237F91E71E5AEC89005FAA6B /* URL+URLParameters.swift in Sources */, DAEFC5981C83EF0D00CF3785 /* Milestone.swift in Sources */, 23CAF2AA1C7AB6C7005011C4 /* Octokit.swift in Sources */, E7EDEA711C871F82006BAAF2 /* Issue.swift in Sources */, @@ -882,6 +894,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; @@ -912,6 +925,7 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -938,6 +952,7 @@ 23CAF2731C7AB5FC005011C4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; @@ -963,6 +978,7 @@ 23CAF2741C7AB5FC005011C4 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -1047,6 +1063,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; SDKROOT = macosx; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1076,6 +1093,7 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1098,6 +1116,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.nerdishbynature.OctoKit-MacTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -1120,6 +1139,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -1127,6 +1147,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; @@ -1153,6 +1174,7 @@ isa = XCBuildConfiguration; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -1190,8 +1212,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -1238,8 +1262,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; diff --git a/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit Mac.xcscheme b/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit Mac.xcscheme index 3e6f1e8..e513e20 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit Mac.xcscheme +++ b/Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit Mac.xcscheme @@ -1,6 +1,6 @@ Void) { - let urlString: String? = url.absoluteString - if let code = urlString?.components(separatedBy: "=").last { + if let code = url.URLParameters["code"] { authorize(session, code: code) { (config) in completion(config) } diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/Info.plist b/Carthage/Checkouts/octokit.swift/OctoKit/Info.plist index 3157e47..fb0dd73 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/Info.plist +++ b/Carthage/Checkouts/octokit.swift/OctoKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.7.0 + 0.7.3 CFBundleSignature ???? CFBundleVersion diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/Issue.swift b/Carthage/Checkouts/octokit.swift/OctoKit/Issue.swift index bd0ff9d..7bef881 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/Issue.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKit/Issue.swift @@ -6,30 +6,31 @@ import RequestKit public enum Openness: String { case Open = "open" case Closed = "closed" + case All = "all" } -@objc public class Issue: NSObject { - public var id: Int - public var url: URL? - public var repositoryURL: URL? - public var labelsURL: URL? - public var commentsURL: URL? - public var eventsURL: URL? - public var htmlURL: URL? - public var number: Int? - public var state: Openness? - public var title: String? - public var body: String? - public var user: User? - public var labels: [Label]? - public var assignee: User? - public var milestone: Milestone? - public var locked: Bool? - public var comments: Int? - public var closedAt: Date? - public var createdAt: Date? - public var updatedAt: Date? - public var closedBy: User? +@objc open class Issue: NSObject { + open var id: Int + open var url: URL? + open var repositoryURL: URL? + open var labelsURL: URL? + open var commentsURL: URL? + open var eventsURL: URL? + open var htmlURL: URL? + open var number: Int? + open var state: Openness? + open var title: String? + open var body: String? + open var user: User? + open var labels: [Label]? + open var assignee: User? + open var milestone: Milestone? + open var locked: Bool? + open var comments: Int? + open var closedAt: Date? + open var createdAt: Date? + open var updatedAt: Date? + open var closedBy: User? public init(_ json: [String: AnyObject]) { if let id = json["id"] as? Int { @@ -80,13 +81,14 @@ public extension Octokit { /** Fetches the issues of the authenticated user - - parameter session: RequestKitURLSession, defaults to NSURLSession.sharedSession() + - parameter session: RequestKitURLSession, defaults to URLSession.sharedSession() + - parameter state: Issue state. Defaults to open if not specified. - parameter page: Current page for issue pagination. `1` by default. - parameter perPage: Number of issues per page. `100` by default. - parameter completion: Callback for the outcome of the fetch. */ - public func myIssues(_ session: RequestKitURLSession = URLSession.shared, page: String = "1", perPage: String = "100", completion: @escaping (_ response: Response<[Issue]>) -> Void) -> URLSessionDataTaskProtocol? { - let router = IssueRouter.readAuthenticatedIssues(configuration, page, perPage) + public func myIssues(_ session: RequestKitURLSession = URLSession.shared, state: Openness = .Open, page: String = "1", perPage: String = "100", completion: @escaping (_ response: Response<[Issue]>) -> Void) -> URLSessionDataTaskProtocol? { + let router = IssueRouter.readAuthenticatedIssues(configuration, page, perPage, state) return router.loadJSON(session, expectedResultType: [[String: AnyObject]].self) { json, error in if let error = error { completion(Response.failure(error)) @@ -101,7 +103,7 @@ public extension Octokit { /** Fetches an issue in a repository - - parameter session: RequestKitURLSession, defaults to NSURLSession.sharedSession() + - parameter session: RequestKitURLSession, defaults to URLSession.sharedSession() - parameter owner: The user or organization that owns the repository. - parameter repository: The name of the repository. - parameter number: The number of the issue. @@ -120,10 +122,34 @@ public extension Octokit { } } } - + + /** + Fetches all issues in a repository + - parameter session: RequestKitURLSession, defaults to URLSession.sharedSession() + - parameter owner: The user or organization that owns the repository. + - parameter repository: The name of the repository. + - parameter state: Issue state. Defaults to open if not specified. + - parameter page: Current page for issue pagination. `1` by default. + - parameter perPage: Number of issues per page. `100` by default. + - parameter completion: Callback for the outcome of the fetch. + */ + public func issues(_ session: RequestKitURLSession = URLSession.shared, owner: String, repository: String, state: Openness = .Open, page: String = "1", perPage: String = "100", completion: @escaping (_ response: Response<[Issue]>) -> Void) -> URLSessionDataTaskProtocol? { + let router = IssueRouter.readIssues(configuration, owner, repository, page, perPage, state) + return router.loadJSON(session, expectedResultType: [[String: AnyObject]].self) { json, error in + if let error = error { + completion(Response.failure(error)) + } else { + if let json = json { + let parsedIssues = json.map { Issue($0) } + completion(Response.success(parsedIssues)) + } + } + } + } + /** Creates an issue in a repository. - - parameter session: RequestKitURLSession, defaults to NSURLSession.sharedSession() + - parameter session: RequestKitURLSession, defaults to URLSession.sharedSession() - parameter owner: The user or organization that owns the repository. - parameter repository: The name of the repository. - parameter title: The title of the issue. @@ -147,7 +173,7 @@ public extension Octokit { /** Edits an issue in a repository. - - parameter session: RequestKitURLSession, defaults to NSURLSession.sharedSession() + - parameter session: RequestKitURLSession, defaults to URLSession.sharedSession() - parameter owner: The user or organization that owns the repository. - parameter repository: The name of the repository. - parameter number: The number of the issue. @@ -175,8 +201,9 @@ public extension Octokit { // MARK: Router enum IssueRouter: JSONPostRouter { - case readAuthenticatedIssues(Configuration, String, String) + case readAuthenticatedIssues(Configuration, String, String, Openness) case readIssue(Configuration, String, String, Int) + case readIssues(Configuration, String, String, String, String, Openness) case postIssue(Configuration, String, String, String, String?, String?) case patchIssue(Configuration, String, String, Int, String?, String?, String?, Openness?) @@ -200,8 +227,9 @@ enum IssueRouter: JSONPostRouter { var configuration: Configuration { switch self { - case .readAuthenticatedIssues(let config, _, _): return config + case .readAuthenticatedIssues(let config, _, _, _): return config case .readIssue(let config, _, _, _): return config + case .readIssues(let config, _, _, _, _, _): return config case .postIssue(let config, _, _, _, _, _): return config case .patchIssue(let config, _, _, _, _, _, _, _): return config } @@ -209,10 +237,12 @@ enum IssueRouter: JSONPostRouter { var params: [String: Any] { switch self { - case .readAuthenticatedIssues(_, let page, let perPage): - return ["per_page": perPage, "page": page] + case .readAuthenticatedIssues(_, let page, let perPage, let state): + return ["per_page": perPage, "page": page, "state": state.rawValue] case .readIssue: return [:] + case .readIssues(_, _, _, let page, let perPage, let state): + return ["per_page": perPage, "page": page, "state": state.rawValue] case .postIssue(_, _, _, let title, let body, let assignee): var params = ["title": title] if let body = body { @@ -246,6 +276,8 @@ enum IssueRouter: JSONPostRouter { return "issues" case .readIssue(_, let owner, let repository, let number): return "repos/\(owner)/\(repository)/issues/\(number)" + case .readIssues(_, let owner, let repository, _, _, _): + return "repos/\(owner)/\(repository)/issues" case .postIssue(_, let owner, let repository, _, _, _): return "repos/\(owner)/\(repository)/issues" case .patchIssue(_, let owner, let repository, let number, _, _, _, _): diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/Label.swift b/Carthage/Checkouts/octokit.swift/OctoKit/Label.swift index a360fbd..14ce322 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/Label.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKit/Label.swift @@ -22,11 +22,11 @@ extension Color { } } -@objc public class Label: NSObject { - public var url: URL? - public var name: String? +@objc open class Label: NSObject { + open var url: URL? + open var name: String? #if os(OSX) - public var color: NSColor? + open var color: NSColor? #elseif os(iOS) || os(tvOS) || os(watchOS) public var color: UIColor? #endif diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/Milestone.swift b/Carthage/Checkouts/octokit.swift/OctoKit/Milestone.swift index fe5d7da..af0f568 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/Milestone.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKit/Milestone.swift @@ -1,21 +1,21 @@ import Foundation -@objc public class Milestone: NSObject { - public var url: URL? - public var htmlURL: URL? - public var labelsURL: URL? - public var id: Int - public var number: Int? - public var state: Openness? - public var title: String? - public var milestoneDescription: String? - public var creator: User? - public var openIssues: Int? - public var closedIssues: Int? - public var createdAt: Date? - public var updatedAt: Date? - public var closedAt: Date? - public var dueOn: Date? +@objc open class Milestone: NSObject { + open var url: URL? + open var htmlURL: URL? + open var labelsURL: URL? + open var id: Int + open var number: Int? + open var state: Openness? + open var title: String? + open var milestoneDescription: String? + open var creator: User? + open var openIssues: Int? + open var closedIssues: Int? + open var createdAt: Date? + open var updatedAt: Date? + open var closedAt: Date? + open var dueOn: Date? public init?(_ json: [String: AnyObject]) { if let id = json["id"] as? Int { diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/Repositories.swift b/Carthage/Checkouts/octokit.swift/OctoKit/Repositories.swift index 4c93dde..581634e 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/Repositories.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKit/Repositories.swift @@ -3,20 +3,20 @@ import RequestKit // MARK: model -@objc public class Repository: NSObject { - public let id: Int - public let owner: User - public var name: String? - public var fullName: String? - public var isPrivate: Bool - public var repositoryDescription: String? - public var isFork: Bool? - public var gitURL: String? - public var sshURL: String? - public var cloneURL: String? - public var htmlURL: String? - public var size: Int - public var lastPush: Date? +@objc open class Repository: NSObject { + open let id: Int + open let owner: User + open var name: String? + open var fullName: String? + open var isPrivate: Bool + open var repositoryDescription: String? + open var isFork: Bool? + open var gitURL: String? + open var sshURL: String? + open var cloneURL: String? + open var htmlURL: String? + open var size: Int + open var lastPush: Date? public init(_ json: [String: AnyObject]) { owner = User(json["owner"] as? [String: AnyObject] ?? [:]) @@ -128,11 +128,11 @@ enum RepositoryRouter: Router { var path: String { switch self { case .readRepositories(_, let owner, _, _): - return "/users/\(owner)/repos" + return "users/\(owner)/repos" case .readAuthenticatedRepositories: - return "/user/repos" + return "user/repos" case .readRepository(_, let owner, let name): - return "/repos/\(owner)/\(name)" + return "repos/\(owner)/\(name)" } } } diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/Time.swift b/Carthage/Checkouts/octokit.swift/OctoKit/Time.swift index cf54b94..5ef2918 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/Time.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKit/Time.swift @@ -8,7 +8,7 @@ struct Time { - [https://developer.apple.com/library/mac/qa/qa1480/_index.html](https://developer.apple.com/library/mac/qa/qa1480/_index.html) - [https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html](https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html) */ - private static var rfc3339DateFormatter: DateFormatter = { + fileprivate static var rfc3339DateFormatter: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'" formatter.locale = Locale(identifier: "en_US_POSIX") diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/URL+URLParameters.swift b/Carthage/Checkouts/octokit.swift/OctoKit/URL+URLParameters.swift new file mode 100644 index 0000000..8729b00 --- /dev/null +++ b/Carthage/Checkouts/octokit.swift/OctoKit/URL+URLParameters.swift @@ -0,0 +1,12 @@ +import Foundation + +internal extension URL { + var URLParameters: [String: String] { + guard let components = URLComponents(url: self, resolvingAgainstBaseURL: false) else { return [:] } + var params = [String: String]() + components.queryItems?.forEach { queryItem in + params[queryItem.name] = queryItem.value + } + return params + } +} diff --git a/Carthage/Checkouts/octokit.swift/OctoKit/User.swift b/Carthage/Checkouts/octokit.swift/OctoKit/User.swift index cbc4504..1597d8a 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKit/User.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKit/User.swift @@ -3,20 +3,20 @@ import RequestKit // MARK: model -@objc public class User: NSObject { - public let id: Int - public var login: String? - public var avatarURL: String? - public var gravatarID: String? - public var type: String? - public var name: String? - public var company: String? - public var blog: String? - public var location: String? - public var email: String? - public var numberOfPublicRepos: Int? - public var numberOfPublicGists: Int? - public var numberOfPrivateRepos: Int? +@objc open class User: NSObject { + open let id: Int + open var login: String? + open var avatarURL: String? + open var gravatarID: String? + open var type: String? + open var name: String? + open var company: String? + open var blog: String? + open var location: String? + open var email: String? + open var numberOfPublicRepos: Int? + open var numberOfPublicGists: Int? + open var numberOfPrivateRepos: Int? public init(_ json: [String: AnyObject]) { if let id = json["id"] as? Int { diff --git a/Carthage/Checkouts/octokit.swift/OctoKitTests/ConfigurationTests.swift b/Carthage/Checkouts/octokit.swift/OctoKitTests/ConfigurationTests.swift index 2a7b845..60514ec 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKitTests/ConfigurationTests.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKitTests/ConfigurationTests.swift @@ -40,7 +40,7 @@ class ConfigurationTests: XCTestCase { let config = OAuthConfiguration(token: "12345", secret: "6789", scopes: ["repo", "read:org"]) let response = "access_token=017ec60f4a182&scope=read%3Aorg%2Crepo&token_type=bearer" let session = OctoKitURLTestSession(expectedURL: "https://github.com/login/oauth/access_token", expectedHTTPMethod: "POST", response: response, statusCode: 200) - let url = URL(string: "urlscheme://authorize?code=dhfjgh23493")! + let url = URL(string: "urlscheme://authorize?code=dhfjgh23493&state=")! var token: String? = nil config.handleOpenURL(session, url: url) { accessToken in token = accessToken.accessToken diff --git a/Carthage/Checkouts/octokit.swift/OctoKitTests/IssueTests.swift b/Carthage/Checkouts/octokit.swift/OctoKitTests/IssueTests.swift index 2a5923a..8ec2bfd 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKitTests/IssueTests.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKitTests/IssueTests.swift @@ -6,7 +6,7 @@ class IssueTests: XCTestCase { func testGetMyIssues() { let config = TokenConfiguration("12345") - let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/issues?access_token=12345&page=1&per_page=100", expectedHTTPMethod: "GET", jsonFile: "issues", statusCode: 200) + let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/issues?access_token=12345&page=1&per_page=100&state=open", expectedHTTPMethod: "GET", jsonFile: "issues", statusCode: 200) let task = Octokit(config).myIssues(session) { response in switch response { case .success(let issues): diff --git a/Carthage/Checkouts/octokit.swift/OctoKitTests/OctoKitURLTestSession.swift b/Carthage/Checkouts/octokit.swift/OctoKitTests/OctoKitURLTestSession.swift index 55ea6cc..490c0e0 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKitTests/OctoKitURLTestSession.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKitTests/OctoKitURLTestSession.swift @@ -2,7 +2,7 @@ import RequestKit import XCTest class MockURLSessionDataTask: URLSessionDataTaskProtocol { - private (set) var resumeWasCalled = false + fileprivate (set) var resumeWasCalled = false func resume() { resumeWasCalled = true diff --git a/Carthage/Checkouts/octokit.swift/OctoKitTests/RepositoryTests.swift b/Carthage/Checkouts/octokit.swift/OctoKitTests/RepositoryTests.swift index bcee0d8..393a526 100644 --- a/Carthage/Checkouts/octokit.swift/OctoKitTests/RepositoryTests.swift +++ b/Carthage/Checkouts/octokit.swift/OctoKitTests/RepositoryTests.swift @@ -18,6 +18,21 @@ class RepositoryTests: XCTestCase { XCTAssertTrue(session.wasCalled) } + func testGetRepositoriesEnterprise() { + let config = TokenConfiguration(url: "https://enterprise.nerdishbynature.com/api/v3/") + let session = OctoKitURLTestSession(expectedURL: "https://enterprise.nerdishbynature.com/api/v3/users/octocat/repos?page=1&per_page=100", expectedHTTPMethod: "GET", jsonFile: "user_repos", statusCode: 200) + let task = Octokit(config).repositories(session, owner: "octocat") { response in + switch response { + case .success(let repositories): + XCTAssertEqual(repositories.count, 1) + case .failure: + XCTAssert(false, "should not get an error") + } + } + XCTAssertNotNil(task) + XCTAssertTrue(session.wasCalled) + } + func testGetAuthenticatedRepositories() { let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/user/repos?access_token=12345&page=1&per_page=100", expectedHTTPMethod: "GET", jsonFile: "user_repos", statusCode: 200) let config = TokenConfiguration("12345") @@ -33,6 +48,21 @@ class RepositoryTests: XCTestCase { XCTAssertTrue(session.wasCalled) } + func testGetAuthenticatedRepositoriesEnterprise() { + let session = OctoKitURLTestSession(expectedURL: "https://enterprise.nerdishbynature.com/api/v3/user/repos?access_token=12345&page=1&per_page=100", expectedHTTPMethod: "GET", jsonFile: "user_repos", statusCode: 200) + let config = TokenConfiguration("12345", url: "https://enterprise.nerdishbynature.com/api/v3/") + let task = Octokit(config).repositories(session) { response in + switch response { + case .success(let repositories): + XCTAssertEqual(repositories.count, 1) + case .failure: + XCTAssert(false, "should not get an error") + } + } + XCTAssertNotNil(task) + XCTAssertTrue(session.wasCalled) + } + func testFailToGetRepositories() { let json = "{\"message\":\"Bad credentials\",\"documentation_url\":\"https://developer.github.com/v3\"}" let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/user/repos?access_token=12345&page=1&per_page=100", expectedHTTPMethod: "GET", response: json, statusCode: 401) @@ -68,6 +98,23 @@ class RepositoryTests: XCTestCase { XCTAssertTrue(session.wasCalled) } + func testGetRepositoryEnterprise() { + let config = TokenConfiguration(url: "https://enterprise.nerdishbynature.com/api/v3/") + let (owner, name) = ("mietzmithut", "Test") + let session = OctoKitURLTestSession(expectedURL: "https://enterprise.nerdishbynature.com/api/v3/repos/mietzmithut/Test", expectedHTTPMethod: "GET", jsonFile: "repo", statusCode: 200) + let task = Octokit(config).repository(session, owner: owner, name: name) { response in + switch response { + case .success(let repo): + XCTAssertEqual(repo.name, name) + XCTAssertEqual(repo.owner.login, owner) + case .failure: + XCTAssert(false, "should not get an error") + } + } + XCTAssertNotNil(task) + XCTAssertTrue(session.wasCalled) + } + func testFailToGetRepository() { let session = OctoKitURLTestSession(expectedURL: "https://api.github.com/repos/mietzmithut/Test", expectedHTTPMethod: "GET", jsonFile: nil, statusCode: 404) let (owner, name) = ("mietzmithut", "Test") diff --git a/Carthage/Checkouts/octokit.swift/fastlane/.env.default b/Carthage/Checkouts/octokit.swift/fastlane/.env.default index ea6fe91..dac232d 100644 --- a/Carthage/Checkouts/octokit.swift/fastlane/.env.default +++ b/Carthage/Checkouts/octokit.swift/fastlane/.env.default @@ -1,11 +1,10 @@ -AF_IOS_SDK=iphonesimulator10.0 +AF_IOS_SDK=iphonesimulator10.2 AF_MAC_SDK=macosx10.12 -AF_TVOS_SDK=appletvsimulator10.0 +AF_TVOS_SDK=appletvsimulator10.1 AF_CONFIGURATION=Release SCAN_SCHEME=$AF_IOS_FRAMEWORK_SCHEME -SCAN_DESTINATION="OS=10.0,name=iPhone 6s" SCAN_SDK=$AF_IOS_SDK SCAN_OUTPUT_DIRECTORY=fastlane/test-output DEPLOY_PODSPEC=OctoKit.swift.podspec diff --git a/Carthage/Checkouts/octokit.swift/fastlane/.env.ios93 b/Carthage/Checkouts/octokit.swift/fastlane/.env.ios93 index 61555b8..d677f88 100644 --- a/Carthage/Checkouts/octokit.swift/fastlane/.env.ios93 +++ b/Carthage/Checkouts/octokit.swift/fastlane/.env.ios93 @@ -1,2 +1,3 @@ -SCAN_DESTINATION="OS=10.0,name=iPhone 6s" -EXAMPLE_DESTINATION=$SCAN_DESTINATION +SCAN_DEVICE="iPhone 6s" +SCAN_SDK=iphonesimulator10.2 +EXAMPLE_DESTINATION="platform=iOS Simulator,name=iPhone 6s" diff --git a/Carthage/Checkouts/octokit.swift/fastlane/.env.osx b/Carthage/Checkouts/octokit.swift/fastlane/.env.osx index de1d932..91dafd4 100644 --- a/Carthage/Checkouts/octokit.swift/fastlane/.env.osx +++ b/Carthage/Checkouts/octokit.swift/fastlane/.env.osx @@ -1,6 +1,5 @@ SCAN_SCHEME=$AF_OSX_FRAMEWORK_SCHEME -SCAN_DESTINATION="arch=x86_64" SCAN_SDK=$AF_OSX_SDK EXAMPLE_SCHEME=$AF_OSX_EXAMPLE_SCHEME -EXAMPLE_DESTINATION=$SCAN_DESTINATION +EXAMPLE_DESTINATION="platform=macOS" \ No newline at end of file diff --git a/Carthage/Checkouts/octokit.swift/fastlane/.env.tvos92 b/Carthage/Checkouts/octokit.swift/fastlane/.env.tvos92 index 128f8be..216d1be 100644 --- a/Carthage/Checkouts/octokit.swift/fastlane/.env.tvos92 +++ b/Carthage/Checkouts/octokit.swift/fastlane/.env.tvos92 @@ -1,6 +1,6 @@ SCAN_SCHEME=$AF_TVOS_FRAMEWORK_SCHEME -SCAN_DESTINATION="OS=10.0,name=Apple TV 1080p" +SCAN_DEVICE="Apple TV 1080p" SCAN_SDK=$AF_TVOS_SDK EXAMPLE_SCHEME=$AF_TVOS_EXAMPLE_SCHEME -EXAMPLE_DESTINATION=$SCAN_DESTINATION +EXAMPLE_DESTINATION="platform=tvOS Simulator,name=Apple TV 1080p" \ No newline at end of file From 6749d6bd5d41d1b55e4e3ed7126caa0d14378b98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mro=CC=81z?= Date: Tue, 16 May 2017 19:38:18 +0200 Subject: [PATCH 02/10] [Global] Update codebase to new version of ReSwift & ReSwiftRouter. --- .../project.pbxproj | 96 +++++++++++++------ SwiftFlowGitHubBrowser/AppDelegate.swift | 4 +- .../Reducers/AppReducer.swift | 18 ++-- .../BookmarkViewController.swift | 2 +- .../ViewControllers/MainViewController.swift | 2 +- .../RepositoryDetailViewController.swift | 26 ++--- 6 files changed, 92 insertions(+), 56 deletions(-) diff --git a/SwiftFlowGitHubBrowser.xcodeproj/project.pbxproj b/SwiftFlowGitHubBrowser.xcodeproj/project.pbxproj index b2b8189..65767b9 100644 --- a/SwiftFlowGitHubBrowser.xcodeproj/project.pbxproj +++ b/SwiftFlowGitHubBrowser.xcodeproj/project.pbxproj @@ -49,6 +49,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 14423EA61ECB43EF0099AE91 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 254B3B4D1D3ABBB400B1E4F0 /* ReSwift.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3F13C0E81E7B3E4000D8442C; + remoteInfo = SwiftLintIntegration; + }; 253038F31D92D8B900AA49F4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 253038E91D92D8B900AA49F4 /* SAMKeychain.xcodeproj */; @@ -615,6 +622,7 @@ 254B3B601D3ABBB400B1E4F0 /* ReSwift.framework */, 254B3B621D3ABBB400B1E4F0 /* ReSwift-tvOSTests.xctest */, 254B3B641D3ABBB400B1E4F0 /* ReSwift.framework */, + 14423EA71ECB43EF0099AE91 /* SwiftLintIntegration.xctest */, ); name = Products; sourceTree = ""; @@ -834,17 +842,17 @@ isa = PBXGroup; children = ( 62EF0A8D1C700D1200D13711 /* Quick.framework */, - 62EF0A8F1C700D1200D13711 /* Quick-macOSTests.xctest */, - 62EF0A911C700D1200D13711 /* QuickFocused-macOSTests.xctest */, - 2565B8871DE74F440016371D /* QuickAfterSuite-macOSTests.xctest */, + 62EF0A8F1C700D1200D13711 /* Quick - macOSTests.xctest */, + 62EF0A911C700D1200D13711 /* QuickFocused - macOSTests.xctest */, + 2565B8871DE74F440016371D /* QuickAfterSuite - macOSTests.xctest */, 62EF0A931C700D1200D13711 /* Quick.framework */, - 62EF0A951C700D1200D13711 /* Quick-iOSTests.xctest */, - 62EF0A971C700D1200D13711 /* QuickFocused-iOSTests.xctest */, - 2565B8891DE74F440016371D /* QuickAfterSuite-iOSTests.xctest */, + 62EF0A951C700D1200D13711 /* Quick - iOSTests.xctest */, + 62EF0A971C700D1200D13711 /* QuickFocused - iOSTests.xctest */, + 2565B8891DE74F440016371D /* QuickAfterSuite - iOSTests.xctest */, 62EF0A991C700D1200D13711 /* Quick.framework */, - 62EF0A9B1C700D1200D13711 /* Quick-tvOSTests.xctest */, - 62EF0A9D1C700D1200D13711 /* QuickFocused-tvOSTests.xctest */, - 2565B88B1DE74F440016371D /* QuickAfterSuite-tvOSTests.xctest */, + 62EF0A9B1C700D1200D13711 /* Quick - tvOSTests.xctest */, + 62EF0A9D1C700D1200D13711 /* QuickFocused - tvOSTests.xctest */, + 2565B88B1DE74F440016371D /* QuickAfterSuite - tvOSTests.xctest */, ); name = Products; sourceTree = ""; @@ -881,6 +889,7 @@ 25BB761A1C3CB8CB008EA13B /* Frameworks */, 25BB761B1C3CB8CB008EA13B /* Resources */, 7A7A57071C91D73C00670D38 /* Embed Frameworks */, + 14423EB51ECB44250099AE91 /* ShellScript */, ); buildRules = ( ); @@ -989,6 +998,13 @@ /* End PBXProject section */ /* Begin PBXReferenceProxy section */ + 14423EA71ECB43EF0099AE91 /* SwiftLintIntegration.xctest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = SwiftLintIntegration.xctest; + remoteRef = 14423EA61ECB43EF0099AE91 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 253038F41D92D8B900AA49F4 /* SAMKeychain.framework */ = { isa = PBXReferenceProxy; fileType = wrapper.framework; @@ -1234,24 +1250,24 @@ remoteRef = 254B3B931D3ABBCE00B1E4F0 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 2565B8871DE74F440016371D /* QuickAfterSuite-macOSTests.xctest */ = { + 2565B8871DE74F440016371D /* QuickAfterSuite - macOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "QuickAfterSuite-macOSTests.xctest"; + path = "QuickAfterSuite - macOSTests.xctest"; remoteRef = 2565B8861DE74F440016371D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 2565B8891DE74F440016371D /* QuickAfterSuite-iOSTests.xctest */ = { + 2565B8891DE74F440016371D /* QuickAfterSuite - iOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "QuickAfterSuite-iOSTests.xctest"; + path = "QuickAfterSuite - iOSTests.xctest"; remoteRef = 2565B8881DE74F440016371D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 2565B88B1DE74F440016371D /* QuickAfterSuite-tvOSTests.xctest */ = { + 2565B88B1DE74F440016371D /* QuickAfterSuite - tvOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "QuickAfterSuite-tvOSTests.xctest"; + path = "QuickAfterSuite - tvOSTests.xctest"; remoteRef = 2565B88A1DE74F440016371D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1290,17 +1306,17 @@ remoteRef = 62EF0A8C1C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 62EF0A8F1C700D1200D13711 /* Quick-macOSTests.xctest */ = { + 62EF0A8F1C700D1200D13711 /* Quick - macOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "Quick-macOSTests.xctest"; + path = "Quick - macOSTests.xctest"; remoteRef = 62EF0A8E1C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 62EF0A911C700D1200D13711 /* QuickFocused-macOSTests.xctest */ = { + 62EF0A911C700D1200D13711 /* QuickFocused - macOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "QuickFocused-macOSTests.xctest"; + path = "QuickFocused - macOSTests.xctest"; remoteRef = 62EF0A901C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1311,17 +1327,17 @@ remoteRef = 62EF0A921C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 62EF0A951C700D1200D13711 /* Quick-iOSTests.xctest */ = { + 62EF0A951C700D1200D13711 /* Quick - iOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "Quick-iOSTests.xctest"; + path = "Quick - iOSTests.xctest"; remoteRef = 62EF0A941C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 62EF0A971C700D1200D13711 /* QuickFocused-iOSTests.xctest */ = { + 62EF0A971C700D1200D13711 /* QuickFocused - iOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "QuickFocused-iOSTests.xctest"; + path = "QuickFocused - iOSTests.xctest"; remoteRef = 62EF0A961C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1332,17 +1348,17 @@ remoteRef = 62EF0A981C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 62EF0A9B1C700D1200D13711 /* Quick-tvOSTests.xctest */ = { + 62EF0A9B1C700D1200D13711 /* Quick - tvOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "Quick-tvOSTests.xctest"; + path = "Quick - tvOSTests.xctest"; remoteRef = 62EF0A9A1C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 62EF0A9D1C700D1200D13711 /* QuickFocused-tvOSTests.xctest */ = { + 62EF0A9D1C700D1200D13711 /* QuickFocused - tvOSTests.xctest */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; - path = "QuickFocused-tvOSTests.xctest"; + path = "QuickFocused - tvOSTests.xctest"; remoteRef = 62EF0A9C1C700D1200D13711 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1410,6 +1426,22 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 14423EB51ECB44250099AE91 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 25BB76191C3CB8CB008EA13B /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -1591,7 +1623,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)/**", + "$(SRCROOT)/Carthage/Build/iOS/**", + ); INFOPLIST_FILE = SwiftFlowGitHubBrowser/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1606,7 +1641,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; EMBEDDED_CONTENT_CONTAINS_SWIFT = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)/**", + "$(SRCROOT)/Carthage/Build/iOS/**", + ); INFOPLIST_FILE = SwiftFlowGitHubBrowser/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; diff --git a/SwiftFlowGitHubBrowser/AppDelegate.swift b/SwiftFlowGitHubBrowser/AppDelegate.swift index cdaee3f..46b513d 100644 --- a/SwiftFlowGitHubBrowser/AppDelegate.swift +++ b/SwiftFlowGitHubBrowser/AppDelegate.swift @@ -11,7 +11,7 @@ import OctoKit import ReSwift import ReSwiftRouter -var store = Store(reducer: AppReducer(), state: nil) +var store = Store(reducer: appReducer, state: nil) @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { @@ -34,7 +34,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { let rootRoutable = RootRoutable(window: window!) router = Router(store: store, rootRoutable: rootRoutable) { state in - return state.navigationState + state.select { $0.navigationState } } if case .loggedIn(_) = store.state.authenticationState.loggedInState { diff --git a/SwiftFlowGitHubBrowser/Reducers/AppReducer.swift b/SwiftFlowGitHubBrowser/Reducers/AppReducer.swift index 68a8480..cc81cd2 100644 --- a/SwiftFlowGitHubBrowser/Reducers/AppReducer.swift +++ b/SwiftFlowGitHubBrowser/Reducers/AppReducer.swift @@ -9,15 +9,11 @@ import ReSwift import ReSwiftRouter -struct AppReducer: Reducer { - - func handleAction(action: Action, state: State?) -> State { - return State( - navigationState: NavigationReducer.handleAction(action, state: state?.navigationState), - authenticationState: authenticationReducer(state: state?.authenticationState, action: action), - repositories: repositoriesReducer(state: state?.repositories, action: action), - bookmarks: bookmarksReducer(state: state?.bookmarks, action: action) - ) - } - +func appReducer(action: Action, state: State?) -> State { + return State( + navigationState: NavigationReducer.handleAction(action, state: state?.navigationState), + authenticationState: authenticationReducer(state: state?.authenticationState, action: action), + repositories: repositoriesReducer(state: state?.repositories, action: action), + bookmarks: bookmarksReducer(state: state?.bookmarks, action: action) + ) } diff --git a/SwiftFlowGitHubBrowser/ViewControllers/BookmarkViewController.swift b/SwiftFlowGitHubBrowser/ViewControllers/BookmarkViewController.swift index 8663b75..29447ea 100644 --- a/SwiftFlowGitHubBrowser/ViewControllers/BookmarkViewController.swift +++ b/SwiftFlowGitHubBrowser/ViewControllers/BookmarkViewController.swift @@ -27,7 +27,7 @@ class BookmarkViewController: UIViewController, StoreSubscriber { // Subscribe after other setup is complete store.subscribe(self) { state in - state.bookmarks + state.select { $0.bookmarks } } } diff --git a/SwiftFlowGitHubBrowser/ViewControllers/MainViewController.swift b/SwiftFlowGitHubBrowser/ViewControllers/MainViewController.swift index c3ea068..590bbfc 100644 --- a/SwiftFlowGitHubBrowser/ViewControllers/MainViewController.swift +++ b/SwiftFlowGitHubBrowser/ViewControllers/MainViewController.swift @@ -25,7 +25,7 @@ class MainViewController: UIViewController, StoreSubscriber { super.viewWillAppear(animated) store.subscribe(self) { state in - state.repositories + state.select { $0.repositories } } // Kick off request to update list of repositories diff --git a/SwiftFlowGitHubBrowser/ViewControllers/RepositoryDetailViewController.swift b/SwiftFlowGitHubBrowser/ViewControllers/RepositoryDetailViewController.swift index f6a5668..09d580d 100644 --- a/SwiftFlowGitHubBrowser/ViewControllers/RepositoryDetailViewController.swift +++ b/SwiftFlowGitHubBrowser/ViewControllers/RepositoryDetailViewController.swift @@ -24,18 +24,20 @@ class RepositoryDetailViewController: UIViewController, StoreSubscriber { super.viewWillAppear(animated) store.subscribe(self) { state in - let currentRepository: Repository? = state.navigationState.getRouteSpecificState( - state.navigationState.route - ) - - let isCurrentRepositoryBookmarked = currentRepository.map { - BookmarkService.isRepositoryBookmarked(state: state, currentRepository: $0) - } ?? false - - return ( - currentRepository, - isCurrentRepositoryBookmarked - ) + state.select { currentState in + let currentRepository: Repository? = currentState.navigationState.getRouteSpecificState( + currentState.navigationState.route + ) + + let isCurrentRepositoryBookmarked = currentRepository.map { + BookmarkService.isRepositoryBookmarked(state: currentState, currentRepository: $0) + } ?? false + + return ( + currentRepository, + isCurrentRepositoryBookmarked + ) + } } } From 0f72972a7a71b82afe36a265f462a93b9170e5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mro=CC=81z?= Date: Tue, 16 May 2017 19:39:13 +0200 Subject: [PATCH 03/10] [Global] Rename github id names to mirror the ones from Readme. --- SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift b/SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift index c1313f4..c893c8f 100644 --- a/SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift +++ b/SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift @@ -9,5 +9,5 @@ import Foundation // Insert GitHub Token and Secret Here -let gitHubToken = "" -let gitHubSecret = "" \ No newline at end of file +let gitHubClientId = "" +let gitHubClientSecret = "" From 1fdd80aecc37c0d79553035f818aaa33359ffeef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mro=CC=81z?= Date: Tue, 23 May 2017 21:49:46 +0200 Subject: [PATCH 04/10] [Tests] Update to new APIs. --- .../GithubAuthSpec/GitHubAuthSpec.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SwiftFlowGitHubBrowserTests/GithubAuthSpec/GitHubAuthSpec.swift b/SwiftFlowGitHubBrowserTests/GithubAuthSpec/GitHubAuthSpec.swift index 10a6a9d..968ad0b 100644 --- a/SwiftFlowGitHubBrowserTests/GithubAuthSpec/GitHubAuthSpec.swift +++ b/SwiftFlowGitHubBrowserTests/GithubAuthSpec/GitHubAuthSpec.swift @@ -18,7 +18,7 @@ class GitHubAuthSpec: QuickSpec { describe("When receiving a success OAuth URL callback ") { - let store = Store(reducer: AppReducer(), state: nil) + let store = Store(reducer: appReducer, state: nil) beforeEach { let fakeOAuth = FakeOAuthConfiguration(injectedTokenConfiguration: TokenConfiguration("Token")) @@ -51,7 +51,7 @@ class GitHubAuthSpec: QuickSpec { describe("When receiving successful login action") { - let store = Store(reducer: AppReducer(), state: nil) + let store = Store(reducer: appReducer, state: nil) beforeEach { let tokenConfiguration = TokenConfiguration("Token") From 178d9e395a2aa3a73354938e631049643bddffcb Mon Sep 17 00:00:00 2001 From: Benji Encz Date: Sat, 19 Aug 2017 14:00:56 -0700 Subject: [PATCH 05/10] [Readme] Fix Build Instructions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e816e5..c778dfe 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Successful API changes will be merged into the Swift Flow projects. In order to install the projects dependencies, run the following Carthage command in the root directory: ``` -carthage update --no-build +carthage update --no-use-binaries --platform iOS ``` # GitHub Configuration Instructions From 0f871eab2e28b0cc6c68e59f45fac5d07f891d90 Mon Sep 17 00:00:00 2001 From: Benji Encz Date: Sun, 1 Oct 2017 19:11:40 -0700 Subject: [PATCH 06/10] ReSwiftRouter 0.6.0 + Ignore Carthage --- .gitignore | 2 + Cartfile | 2 +- Cartfile.resolved | 10 +- Carthage/Checkouts/ListKit/.gitignore | 52 - Carthage/Checkouts/ListKit/LICENSE.md | 21 - Carthage/Checkouts/ListKit/ListKit.podspec | 17 - .../ListKit/ListKit.xcodeproj/project.pbxproj | 846 ------ .../contents.xcworkspacedata | 7 - .../xcshareddata/xcschemes/ListKit.xcscheme | 100 - .../ListKit/ListKit/ArrayDataSource.swift | 74 - Carthage/Checkouts/ListKit/ListKit/Info.plist | 26 - Carthage/Checkouts/ListKit/ListKit/ListKit.h | 19 - .../ListKit/ListKitDemo/AppDelegate.swift | 46 - .../ListKitDemo/Base.lproj/LaunchScreen.xib | 41 - .../ListKitDemo/Base.lproj/Main.storyboard | 194 -- .../Demos/CityDemo/CityViewController.swift | 59 - .../Demos/CityDemo/CustomCell/City.swift | 15 - .../Demos/CityDemo/CustomCell/CityCell.swift | 38 - .../Demos/CityDemo/CustomCell/CityCell.xib | 68 - .../Demos/CityDemo/Resources/madrid.jpg | Bin 120306 -> 0 bytes .../Demos/CityDemo/Resources/new_delhi.jpg | Bin 9156 -> 0 bytes .../Demos/CityDemo/Resources/sf.jpg | Bin 325729 -> 0 bytes .../Demos/CityDemo/Resources/stuttgart.jpg | Bin 8703 -> 0 bytes .../Demos/CityDemo/Resources/tokyo.jpg | Bin 1069604 -> 0 bytes .../Demos/Simple/ViewController.swift | 33 - .../AppIcon.appiconset/Contents.json | 68 - .../Checkouts/ListKit/ListKitDemo/Info.plist | 47 - .../ListKit/ListKitDemoTests/Info.plist | 24 - .../ListKitDemoTests/ListKitDemoTests.swift | 36 - .../ListKitTests/BasicDataSourceTests.swift | 44 - .../CustomXibDataSourceTests.swift | 77 - .../Checkouts/ListKit/ListKitTests/Info.plist | 24 - Carthage/Checkouts/ListKit/README.md | 124 - .../ListKit/Readme_Resources/city_list.png | Bin 147099 -> 0 bytes .../ListKit/Readme_Resources/simple_list.png | Bin 29092 -> 0 bytes .../Checkouts/Nimble/.github/ISSUE_TEMPLATE | 36 - .../Nimble/.github/PULL_REQUEST_TEMPLATE | 14 - Carthage/Checkouts/Nimble/.gitignore | 21 - Carthage/Checkouts/Nimble/.hound.yml | 2 - Carthage/Checkouts/Nimble/.swift-version | 1 - Carthage/Checkouts/Nimble/.swiftlint.yml | 19 - Carthage/Checkouts/Nimble/.travis.yml | 25 - Carthage/Checkouts/Nimble/CONTRIBUTING.md | 120 - Carthage/Checkouts/Nimble/Dockerfile.test | 3 - Carthage/Checkouts/Nimble/Gemfile | 4 - Carthage/Checkouts/Nimble/Gemfile.lock | 73 - Carthage/Checkouts/Nimble/LICENSE | 201 -- Carthage/Checkouts/Nimble/LICENSE.md | 201 -- Carthage/Checkouts/Nimble/Nimble.podspec | 49 - .../Nimble/Nimble.xcodeproj/project.pbxproj | 2297 -------------- .../contents.xcworkspacedata | 7 - .../xcschemes/Nimble-iOS.xcscheme | 82 - .../xcschemes/Nimble-macOS.xcscheme | 82 - .../xcschemes/Nimble-tvOS.xcscheme | 99 - Carthage/Checkouts/Nimble/Package.swift | 10 - Carthage/Checkouts/Nimble/README.md | 1691 ----------- .../CwlCatchException/.gitignore | 3 - .../CwlCatchException/CwlCatchException.swift | 37 - .../CwlCatchException/CwlCatchException.h | 30 - .../CwlCatchException/CwlCatchException.m | 35 - .../CwlCatchException/CwlCatchException.swift | 32 - .../CwlCatchException/Info.plist | 28 - .../CwlCatchException.m | 37 - .../include/CwlCatchException.h | 32 - .../CwlMachBadInstructionHandler.m | 50 - .../include/CwlMachBadInstructionHandler.h | 70 - .../mach_excServer.c | 537 ---- .../mach_excServer.h | 321 -- .../CwlBadInstructionException.swift | 89 - .../CwlCatchBadInstruction.h | 61 - .../CwlCatchBadInstruction.m | 50 - .../CwlCatchBadInstruction.swift | 199 -- .../CwlCatchBadInstructionPOSIX.swift | 108 - .../CwlDarwinDefinitions.swift | 55 - .../CwlPreconditionTesting/Info.plist | 28 - .../Mach/CwlPreconditionTesting.h | 30 - .../Posix/CwlPreconditionTesting.h | 27 - .../CwlPreconditionTesting/mach_excServer.c | 537 ---- .../CwlPreconditionTesting/mach_excServer.h | 298 -- .../Lib/CwlPreconditionTesting/README.md | 80 - .../Nimble/Adapters/AdapterProtocols.swift | 17 - .../Nimble/Adapters/AssertionDispatcher.swift | 19 - .../Nimble/Adapters/AssertionRecorder.swift | 100 - .../Nimble/Adapters/NMBExpectation.swift | 131 - .../Nimble/Adapters/NMBObjCMatcher.swift | 81 - .../Nimble/Adapters/NimbleEnvironment.swift | 45 - .../Nimble/Adapters/NimbleXCTestHandler.swift | 76 - .../NonObjectiveC/ExceptionCapture.swift | 31 - .../Nimble/Sources/Nimble/DSL+Wait.swift | 98 - .../Checkouts/Nimble/Sources/Nimble/DSL.swift | 64 - .../Nimble/Sources/Nimble/Expectation.swift | 131 - .../Sources/Nimble/ExpectationMessage.swift | 222 -- .../Nimble/Sources/Nimble/Expression.swift | 90 - .../Sources/Nimble/FailureMessage.swift | 68 - .../Nimble/Sources/Nimble/Info.plist | 28 - .../Sources/Nimble/Matchers/AllPass.swift | 109 - .../Nimble/Matchers/AsyncMatcherWrapper.swift | 226 -- .../Sources/Nimble/Matchers/BeAKindOf.swift | 68 - .../Nimble/Matchers/BeAnInstanceOf.swift | 56 - .../Sources/Nimble/Matchers/BeCloseTo.swift | 126 - .../Sources/Nimble/Matchers/BeEmpty.swift | 85 - .../Nimble/Matchers/BeGreaterThan.swift | 41 - .../Matchers/BeGreaterThanOrEqualTo.swift | 44 - .../Nimble/Matchers/BeIdenticalTo.swift | 46 - .../Sources/Nimble/Matchers/BeLessThan.swift | 41 - .../Nimble/Matchers/BeLessThanOrEqual.swift | 42 - .../Sources/Nimble/Matchers/BeLogical.swift | 167 -- .../Sources/Nimble/Matchers/BeNil.swift | 19 - .../Sources/Nimble/Matchers/BeVoid.swift | 18 - .../Sources/Nimble/Matchers/BeginWith.swift | 60 - .../Sources/Nimble/Matchers/Contain.swift | 94 - .../Matchers/ContainElementSatisfying.swift | 59 - .../Sources/Nimble/Matchers/EndWith.swift | 72 - .../Sources/Nimble/Matchers/Equal.swift | 220 -- .../Sources/Nimble/Matchers/HaveCount.swift | 57 - .../Sources/Nimble/Matchers/Match.swift | 30 - .../Sources/Nimble/Matchers/MatchError.swift | 26 - .../Sources/Nimble/Matchers/MatcherFunc.swift | 85 - .../Nimble/Matchers/MatcherProtocols.swift | 170 -- .../Nimble/Matchers/PostNotification.swift | 70 - .../Sources/Nimble/Matchers/Predicate.swift | 241 -- .../Nimble/Matchers/RaisesException.swift | 183 -- .../Nimble/Matchers/SatisfyAnyOf.swift | 98 - .../Nimble/Matchers/ThrowAssertion.swift | 55 - .../Sources/Nimble/Matchers/ThrowError.swift | 53 - .../Sources/Nimble/Matchers/ToSucceed.swift | 37 - .../Checkouts/Nimble/Sources/Nimble/Nimble.h | 9 - .../Nimble/Sources/Nimble/Utils/Async.swift | 360 --- .../Nimble/Sources/Nimble/Utils/Errors.swift | 137 - .../Sources/Nimble/Utils/Functional.swift | 12 - .../Sources/Nimble/Utils/SourceLocation.swift | 31 - .../Sources/Nimble/Utils/Stringers.swift | 212 -- .../NimbleObjectiveC/CurrentTestCaseTracker.h | 9 - .../Nimble/Sources/NimbleObjectiveC/DSL.h | 383 --- .../Nimble/Sources/NimbleObjectiveC/DSL.m | 160 - .../NimbleObjectiveC/NMBExceptionCapture.h | 11 - .../NimbleObjectiveC/NMBExceptionCapture.m | 35 - .../Sources/NimbleObjectiveC/NMBStringify.h | 18 - .../Sources/NimbleObjectiveC/NMBStringify.m | 6 - .../XCTestObservationCenter+Register.m | 78 - .../Checkouts/Nimble/Tests/LinuxMain.swift | 37 - .../Tests/NimbleTests/AsynchronousTest.swift | 220 -- .../Helpers/ObjectWithLazyProperty.swift | 7 - .../Helpers/XCTestCaseProvider.swift | 52 - .../Tests/NimbleTests/Helpers/utils.swift | 98 - .../Nimble/Tests/NimbleTests/Info.plist | 24 - .../Tests/NimbleTests/LinuxSupport.swift | 9 - .../NimbleTests/Matchers/AllPassTest.swift | 126 - .../NimbleTests/Matchers/BeAKindOfTest.swift | 89 - .../Matchers/BeAnInstanceOfTest.swift | 79 - .../NimbleTests/Matchers/BeCloseToTest.swift | 160 - .../NimbleTests/Matchers/BeEmptyTest.swift | 82 - .../Matchers/BeGreaterThanOrEqualToTest.swift | 54 - .../Matchers/BeGreaterThanTest.swift | 53 - .../Matchers/BeIdenticalToObjectTest.swift | 64 - .../Matchers/BeIdenticalToTest.swift | 68 - .../Matchers/BeLessThanOrEqualToTest.swift | 52 - .../NimbleTests/Matchers/BeLessThanTest.swift | 57 - .../NimbleTests/Matchers/BeLogicalTest.swift | 270 -- .../NimbleTests/Matchers/BeNilTest.swift | 28 - .../NimbleTests/Matchers/BeVoidTest.swift | 32 - .../NimbleTests/Matchers/BeginWithTest.swift | 53 - .../ContainElementSatisfyingTest.swift | 86 - .../NimbleTests/Matchers/ContainTest.swift | 95 - .../NimbleTests/Matchers/EndWithTest.swift | 56 - .../NimbleTests/Matchers/EqualTest.swift | 276 -- .../NimbleTests/Matchers/HaveCountTest.swift | 56 - .../NimbleTests/Matchers/MatchErrorTest.swift | 83 - .../NimbleTests/Matchers/MatchTest.swift | 46 - .../Matchers/PostNotificationTest.swift | 91 - .../Matchers/RaisesExceptionTest.swift | 166 -- .../Matchers/SatisfyAnyOfTest.swift | 56 - .../Matchers/ThrowAssertionTest.swift | 62 - .../NimbleTests/Matchers/ThrowErrorTest.swift | 154 - .../NimbleTests/Matchers/ToSucceedTest.swift | 36 - .../Tests/NimbleTests/SynchronousTests.swift | 128 - .../NimbleTests/UserDescriptionTest.swift | 64 - .../Tests/NimbleTests/objc/NimbleSpecHelper.h | 15 - .../Tests/NimbleTests/objc/ObjCAllPassTest.m | 38 - .../Tests/NimbleTests/objc/ObjCAsyncTest.m | 55 - .../NimbleTests/objc/ObjCBeAnInstanceOfTest.m | 34 - .../NimbleTests/objc/ObjCBeCloseToTest.m | 47 - .../Tests/NimbleTests/objc/ObjCBeEmptyTest.m | 89 - .../Tests/NimbleTests/objc/ObjCBeFalseTest.m | 46 - .../Tests/NimbleTests/objc/ObjCBeFalsyTest.m | 58 - .../objc/ObjCBeGreaterThanOrEqualToTest.m | 44 - .../NimbleTests/objc/ObjCBeGreaterThanTest.m | 42 - .../NimbleTests/objc/ObjCBeIdenticalToTest.m | 68 - .../Tests/NimbleTests/objc/ObjCBeKindOfTest.m | 34 - .../objc/ObjCBeLessThanOrEqualToTest.m | 43 - .../NimbleTests/objc/ObjCBeLessThanTest.m | 42 - .../Tests/NimbleTests/objc/ObjCBeNilTest.m | 24 - .../Tests/NimbleTests/objc/ObjCBeTrueTest.m | 47 - .../Tests/NimbleTests/objc/ObjCBeTruthyTest.m | 55 - .../NimbleTests/objc/ObjCBeginWithTest.m | 37 - .../objc/ObjCContainElementSatisfying.m | 64 - .../Tests/NimbleTests/objc/ObjCContainTest.m | 67 - .../Tests/NimbleTests/objc/ObjCEndWithTest.m | 37 - .../Tests/NimbleTests/objc/ObjCEqualTest.m | 94 - .../Tests/NimbleTests/objc/ObjCHaveCount.m | 174 -- .../Tests/NimbleTests/objc/ObjCMatchTest.m | 33 - .../NimbleTests/objc/ObjCRaiseExceptionTest.m | 178 -- .../NimbleTests/objc/ObjCSatisfyAnyOfTest.m | 32 - .../Tests/NimbleTests/objc/ObjCSyncTest.m | 21 - .../objc/ObjCUserDescriptionTest.m | 52 - .../NimbleTests/objc/ObjcStringersTest.m | 31 - Carthage/Checkouts/Nimble/script/release | 186 -- Carthage/Checkouts/Nimble/test | 156 - Carthage/Checkouts/Quick/.Package.test.swift | 39 - .../Checkouts/Quick/.github/ISSUE_TEMPLATE | 36 - .../Quick/.github/PULL_REQUEST_TEMPLATE | 14 - Carthage/Checkouts/Quick/.gitignore | 65 - Carthage/Checkouts/Quick/.gitmodules | 3 - Carthage/Checkouts/Quick/.hound.yml | 2 - Carthage/Checkouts/Quick/.swift-version | 1 - Carthage/Checkouts/Quick/.swiftlint.yml | 9 - Carthage/Checkouts/Quick/.travis.yml | 34 - Carthage/Checkouts/Quick/CODE_OF_CONDUCT.md | 74 - Carthage/Checkouts/Quick/CONTRIBUTING.md | 111 - Carthage/Checkouts/Quick/Dangerfile | 53 - .../Checkouts/Quick/Documentation/README.md | 6 - .../Documentation/en-us/ArrangeActAssert.md | 220 -- .../Documentation/en-us/BehavioralTesting.md | 87 - .../Documentation/en-us/ConfiguringQuick.md | 103 - .../en-us/InstallingFileTemplates.md | 28 - .../Documentation/en-us/InstallingQuick.md | 157 - .../Documentation/en-us/MoreResources.md | 28 - .../Documentation/en-us/NimbleAssertions.md | 106 - .../en-us/QuickExamplesAndGroups.md | 491 --- .../Documentation/en-us/QuickInObjectiveC.md | 57 - .../Quick/Documentation/en-us/README.md | 46 - .../en-us/SettingUpYourXcodeProject.md | 89 - .../Documentation/en-us/SharedExamples.md | 125 - .../en-us/TestUsingTestDoubles.md | 129 - .../Quick/Documentation/en-us/TestingApps.md | 179 -- .../Documentation/en-us/Troubleshooting.md | 9 - .../Documentation/ja/ArrangeActAssert.md | 212 -- .../Documentation/ja/BehavioralTesting.md | 81 - .../Documentation/ja/ConfiguringQuick.md | 101 - .../ja/InstallingFileTemplates.md | 26 - .../Quick/Documentation/ja/InstallingQuick.md | 152 - .../Quick/Documentation/ja/MoreResources.md | 27 - .../Documentation/ja/NimbleAssertions.md | 100 - .../ja/QuickExamplesAndGroups.md | 477 --- .../Documentation/ja/QuickInObjectiveC.md | 48 - .../Quick/Documentation/ja/README.md | 50 - .../ja/SettingUpYourXcodeProject.md | 77 - .../Quick/Documentation/ja/SharedExamples.md | 122 - .../Documentation/ja/TestUsingTestDoubles.md | 138 - .../Quick/Documentation/ja/TestingApps.md | 174 -- .../Quick/Documentation/ja/Troubleshooting.md | 9 - .../Documentation/pt-br/BehavioralTesting.md | 78 - .../Quick/Documentation/pt-br/README.md | 39 - .../Documentation/pt-br/SharedExamples.md | 116 - .../Documentation/zh-cn/ArrangeActAssert.md | 205 -- .../Documentation/zh-cn/BehavioralTesting.md | 75 - .../Documentation/zh-cn/ConfiguringQuick.md | 102 - .../zh-cn/InstallingFileTemplates.md | 26 - .../Documentation/zh-cn/InstallingQuick.md | 157 - .../Documentation/zh-cn/MoreResources.md | 23 - .../Documentation/zh-cn/NimbleAssertions.md | 100 - .../zh-cn/QuickExamplesAndGroups.md | 461 --- .../Documentation/zh-cn/QuickInObjectiveC.md | 52 - .../Quick/Documentation/zh-cn/README.md | 18 - .../zh-cn/SettingUpYourXcodeProject.md | 75 - .../Documentation/zh-cn/SharedExamples.md | 113 - .../zh-cn/TestUsingTestDoubles.md | 131 - .../Quick/Documentation/zh-cn/TestingApps.md | 174 -- .../Documentation/zh-cn/Troubleshooting.md | 10 - .../Externals/Nimble/.github/ISSUE_TEMPLATE | 36 - .../Nimble/.github/PULL_REQUEST_TEMPLATE | 14 - .../Quick/Externals/Nimble/.gitignore | 21 - .../Quick/Externals/Nimble/.hound.yml | 2 - .../Quick/Externals/Nimble/.swift-version | 1 - .../Quick/Externals/Nimble/.swiftlint.yml | 16 - .../Quick/Externals/Nimble/.travis.yml | 25 - .../Quick/Externals/Nimble/CONTRIBUTING.md | 120 - .../Checkouts/Quick/Externals/Nimble/Gemfile | 4 - .../Quick/Externals/Nimble/Gemfile.lock | 69 - .../Checkouts/Quick/Externals/Nimble/LICENSE | 201 -- .../Quick/Externals/Nimble/Nimble.podspec | 47 - .../Nimble/Nimble.xcodeproj/project.pbxproj | 2171 -------------- .../contents.xcworkspacedata | 7 - .../xcschemes/Nimble-iOS.xcscheme | 82 - .../xcschemes/Nimble-macOS.xcscheme | 82 - .../xcschemes/Nimble-tvOS.xcscheme | 99 - .../Quick/Externals/Nimble/Package.swift | 10 - .../Quick/Externals/Nimble/README.md | 1443 --------- .../CwlCatchException/.gitignore | 3 - .../CwlCatchException/CwlCatchException.h | 30 - .../CwlCatchException/CwlCatchException.m | 35 - .../CwlCatchException/CwlCatchException.swift | 32 - .../CwlCatchException/Info.plist | 28 - .../CwlBadInstructionException.swift | 76 - .../CwlCatchBadInstruction.h | 61 - .../CwlCatchBadInstruction.m | 50 - .../CwlCatchBadInstruction.swift | 193 -- .../CwlCatchBadInstructionPOSIX.swift | 100 - .../CwlDarwinDefinitions.swift | 63 - .../CwlPreconditionTesting/Info.plist | 28 - .../CwlPreconditionTesting/mach_excServer.c | 537 ---- .../CwlPreconditionTesting/mach_excServer.h | 298 -- .../Lib/CwlPreconditionTesting/README.md | 80 - .../Nimble/Adapters/AdapterProtocols.swift | 17 - .../Nimble/Adapters/AssertionDispatcher.swift | 19 - .../Nimble/Adapters/AssertionRecorder.swift | 100 - .../Nimble/Adapters/NMBExpectation.swift | 131 - .../Nimble/Adapters/NMBObjCMatcher.swift | 81 - .../Nimble/Adapters/NimbleEnvironment.swift | 45 - .../Nimble/Adapters/NimbleXCTestHandler.swift | 76 - .../NonObjectiveC/ExceptionCapture.swift | 31 - .../Nimble/Sources/Nimble/DSL+Wait.swift | 98 - .../Externals/Nimble/Sources/Nimble/DSL.swift | 64 - .../Nimble/Sources/Nimble/Expectation.swift | 71 - .../Nimble/Sources/Nimble/Expression.swift | 90 - .../Sources/Nimble/FailureMessage.swift | 65 - .../Nimble/Sources/Nimble/Info.plist | 28 - .../Sources/Nimble/Matchers/AllPass.swift | 94 - .../Nimble/Matchers/AsyncMatcherWrapper.swift | 141 - .../Sources/Nimble/Matchers/BeAKindOf.swift | 48 - .../Nimble/Matchers/BeAnInstanceOf.swift | 50 - .../Sources/Nimble/Matchers/BeCloseTo.swift | 122 - .../Sources/Nimble/Matchers/BeEmpty.swift | 91 - .../Nimble/Matchers/BeGreaterThan.swift | 41 - .../Matchers/BeGreaterThanOrEqualTo.swift | 44 - .../Nimble/Matchers/BeIdenticalTo.swift | 46 - .../Sources/Nimble/Matchers/BeLessThan.swift | 41 - .../Nimble/Matchers/BeLessThanOrEqual.swift | 42 - .../Sources/Nimble/Matchers/BeLogical.swift | 173 -- .../Sources/Nimble/Matchers/BeNil.swift | 20 - .../Sources/Nimble/Matchers/BeVoid.swift | 18 - .../Sources/Nimble/Matchers/BeginWith.swift | 63 - .../Sources/Nimble/Matchers/Contain.swift | 94 - .../Matchers/ContainElementSatisfying.swift | 59 - .../Sources/Nimble/Matchers/EndWith.swift | 72 - .../Sources/Nimble/Matchers/Equal.swift | 181 -- .../Sources/Nimble/Matchers/HaveCount.swift | 57 - .../Sources/Nimble/Matchers/Match.swift | 30 - .../Sources/Nimble/Matchers/MatchError.swift | 26 - .../Sources/Nimble/Matchers/MatcherFunc.swift | 69 - .../Nimble/Matchers/MatcherProtocols.swift | 153 - .../Nimble/Matchers/PostNotification.swift | 70 - .../Nimble/Matchers/RaisesException.swift | 183 -- .../Nimble/Matchers/SatisfyAnyOf.swift | 62 - .../Nimble/Matchers/ThrowAssertion.swift | 55 - .../Sources/Nimble/Matchers/ThrowError.swift | 53 - .../Externals/Nimble/Sources/Nimble/Nimble.h | 14 - .../Nimble/Sources/Nimble/Utils/Async.swift | 361 --- .../Nimble/Sources/Nimble/Utils/Errors.swift | 141 - .../Sources/Nimble/Utils/Functional.swift | 12 - .../Sources/Nimble/Utils/SourceLocation.swift | 31 - .../Sources/Nimble/Utils/Stringers.swift | 212 -- .../NimbleObjectiveC/CurrentTestCaseTracker.h | 9 - .../Nimble/Sources/NimbleObjectiveC/DSL.h | 381 --- .../Nimble/Sources/NimbleObjectiveC/DSL.m | 160 - .../NimbleObjectiveC/NMBExceptionCapture.h | 11 - .../NimbleObjectiveC/NMBExceptionCapture.m | 35 - .../Sources/NimbleObjectiveC/NMBStringify.h | 18 - .../Sources/NimbleObjectiveC/NMBStringify.m | 6 - .../XCTestObservationCenter+Register.m | 78 - .../Externals/Nimble/Tests/LinuxMain.swift | 37 - .../Tests/NimbleTests/AsynchronousTest.swift | 222 -- .../Helpers/ObjectWithLazyProperty.swift | 7 - .../Helpers/XCTestCaseProvider.swift | 52 - .../Tests/NimbleTests/Helpers/utils.swift | 98 - .../Nimble/Tests/NimbleTests/Info.plist | 24 - .../Tests/NimbleTests/LinuxSupport.swift | 9 - .../NimbleTests/Matchers/AllPassTest.swift | 126 - .../NimbleTests/Matchers/BeAKindOfTest.swift | 89 - .../Matchers/BeAnInstanceOfTest.swift | 79 - .../NimbleTests/Matchers/BeCloseToTest.swift | 160 - .../NimbleTests/Matchers/BeEmptyTest.swift | 82 - .../Matchers/BeGreaterThanOrEqualToTest.swift | 50 - .../Matchers/BeGreaterThanTest.swift | 50 - .../Matchers/BeIdenticalToObjectTest.swift | 64 - .../Matchers/BeIdenticalToTest.swift | 68 - .../Matchers/BeLessThanOrEqualToTest.swift | 52 - .../NimbleTests/Matchers/BeLessThanTest.swift | 57 - .../NimbleTests/Matchers/BeLogicalTest.swift | 270 -- .../NimbleTests/Matchers/BeNilTest.swift | 28 - .../NimbleTests/Matchers/BeVoidTest.swift | 32 - .../NimbleTests/Matchers/BeginWithTest.swift | 53 - .../ContainElementSatisfyingTest.swift | 86 - .../NimbleTests/Matchers/ContainTest.swift | 95 - .../NimbleTests/Matchers/EndWithTest.swift | 56 - .../NimbleTests/Matchers/EqualTest.swift | 274 -- .../NimbleTests/Matchers/HaveCountTest.swift | 56 - .../NimbleTests/Matchers/MatchErrorTest.swift | 83 - .../NimbleTests/Matchers/MatchTest.swift | 46 - .../Matchers/PostNotificationTest.swift | 91 - .../Matchers/RaisesExceptionTest.swift | 166 -- .../Matchers/SatisfyAnyOfTest.swift | 56 - .../Matchers/ThrowAssertionTest.swift | 62 - .../NimbleTests/Matchers/ThrowErrorTest.swift | 154 - .../Tests/NimbleTests/SynchronousTests.swift | 128 - .../NimbleTests/UserDescriptionTest.swift | 64 - .../Tests/NimbleTests/objc/NimbleSpecHelper.h | 15 - .../Tests/NimbleTests/objc/ObjCAllPassTest.m | 38 - .../Tests/NimbleTests/objc/ObjCAsyncTest.m | 55 - .../NimbleTests/objc/ObjCBeAnInstanceOfTest.m | 34 - .../NimbleTests/objc/ObjCBeCloseToTest.m | 47 - .../Tests/NimbleTests/objc/ObjCBeEmptyTest.m | 89 - .../Tests/NimbleTests/objc/ObjCBeFalseTest.m | 46 - .../Tests/NimbleTests/objc/ObjCBeFalsyTest.m | 58 - .../objc/ObjCBeGreaterThanOrEqualToTest.m | 42 - .../NimbleTests/objc/ObjCBeGreaterThanTest.m | 41 - .../NimbleTests/objc/ObjCBeIdenticalToTest.m | 68 - .../Tests/NimbleTests/objc/ObjCBeKindOfTest.m | 34 - .../objc/ObjCBeLessThanOrEqualToTest.m | 43 - .../NimbleTests/objc/ObjCBeLessThanTest.m | 42 - .../Tests/NimbleTests/objc/ObjCBeNilTest.m | 24 - .../Tests/NimbleTests/objc/ObjCBeTrueTest.m | 47 - .../Tests/NimbleTests/objc/ObjCBeTruthyTest.m | 55 - .../NimbleTests/objc/ObjCBeginWithTest.m | 37 - .../objc/ObjCContainElementSatisfying.m | 64 - .../Tests/NimbleTests/objc/ObjCContainTest.m | 67 - .../Tests/NimbleTests/objc/ObjCEndWithTest.m | 37 - .../Tests/NimbleTests/objc/ObjCEqualTest.m | 94 - .../Tests/NimbleTests/objc/ObjCHaveCount.m | 174 -- .../Tests/NimbleTests/objc/ObjCMatchTest.m | 33 - .../NimbleTests/objc/ObjCRaiseExceptionTest.m | 178 -- .../NimbleTests/objc/ObjCSatisfyAnyOfTest.m | 32 - .../Tests/NimbleTests/objc/ObjCSyncTest.m | 21 - .../objc/ObjCUserDescriptionTest.m | 52 - .../NimbleTests/objc/ObjcStringersTest.m | 31 - .../Quick/Externals/Nimble/script/release | 186 -- .../Checkouts/Quick/Externals/Nimble/test | 142 - Carthage/Checkouts/Quick/Gemfile | 5 - Carthage/Checkouts/Quick/Gemfile.lock | 113 - Carthage/Checkouts/Quick/LICENSE | 201 -- Carthage/Checkouts/Quick/Package.swift | 33 - .../Objective-C/___FILEBASENAME___.h | 13 - .../Objective-C/___FILEBASENAME___.m | 17 - .../Swift/___FILEBASENAME___.swift | 15 - .../TemplateIcon.icns | Bin 529473 -> 0 bytes .../TemplateInfo.plist | 73 - .../Objective-C/___FILEBASENAME___.m | 14 - .../Swift/___FILEBASENAME___.swift | 16 - .../TemplateIcon.icns | Bin 529473 -> 0 bytes .../TemplateInfo.plist | 73 - Carthage/Checkouts/Quick/Quick.podspec | 38 - .../Quick/Quick.xcodeproj/project.pbxproj | 2649 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/xcschemes/Quick-iOS.xcscheme | 119 - .../xcschemes/Quick-macOS.xcscheme | 119 - .../xcschemes/Quick-tvOS.xcscheme | 119 - .../contents.xcworkspacedata | 10 - Carthage/Checkouts/Quick/README.md | 88 - Carthage/Checkouts/Quick/Rakefile | 68 - .../Quick/Sources/Quick/Callsite.swift | 32 - .../Quick/Configuration/Configuration.swift | 161 - .../Configuration/QuickConfiguration.swift | 39 - .../Quick/Sources/Quick/DSL/DSL.swift | 241 -- .../Quick/Sources/Quick/DSL/World+DSL.swift | 175 -- .../Quick/Sources/Quick/ErrorUtility.swift | 10 - .../Quick/Sources/Quick/Example.swift | 113 - .../Quick/Sources/Quick/ExampleGroup.swift | 103 - .../Quick/Sources/Quick/ExampleMetadata.swift | 24 - .../Quick/Sources/Quick/Filter.swift | 31 - .../Quick/Sources/Quick/Hooks/Closures.swift | 35 - .../Sources/Quick/Hooks/ExampleHooks.swift | 42 - .../Sources/Quick/Hooks/HooksPhase.swift | 11 - .../Sources/Quick/Hooks/SuiteHooks.swift | 32 - .../Checkouts/Quick/Sources/Quick/Info.plist | 28 - .../Quick/NSBundle+CurrentTestBundle.swift | 25 - .../NSString+C99ExtendedIdentifier.swift | 33 - .../Quick/Sources/Quick/QuickMain.swift | 38 - .../Quick/QuickSelectedTestSuiteBuilder.swift | 74 - .../Quick/Sources/Quick/QuickSpec.swift | 122 - .../Quick/Sources/Quick/QuickTestSuite.swift | 52 - .../Quick/Sources/Quick/URL+FileName.swift | 12 - .../Checkouts/Quick/Sources/Quick/World.swift | 233 -- .../Configuration/QuickConfiguration.h | 30 - .../Configuration/QuickConfiguration.m | 83 - .../Sources/QuickObjectiveC/DSL/QCKDSL.h | 234 -- .../Sources/QuickObjectiveC/DSL/QCKDSL.m | 79 - .../Sources/QuickObjectiveC/DSL/World+DSL.h | 20 - .../NSString+QCKSelectorName.h | 17 - .../NSString+QCKSelectorName.m | 37 - .../Quick/Sources/QuickObjectiveC/Quick.h | 11 - .../Quick/Sources/QuickObjectiveC/QuickSpec.h | 50 - .../Quick/Sources/QuickObjectiveC/QuickSpec.m | 141 - .../Quick/Sources/QuickObjectiveC/World.h | 18 - .../XCTestSuite+QuickTestSuiteBuilder.m | 40 - .../Sources/QuickSpecBase/QuickSpecBase.m | 55 - .../QuickSpecBase/include/QuickSpecBase.h | 11 - .../Checkouts/Quick/Tests/LinuxMain.swift | 45 - .../AfterSuiteTests+ObjC.m | 32 - .../AfterSuiteTests.swift | 26 - .../QuickAfterSuiteTests/Info.plist | 24 - .../QuickFocusedTests/FocusedTests+ObjC.m | 56 - .../QuickFocusedTests/FocusedTests.swift | 59 - .../QuickTests/QuickFocusedTests/Info.plist | 24 - .../QuickTestHelpers/SpecRunner.swift | 30 - .../QuickTests/QuickTestHelpers/TestRun.swift | 9 - .../QuickTestHelpers/XCTestCaseProvider.swift | 52 - ...s_SharedExamplesTests_SharedExamples.swift | 20 - .../FunctionalTests/AfterEachTests.swift | 93 - .../FunctionalTests/BeforeEachTests.swift | 76 - .../FunctionalTests/BeforeSuiteTests.swift | 39 - .../BundleModuleNameTests.swift | 30 - .../AfterEach/Configuration+AfterEach.swift | 11 - .../Configuration+AfterEachTests.swift | 31 - .../BeforeEach/Configuration+BeforeEach.swift | 11 - .../Configuration+BeforeEachTests.swift | 28 - .../FunctionalTests/ContextTests.swift | 20 - .../CrossReferencingSpecs.swift | 19 - .../FunctionalTests/DescribeTests.swift | 34 - .../QuickTests/FunctionalTests/ItTests.swift | 127 - .../ObjC/AfterEachTests+ObjC.m | 81 - .../ObjC/BeforeEachTests+ObjC.m | 68 - .../ObjC/BeforeSuiteTests+ObjC.m | 39 - .../FunctionalTests/ObjC/FailureTests+ObjC.m | 61 - .../ObjC/FailureUsingXCTAssertTests+ObjC.m | 55 - .../FunctionalTests/ObjC/ItTests+ObjC.m | 42 - .../FunctionalTests/ObjC/PendingTests+ObjC.m | 60 - .../SharedExamples+BeforeEachTests+ObjC.m | 59 - .../ObjC/SharedExamplesTests+ObjC.m | 65 - .../FunctionalTests/PendingTests.swift | 54 - .../SharedExamples+BeforeEachTests.swift | 48 - .../FunctionalTests/SharedExamplesTests.swift | 54 - .../QuickTests/Helpers/QCKSpecRunner.h | 22 - .../QuickTests/Helpers/QCKSpecRunner.m | 33 - .../Helpers/QuickSpec+QuickSpec_MethodList.h | 11 - .../Helpers/QuickSpec+QuickSpec_MethodList.m | 31 - .../Helpers/QuickTestsBridgingHeader.h | 2 - ...tObservationCenter+QCKSuspendObservation.h | 20 - ...tObservationCenter+QCKSuspendObservation.m | 54 - .../Tests/QuickTests/QuickTests/Info.plist | 24 - .../QuickTests/QuickConfigurationTests.m | 12 - Carthage/Checkouts/Quick/script/release | 182 -- .../Quick/script/travis-install-linux | 5 - .../Quick/script/travis-install-macos | 4 - .../Quick/script/travis-script-linux | 4 - .../Quick/script/travis-script-macos | 10 - Carthage/Checkouts/ReSwift/.gitignore | 64 - Carthage/Checkouts/ReSwift/.hound.yml | 3 - Carthage/Checkouts/ReSwift/.jazzy.json | 70 - .../ReSwift/.scripts/doc-preprocessor | 115 - .../Checkouts/ReSwift/.scripts/generate-docs | 84 - .../ReSwift/.scripts/update-gh-pages | 82 - Carthage/Checkouts/ReSwift/.swiftlint.yml | 7 - Carthage/Checkouts/ReSwift/.travis.yml | 60 - .../ReSwift/BuildPhases/run-swiftlint | 11 - Carthage/Checkouts/ReSwift/CHANGELOG.md | 172 -- Carthage/Checkouts/ReSwift/CONTRIBUTING.md | 122 - Carthage/Checkouts/ReSwift/Cartfile.resolved | 0 Carthage/Checkouts/ReSwift/Docs/Actions.md | 9 - .../ReSwift/Docs/Getting Started Guide.md | 270 -- Carthage/Checkouts/ReSwift/Docs/Reducers.md | 1 - Carthage/Checkouts/ReSwift/Docs/State.md | 17 - Carthage/Checkouts/ReSwift/Docs/Stores.md | 9 - Carthage/Checkouts/ReSwift/Docs/Utilities.md | 0 .../ReSwift/Docs/img/reswift_concept.graffle | Bin 2815 -> 0 bytes .../ReSwift/Docs/img/reswift_concept.png | Bin 170143 -> 0 bytes .../ReSwift/Docs/img/reswift_detail.png | Bin 175524 -> 0 bytes .../Checkouts/ReSwift/Docs/img/timetravel.gif | Bin 1738027 -> 0 bytes .../jazzy-theme/assets/css/highlight.css.scss | 63 - .../jazzy-theme/assets/css/jazzy.css.scss | 580 ---- .../Docs/jazzy-theme/assets/img/carat.png | Bin 274 -> 0 bytes .../Docs/jazzy-theme/assets/img/dash.png | Bin 1338 -> 0 bytes .../Docs/jazzy-theme/assets/img/gh.png | Bin 1571 -> 0 bytes .../Docs/jazzy-theme/assets/js/jazzy.js | 20 - .../Docs/jazzy-theme/assets/js/jquery.min.js | 4 - .../Docs/jazzy-theme/templates/doc.mustache | 52 - .../jazzy-theme/templates/footer.mustache | 4 - .../jazzy-theme/templates/header.mustache | 26 - .../Docs/jazzy-theme/templates/nav.mustache | 16 - .../jazzy-theme/templates/parameter.mustache | 12 - .../Docs/jazzy-theme/templates/task.mustache | 86 - .../Docs/jazzy-theme/templates/tasks.mustache | 9 - .../ReSwift/Docs/templates/heading.md | 4 - .../Checkouts/ReSwift/Docs/templates/toc.md | 25 - Carthage/Checkouts/ReSwift/LICENSE.md | 8 - Carthage/Checkouts/ReSwift/Package.swift | 10 - Carthage/Checkouts/ReSwift/Podfile | 8 - Carthage/Checkouts/ReSwift/Podfile.lock | 12 - Carthage/Checkouts/ReSwift/README.md | 250 -- Carthage/Checkouts/ReSwift/ReSwift.podspec | 21 - .../ReSwift/ReSwift.xcodeproj/project.pbxproj | 1323 -------- .../contents.xcworkspacedata | 7 - .../xcschemes/ReSwift-iOS.xcscheme | 100 - .../xcschemes/ReSwift-macOS.xcscheme | 100 - .../xcschemes/ReSwift-tvOS.xcscheme | 100 - .../xcschemes/ReSwift-watchOS.xcscheme | 81 - .../contents.xcworkspacedata | 10 - .../ReSwift/ReSwift/CoreTypes/Action.swift | 120 - .../CoreTypes/DispatchingStoreType.swift | 24 - .../ReSwift/CoreTypes/Middleware.swift | 13 - .../ReSwift/ReSwift/CoreTypes/Reducer.swift | 12 - .../ReSwift/ReSwift/CoreTypes/State.swift | 11 - .../ReSwift/ReSwift/CoreTypes/Store.swift | 172 -- .../ReSwift/CoreTypes/StoreSubscriber.swift | 29 - .../ReSwift/ReSwift/CoreTypes/StoreType.swift | 155 - .../ReSwift/CoreTypes/Subscription.swift | 145 - Carthage/Checkouts/ReSwift/ReSwift/Info.plist | 26 - Carthage/Checkouts/ReSwift/ReSwift/ReSwift.h | 17 - .../ReSwift/ReSwift/Utils/Assertions.swift | 32 - .../ReSwift/ReSwift/Utils/Coding.swift | 14 - .../ReSwift/ReSwift/Utils/TypeHelper.swift | 36 - .../Checkouts/ReSwift/ReSwiftTests/Info.plist | 24 - .../ReSwiftTests/StandardActionTests.swift | 189 -- .../ReSwiftTests/StoreDispatchTests.swift | 126 - .../ReSwiftTests/StoreMiddlewareTests.swift | 128 - .../ReSwiftTests/StoreSubscriberTests.swift | 215 -- .../ReSwiftTests/StoreSubscriptionTests.swift | 168 -- .../ReSwift/ReSwiftTests/StoreTests.swift | 81 - .../ReSwift/ReSwiftTests/TestFakes.swift | 188 -- .../ReSwiftTests/TypeHelperTests.swift | 67 - .../ReSwiftTests/XCTest+Assertions.swift | 79 - .../ReSwiftTests/XCTest+Compatibility.swift | 24 - .../ReSwift/SwiftLintIntegration/Info.plist | 22 - .../SwiftLintIntegration.swift | 15 - Carthage/Checkouts/ReSwiftRouter/.gitignore | 57 - .../Checkouts/ReSwiftRouter/.swift-version | 1 - Carthage/Checkouts/ReSwiftRouter/.travis.yml | 40 - Carthage/Checkouts/ReSwiftRouter/Cartfile | 1 - .../Checkouts/ReSwiftRouter/Cartfile.private | 2 - .../Checkouts/ReSwiftRouter/Cartfile.resolved | 3 - .../Carthage/Checkouts/Nimble/.gitignore | 21 - .../Carthage/Checkouts/Nimble/.swift-version | 1 - .../Carthage/Checkouts/Nimble/.travis.yml | 25 - .../Carthage/Checkouts/Nimble/CONTRIBUTING.md | 120 - .../Carthage/Checkouts/Nimble/Gemfile | 4 - .../Carthage/Checkouts/Nimble/Gemfile.lock | 69 - .../Carthage/Checkouts/Nimble/LICENSE.md | 201 -- .../Carthage/Checkouts/Nimble/Nimble.podspec | 47 - .../Nimble/Nimble.xcodeproj/project.pbxproj | 2102 ------------- .../contents.xcworkspacedata | 7 - .../xcschemes/Nimble-iOS.xcscheme | 82 - .../xcschemes/Nimble-macOS.xcscheme | 82 - .../xcschemes/Nimble-tvOS.xcscheme | 99 - .../Carthage/Checkouts/Nimble/Package.swift | 10 - .../Carthage/Checkouts/Nimble/README.md | 1340 --------- .../CwlCatchException/.gitignore | 3 - .../CwlCatchException/CwlCatchException.h | 30 - .../CwlCatchException/CwlCatchException.m | 35 - .../CwlCatchException/CwlCatchException.swift | 32 - .../CwlCatchException/Info.plist | 28 - .../CwlBadInstructionException.swift | 76 - .../CwlCatchBadInstruction.h | 61 - .../CwlCatchBadInstruction.m | 50 - .../CwlCatchBadInstruction.swift | 194 -- .../CwlCatchBadInstructionPOSIX.swift | 100 - .../CwlDarwinDefinitions.swift | 63 - .../CwlPreconditionTesting/Info.plist | 28 - .../CwlPreconditionTesting/mach_excServer.c | 537 ---- .../CwlPreconditionTesting/mach_excServer.h | 298 -- .../Lib/CwlPreconditionTesting/README.md | 80 - .../Nimble/Adapters/AdapterProtocols.swift | 17 - .../Nimble/Adapters/AssertionDispatcher.swift | 20 - .../Nimble/Adapters/AssertionRecorder.swift | 100 - .../Nimble/Adapters/NMBExpectation.swift | 131 - .../Nimble/Adapters/NMBObjCMatcher.swift | 81 - .../Nimble/Adapters/NimbleEnvironment.swift | 45 - .../Nimble/Adapters/NimbleXCTestHandler.swift | 77 - .../NonObjectiveC/ExceptionCapture.swift | 31 - .../Nimble/Sources/Nimble/DSL+Wait.swift | 98 - .../Checkouts/Nimble/Sources/Nimble/DSL.swift | 64 - .../Nimble/Sources/Nimble/Expectation.swift | 76 - .../Nimble/Sources/Nimble/Expression.swift | 90 - .../Sources/Nimble/FailureMessage.swift | 65 - .../Nimble/Sources/Nimble/Info.plist | 28 - .../Sources/Nimble/Matchers/AllPass.swift | 100 - .../Nimble/Matchers/AsyncMatcherWrapper.swift | 146 - .../Sources/Nimble/Matchers/BeAKindOf.swift | 38 - .../Nimble/Matchers/BeAnInstanceOf.swift | 40 - .../Sources/Nimble/Matchers/BeCloseTo.swift | 122 - .../Sources/Nimble/Matchers/BeEmpty.swift | 92 - .../Nimble/Matchers/BeGreaterThan.swift | 42 - .../Matchers/BeGreaterThanOrEqualTo.swift | 44 - .../Nimble/Matchers/BeIdenticalTo.swift | 47 - .../Sources/Nimble/Matchers/BeLessThan.swift | 41 - .../Nimble/Matchers/BeLessThanOrEqual.swift | 42 - .../Sources/Nimble/Matchers/BeLogical.swift | 173 -- .../Sources/Nimble/Matchers/BeNil.swift | 20 - .../Sources/Nimble/Matchers/BeVoid.swift | 18 - .../Sources/Nimble/Matchers/BeginWith.swift | 65 - .../Sources/Nimble/Matchers/Contain.swift | 96 - .../Sources/Nimble/Matchers/EndWith.swift | 75 - .../Sources/Nimble/Matchers/Equal.swift | 181 -- .../Sources/Nimble/Matchers/HaveCount.swift | 57 - .../Sources/Nimble/Matchers/Match.swift | 30 - .../Sources/Nimble/Matchers/MatchError.swift | 26 - .../Sources/Nimble/Matchers/MatcherFunc.swift | 69 - .../Nimble/Matchers/MatcherProtocols.swift | 153 - .../Nimble/Matchers/PostNotification.swift | 70 - .../Nimble/Matchers/RaisesException.swift | 183 -- .../Nimble/Matchers/SatisfyAnyOf.swift | 65 - .../Nimble/Matchers/ThrowAssertion.swift | 55 - .../Sources/Nimble/Matchers/ThrowError.swift | 53 - .../Checkouts/Nimble/Sources/Nimble/Nimble.h | 14 - .../Sources/Nimble/ObjCExpectation.swift | 131 - .../Nimble/Sources/Nimble/Utils/Async.swift | 361 --- .../Nimble/Sources/Nimble/Utils/Errors.swift | 142 - .../Nimble/Utils/ExceptionCapture.swift | 31 - .../Sources/Nimble/Utils/Functional.swift | 12 - .../Sources/Nimble/Utils/SourceLocation.swift | 31 - .../Sources/Nimble/Utils/Stringers.swift | 213 -- .../Nimble/Wrappers/AsyncMatcherWrapper.swift | 140 - .../Sources/Nimble/Wrappers/MatcherFunc.swift | 95 - .../Sources/Nimble/Wrappers/ObjCMatcher.swift | 81 - .../Nimble/objc/CurrentTestCaseTracker.m | 18 - .../Nimble/Sources/Nimble/objc/DSL.h | 145 - .../Nimble/Sources/Nimble/objc/DSL.m | 150 - .../Sources/Nimble/objc/NMBExceptionCapture.h | 11 - .../Sources/Nimble/objc/NMBExceptionCapture.m | 35 - .../NimbleObjectiveC/CurrentTestCaseTracker.h | 9 - .../Nimble/Sources/NimbleObjectiveC/DSL.h | 377 --- .../Nimble/Sources/NimbleObjectiveC/DSL.m | 156 - .../NimbleObjectiveC/NMBExceptionCapture.h | 11 - .../NimbleObjectiveC/NMBExceptionCapture.m | 35 - .../Sources/NimbleObjectiveC/NMBStringify.h | 18 - .../Sources/NimbleObjectiveC/NMBStringify.m | 6 - .../XCTestObservationCenter+Register.m | 78 - .../Checkouts/Nimble/Tests/LinuxMain.swift | 37 - .../Tests/NimbleTests/AsynchronousTest.swift | 222 -- .../Helpers/ObjectWithLazyProperty.swift | 7 - .../Helpers/XCTestCaseProvider.swift | 52 - .../Tests/NimbleTests/Helpers/utils.swift | 98 - .../Nimble/Tests/NimbleTests/Info.plist | 24 - .../Tests/NimbleTests/LinuxSupport.swift | 9 - .../NimbleTests/Matchers/AllPassTest.swift | 126 - .../NimbleTests/Matchers/BeAKindOfTest.swift | 56 - .../Matchers/BeAnInstanceOfTest.swift | 58 - .../NimbleTests/Matchers/BeCloseToTest.swift | 160 - .../NimbleTests/Matchers/BeEmptyTest.swift | 82 - .../Matchers/BeGreaterThanOrEqualToTest.swift | 50 - .../Matchers/BeGreaterThanTest.swift | 50 - .../Matchers/BeIdenticalToObjectTest.swift | 64 - .../Matchers/BeIdenticalToTest.swift | 68 - .../Matchers/BeLessThanOrEqualToTest.swift | 52 - .../NimbleTests/Matchers/BeLessThanTest.swift | 57 - .../NimbleTests/Matchers/BeLogicalTest.swift | 270 -- .../NimbleTests/Matchers/BeNilTest.swift | 28 - .../NimbleTests/Matchers/BeVoidTest.swift | 32 - .../NimbleTests/Matchers/BeginWithTest.swift | 53 - .../NimbleTests/Matchers/ContainTest.swift | 95 - .../NimbleTests/Matchers/EndWithTest.swift | 56 - .../NimbleTests/Matchers/EqualTest.swift | 274 -- .../NimbleTests/Matchers/HaveCountTest.swift | 56 - .../NimbleTests/Matchers/MatchErrorTest.swift | 83 - .../NimbleTests/Matchers/MatchTest.swift | 46 - .../Matchers/PostNotificationTest.swift | 91 - .../Matchers/RaisesExceptionTest.swift | 166 -- .../Matchers/SatisfyAnyOfTest.swift | 56 - .../Matchers/ThrowAssertionTest.swift | 62 - .../NimbleTests/Matchers/ThrowErrorTest.swift | 154 - .../Tests/NimbleTests/SynchronousTests.swift | 129 - .../NimbleTests/UserDescriptionTest.swift | 64 - .../Tests/NimbleTests/objc/NimbleSpecHelper.h | 15 - .../Tests/NimbleTests/objc/ObjCAllPassTest.m | 38 - .../Tests/NimbleTests/objc/ObjCAsyncTest.m | 55 - .../NimbleTests/objc/ObjCBeAnInstanceOfTest.m | 34 - .../NimbleTests/objc/ObjCBeCloseToTest.m | 47 - .../Tests/NimbleTests/objc/ObjCBeEmptyTest.m | 89 - .../Tests/NimbleTests/objc/ObjCBeFalseTest.m | 46 - .../Tests/NimbleTests/objc/ObjCBeFalsyTest.m | 58 - .../objc/ObjCBeGreaterThanOrEqualToTest.m | 42 - .../NimbleTests/objc/ObjCBeGreaterThanTest.m | 41 - .../NimbleTests/objc/ObjCBeIdenticalToTest.m | 68 - .../Tests/NimbleTests/objc/ObjCBeKindOfTest.m | 34 - .../objc/ObjCBeLessThanOrEqualToTest.m | 43 - .../NimbleTests/objc/ObjCBeLessThanTest.m | 42 - .../Tests/NimbleTests/objc/ObjCBeNilTest.m | 24 - .../Tests/NimbleTests/objc/ObjCBeTrueTest.m | 47 - .../Tests/NimbleTests/objc/ObjCBeTruthyTest.m | 55 - .../NimbleTests/objc/ObjCBeginWithTest.m | 37 - .../Tests/NimbleTests/objc/ObjCContainTest.m | 67 - .../Tests/NimbleTests/objc/ObjCEndWithTest.m | 37 - .../Tests/NimbleTests/objc/ObjCEqualTest.m | 94 - .../Tests/NimbleTests/objc/ObjCHaveCount.m | 174 -- .../Tests/NimbleTests/objc/ObjCMatchTest.m | 33 - .../NimbleTests/objc/ObjCRaiseExceptionTest.m | 178 -- .../NimbleTests/objc/ObjCSatisfyAnyOfTest.m | 32 - .../Tests/NimbleTests/objc/ObjCSyncTest.m | 21 - .../objc/ObjCUserDescriptionTest.m | 52 - .../NimbleTests/objc/ObjcStringersTest.m | 31 - .../Carthage/Checkouts/Nimble/script/release | 186 -- .../Carthage/Checkouts/Nimble/test | 142 - .../Carthage/Checkouts/Quick/.gitignore | 65 - .../Carthage/Checkouts/Quick/.gitmodules | 3 - .../Carthage/Checkouts/Quick/.ruby-version | 1 - .../Carthage/Checkouts/Quick/.swift-version | 1 - .../Carthage/Checkouts/Quick/.travis.yml | 32 - .../Checkouts/Quick/CODE_OF_CONDUCT.md | 74 - .../Carthage/Checkouts/Quick/CONTRIBUTING.md | 111 - .../Quick/Documentation/ArrangeActAssert.md | 220 -- .../Quick/Documentation/BehavioralTesting.md | 87 - .../Quick/Documentation/ConfiguringQuick.md | 103 - .../Documentation/InstallingFileTemplates.md | 28 - .../Quick/Documentation/InstallingQuick.md | 166 -- .../Quick/Documentation/MoreResources.md | 28 - .../Quick/Documentation/NimbleAssertions.md | 106 - .../Documentation/QuickExamplesAndGroups.md | 491 --- .../Quick/Documentation/QuickInObjectiveC.md | 53 - .../Checkouts/Quick/Documentation/README.md | 5 - .../SettingUpYourXcodeProject.md | 83 - .../Quick/Documentation/SharedExamples.md | 125 - .../Quick/Documentation/TestingApps.md | 179 -- .../Documentation/en-us/ArrangeActAssert.md | 220 -- .../Documentation/en-us/BehavioralTesting.md | 87 - .../Documentation/en-us/ConfiguringQuick.md | 103 - .../en-us/InstallingFileTemplates.md | 28 - .../Documentation/en-us/InstallingQuick.md | 174 -- .../Documentation/en-us/MoreResources.md | 28 - .../Documentation/en-us/NimbleAssertions.md | 106 - .../en-us/QuickExamplesAndGroups.md | 491 --- .../Documentation/en-us/QuickInObjectiveC.md | 57 - .../Quick/Documentation/en-us/README.md | 46 - .../en-us/SettingUpYourXcodeProject.md | 83 - .../Documentation/en-us/SharedExamples.md | 125 - .../en-us/TestUsingTestDoubles.md | 129 - .../Quick/Documentation/en-us/TestingApps.md | 179 -- .../Documentation/en-us/Troubleshooting.md | 9 - .../Documentation/ja/ArrangeActAssert.md | 212 -- .../Documentation/ja/BehavioralTesting.md | 81 - .../Documentation/ja/ConfiguringQuick.md | 101 - .../ja/InstallingFileTemplates.md | 26 - .../Quick/Documentation/ja/InstallingQuick.md | 152 - .../Quick/Documentation/ja/MoreResources.md | 27 - .../Documentation/ja/NimbleAssertions.md | 100 - .../ja/QuickExamplesAndGroups.md | 477 --- .../Documentation/ja/QuickInObjectiveC.md | 48 - .../Quick/Documentation/ja/README.md | 50 - .../ja/SettingUpYourXcodeProject.md | 77 - .../Quick/Documentation/ja/SharedExamples.md | 122 - .../Documentation/ja/TestUsingTestDoubles.md | 138 - .../Quick/Documentation/ja/TestingApps.md | 174 -- .../Quick/Documentation/ja/Troubleshooting.md | 9 - .../Documentation/zh-cn/ArrangeActAssert.md | 205 -- .../Documentation/zh-cn/BehavioralTesting.md | 75 - .../Documentation/zh-cn/ConfiguringQuick.md | 102 - .../zh-cn/InstallingFileTemplates.md | 26 - .../Documentation/zh-cn/InstallingQuick.md | 157 - .../Documentation/zh-cn/MoreResources.md | 23 - .../Documentation/zh-cn/NimbleAssertions.md | 100 - .../zh-cn/QuickExamplesAndGroups.md | 461 --- .../Documentation/zh-cn/QuickInObjectiveC.md | 52 - .../Quick/Documentation/zh-cn/README.md | 17 - .../zh-cn/SettingUpYourXcodeProject.md | 75 - .../zh-cn/TestUsingTestDoubles.md | 131 - .../Quick/Documentation/zh-cn/TestingApps.md | 174 -- .../Documentation/zh-cn/Troubleshooting.md | 10 - .../Quick/Externals/Nimble/.gitignore | 19 - .../Quick/Externals/Nimble/.swift-version | 1 - .../Quick/Externals/Nimble/.travis.yml | 25 - .../Quick/Externals/Nimble/CONTRIBUTING.md | 112 - .../Checkouts/Quick/Externals/Nimble/Gemfile | 4 - .../Quick/Externals/Nimble/Gemfile.lock | 67 - .../Quick/Externals/Nimble/LICENSE.md | 201 -- .../Quick/Externals/Nimble/Nimble.podspec | 22 - .../Nimble/Nimble.xcodeproj/project.pbxproj | 1988 ------------- .../contents.xcworkspacedata | 7 - .../xcschemes/Nimble-iOS.xcscheme | 82 - .../xcschemes/Nimble-macOS.xcscheme | 82 - .../xcschemes/Nimble-tvOS.xcscheme | 99 - .../Quick/Externals/Nimble/Package.swift | 9 - .../Quick/Externals/Nimble/README.md | 1268 -------- .../Nimble/Adapters/AdapterProtocols.swift | 17 - .../Nimble/Adapters/AssertionDispatcher.swift | 20 - .../Nimble/Adapters/AssertionRecorder.swift | 100 - .../Nimble/Adapters/NMBExpectation.swift | 131 - .../Nimble/Adapters/NMBObjCMatcher.swift | 81 - .../Nimble/Adapters/NimbleEnvironment.swift | 45 - .../Nimble/Adapters/NimbleXCTestHandler.swift | 77 - .../NonObjectiveC/ExceptionCapture.swift | 31 - .../Nimble/Sources/Nimble/DSL+Wait.swift | 93 - .../Externals/Nimble/Sources/Nimble/DSL.swift | 64 - .../Nimble/Sources/Nimble/Expectation.swift | 76 - .../Nimble/Sources/Nimble/Expression.swift | 90 - .../Sources/Nimble/FailureMessage.swift | 65 - .../Nimble/Sources/Nimble/Info.plist | 28 - .../Sources/Nimble/Matchers/AllPass.swift | 100 - .../Nimble/Matchers/AsyncMatcherWrapper.swift | 148 - .../Sources/Nimble/Matchers/BeAKindOf.swift | 38 - .../Nimble/Matchers/BeAnInstanceOf.swift | 40 - .../Sources/Nimble/Matchers/BeCloseTo.swift | 122 - .../Sources/Nimble/Matchers/BeEmpty.swift | 92 - .../Nimble/Matchers/BeGreaterThan.swift | 42 - .../Matchers/BeGreaterThanOrEqualTo.swift | 44 - .../Nimble/Matchers/BeIdenticalTo.swift | 47 - .../Sources/Nimble/Matchers/BeLessThan.swift | 41 - .../Nimble/Matchers/BeLessThanOrEqual.swift | 42 - .../Sources/Nimble/Matchers/BeLogical.swift | 173 -- .../Sources/Nimble/Matchers/BeNil.swift | 20 - .../Sources/Nimble/Matchers/BeVoid.swift | 18 - .../Sources/Nimble/Matchers/BeginWith.swift | 65 - .../Sources/Nimble/Matchers/Contain.swift | 96 - .../Sources/Nimble/Matchers/EndWith.swift | 75 - .../Sources/Nimble/Matchers/Equal.swift | 181 -- .../Sources/Nimble/Matchers/HaveCount.swift | 57 - .../Sources/Nimble/Matchers/Match.swift | 30 - .../Sources/Nimble/Matchers/MatchError.swift | 26 - .../Sources/Nimble/Matchers/MatcherFunc.swift | 69 - .../Nimble/Matchers/MatcherProtocols.swift | 153 - .../Nimble/Matchers/PostNotification.swift | 70 - .../Nimble/Matchers/RaisesException.swift | 183 -- .../Nimble/Matchers/SatisfyAnyOf.swift | 65 - .../Sources/Nimble/Matchers/ThrowError.swift | 53 - .../Externals/Nimble/Sources/Nimble/Nimble.h | 7 - .../Nimble/Sources/Nimble/Utils/Async.swift | 350 --- .../Nimble/Sources/Nimble/Utils/Errors.swift | 135 - .../Sources/Nimble/Utils/Functional.swift | 12 - .../Sources/Nimble/Utils/SourceLocation.swift | 31 - .../Sources/Nimble/Utils/Stringers.swift | 213 -- .../NimbleObjectiveC/CurrentTestCaseTracker.h | 9 - .../Nimble/Sources/NimbleObjectiveC/DSL.h | 145 - .../Nimble/Sources/NimbleObjectiveC/DSL.m | 150 - .../NimbleObjectiveC/NMBExceptionCapture.h | 11 - .../NimbleObjectiveC/NMBExceptionCapture.m | 35 - .../Sources/NimbleObjectiveC/NMBStringify.h | 18 - .../Sources/NimbleObjectiveC/NMBStringify.m | 6 - .../XCTestObservationCenter+Register.m | 78 - .../Externals/Nimble/Tests/LinuxMain.swift | 37 - .../Tests/NimbleTests/AsynchronousTest.swift | 226 -- .../Helpers/ObjectWithLazyProperty.swift | 7 - .../Helpers/XCTestCaseProvider.swift | 52 - .../Tests/NimbleTests/Helpers/utils.swift | 99 - .../Nimble/Tests/NimbleTests/Info.plist | 24 - .../Tests/NimbleTests/LinuxSupport.swift | 9 - .../NimbleTests/Matchers/AllPassTest.swift | 126 - .../NimbleTests/Matchers/BeAKindOfTest.swift | 56 - .../Matchers/BeAnInstanceOfTest.swift | 58 - .../NimbleTests/Matchers/BeCloseToTest.swift | 160 - .../NimbleTests/Matchers/BeEmptyTest.swift | 82 - .../Matchers/BeGreaterThanOrEqualToTest.swift | 50 - .../Matchers/BeGreaterThanTest.swift | 50 - .../Matchers/BeIdenticalToObjectTest.swift | 64 - .../Matchers/BeIdenticalToTest.swift | 68 - .../Matchers/BeLessThanOrEqualToTest.swift | 52 - .../NimbleTests/Matchers/BeLessThanTest.swift | 57 - .../NimbleTests/Matchers/BeLogicalTest.swift | 270 -- .../NimbleTests/Matchers/BeNilTest.swift | 28 - .../NimbleTests/Matchers/BeVoidTest.swift | 32 - .../NimbleTests/Matchers/BeginWithTest.swift | 53 - .../NimbleTests/Matchers/ContainTest.swift | 95 - .../NimbleTests/Matchers/EndWithTest.swift | 56 - .../NimbleTests/Matchers/EqualTest.swift | 274 -- .../NimbleTests/Matchers/HaveCountTest.swift | 56 - .../NimbleTests/Matchers/MatchErrorTest.swift | 78 - .../NimbleTests/Matchers/MatchTest.swift | 49 - .../Matchers/PostNotificationTest.swift | 91 - .../Matchers/RaisesExceptionTest.swift | 166 -- .../Matchers/SatisfyAnyOfTest.swift | 56 - .../NimbleTests/Matchers/ThrowErrorTest.swift | 155 - .../Tests/NimbleTests/SynchronousTests.swift | 129 - .../NimbleTests/UserDescriptionTest.swift | 70 - .../Tests/NimbleTests/objc/NimbleSpecHelper.h | 15 - .../Tests/NimbleTests/objc/ObjCAllPassTest.m | 38 - .../Tests/NimbleTests/objc/ObjCAsyncTest.m | 55 - .../NimbleTests/objc/ObjCBeAnInstanceOfTest.m | 34 - .../NimbleTests/objc/ObjCBeCloseToTest.m | 36 - .../Tests/NimbleTests/objc/ObjCBeEmptyTest.m | 89 - .../Tests/NimbleTests/objc/ObjCBeFalseTest.m | 24 - .../Tests/NimbleTests/objc/ObjCBeFalsyTest.m | 28 - .../objc/ObjCBeGreaterThanOrEqualToTest.m | 33 - .../NimbleTests/objc/ObjCBeGreaterThanTest.m | 33 - .../NimbleTests/objc/ObjCBeIdenticalToTest.m | 62 - .../Tests/NimbleTests/objc/ObjCBeKindOfTest.m | 34 - .../objc/ObjCBeLessThanOrEqualToTest.m | 33 - .../NimbleTests/objc/ObjCBeLessThanTest.m | 33 - .../Tests/NimbleTests/objc/ObjCBeNilTest.m | 24 - .../Tests/NimbleTests/objc/ObjCBeTrueTest.m | 25 - .../Tests/NimbleTests/objc/ObjCBeTruthyTest.m | 28 - .../NimbleTests/objc/ObjCBeginWithTest.m | 37 - .../Tests/NimbleTests/objc/ObjCContainTest.m | 67 - .../Tests/NimbleTests/objc/ObjCEndWithTest.m | 37 - .../Tests/NimbleTests/objc/ObjCEqualTest.m | 35 - .../Tests/NimbleTests/objc/ObjCHaveCount.m | 105 - .../Tests/NimbleTests/objc/ObjCMatchTest.m | 33 - .../NimbleTests/objc/ObjCRaiseExceptionTest.m | 178 -- .../NimbleTests/objc/ObjCSatisfyAnyOfTest.m | 32 - .../Tests/NimbleTests/objc/ObjCSyncTest.m | 21 - .../objc/ObjCUserDescriptionTest.m | 52 - .../NimbleTests/objc/ObjcStringersTest.m | 31 - .../Quick/Externals/Nimble/script/release | 186 -- .../Checkouts/Quick/Externals/Nimble/test | 142 - .../Carthage/Checkouts/Quick/Gemfile | 3 - .../Carthage/Checkouts/Quick/Gemfile.lock | 67 - .../Carthage/Checkouts/Quick/LICENSE | 201 -- .../Carthage/Checkouts/Quick/Package.swift | 18 - .../Objective-C/___FILEBASENAME___.h | 13 - .../Objective-C/___FILEBASENAME___.m | 17 - .../Swift/___FILEBASENAME___.swift | 15 - .../TemplateIcon.icns | Bin 529473 -> 0 bytes .../TemplateInfo.plist | 73 - .../Objective-C/___FILEBASENAME___.m | 14 - .../Swift/___FILEBASENAME___.swift | 16 - .../TemplateIcon.icns | Bin 529473 -> 0 bytes .../TemplateInfo.plist | 73 - .../Carthage/Checkouts/Quick/Quick.podspec | 38 - .../Quick/Quick.xcodeproj/project.pbxproj | 2249 -------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/xcschemes/Quick-OSX.xcscheme | 109 - .../xcshareddata/xcschemes/Quick-iOS.xcscheme | 109 - .../xcschemes/Quick-macOS.xcscheme | 109 - .../xcschemes/Quick-tvOS.xcscheme | 109 - .../contents.xcworkspacedata | 10 - .../Carthage/Checkouts/Quick/README.md | 69 - .../Carthage/Checkouts/Quick/Rakefile | 66 - .../Quick/Sources/Quick/Callsite.swift | 30 - .../Quick/Configuration/Configuration.swift | 161 - .../Configuration/QuickConfiguration.swift | 8 - .../Quick/Sources/Quick/DSL/DSL.swift | 227 -- .../Quick/Sources/Quick/DSL/World+DSL.swift | 169 -- .../Quick/Sources/Quick/ErrorUtility.swift | 10 - .../Quick/Sources/Quick/Example.swift | 111 - .../Quick/Sources/Quick/ExampleGroup.swift | 103 - .../Quick/Sources/Quick/ExampleMetadata.swift | 24 - .../Quick/Sources/Quick/Filter.swift | 31 - .../Quick/Sources/Quick/Hooks/Closures.swift | 35 - .../Sources/Quick/Hooks/ExampleHooks.swift | 42 - .../Sources/Quick/Hooks/HooksPhase.swift | 11 - .../Sources/Quick/Hooks/SuiteHooks.swift | 32 - .../Checkouts/Quick/Sources/Quick/Info.plist | 28 - .../Quick/NSBundle+CurrentTestBundle.swift | 16 - .../Quick/Sources/Quick/QuickMain.swift | 33 - .../Quick/QuickSelectedTestSuiteBuilder.swift | 74 - .../Quick/Sources/Quick/QuickSpec.swift | 48 - .../Quick/Sources/Quick/QuickTestSuite.swift | 52 - .../Quick/Sources/Quick/String+FileName.swift | 12 - .../Checkouts/Quick/Sources/Quick/World.swift | 232 -- .../Configuration/QuickConfiguration.h | 30 - .../Configuration/QuickConfiguration.m | 83 - .../Sources/QuickObjectiveC/DSL/QCKDSL.h | 234 -- .../Sources/QuickObjectiveC/DSL/QCKDSL.m | 79 - .../Sources/QuickObjectiveC/DSL/World+DSL.h | 20 - .../NSString+QCKSelectorName.h | 17 - .../NSString+QCKSelectorName.m | 37 - .../Quick/Sources/QuickObjectiveC/Quick.h | 11 - .../Quick/Sources/QuickObjectiveC/QuickSpec.h | 50 - .../Quick/Sources/QuickObjectiveC/QuickSpec.m | 170 -- .../Quick/Sources/QuickObjectiveC/World.h | 18 - .../XCTestSuite+QuickTestSuiteBuilder.m | 40 - .../Checkouts/Quick/Tests/LinuxMain.swift | 47 - .../QuickFocusedTests/FocusedTests+ObjC.m | 56 - .../QuickFocusedTests/FocusedTests.swift | 54 - .../QuickTests/QuickFocusedTests/Info.plist | 24 - .../QuickTestHelpers/SpecRunner.swift | 30 - .../QuickTests/QuickTestHelpers/TestRun.swift | 10 - .../QuickTestHelpers/XCTestCaseProvider.swift | 52 - ...s_SharedExamplesTests_SharedExamples.swift | 20 - .../FunctionalTests/AfterEachTests.swift | 93 - .../FunctionalTests/AfterSuiteTests.swift | 45 - .../FunctionalTests/BeforeEachTests.swift | 76 - .../FunctionalTests/BeforeSuiteTests.swift | 39 - .../AfterEach/Configuration+AfterEach.swift | 11 - .../Configuration+AfterEachTests.swift | 31 - .../BeforeEach/Configuration+BeforeEach.swift | 11 - .../Configuration+BeforeEachTests.swift | 28 - .../FunctionalTests/ContextTests.swift | 20 - .../CrossReferencingSpecs.swift | 19 - .../FunctionalTests/DescribeTests.swift | 34 - .../QuickTests/FunctionalTests/ItTests.swift | 129 - .../ObjC/AfterEachTests+ObjC.m | 81 - .../ObjC/AfterSuiteTests+ObjC.m | 42 - .../ObjC/BeforeEachTests+ObjC.m | 68 - .../ObjC/BeforeSuiteTests+ObjC.m | 39 - .../FunctionalTests/ObjC/FailureTests+ObjC.m | 61 - .../ObjC/FailureUsingXCTAssertTests+ObjC.m | 55 - .../FunctionalTests/ObjC/ItTests+ObjC.m | 42 - .../FunctionalTests/ObjC/PendingTests+ObjC.m | 60 - .../SharedExamples+BeforeEachTests+ObjC.m | 59 - .../ObjC/SharedExamplesTests+ObjC.m | 65 - .../FunctionalTests/PendingTests.swift | 54 - .../SharedExamples+BeforeEachTests.swift | 48 - .../FunctionalTests/SharedExamplesTests.swift | 54 - .../QuickTests/Helpers/QCKSpecRunner.h | 22 - .../QuickTests/Helpers/QCKSpecRunner.m | 33 - .../Helpers/QuickSpec+QuickSpec_MethodList.h | 11 - .../Helpers/QuickSpec+QuickSpec_MethodList.m | 31 - .../Helpers/QuickTestsBridgingHeader.h | 2 - ...tObservationCenter+QCKSuspendObservation.h | 20 - ...tObservationCenter+QCKSuspendObservation.m | 54 - .../Tests/QuickTests/QuickTests/Info.plist | 24 - .../QuickTests/QuickConfigurationTests.m | 12 - .../Carthage/Checkouts/Quick/script/release | 182 -- .../Quick/script/travis-install-linux | 5 - .../Quick/script/travis-install-macos | 4 - .../Checkouts/Quick/script/travis-install-osx | 4 - .../Quick/script/travis-script-linux | 4 - .../Quick/script/travis-script-macos | 10 - .../Checkouts/Quick/script/travis-script-osx | 10 - .../Carthage/Checkouts/ReSwift/.gitignore | 66 - .../Carthage/Checkouts/ReSwift/.hound.yml | 3 - .../Carthage/Checkouts/ReSwift/.jazzy.json | 70 - .../ReSwift/.scripts/doc-preprocessor | 115 - .../Checkouts/ReSwift/.scripts/generate-docs | 84 - .../ReSwift/.scripts/update-gh-pages | 82 - .../Carthage/Checkouts/ReSwift/.swiftlint.yml | 7 - .../Carthage/Checkouts/ReSwift/.travis.yml | 60 - .../Carthage/Checkouts/ReSwift/CHANGELOG.md | 94 - .../Checkouts/ReSwift/CONTRIBUTING.md | 122 - .../Checkouts/ReSwift/Cartfile.resolved | 0 .../Checkouts/ReSwift/Docs/Actions.md | 9 - .../ReSwift/Docs/Getting Started Guide.md | 272 -- .../Checkouts/ReSwift/Docs/Reducers.md | 1 - .../Carthage/Checkouts/ReSwift/Docs/State.md | 17 - .../Carthage/Checkouts/ReSwift/Docs/Stores.md | 9 - .../Checkouts/ReSwift/Docs/Utilities.md | 0 .../ReSwift/Docs/img/reswift_concept.graffle | Bin 2815 -> 0 bytes .../ReSwift/Docs/img/reswift_concept.png | Bin 170143 -> 0 bytes .../ReSwift/Docs/img/reswift_detail.png | Bin 175524 -> 0 bytes .../Checkouts/ReSwift/Docs/img/timetravel.gif | Bin 1738027 -> 0 bytes .../jazzy-theme/assets/css/highlight.css.scss | 63 - .../jazzy-theme/assets/css/jazzy.css.scss | 580 ---- .../Docs/jazzy-theme/assets/img/carat.png | Bin 274 -> 0 bytes .../Docs/jazzy-theme/assets/img/dash.png | Bin 1338 -> 0 bytes .../Docs/jazzy-theme/assets/img/gh.png | Bin 1571 -> 0 bytes .../Docs/jazzy-theme/assets/js/jazzy.js | 20 - .../Docs/jazzy-theme/assets/js/jquery.min.js | 4 - .../Docs/jazzy-theme/templates/doc.mustache | 52 - .../jazzy-theme/templates/footer.mustache | 4 - .../jazzy-theme/templates/header.mustache | 26 - .../Docs/jazzy-theme/templates/nav.mustache | 16 - .../jazzy-theme/templates/parameter.mustache | 12 - .../Docs/jazzy-theme/templates/task.mustache | 86 - .../Docs/jazzy-theme/templates/tasks.mustache | 9 - .../ReSwift/Docs/templates/heading.md | 4 - .../Checkouts/ReSwift/Docs/templates/toc.md | 25 - .../Carthage/Checkouts/ReSwift/LICENSE.md | 8 - .../Carthage/Checkouts/ReSwift/Package.swift | 10 - .../Carthage/Checkouts/ReSwift/README.md | 235 -- .../Checkouts/ReSwift/ReSwift.podspec | 21 - .../ReSwift/ReSwift.xcodeproj/project.pbxproj | 1146 ------- .../contents.xcworkspacedata | 7 - .../xcschemes/ReSwift-iOS.xcscheme | 100 - .../xcschemes/ReSwift-macOS.xcscheme | 100 - .../xcschemes/ReSwift-tvOS.xcscheme | 100 - .../xcschemes/ReSwift-watchOS.xcscheme | 81 - .../ReSwift/ReSwift/CoreTypes/Action.swift | 120 - .../ReSwift/CoreTypes/CombinedReducer.swift | 37 - .../ReSwift/CoreTypes/Middleware.swift | 14 - .../ReSwift/ReSwift/CoreTypes/Reducer.swift | 25 - .../ReSwift/ReSwift/CoreTypes/State.swift | 11 - .../ReSwift/ReSwift/CoreTypes/Store.swift | 161 - .../ReSwift/CoreTypes/StoreSubscriber.swift | 27 - .../ReSwift/ReSwift/CoreTypes/StoreType.swift | 159 - .../ReSwift/CoreTypes/Subscription.swift | 14 - .../Checkouts/ReSwift/ReSwift/Info.plist | 26 - .../Checkouts/ReSwift/ReSwift/ReSwift.h | 17 - .../ReSwift/ReSwift/Utils/Assertions.swift | 32 - .../ReSwift/ReSwift/Utils/Coding.swift | 14 - .../ReSwift/Utils/Swift+Compatibility.swift | 10 - .../ReSwift/ReSwift/Utils/TypeHelper.swift | 36 - .../ReSwiftTests/CombinedReducerTests.swift | 87 - .../Checkouts/ReSwift/ReSwiftTests/Info.plist | 24 - .../ReSwiftTests/StandardActionTests.swift | 172 -- .../ReSwiftTests/StoreDispatchTests.swift | 136 - .../ReSwiftTests/StoreMiddlewareTests.swift | 145 - .../ReSwiftTests/StoreSubscriberTests.swift | 100 - .../ReSwiftTests/StoreSubscriptionTests.swift | 145 - .../ReSwift/ReSwiftTests/StoreTests.swift | 62 - .../ReSwift/ReSwiftTests/TestFakes.swift | 132 - .../ReSwiftTests/TypeHelperTests.swift | 67 - .../ReSwiftTests/XCTest+Assertions.swift | 80 - .../ReSwiftTests/XCTest+Compatibility.swift | 25 - Carthage/Checkouts/ReSwiftRouter/Changelog.md | 87 - Carthage/Checkouts/ReSwiftRouter/LICENSE.md | 8 - Carthage/Checkouts/ReSwiftRouter/README.md | 175 -- .../ReSwiftRouter/ReSwiftRouter.podspec | 22 - .../ReSwiftRouter.xcodeproj/project.pbxproj | 1280 -------- .../contents.xcworkspacedata | 7 - .../xcschemes/ReSwiftRouter-iOS.xcscheme | 100 - .../xcschemes/ReSwiftRouter-macOS.xcscheme | 100 - .../xcschemes/ReSwiftRouter-tvOS.xcscheme | 99 - .../xcschemes/ReSwiftRouter-watchOS.xcscheme | 80 - .../ReSwiftRouter/ReSwiftRouter/Info.plist | 26 - .../ReSwiftRouter/NavigationActions.swift | 49 - .../ReSwiftRouter/NavigationReducer.swift | 56 - .../ReSwiftRouter/NavigationState.swift | 48 - .../ReSwiftRouter/ReSwiftRouter.h | 19 - .../ReSwiftRouter/Routable.swift | 55 - .../ReSwiftRouter/ReSwiftRouter/Router.swift | 212 -- .../ReSwiftRouterTests/Info.plist | 24 - .../ReSwiftRouterIntegrationTests.swift | 281 -- .../ReSwiftRouterTestsUnitTests.swift | 240 -- .../ReSwiftRouterTests/RouteHashSpec.swift | 51 - Carthage/Checkouts/ReSwiftRouter/codecov.yml | 4 - Carthage/Checkouts/RequestKit/.gitignore | 29 - Carthage/Checkouts/RequestKit/.swift-version | 1 - Carthage/Checkouts/RequestKit/.travis.yml | 28 - Carthage/Checkouts/RequestKit/Gemfile | 5 - Carthage/Checkouts/RequestKit/Gemfile.lock | 196 -- Carthage/Checkouts/RequestKit/LICENSE | 19 - Carthage/Checkouts/RequestKit/Makefile | 13 - .../RequestKit/NBNRequestKit.podspec | 18 - Carthage/Checkouts/RequestKit/README.md | 132 - .../RequestKit.xcodeproj/project.pbxproj | 993 ------ .../contents.xcworkspacedata | 7 - .../xcschemes/RequestKit Mac.xcscheme | 99 - .../xcschemes/RequestKit tvOS.xcscheme | 99 - .../xcschemes/RequestKit watchOS.xcscheme | 89 - .../xcschemes/RequestKit.xcscheme | 100 - .../RequestKit/RequestKit/Info.plist | 26 - .../RequestKit/JSONPostRouter.swift | 54 - .../RequestKit/RequestKit/RequestKit.h | 19 - .../RequestKit/RequestKitSession.swift | 22 - .../RequestKit/RequestKit/Router.swift | 157 - .../RequestKitTests/ConfigurationTests.swift | 42 - .../RequestKit/RequestKitTests/Info.plist | 24 - .../RequestKitTests/JSONPostRouterTests.swift | 43 - .../RequestKitURLTestSession.swift | 56 - .../RequestKitTests/RouterTests.swift | 92 - .../RequestKitTests/TestHelper.swift | 22 - .../RequestKitTests/TestInterface.swift | 68 - Carthage/Checkouts/RequestKit/fastlane/.env | 4 - .../RequestKit/fastlane/.env.default | 14 - .../Checkouts/RequestKit/fastlane/.env.deploy | 14 - .../Checkouts/RequestKit/fastlane/.env.ios93 | 3 - .../Checkouts/RequestKit/fastlane/.env.osx | 5 - .../Checkouts/RequestKit/fastlane/.env.tvos92 | 6 - .../Checkouts/RequestKit/fastlane/Fastfile | 4 - Carthage/Checkouts/SSKeychain/.gitignore | 9 - Carthage/Checkouts/SSKeychain/LICENSE | 20 - Carthage/Checkouts/SSKeychain/Readme.markdown | 83 - .../Checkouts/SSKeychain/SAMKeychain.podspec | 20 - .../SAMKeychain.xcodeproj/project.pbxproj | 1354 --------- .../xcschemes/SAMKeychain-iOS.xcscheme | 99 - .../xcschemes/SAMKeychain-macOS.xcscheme | 99 - .../xcschemes/SAMKeychain-tvOS.xcscheme | 99 - .../xcschemes/SAMKeychain-watchOS.xcscheme | 80 - .../SSKeychain/Sources/SAMKeychain.h | 203 -- .../SSKeychain/Sources/SAMKeychain.m | 130 - .../SSKeychain/Sources/SAMKeychainQuery.h | 147 - .../SSKeychain/Sources/SAMKeychainQuery.m | 316 -- .../Checkouts/SSKeychain/Support/Info.plist | 26 - .../en.lproj/SAMKeychain.strings | Bin 1580 -> 0 bytes .../SSKeychain/Support/Tests-Info.plist | 24 - .../SSKeychain/Tests/KeychainTests.swift | 205 -- Carthage/Checkouts/octokit.swift/.gitignore | 29 - .../Checkouts/octokit.swift/.swift-version | 1 - Carthage/Checkouts/octokit.swift/.travis.yml | 28 - Carthage/Checkouts/octokit.swift/Cartfile | 1 - .../Checkouts/octokit.swift/Cartfile.resolved | 1 - Carthage/Checkouts/octokit.swift/Gemfile | 5 - Carthage/Checkouts/octokit.swift/Gemfile.lock | 196 -- Carthage/Checkouts/octokit.swift/LICENSE | 19 - Carthage/Checkouts/octokit.swift/Makefile | 14 - .../octokit.swift/OctoKit.swift.podspec | 22 - .../OctoKit.xcodeproj/project.pbxproj | 1372 --------- .../contents.xcworkspacedata | 7 - .../xcschemes/OctoKit Mac.xcscheme | 99 - .../xcschemes/OctoKit tvOS.xcscheme | 99 - .../xcschemes/OctoKit watchOS.xcscheme | 80 - .../xcshareddata/xcschemes/OctoKit.xcscheme | 100 - .../octokit.swift/OctoKit/Configuration.swift | 141 - .../octokit.swift/OctoKit/Follow.swift | 124 - .../octokit.swift/OctoKit/Info.plist | 26 - .../octokit.swift/OctoKit/Issue.swift | 287 -- .../octokit.swift/OctoKit/Label.swift | 43 - .../octokit.swift/OctoKit/Milestone.swift | 44 - .../Checkouts/octokit.swift/OctoKit/OctoKit.h | 19 - .../octokit.swift/OctoKit/Octokit.swift | 9 - .../octokit.swift/OctoKit/PublicKey.swift | 57 - .../octokit.swift/OctoKit/Repositories.swift | 138 - .../octokit.swift/OctoKit/Stars.swift | 76 - .../octokit.swift/OctoKit/Time.swift | 28 - .../OctoKit/URL+URLParameters.swift | 12 - .../octokit.swift/OctoKit/User.swift | 119 - .../OctoKitTests/ConfigurationTests.swift | 51 - .../OctoKitTests/Fixtures/issue.json | 104 - .../OctoKitTests/Fixtures/issues.json | 106 - .../OctoKitTests/Fixtures/public_key.json | 9 - .../OctoKitTests/Fixtures/repo.json | 89 - .../OctoKitTests/Fixtures/user_me.json | 43 - .../Fixtures/user_mietzmithut.json | 32 - .../OctoKitTests/Fixtures/user_repos.json | 94 - .../OctoKitTests/FollowTests.swift | 132 - .../octokit.swift/OctoKitTests/Info.plist | 24 - .../OctoKitTests/IssueTests.swift | 50 - .../OctoKitTests/OctoKitURLTestSession.swift | 57 - .../OctoKitTests/OctokitSwiftTests.swift | 17 - .../OctoKitTests/PublicKeyTests.swift | 22 - .../OctoKitTests/RepositoryTests.swift | 154 - .../OctoKitTests/StarsTests.swift | 70 - .../OctoKitTests/TestHelper.swift | 22 - .../OctoKitTests/UserTests.swift | 107 - .../octokit.swift/OctoKitTests/users.json | 45 - Carthage/Checkouts/octokit.swift/README.md | 303 -- .../Checkouts/octokit.swift/fastlane/.env | 4 - .../octokit.swift/fastlane/.env.default | 14 - .../octokit.swift/fastlane/.env.deploy | 14 - .../octokit.swift/fastlane/.env.ios93 | 3 - .../Checkouts/octokit.swift/fastlane/.env.osx | 5 - .../octokit.swift/fastlane/.env.tvos92 | 6 - .../Checkouts/octokit.swift/fastlane/Fastfile | 4 - .../GitHubAuth/Credentials.swift | 13 - 1289 files changed, 8 insertions(+), 119132 deletions(-) delete mode 100644 Carthage/Checkouts/ListKit/.gitignore delete mode 100644 Carthage/Checkouts/ListKit/LICENSE.md delete mode 100644 Carthage/Checkouts/ListKit/ListKit.podspec delete mode 100644 Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ListKit/ListKit.xcodeproj/xcshareddata/xcschemes/ListKit.xcscheme delete mode 100644 Carthage/Checkouts/ListKit/ListKit/ArrayDataSource.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKit/Info.plist delete mode 100644 Carthage/Checkouts/ListKit/ListKit/ListKit.h delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/AppDelegate.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/LaunchScreen.xib delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/Main.storyboard delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CityViewController.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/City.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.xib delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/madrid.jpg delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/new_delhi.jpg delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/sf.jpg delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/stuttgart.jpg delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/tokyo.jpg delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Demos/Simple/ViewController.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemo/Info.plist delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemoTests/Info.plist delete mode 100644 Carthage/Checkouts/ListKit/ListKitDemoTests/ListKitDemoTests.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitTests/BasicDataSourceTests.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitTests/CustomXibDataSourceTests.swift delete mode 100644 Carthage/Checkouts/ListKit/ListKitTests/Info.plist delete mode 100644 Carthage/Checkouts/ListKit/README.md delete mode 100644 Carthage/Checkouts/ListKit/Readme_Resources/city_list.png delete mode 100644 Carthage/Checkouts/ListKit/Readme_Resources/simple_list.png delete mode 100644 Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE delete mode 100644 Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE delete mode 100644 Carthage/Checkouts/Nimble/.gitignore delete mode 100644 Carthage/Checkouts/Nimble/.hound.yml delete mode 100644 Carthage/Checkouts/Nimble/.swift-version delete mode 100644 Carthage/Checkouts/Nimble/.swiftlint.yml delete mode 100644 Carthage/Checkouts/Nimble/.travis.yml delete mode 100644 Carthage/Checkouts/Nimble/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/Nimble/Dockerfile.test delete mode 100644 Carthage/Checkouts/Nimble/Gemfile delete mode 100644 Carthage/Checkouts/Nimble/Gemfile.lock delete mode 100644 Carthage/Checkouts/Nimble/LICENSE delete mode 100644 Carthage/Checkouts/Nimble/LICENSE.md delete mode 100644 Carthage/Checkouts/Nimble/Nimble.podspec delete mode 100644 Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme delete mode 100644 Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme delete mode 100644 Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/Nimble/Package.swift delete mode 100644 Carthage/Checkouts/Nimble/README.md delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/README.md delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/DSL.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Info.plist delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Functional.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.h delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.m delete mode 100644 Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/LinuxMain.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Info.plist delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/LinuxSupport.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m delete mode 100644 Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m delete mode 100755 Carthage/Checkouts/Nimble/script/release delete mode 100755 Carthage/Checkouts/Nimble/test delete mode 100644 Carthage/Checkouts/Quick/.Package.test.swift delete mode 100644 Carthage/Checkouts/Quick/.github/ISSUE_TEMPLATE delete mode 100644 Carthage/Checkouts/Quick/.github/PULL_REQUEST_TEMPLATE delete mode 100644 Carthage/Checkouts/Quick/.gitignore delete mode 100644 Carthage/Checkouts/Quick/.gitmodules delete mode 100644 Carthage/Checkouts/Quick/.hound.yml delete mode 100644 Carthage/Checkouts/Quick/.swift-version delete mode 100644 Carthage/Checkouts/Quick/.swiftlint.yml delete mode 100644 Carthage/Checkouts/Quick/.travis.yml delete mode 100644 Carthage/Checkouts/Quick/CODE_OF_CONDUCT.md delete mode 100644 Carthage/Checkouts/Quick/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/Quick/Dangerfile delete mode 100644 Carthage/Checkouts/Quick/Documentation/README.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/InstallingQuick.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/MoreResources.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/README.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/TestUsingTestDoubles.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/TestingApps.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/en-us/Troubleshooting.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/InstallingQuick.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/MoreResources.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/README.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/SharedExamples.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/TestUsingTestDoubles.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/TestingApps.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/ja/Troubleshooting.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/pt-br/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/pt-br/README.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingQuick.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/MoreResources.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/README.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/SharedExamples.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/TestUsingTestDoubles.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/TestingApps.md delete mode 100644 Carthage/Checkouts/Quick/Documentation/zh-cn/Troubleshooting.md delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.gitignore delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.swift-version delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/.travis.yml delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Gemfile delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Gemfile.lock delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/LICENSE delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Package.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/README.md delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/README.md delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLogical.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeNil.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Equal.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/HaveCount.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatchError.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Nimble.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Functional.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/LinuxSupport.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m delete mode 100644 Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m delete mode 100755 Carthage/Checkouts/Quick/Externals/Nimble/script/release delete mode 100755 Carthage/Checkouts/Quick/Externals/Nimble/test delete mode 100644 Carthage/Checkouts/Quick/Gemfile delete mode 100644 Carthage/Checkouts/Quick/Gemfile.lock delete mode 100644 Carthage/Checkouts/Quick/LICENSE delete mode 100644 Carthage/Checkouts/Quick/Package.swift delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.h delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.m delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateIcon.icns delete mode 100755 Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateInfo.plist delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Objective-C/___FILEBASENAME___.m delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Swift/___FILEBASENAME___.swift delete mode 100644 Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateIcon.icns delete mode 100755 Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateInfo.plist delete mode 100644 Carthage/Checkouts/Quick/Quick.podspec delete mode 100644 Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/Quick/Quick.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme delete mode 100644 Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme delete mode 100644 Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/Quick/Quick.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/Quick/README.md delete mode 100644 Carthage/Checkouts/Quick/Rakefile delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/DSL/DSL.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/ErrorUtility.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Example.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/ExampleMetadata.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Filter.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Hooks/HooksPhase.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Hooks/SuiteHooks.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/QuickTestSuite.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/URL+FileName.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/Quick/World.swift delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.m delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.m delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/World+DSL.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.m delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Quick.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/World.h delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m delete mode 100644 Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h delete mode 100644 Carthage/Checkouts/Quick/Tests/LinuxMain.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/SpecRunner.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/TestRun.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Fixtures/FunctionalTests_SharedExamplesTests_SharedExamples.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEach.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEach.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ContextTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/CrossReferencingSpecs.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/AfterEachTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeEachTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeSuiteTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureUsingXCTAssertTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/ItTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/PendingTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamples+BeforeEachTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamplesTests+ObjC.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.h delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.h delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.h delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.m delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Info.plist delete mode 100644 Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/QuickConfigurationTests.m delete mode 100755 Carthage/Checkouts/Quick/script/release delete mode 100755 Carthage/Checkouts/Quick/script/travis-install-linux delete mode 100755 Carthage/Checkouts/Quick/script/travis-install-macos delete mode 100755 Carthage/Checkouts/Quick/script/travis-script-linux delete mode 100755 Carthage/Checkouts/Quick/script/travis-script-macos delete mode 100644 Carthage/Checkouts/ReSwift/.gitignore delete mode 100644 Carthage/Checkouts/ReSwift/.hound.yml delete mode 100644 Carthage/Checkouts/ReSwift/.jazzy.json delete mode 100755 Carthage/Checkouts/ReSwift/.scripts/doc-preprocessor delete mode 100755 Carthage/Checkouts/ReSwift/.scripts/generate-docs delete mode 100755 Carthage/Checkouts/ReSwift/.scripts/update-gh-pages delete mode 100644 Carthage/Checkouts/ReSwift/.swiftlint.yml delete mode 100644 Carthage/Checkouts/ReSwift/.travis.yml delete mode 100755 Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint delete mode 100644 Carthage/Checkouts/ReSwift/CHANGELOG.md delete mode 100644 Carthage/Checkouts/ReSwift/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/ReSwift/Cartfile.resolved delete mode 100644 Carthage/Checkouts/ReSwift/Docs/Actions.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/Reducers.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/State.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/Stores.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/Utilities.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/img/reswift_concept.graffle delete mode 100644 Carthage/Checkouts/ReSwift/Docs/img/reswift_concept.png delete mode 100644 Carthage/Checkouts/ReSwift/Docs/img/reswift_detail.png delete mode 100644 Carthage/Checkouts/ReSwift/Docs/img/timetravel.gif delete mode 100644 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/highlight.css.scss delete mode 100644 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/jazzy.css.scss delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/carat.png delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/dash.png delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/gh.png delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/js/jazzy.js delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/js/jquery.min.js delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/doc.mustache delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/footer.mustache delete mode 100644 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/header.mustache delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/nav.mustache delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/parameter.mustache delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/task.mustache delete mode 100755 Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/tasks.mustache delete mode 100644 Carthage/Checkouts/ReSwift/Docs/templates/heading.md delete mode 100644 Carthage/Checkouts/ReSwift/Docs/templates/toc.md delete mode 100644 Carthage/Checkouts/ReSwift/LICENSE.md delete mode 100644 Carthage/Checkouts/ReSwift/Package.swift delete mode 100644 Carthage/Checkouts/ReSwift/Podfile delete mode 100644 Carthage/Checkouts/ReSwift/Podfile.lock delete mode 100644 Carthage/Checkouts/ReSwift/README.md delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.podspec delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-iOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-macOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-watchOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Action.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/DispatchingStoreType.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Middleware.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Reducer.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/State.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Store.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreSubscriber.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreType.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Subscription.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/Info.plist delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/ReSwift.h delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/Utils/Assertions.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/Utils/Coding.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwift/Utils/TypeHelper.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/StandardActionTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/StoreDispatchTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/StoreMiddlewareTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriberTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriptionTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/StoreTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/TestFakes.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/TypeHelperTests.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Assertions.swift delete mode 100644 Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Compatibility.swift delete mode 100644 Carthage/Checkouts/ReSwift/SwiftLintIntegration/Info.plist delete mode 100644 Carthage/Checkouts/ReSwift/SwiftLintIntegration/SwiftLintIntegration.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/.gitignore delete mode 100644 Carthage/Checkouts/ReSwiftRouter/.swift-version delete mode 100644 Carthage/Checkouts/ReSwiftRouter/.travis.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Cartfile delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Cartfile.private delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Cartfile.resolved delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/.gitignore delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/.swift-version delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/.travis.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Gemfile delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Gemfile.lock delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/LICENSE.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Nimble.podspec delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Package.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/DSL.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/ObjCExpectation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/ExceptionCapture.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Functional.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Wrappers/AsyncMatcherWrapper.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Wrappers/MatcherFunc.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/Wrappers/ObjCMatcher.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/objc/CurrentTestCaseTracker.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/objc/DSL.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/objc/DSL.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/objc/NMBExceptionCapture.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/Nimble/objc/NMBExceptionCapture.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/LinuxSupport.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/script/release delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Nimble/test delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/.gitignore delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/.gitmodules delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/.ruby-version delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/.swift-version delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/.travis.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/CODE_OF_CONDUCT.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/InstallingQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/MoreResources.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/SharedExamples.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/TestingApps.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/InstallingQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/MoreResources.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/TestUsingTestDoubles.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/TestingApps.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/en-us/Troubleshooting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/InstallingQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/MoreResources.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/SharedExamples.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/TestUsingTestDoubles.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/TestingApps.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/ja/Troubleshooting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/ArrangeActAssert.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/BehavioralTesting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/ConfiguringQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingFileTemplates.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingQuick.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/MoreResources.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/NimbleAssertions.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickExamplesAndGroups.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickInObjectiveC.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/SettingUpYourXcodeProject.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/TestUsingTestDoubles.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/TestingApps.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Documentation/zh-cn/Troubleshooting.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/.gitignore delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/.swift-version delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/.travis.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile.lock delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Package.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLogical.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeNil.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Equal.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/HaveCount.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatchError.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Nimble.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Functional.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/LinuxSupport.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/script/release delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Externals/Nimble/test delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Gemfile delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Gemfile.lock delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/LICENSE delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Package.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateIcon.icns delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateInfo.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Objective-C/___FILEBASENAME___.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Swift/___FILEBASENAME___.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateIcon.icns delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateInfo.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.podspec delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-OSX.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Quick.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Rakefile delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/DSL/DSL.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/ErrorUtility.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Example.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/ExampleMetadata.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Filter.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Hooks/HooksPhase.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Hooks/SuiteHooks.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/QuickTestSuite.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/String+FileName.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/Quick/World.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/World+DSL.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Quick.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/World.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/LinuxMain.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/SpecRunner.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/TestRun.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Fixtures/FunctionalTests_SharedExamplesTests_SharedExamples.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterSuiteTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEach.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEach.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ContextTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/CrossReferencingSpecs.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/AfterEachTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/AfterSuiteTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeEachTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeSuiteTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureUsingXCTAssertTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/ItTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/PendingTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamples+BeforeEachTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamplesTests+ObjC.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.m delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/QuickConfigurationTests.m delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/release delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/travis-install-linux delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/travis-install-macos delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/travis-install-osx delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/travis-script-linux delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/travis-script-macos delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/Quick/script/travis-script-osx delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.gitignore delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.hound.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.jazzy.json delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.scripts/doc-preprocessor delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.scripts/generate-docs delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.scripts/update-gh-pages delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.swiftlint.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/.travis.yml delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/CHANGELOG.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/CONTRIBUTING.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Cartfile.resolved delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/Actions.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/Reducers.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/State.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/Stores.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/Utilities.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/img/reswift_concept.graffle delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/img/reswift_concept.png delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/img/reswift_detail.png delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/img/timetravel.gif delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/highlight.css.scss delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/jazzy.css.scss delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/carat.png delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/dash.png delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/gh.png delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/js/jazzy.js delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/js/jquery.min.js delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/doc.mustache delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/footer.mustache delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/header.mustache delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/nav.mustache delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/parameter.mustache delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/task.mustache delete mode 100755 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/templates/tasks.mustache delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/templates/heading.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Docs/templates/toc.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/LICENSE.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/Package.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.podspec delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-iOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-macOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift.xcodeproj/xcshareddata/xcschemes/ReSwift-watchOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Action.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/CombinedReducer.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Middleware.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Reducer.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/State.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Store.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreSubscriber.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/StoreType.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/CoreTypes/Subscription.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/ReSwift.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/Utils/Assertions.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/Utils/Coding.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/Utils/Swift+Compatibility.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwift/Utils/TypeHelper.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/CombinedReducerTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/StandardActionTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreDispatchTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreMiddlewareTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriberTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreSubscriptionTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/StoreTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/TestFakes.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/TypeHelperTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Assertions.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Carthage/Checkouts/ReSwift/ReSwiftTests/XCTest+Compatibility.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/Changelog.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/LICENSE.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/README.md delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.podspec delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/xcshareddata/xcschemes/ReSwiftRouter-iOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/xcshareddata/xcschemes/ReSwiftRouter-macOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/xcshareddata/xcschemes/ReSwiftRouter-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter.xcodeproj/xcshareddata/xcschemes/ReSwiftRouter-watchOS.xcscheme delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/NavigationActions.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/NavigationReducer.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/NavigationState.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/ReSwiftRouter.h delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Routable.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouter/Router.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/Info.plist delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/ReSwiftRouterIntegrationTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/ReSwiftRouterTestsUnitTests.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/ReSwiftRouterTests/RouteHashSpec.swift delete mode 100644 Carthage/Checkouts/ReSwiftRouter/codecov.yml delete mode 100644 Carthage/Checkouts/RequestKit/.gitignore delete mode 100644 Carthage/Checkouts/RequestKit/.swift-version delete mode 100644 Carthage/Checkouts/RequestKit/.travis.yml delete mode 100644 Carthage/Checkouts/RequestKit/Gemfile delete mode 100644 Carthage/Checkouts/RequestKit/Gemfile.lock delete mode 100644 Carthage/Checkouts/RequestKit/LICENSE delete mode 100644 Carthage/Checkouts/RequestKit/Makefile delete mode 100644 Carthage/Checkouts/RequestKit/NBNRequestKit.podspec delete mode 100644 Carthage/Checkouts/RequestKit/README.md delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit Mac.xcscheme delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit tvOS.xcscheme delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit watchOS.xcscheme delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit.xcodeproj/xcshareddata/xcschemes/RequestKit.xcscheme delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit/Info.plist delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit/JSONPostRouter.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit/RequestKit.h delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit/RequestKitSession.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKit/Router.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/ConfigurationTests.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/Info.plist delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/JSONPostRouterTests.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/RequestKitURLTestSession.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/RouterTests.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/TestHelper.swift delete mode 100644 Carthage/Checkouts/RequestKit/RequestKitTests/TestInterface.swift delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/.env delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/.env.default delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/.env.deploy delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/.env.ios93 delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/.env.osx delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/.env.tvos92 delete mode 100644 Carthage/Checkouts/RequestKit/fastlane/Fastfile delete mode 100644 Carthage/Checkouts/SSKeychain/.gitignore delete mode 100644 Carthage/Checkouts/SSKeychain/LICENSE delete mode 100644 Carthage/Checkouts/SSKeychain/Readme.markdown delete mode 100644 Carthage/Checkouts/SSKeychain/SAMKeychain.podspec delete mode 100644 Carthage/Checkouts/SSKeychain/SAMKeychain.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/SSKeychain/SAMKeychain.xcodeproj/xcshareddata/xcschemes/SAMKeychain-iOS.xcscheme delete mode 100644 Carthage/Checkouts/SSKeychain/SAMKeychain.xcodeproj/xcshareddata/xcschemes/SAMKeychain-macOS.xcscheme delete mode 100644 Carthage/Checkouts/SSKeychain/SAMKeychain.xcodeproj/xcshareddata/xcschemes/SAMKeychain-tvOS.xcscheme delete mode 100644 Carthage/Checkouts/SSKeychain/SAMKeychain.xcodeproj/xcshareddata/xcschemes/SAMKeychain-watchOS.xcscheme delete mode 100644 Carthage/Checkouts/SSKeychain/Sources/SAMKeychain.h delete mode 100644 Carthage/Checkouts/SSKeychain/Sources/SAMKeychain.m delete mode 100644 Carthage/Checkouts/SSKeychain/Sources/SAMKeychainQuery.h delete mode 100644 Carthage/Checkouts/SSKeychain/Sources/SAMKeychainQuery.m delete mode 100644 Carthage/Checkouts/SSKeychain/Support/Info.plist delete mode 100644 Carthage/Checkouts/SSKeychain/Support/SAMKeychain.bundle/en.lproj/SAMKeychain.strings delete mode 100644 Carthage/Checkouts/SSKeychain/Support/Tests-Info.plist delete mode 100644 Carthage/Checkouts/SSKeychain/Tests/KeychainTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/.gitignore delete mode 100644 Carthage/Checkouts/octokit.swift/.swift-version delete mode 100644 Carthage/Checkouts/octokit.swift/.travis.yml delete mode 100644 Carthage/Checkouts/octokit.swift/Cartfile delete mode 100644 Carthage/Checkouts/octokit.swift/Cartfile.resolved delete mode 100644 Carthage/Checkouts/octokit.swift/Gemfile delete mode 100644 Carthage/Checkouts/octokit.swift/Gemfile.lock delete mode 100644 Carthage/Checkouts/octokit.swift/LICENSE delete mode 100644 Carthage/Checkouts/octokit.swift/Makefile delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.swift.podspec delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/project.pbxproj delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit Mac.xcscheme delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit tvOS.xcscheme delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit watchOS.xcscheme delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit.xcodeproj/xcshareddata/xcschemes/OctoKit.xcscheme delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Configuration.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Follow.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Info.plist delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Issue.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Label.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Milestone.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/OctoKit.h delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Octokit.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/PublicKey.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Repositories.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Stars.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/Time.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/URL+URLParameters.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKit/User.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/ConfigurationTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/issue.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/issues.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/public_key.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/repo.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/user_me.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/user_mietzmithut.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Fixtures/user_repos.json delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/FollowTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/Info.plist delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/IssueTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/OctoKitURLTestSession.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/OctokitSwiftTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/PublicKeyTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/RepositoryTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/StarsTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/TestHelper.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/UserTests.swift delete mode 100644 Carthage/Checkouts/octokit.swift/OctoKitTests/users.json delete mode 100644 Carthage/Checkouts/octokit.swift/README.md delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/.env delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/.env.default delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/.env.deploy delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/.env.ios93 delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/.env.osx delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/.env.tvos92 delete mode 100644 Carthage/Checkouts/octokit.swift/fastlane/Fastfile delete mode 100644 SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift diff --git a/.gitignore b/.gitignore index 3e220fd..095a382 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +Carthage + ##Project Specific SwiftFlowGitHubBrowser/GitHubAuth/Credentials.swift diff --git a/Cartfile b/Cartfile index 3ff6434..bf15ee4 100644 --- a/Cartfile +++ b/Cartfile @@ -4,4 +4,4 @@ github "Quick/Nimble" github "soffes/SSKeychain" github "Ben-G/ListKit" github "ReSwift/ReSwift" ~> 4.0.0 -github "ReSwift/ReSwiftRouter" "master" +github "ReSwift/ReSwiftRouter" ~> 0.6.0 diff --git a/Cartfile.resolved b/Cartfile.resolved index b46cc5f..a081f54 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,8 +1,8 @@ github "Ben-G/ListKit" "2.0.0" -github "Quick/Nimble" "v7.0.0" -github "Quick/Quick" "v1.1.0" +github "Quick/Nimble" "v7.0.2" +github "Quick/Quick" "v1.2.0" github "ReSwift/ReSwift" "4.0.0" -github "ReSwift/ReSwiftRouter" "891bc13fc4c12f106eb51c64f757c18e64062d60" +github "ReSwift/ReSwiftRouter" "0.6.0" github "nerdishbynature/RequestKit" "2.0.2" -github "nerdishbynature/octokit.swift" "0.7.3" -github "soffes/SSKeychain" "v1.5.2" +github "nerdishbynature/octokit.swift" "0.7.4" +github "soffes/SSKeychain" "v1.5.3" diff --git a/Carthage/Checkouts/ListKit/.gitignore b/Carthage/Checkouts/ListKit/.gitignore deleted file mode 100644 index 13b686e..0000000 --- a/Carthage/Checkouts/ListKit/.gitignore +++ /dev/null @@ -1,52 +0,0 @@ -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## Build generated -build/ -DerivedData - -## Various settings -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata - -## Other -*.xccheckout -*.moved-aside -*.xcuserstate -*.xcscmblueprint -*.DS_Store - -## Obj-C/Swift specific -*.hmap -*.ipa - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. - -fastlane/report.xml -fastlane/screenshots diff --git a/Carthage/Checkouts/ListKit/LICENSE.md b/Carthage/Checkouts/ListKit/LICENSE.md deleted file mode 100644 index c07c459..0000000 --- a/Carthage/Checkouts/ListKit/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Benjamin Encz - -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. \ No newline at end of file diff --git a/Carthage/Checkouts/ListKit/ListKit.podspec b/Carthage/Checkouts/ListKit/ListKit.podspec deleted file mode 100644 index 52765eb..0000000 --- a/Carthage/Checkouts/ListKit/ListKit.podspec +++ /dev/null @@ -1,17 +0,0 @@ -Pod::Spec.new do |s| - s.name = "ListKit" - s.version = "2.0.0" - s.summary = "A libary that helps you build table views without re-inventing the data source" - s.description = "A libary that helps you build table views without re-inventing the data source." - s.homepage = "https://github.com/Ben-G/ListKit" - s.license = { :type => "MIT", :file => "LICENSE.md" } - s.author = { "Benjamin Encz" => "me@benjamin-encz.de" } - s.social_media_url = "http://twitter.com/benjaminencz" - s.source = { :git => "https://github.com/Ben-G/ListKit.git", :tag => s.version.to_s } - - s.platforms = { :ios => "8.0" } - s.requires_arc = true - - s.source_files = 'ListKit/*.{swift}' - -end diff --git a/Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.pbxproj b/Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.pbxproj deleted file mode 100644 index ea5ca1f..0000000 --- a/Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,846 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 622C76B31AA27DB0009FDC37 /* ArrayDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6265185C1A96476900F1D760 /* ArrayDataSource.swift */; }; - 623E47871B5ECF08009F2863 /* City.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E477C1B5ECF08009F2863 /* City.swift */; }; - 623E47881B5ECF08009F2863 /* CityCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E477D1B5ECF08009F2863 /* CityCell.swift */; }; - 623E47891B5ECF08009F2863 /* CityCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 623E477E1B5ECF08009F2863 /* CityCell.xib */; }; - 623E478A1B5ECF08009F2863 /* madrid.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47801B5ECF08009F2863 /* madrid.jpg */; }; - 623E478B1B5ECF08009F2863 /* new_delhi.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47811B5ECF08009F2863 /* new_delhi.jpg */; }; - 623E478C1B5ECF08009F2863 /* sf.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47821B5ECF08009F2863 /* sf.jpg */; }; - 623E478D1B5ECF08009F2863 /* stuttgart.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47831B5ECF08009F2863 /* stuttgart.jpg */; }; - 623E478E1B5ECF08009F2863 /* tokyo.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47841B5ECF08009F2863 /* tokyo.jpg */; }; - 623E478F1B5ECF08009F2863 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E47861B5ECF08009F2863 /* ViewController.swift */; }; - 623E47911B5ECF2D009F2863 /* CityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E47901B5ECF2D009F2863 /* CityViewController.swift */; }; - 623E47921B5ECF9C009F2863 /* CityCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 623E477E1B5ECF08009F2863 /* CityCell.xib */; }; - 623E47931B5ECFA0009F2863 /* CityCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E477D1B5ECF08009F2863 /* CityCell.swift */; }; - 623E47941B5ECFA2009F2863 /* City.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E477C1B5ECF08009F2863 /* City.swift */; }; - 623E47961B5ECFF9009F2863 /* CustomXibDataSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 623E47951B5ECFF9009F2863 /* CustomXibDataSourceTests.swift */; }; - 623E47971B5ED15E009F2863 /* madrid.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47801B5ECF08009F2863 /* madrid.jpg */; }; - 623E47981B5ED161009F2863 /* new_delhi.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47811B5ECF08009F2863 /* new_delhi.jpg */; }; - 623E47991B5ED163009F2863 /* sf.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47821B5ECF08009F2863 /* sf.jpg */; }; - 623E479A1B5ED165009F2863 /* stuttgart.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47831B5ECF08009F2863 /* stuttgart.jpg */; }; - 623E479B1B5ED167009F2863 /* tokyo.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 623E47841B5ECF08009F2863 /* tokyo.jpg */; }; - 626518181A96473700F1D760 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 626518171A96473700F1D760 /* AppDelegate.swift */; }; - 6265181D1A96473700F1D760 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6265181B1A96473700F1D760 /* Main.storyboard */; }; - 6265181F1A96473700F1D760 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6265181E1A96473700F1D760 /* Images.xcassets */; }; - 626518221A96473700F1D760 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 626518201A96473700F1D760 /* LaunchScreen.xib */; }; - 6265182E1A96473700F1D760 /* ListKitDemoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6265182D1A96473700F1D760 /* ListKitDemoTests.swift */; }; - 626518411A96474900F1D760 /* ListKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 626518401A96474900F1D760 /* ListKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 626518471A96474900F1D760 /* ListKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6265183C1A96474900F1D760 /* ListKit.framework */; }; - 626518501A96474900F1D760 /* BasicDataSourceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6265184F1A96474900F1D760 /* BasicDataSourceTests.swift */; }; - 62A34B3E1BD610F60025771B /* ListKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6265183C1A96474900F1D760 /* ListKit.framework */; }; - 62A34B3F1BD610F60025771B /* ListKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6265183C1A96474900F1D760 /* ListKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 626518281A96473700F1D760 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6265180A1A96473700F1D760 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 626518111A96473700F1D760; - remoteInfo = ListKitDemo; - }; - 626518481A96474900F1D760 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6265180A1A96473700F1D760 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6265183B1A96474900F1D760; - remoteInfo = ListKit; - }; - 6265184A1A96474900F1D760 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6265180A1A96473700F1D760 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 626518111A96473700F1D760; - remoteInfo = ListKitDemo; - }; - 62A34B401BD610F70025771B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6265180A1A96473700F1D760 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6265183B1A96474900F1D760; - remoteInfo = ListKit; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 62A34B421BD610F70025771B /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 62A34B3F1BD610F60025771B /* ListKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 623E477C1B5ECF08009F2863 /* City.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = City.swift; sourceTree = ""; }; - 623E477D1B5ECF08009F2863 /* CityCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CityCell.swift; sourceTree = ""; }; - 623E477E1B5ECF08009F2863 /* CityCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CityCell.xib; sourceTree = ""; }; - 623E47801B5ECF08009F2863 /* madrid.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = madrid.jpg; sourceTree = ""; }; - 623E47811B5ECF08009F2863 /* new_delhi.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = new_delhi.jpg; sourceTree = ""; }; - 623E47821B5ECF08009F2863 /* sf.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = sf.jpg; sourceTree = ""; }; - 623E47831B5ECF08009F2863 /* stuttgart.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = stuttgart.jpg; sourceTree = ""; }; - 623E47841B5ECF08009F2863 /* tokyo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = tokyo.jpg; sourceTree = ""; }; - 623E47861B5ECF08009F2863 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 623E47901B5ECF2D009F2863 /* CityViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CityViewController.swift; sourceTree = ""; }; - 623E47951B5ECFF9009F2863 /* CustomXibDataSourceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomXibDataSourceTests.swift; sourceTree = ""; }; - 626518121A96473700F1D760 /* ListKitDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ListKitDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 626518161A96473700F1D760 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 626518171A96473700F1D760 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 6265181C1A96473700F1D760 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 6265181E1A96473700F1D760 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 626518211A96473700F1D760 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 626518271A96473700F1D760 /* ListKit.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ListKit.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 6265182C1A96473700F1D760 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 6265182D1A96473700F1D760 /* ListKitDemoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListKitDemoTests.swift; sourceTree = ""; }; - 6265183C1A96474900F1D760 /* ListKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ListKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6265183F1A96474900F1D760 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 626518401A96474900F1D760 /* ListKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ListKit.h; sourceTree = ""; }; - 626518461A96474900F1D760 /* ListKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ListKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 6265184E1A96474900F1D760 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 6265184F1A96474900F1D760 /* BasicDataSourceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BasicDataSourceTests.swift; sourceTree = ""; }; - 6265185C1A96476900F1D760 /* ArrayDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayDataSource.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 6265180F1A96473700F1D760 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 62A34B3E1BD610F60025771B /* ListKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518241A96473700F1D760 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518381A96474900F1D760 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518431A96474900F1D760 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 626518471A96474900F1D760 /* ListKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 623E47791B5ECF08009F2863 /* Demos */ = { - isa = PBXGroup; - children = ( - 623E477A1B5ECF08009F2863 /* CityDemo */, - 623E47851B5ECF08009F2863 /* Simple */, - ); - path = Demos; - sourceTree = ""; - }; - 623E477A1B5ECF08009F2863 /* CityDemo */ = { - isa = PBXGroup; - children = ( - 623E477B1B5ECF08009F2863 /* CustomCell */, - 623E477F1B5ECF08009F2863 /* Resources */, - 623E47901B5ECF2D009F2863 /* CityViewController.swift */, - ); - path = CityDemo; - sourceTree = ""; - }; - 623E477B1B5ECF08009F2863 /* CustomCell */ = { - isa = PBXGroup; - children = ( - 623E477C1B5ECF08009F2863 /* City.swift */, - 623E477D1B5ECF08009F2863 /* CityCell.swift */, - 623E477E1B5ECF08009F2863 /* CityCell.xib */, - ); - path = CustomCell; - sourceTree = ""; - }; - 623E477F1B5ECF08009F2863 /* Resources */ = { - isa = PBXGroup; - children = ( - 623E47801B5ECF08009F2863 /* madrid.jpg */, - 623E47811B5ECF08009F2863 /* new_delhi.jpg */, - 623E47821B5ECF08009F2863 /* sf.jpg */, - 623E47831B5ECF08009F2863 /* stuttgart.jpg */, - 623E47841B5ECF08009F2863 /* tokyo.jpg */, - ); - path = Resources; - sourceTree = ""; - }; - 623E47851B5ECF08009F2863 /* Simple */ = { - isa = PBXGroup; - children = ( - 623E47861B5ECF08009F2863 /* ViewController.swift */, - ); - path = Simple; - sourceTree = ""; - }; - 626518091A96473700F1D760 = { - isa = PBXGroup; - children = ( - 626518141A96473700F1D760 /* ListKitDemo */, - 6265182A1A96473700F1D760 /* ListKitDemoTests */, - 6265183D1A96474900F1D760 /* ListKit */, - 6265184C1A96474900F1D760 /* ListKitTests */, - 626518131A96473700F1D760 /* Products */, - ); - sourceTree = ""; - }; - 626518131A96473700F1D760 /* Products */ = { - isa = PBXGroup; - children = ( - 626518121A96473700F1D760 /* ListKitDemo.app */, - 626518271A96473700F1D760 /* ListKit.xctest */, - 6265183C1A96474900F1D760 /* ListKit.framework */, - 626518461A96474900F1D760 /* ListKitTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 626518141A96473700F1D760 /* ListKitDemo */ = { - isa = PBXGroup; - children = ( - 623E47791B5ECF08009F2863 /* Demos */, - 626518171A96473700F1D760 /* AppDelegate.swift */, - 6265181B1A96473700F1D760 /* Main.storyboard */, - 6265181E1A96473700F1D760 /* Images.xcassets */, - 626518201A96473700F1D760 /* LaunchScreen.xib */, - 626518151A96473700F1D760 /* Supporting Files */, - ); - path = ListKitDemo; - sourceTree = ""; - }; - 626518151A96473700F1D760 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 626518161A96473700F1D760 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 6265182A1A96473700F1D760 /* ListKitDemoTests */ = { - isa = PBXGroup; - children = ( - 6265182D1A96473700F1D760 /* ListKitDemoTests.swift */, - 6265182B1A96473700F1D760 /* Supporting Files */, - ); - path = ListKitDemoTests; - sourceTree = ""; - }; - 6265182B1A96473700F1D760 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 6265182C1A96473700F1D760 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 6265183D1A96474900F1D760 /* ListKit */ = { - isa = PBXGroup; - children = ( - 626518401A96474900F1D760 /* ListKit.h */, - 6265183E1A96474900F1D760 /* Supporting Files */, - 6265185C1A96476900F1D760 /* ArrayDataSource.swift */, - ); - path = ListKit; - sourceTree = ""; - }; - 6265183E1A96474900F1D760 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 6265183F1A96474900F1D760 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 6265184C1A96474900F1D760 /* ListKitTests */ = { - isa = PBXGroup; - children = ( - 6265184F1A96474900F1D760 /* BasicDataSourceTests.swift */, - 623E47951B5ECFF9009F2863 /* CustomXibDataSourceTests.swift */, - 6265184D1A96474900F1D760 /* Supporting Files */, - ); - path = ListKitTests; - sourceTree = ""; - }; - 6265184D1A96474900F1D760 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 6265184E1A96474900F1D760 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 626518391A96474900F1D760 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 626518411A96474900F1D760 /* ListKit.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 626518111A96473700F1D760 /* ListKitDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 626518311A96473700F1D760 /* Build configuration list for PBXNativeTarget "ListKitDemo" */; - buildPhases = ( - 6265180E1A96473700F1D760 /* Sources */, - 6265180F1A96473700F1D760 /* Frameworks */, - 626518101A96473700F1D760 /* Resources */, - 62A34B421BD610F70025771B /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 62A34B411BD610F70025771B /* PBXTargetDependency */, - ); - name = ListKitDemo; - productName = ListKitDemo; - productReference = 626518121A96473700F1D760 /* ListKitDemo.app */; - productType = "com.apple.product-type.application"; - }; - 626518261A96473700F1D760 /* ListKitDemoTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 626518341A96473700F1D760 /* Build configuration list for PBXNativeTarget "ListKitDemoTests" */; - buildPhases = ( - 626518231A96473700F1D760 /* Sources */, - 626518241A96473700F1D760 /* Frameworks */, - 626518251A96473700F1D760 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 626518291A96473700F1D760 /* PBXTargetDependency */, - ); - name = ListKitDemoTests; - productName = ListKitDemoTests; - productReference = 626518271A96473700F1D760 /* ListKit.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 6265183B1A96474900F1D760 /* ListKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 626518551A96474900F1D760 /* Build configuration list for PBXNativeTarget "ListKit" */; - buildPhases = ( - 626518371A96474900F1D760 /* Sources */, - 626518381A96474900F1D760 /* Frameworks */, - 626518391A96474900F1D760 /* Headers */, - 6265183A1A96474900F1D760 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ListKit; - productName = ListKit; - productReference = 6265183C1A96474900F1D760 /* ListKit.framework */; - productType = "com.apple.product-type.framework"; - }; - 626518451A96474900F1D760 /* ListKitTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 626518591A96474900F1D760 /* Build configuration list for PBXNativeTarget "ListKitTests" */; - buildPhases = ( - 626518421A96474900F1D760 /* Sources */, - 626518431A96474900F1D760 /* Frameworks */, - 626518441A96474900F1D760 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 626518491A96474900F1D760 /* PBXTargetDependency */, - 6265184B1A96474900F1D760 /* PBXTargetDependency */, - ); - name = ListKitTests; - productName = ListKitTests; - productReference = 626518461A96474900F1D760 /* ListKitTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 6265180A1A96473700F1D760 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftMigration = 0700; - LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0800; - ORGANIZATIONNAME = "Benjamin Encz"; - TargetAttributes = { - 626518111A96473700F1D760 = { - CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 0810; - }; - 626518261A96473700F1D760 = { - CreatedOnToolsVersion = 6.1.1; - TestTargetID = 626518111A96473700F1D760; - }; - 6265183B1A96474900F1D760 = { - CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 0810; - }; - 626518451A96474900F1D760 = { - CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 0810; - }; - }; - }; - buildConfigurationList = 6265180D1A96473700F1D760 /* Build configuration list for PBXProject "ListKit" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 626518091A96473700F1D760; - productRefGroup = 626518131A96473700F1D760 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 626518111A96473700F1D760 /* ListKitDemo */, - 626518261A96473700F1D760 /* ListKitDemoTests */, - 6265183B1A96474900F1D760 /* ListKit */, - 626518451A96474900F1D760 /* ListKitTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 626518101A96473700F1D760 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 623E478C1B5ECF08009F2863 /* sf.jpg in Resources */, - 6265181D1A96473700F1D760 /* Main.storyboard in Resources */, - 623E478D1B5ECF08009F2863 /* stuttgart.jpg in Resources */, - 623E478A1B5ECF08009F2863 /* madrid.jpg in Resources */, - 623E478B1B5ECF08009F2863 /* new_delhi.jpg in Resources */, - 626518221A96473700F1D760 /* LaunchScreen.xib in Resources */, - 623E47891B5ECF08009F2863 /* CityCell.xib in Resources */, - 6265181F1A96473700F1D760 /* Images.xcassets in Resources */, - 623E478E1B5ECF08009F2863 /* tokyo.jpg in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518251A96473700F1D760 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6265183A1A96474900F1D760 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518441A96474900F1D760 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 623E47981B5ED161009F2863 /* new_delhi.jpg in Resources */, - 623E47971B5ED15E009F2863 /* madrid.jpg in Resources */, - 623E479B1B5ED167009F2863 /* tokyo.jpg in Resources */, - 623E47991B5ED163009F2863 /* sf.jpg in Resources */, - 623E479A1B5ED165009F2863 /* stuttgart.jpg in Resources */, - 623E47921B5ECF9C009F2863 /* CityCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 6265180E1A96473700F1D760 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 623E478F1B5ECF08009F2863 /* ViewController.swift in Sources */, - 623E47911B5ECF2D009F2863 /* CityViewController.swift in Sources */, - 623E47881B5ECF08009F2863 /* CityCell.swift in Sources */, - 623E47871B5ECF08009F2863 /* City.swift in Sources */, - 626518181A96473700F1D760 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518231A96473700F1D760 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6265182E1A96473700F1D760 /* ListKitDemoTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518371A96474900F1D760 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 622C76B31AA27DB0009FDC37 /* ArrayDataSource.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 626518421A96474900F1D760 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 623E47931B5ECFA0009F2863 /* CityCell.swift in Sources */, - 623E47961B5ECFF9009F2863 /* CustomXibDataSourceTests.swift in Sources */, - 626518501A96474900F1D760 /* BasicDataSourceTests.swift in Sources */, - 623E47941B5ECFA2009F2863 /* City.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 626518291A96473700F1D760 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 626518111A96473700F1D760 /* ListKitDemo */; - targetProxy = 626518281A96473700F1D760 /* PBXContainerItemProxy */; - }; - 626518491A96474900F1D760 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 6265183B1A96474900F1D760 /* ListKit */; - targetProxy = 626518481A96474900F1D760 /* PBXContainerItemProxy */; - }; - 6265184B1A96474900F1D760 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 626518111A96473700F1D760 /* ListKitDemo */; - targetProxy = 6265184A1A96474900F1D760 /* PBXContainerItemProxy */; - }; - 62A34B411BD610F70025771B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 6265183B1A96474900F1D760 /* ListKit */; - targetProxy = 62A34B401BD610F70025771B /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 6265181B1A96473700F1D760 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 6265181C1A96473700F1D760 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 626518201A96473700F1D760 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 626518211A96473700F1D760 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 6265182F1A96473700F1D760 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 626518301A96473700F1D760 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 626518321A96473700F1D760 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = ListKitDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ListKitDemo; - SWIFT_VERSION = 3.0; - }; - name = Debug; - }; - 626518331A96473700F1D760 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = ListKitDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ListKitDemo; - SWIFT_VERSION = 3.0; - }; - name = Release; - }; - 626518351A96473700F1D760 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = ListKitDemoTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ListKit; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ListKit.app/ListKit"; - }; - name = Debug; - }; - 626518361A96473700F1D760 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = ListKitDemoTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = ListKit; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ListKit.app/ListKit"; - }; - name = Release; - }; - 626518561A96474900F1D760 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = ListKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 626518571A96474900F1D760 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = ListKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 6265185A1A96474900F1D760 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = ListKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = Debug; - }; - 6265185B1A96474900F1D760 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = ListKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "Benjamin-Encz.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 6265180D1A96473700F1D760 /* Build configuration list for PBXProject "ListKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6265182F1A96473700F1D760 /* Debug */, - 626518301A96473700F1D760 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 626518311A96473700F1D760 /* Build configuration list for PBXNativeTarget "ListKitDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 626518321A96473700F1D760 /* Debug */, - 626518331A96473700F1D760 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 626518341A96473700F1D760 /* Build configuration list for PBXNativeTarget "ListKitDemoTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 626518351A96473700F1D760 /* Debug */, - 626518361A96473700F1D760 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 626518551A96474900F1D760 /* Build configuration list for PBXNativeTarget "ListKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 626518561A96474900F1D760 /* Debug */, - 626518571A96474900F1D760 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 626518591A96474900F1D760 /* Build configuration list for PBXNativeTarget "ListKitTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6265185A1A96474900F1D760 /* Debug */, - 6265185B1A96474900F1D760 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 6265180A1A96473700F1D760 /* Project object */; -} diff --git a/Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index d5502b5..0000000 --- a/Carthage/Checkouts/ListKit/ListKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Carthage/Checkouts/ListKit/ListKit.xcodeproj/xcshareddata/xcschemes/ListKit.xcscheme b/Carthage/Checkouts/ListKit/ListKit.xcodeproj/xcshareddata/xcschemes/ListKit.xcscheme deleted file mode 100644 index a5581a8..0000000 --- a/Carthage/Checkouts/ListKit/ListKit.xcodeproj/xcshareddata/xcschemes/ListKit.xcscheme +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/ListKit/ListKit/ArrayDataSource.swift b/Carthage/Checkouts/ListKit/ListKit/ArrayDataSource.swift deleted file mode 100644 index 0545d67..0000000 --- a/Carthage/Checkouts/ListKit/ListKit/ArrayDataSource.swift +++ /dev/null @@ -1,74 +0,0 @@ -// -// DataSource.swift -// ListKitDemo -// -// Created by Benjamin Encz on 2/19/15. -// Copyright (c) 2015 Benjamin Encz. All rights reserved. -// - -import Foundation -import UIKit - -/// A `UITableViewCell` adopting this type can be used together -/// with the `ArrayDataSource` class. -public protocol ListKitCellProtocol { - associatedtype CellType - - /// Stores the content that is represented within the cell. - /// Types adopting this protocol should update the UI when this - /// property is set - var model: CellType? {get set} -} - -/// Implements the `UITableViewDataSource` protocol. Needs to be initialized with a custom cell class. -/// Optionally you can provide a NIB file from which the cell should be created. You define the content -/// of the table view by setting the `array` property. -open class ArrayDataSource : NSObject, UITableViewDataSource where U:ListKitCellProtocol, U:UITableViewCell, T == U.CellType { - - let cellIdentifier = "arrayDataSourceCell" - - fileprivate let nib: UINib? - - /// The content represented in the table view - open var array: Array - - /// Initialize with a custom cell type - public init (array:Array = [], cellType: U.Type) { - self.array = array - self.nib = nil - } - - /// Initialize with a custom cell type and a NIB file from which - /// the cell should be loaded - public init (array:Array = [], cellType: U.Type, nib: UINib) { - self.array = array - self.nib = nib - } - - open func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return array.count - } - - open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - var nullableCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as? U - - if nullableCell == nil { - if let nib = nib { - tableView.register(nib, forCellReuseIdentifier: cellIdentifier) - nullableCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as? U - } else { - nullableCell = U(style: .default, reuseIdentifier: cellIdentifier) - } - } - - // This can only be invalid if `nib` specifies a cell with the wrong class and the first dequeue didn't work - guard var cell = nullableCell else { - fatalError("Unable to dequeue valid cell of type \(U.self) from reuse identifier \(cellIdentifier) or create cell of type \(U.self) from nib \(nib)") - } - - cell.model = array[(indexPath as NSIndexPath).row] - - return cell - } - -} diff --git a/Carthage/Checkouts/ListKit/ListKit/Info.plist b/Carthage/Checkouts/ListKit/ListKit/Info.plist deleted file mode 100644 index dfb6492..0000000 --- a/Carthage/Checkouts/ListKit/ListKit/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 2.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/ListKit/ListKit/ListKit.h b/Carthage/Checkouts/ListKit/ListKit/ListKit.h deleted file mode 100644 index f6d9651..0000000 --- a/Carthage/Checkouts/ListKit/ListKit/ListKit.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// ListKit.h -// ListKit -// -// Created by Benjamin Encz on 2/19/15. -// Copyright (c) 2015 Benjamin Encz. All rights reserved. -// - -#import - -//! Project version number for ListKit. -FOUNDATION_EXPORT double ListKitVersionNumber; - -//! Project version string for ListKit. -FOUNDATION_EXPORT const unsigned char ListKitVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/AppDelegate.swift b/Carthage/Checkouts/ListKit/ListKitDemo/AppDelegate.swift deleted file mode 100644 index f105deb..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/AppDelegate.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// AppDelegate.swift -// ListKitDemo -// -// Created by Benjamin Encz on 2/19/15. -// Copyright (c) 2015 Benjamin Encz. All rights reserved. -// - -import UIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - func applicationWillResignActive(_ application: UIApplication) { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. - } - - func applicationDidEnterBackground(_ application: UIApplication) { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. - } - - func applicationWillEnterForeground(_ application: UIApplication) { - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. - } - - func applicationDidBecomeActive(_ application: UIApplication) { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. - } - - func applicationWillTerminate(_ application: UIApplication) { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. - } - - -} - diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/LaunchScreen.xib b/Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/LaunchScreen.xib deleted file mode 100644 index e980539..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/Main.storyboard b/Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/Main.storyboard deleted file mode 100644 index a161d22..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Base.lproj/Main.storyboard +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CityViewController.swift b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CityViewController.swift deleted file mode 100644 index 9702373..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CityViewController.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// CityViewController.swift -// ListKitDemo -// -// Created by Benjamin Encz on 7/21/15. -// Copyright © 2015 Benjamin Encz. All rights reserved. -// - -import UIKit -import ListKit - -class CityViewController: UIViewController { - - @IBOutlet var tableView: UITableView! - - var dataSource: ArrayDataSource? - - override func viewDidLoad() { - super.viewDidLoad() - - // Set up cities - let city1 = City( - name: "Stuttgart", - country: "Germany", - image: UIImage(named: "stuttgart.jpg")! - ) - - let city2 = City( - name: "San Francisco", - country: "USA", - image: UIImage(named: "sf.jpg")! - ) - - let cities = [city1, city2] - - let nib = UINib(nibName: "CityCell", bundle: Bundle.main) - - dataSource = ArrayDataSource(array: cities, cellType: CityCell.self, nib: nib) - tableView.dataSource = dataSource - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - - tableView.reloadData() - } - - @IBAction func addButtonTapped(_ sender: AnyObject) { - let additionalCity = City( - name: "Tokyo", - country: "Japan", - image: UIImage(named: "tokyo.jpg")! - ) - - dataSource?.array.append(additionalCity) - tableView.reloadData() - } - -} diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/City.swift b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/City.swift deleted file mode 100644 index 971ea06..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/City.swift +++ /dev/null @@ -1,15 +0,0 @@ -// -// City.swift -// ListKitDemo -// -// Created by Benjamin Encz on 7/21/15. -// Copyright © 2015 Benjamin Encz. All rights reserved. -// - -import UIKit - -struct City { - let name: String - let country: String - let image: UIImage -} diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.swift b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.swift deleted file mode 100644 index 25f0c0d..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// CustomCell.swift -// ListKitDemo -// -// Created by Benjamin Encz on 7/21/15. -// Copyright © 2015 Benjamin Encz. All rights reserved. -// - -import UIKit -import ListKit - -class CityCell: UITableViewCell, ListKitCellProtocol { - - @IBOutlet var mainImageView: UIImageView! - @IBOutlet var subLabel: UILabel! - @IBOutlet var mainLabel: UILabel! - - var model: City? { - didSet { - if mainLabel != nil { - configureCell() - } - } - } - - override func awakeFromNib() { - super.awakeFromNib() - - configureCell() - } - - func configureCell() { - mainLabel.text = model?.name - subLabel.text = model?.country - mainImageView.image = model?.image - } - -} \ No newline at end of file diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.xib b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.xib deleted file mode 100644 index 2f3034f..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/CustomCell/CityCell.xib +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/madrid.jpg b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/madrid.jpg deleted file mode 100644 index b5ca39e54d712896928026f83ab0d3fb7508759b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120306 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 z�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%0DuLFiTO_z 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

k*8J$|*H6YhMMI0uhy!zAs0Bon|&$7y6{{RRW z<>wE~GJ+hYOA+&L;18u6z)%#gJw|g>H-K^v1KO3PRwzIj#d?0#-si@9HfV4C+4(zl zq)A-1(osj#t!Fd4COR){p7erpROIv1tx}zkdlP0N?G%G?I2q|pT(Xh5OA>xu_2#qT zm5$(9v5wzbk9&mRKi)i^y=#Jm<@Ktqd45OL=G2?W@IJK{;*DNc7+iakLdZ8{oDSy| zm}HO)Gn|h~aFzD}4n`}|Q|`}@_9ltI%Om&dd)1M}xkn_8naKK9I?PKQ*Z>N+WMPciCautkYvHYtjTslm7QWvHwdG5c`gJahiKT6`Q zQeRuA=>Gsi>abM5;~&MZ@6&&oZ+d5x3-6k4^%4~42fk{dx%u+I55lF5!^#j5xrRpL z#d-=$t3FTJv`iUQxLh3d^{E2}9I+=pm7MouoB{wiCXmd`=^+ZB)*t6>2uuq zHB8hF_&ZPnX)?tdDhTdJYR}q$e-S>Wo=$%2vhmI;?6fD@tD8^({hI7pt8;6zll3Y(RSyn=RbvTI(qHbEyg%93h%xn6fkJu9*o@nRlwm{&(zykVr0})tAYxVWYq-}&G>%9aBCzyD zR`C9=NC(gn?Oz3htII*o-BJ6e5zv)vbg8GSgZ!B;gL)y>^mmF0?i@nEtY8v(73_Lk z+U@?O3>LanHojwH&bo2}k6aAbk@!87c+$k+;6lTvxUZn}byKg|zaV*o@vke0F%hJl zqphFneIEqiF&K%{=BZ`Ou990>b$2~3{?V*{6-#bp4$7H##xi}Y!{TB>>e@6H-B_19B0Jr7&BlMr)cz6As z{3@t%i&pFPubH$}+xvdouI!(*a(@$FPkbpE{hd53k{34ZkA7?BEgk;=<6se-XBSxK z@vr3El1<}tTYoK2&7bJLcCUuY{{Y7y{Uo>hK!U%t4~O>;n3L1+ue$7y{79^`*X)s> zf4D2*ACFDue1GuyKgA(a`HK6d$$#QkYZ+saX&?T8D~mppj!l-Y?#uH>Mo6!lW;gzI z{{W=K&+$<|@T;|E9FHXb04n&jeZ<4y_{V3DZ5jbBeLCTercy(^gcVGoIkNjiUCfEGGpXCEz zRG2=gwB&Aua8GWvmU0w~{N1rrYIDi`ueFhO`74G4r&^$w9DuQ~8RW3eYo{trVCi}< z$n!YP5Bql*{{ZRazcKBqrM96JtkN<&kTMjvUYYc-MAV_Uw78B7h~62DUSL!G*1-n2 zqOrl@xUUgByQy3QAROQt=i+;SvOA=IFv#u*t$XNplB`HHUg$sU5fXFkpFcq~pHb?T_3<$J&G{paeu z0m50vbCqUva5!1jl;cesmh8;&ymQVskWo*r#V$3#-^Unc% zF7dC55^E-~w9x*~KkpY-IBRvu`HtQ>9PwV0ZSc3@{g$sg`2PUMS2s~WtPQ@F5F?S% zdIN*?uRifV#GP+Y*DPf5H;QAh7t@h|K|Q_F64c0ZkG z!>1W_MGfW>RFmeG1b!7Zm^^C-#7__ES6&^I=^AzNPjhc$eGEqKAbx1u%m4^8(1labE3AE*_Q{IMk0b=(=mwpE-rZV(a2t zo#eS?t8cUE{zsOlhh^EhN!oL?o&o%;I_ty!D_KX_ZnW6f_c?|JDtDUKD8aQw<)Dg+APVhdfr)Zuh*L5$5`XYFu4O$rP zG@TmIqT1R=D&(rWe5>e|v7`d7#7* zouh)PoC0!l$2EJzy6%@J#l1#75-79_b&E0BX)u{&g?Y(lUCWc)^sJlvShTm(_1!^i zw2L_iL3^v+B(kw?0~nNs`d7(g_^;YNUS}tLEVu3bE1$9C9u{L}saLIPaZzcxJ2c-l z*M7I?aQ+_nVWH_4x0;5Hb>fc^8R2!kNdk*$Rfo-%$ZnnMXGC_=EUonY1$3)xFEOM0 z4YHXYCC)Gj9eoCCc{LgQL9Jiuwl=;g@%$?g7MC%?EbNuY>HEb}%BLO9YQ?{VJVT;* z86U*{EYo}yqQN(vbN!hXBrTk%F2#oj&{v0#;;Qu}YLiiVSv_C=0+s&wqwO+J4f3oi zv|}piEn4?uqgr!4`@21m8&uOSuP!gr(?__9FEmT9-4fU%BW!EAa(fENnoIux6h4u0 z;j14I_>rTSHRzf#XJUXJico^t=cqWWm_8(YAk%fb(c!H+=f@r*jwhM*E2acH4sc6j zzhPJ!FUKDr>iW}a`kXd?9?>jhM2}6e`?I{5*d!!$&jbTpA6CsP##Nm+rL~*o-(;h# zwdtz!J*S&wSW1-e)T%}t*V2;a_;qc~>8D*ElRZlNN}os2bra*C9e8uVULU$|GwfDd z48t7YO6nLNrFrhH@i*b8g7te?yeZ+E{{S6pj|vDiEmBz~jP4&V&c(kVE6RQ-tbR0# zPaQN{FIk@3QnyJ@mu;|-9v3~yH71v8lWN*r_d^zT7E5x>JF+MtPuI13cnp@3p&GcV zjomxNS}N;HJ8LhS)oOf(X~meS<0|3sG?Hn?)0O7=UEealyB#*t$>`6ZwXcl&-m&{U z>Rt@d^(p)@;;YpAOW)~dVyYqB(J2_g$IJNF%9DJ`}|Ts)2Gl54Q= zpTUoa{wCEmjYC$kw(#w(_*qi&^x$BOoyu@?&#ii|g*4BF{{RFn^@w$U6+zv?gV-AKlHH0?{{WVSY<%i-UKH2(kxS&{y@#=dzzxm=3!JwsR4wcSzm z9cx*=)NY*o?<~7V;G+Zdue-qT7Hf^A%ULQAX?5nG;qI@*{I@sphlVnG>b4on7g{Z~ zr?aK5mUm84T6VMYXRXJmd=&6!iLNyrCeG`}9w#pBZzf;deCH)WUNOg|Wb5A+yj`xq z_I8hJ;mtcABpPf%SbxC4Q(kKnHnO8gk~+%2bx6oHGDN^CnVE}pR6~(ppyeC~l;E6a zID1*IwKvUgMY8!L@ZKfy(}}Y+Ds-wWJtup{lH|Sn%i@23$gI})4|Ha|yO!ow=gpo& zEQj%Inz?T|hIMF`IR-GvA;2|y-%gmmRaMuyn14#%T{7L}j$4ReSH>|CkO#eelc=Mj zKN-bloXyH|yJtK0gCryGaxze82h&R2}d3^~|-Vie-0-Sc8d zCsU5QPfE&Fu5i??C$k=5)85>P14S_(eFsX1%eO@(NOS{`80R$O6jDg07QsD11QAg+ zw8<{$fjhsvY8tu-)ONFAWrd>h*Md14jz3y_KYM6-06j`EBC0aB=2^$ry+t1A++tP$ zbQ?_^rm3W~G~-NMmRa`!*}96iAK%K!A~-!ks!MU0jB{gWx*wSKsUwm+g3cG(ruW>! zZu%NhOLXyuG6@uY-;`#WWrZNwByO`2_kiG08X-W-G;6z{&my3b38T2nJWi*f&UvGC zVbiF{l#xE=xKf^kRiuHYOvNg*6ZbR8`c{>WpEc4Kc-_{smvY-RS_fGC+jzv0NOFTY4ONM`is4#o7l>z!G3J{rT8*?@ zA-a^t2p|rC(nWWyNbV+Ma}fK*(413@Ps!;kxHcfp-}oRY2#Cg&co*JAH}x< zqkT?T=8iwIvM%5WSjoUW>qh=0wsb3fX?Cu=iB;NEeGhug*0zIGn$$&Qc=D5OBxH8Y zU9?L`Ea!XJ1?29yg%!vse-5>ebuFFkoN*Z8MoeLog5LE^Nj2ocy3o=};Iw?_7rmS;`P=(KNOjl{64J`g+d(+#?XxsNu_Ma~n&t-f+MZmK`x!rDKvN#4*gHj+ixFVu=-sSu{txtBQu%x{0Ln zTtrC-W{tnPGf}UVGZoz=MD#3h1yIWr{oU=*BRToUAEi|DZxP6f>pXHKBQ+P-LwLbK zXw7wu+7$*RO?@>o}bs-AI0fEUKO<8H;`zG0CmvHU3 zfn4&bE?0J6Gfasu(kO8&tm~dspv_G88f?(*PcjlmrUhrs5=#Nv>cNi$3=vdCrNnN< zZe|(i7=kOGn&q^ms@&6fZGck*(gTi$t4Q}*Q7nPuUqQ*L>veP#Bcx6N#!8V+ErXJ| zJ&tQ9G>+O=vbkb8nSN57A6{!f-do0zs;h>_&Af4%%2|(`Hf0yS;hNEkMgu6wSoI#X zxx%aydWj%ePE!uYoGnEay#8Xk5}fcsrjzB!%dqYzB#ND6jgWynk-uCXhN)iqn<|dh zMX4R!0O|{`Spmsvrxn7P&i??L9lBKU8E5kV2-^lp&JI7VSt8rYP-1A$cH4q$Wa7~r z(6yNBc_I!#mv(=Fy4IW{a_mBjAUq=;YZ>f()dnfmdEkcTpleM|)V0J-F^NykLuVg_ zX%}NTB-WdqGo+E;fjl`Ne+jEE63D7xe=PS6T=ll8IXHBZW+#(chW^%3`^Y7Q*Z8ZZ z5>1>kcXlmZOLW0hg;J}H%A*I~vgMNI*l%e==cPQ#WOC8YvZg-iVNtBCC1~W_tB#?8 zt?p|n_bf$vWtkMMyRUFhHDPU|f1JWYXN|2Us*@m+rN`=v_b z^QNS)VpOf8DklhDedaY-_xyhV^jIymXK%sHr;E?sfRt z;gKn?CBFE{fo>7H@sK_7PQ|Q6)`a$ROAeryHq+eM%%|lsw%mRI^IH=5pTvJ}HxGQ0 z&PFo!>T_6bRXDMiawwJF9_^XyjX!PORe(b?#kVQu<4&C1&}F z`O2tYSa4MGU%S`$q!LHKofRl}iK%>P=m_u+;5_E%nP{qpWQ*wmq^c zeW3ZIrJ$cW|dVA+m?w~@Ev+oOLKR)vd&Mo+DI?i z;8ZvB1kcKn#!vL8%QRay?^ks{HW2e#scL4|GZ^}oqa>{qme9(F?!Q6>R^1xSnO0b^ zdmQKUsfs~#+fBfX4#XZQjSZwM43|bw4n9$ua+Qm2%E+}H$b4)reM@!~G`FDJnA9_4 zxKYI^wv57!ZXk3#libx`F$Lj`ilICx#s|``rNs#&X4h1SVR3P9Z*ayftGNP@GuMIE zsNG9x@`Ya^&sE$={c5tM)N?b&prZ9q!RtMLUQ9qM%#i6z_jPN8}wmrz= zhb>6DenoVWQ5bPFIUMja&*M{G&iC+J`SC*=AmN}~Zu-?WSz=}}`EE1FQ@0<1s|%=H zA~ySY-EsUxALUfFW{P$z$YY5R6LylpN=Y~_oSh$w^XrIcGTn7t!FN%rd(n*^kLK*(zX)b zBIf!Aa&UrGwFt8n~Mbv-7JqrwU?tQBaw&u!j_pK67{3CcHm0#&! z7n;jjPy5LIpM>DtF_G_0k@>BLL$?Q$$21uMLNk${TB-|g@1FFhAZMVjSv9ggH;}uQ zDe{IsxD+(`8Fn`jWkU|VI#-*RM$@GK0KAW>;h4Em#;b2h{%AbO2LY7(iVJ5P@;wD4DJ0NL@u@6} zl6?hJa_K%DSTG#q5sLJZX=;3mif+Zg-@X{@xOc1foAyHAA>*&(Sc2pCn=muDb^6u& z>C{=kBSsSRVtQjetINdC{i>7oKEoxZ-cgQTQT*7$BW`6U0QyiId0giMxbIXdoxzrU|p29 zaf}f{w6i3#e({2nyPllYJ5U~H9$5{6$m!mMW(w*HgShnX&3V{&d|h37Bk6M}H<4jH zrBm}nrfCLBjx*h9{(F}os9$<$QrRRB2YQ)QY}?y8=DizvpD6iz5&7GB*ak;>wz9YO zM27=}>^bRGSqGbf>UgW@vHt*L$PP+48lP`Nva=xO3a=!vzvlTH#VZTWD0abA>N`kx%V1`jJLa6#-1Teu7Mg&T3f>G)JZ zGus$FYTTi|){E?arE%4|#Z&Z=^tc)S0Ky(Ie|n$h%E5Oi4amhyu{QMueKAJG4te>r z_*8>u7!98199M6;e4AuO7|Z3$H_&lPsTKeV+;qsNk1PUk$Jm-e*du6B^faA7yDrA7 z_DKfS0|$UTs<1*-4pd`FLtiQx?f0aX)BN*cu$ge*yZ`)S?02khLc#D+I3%% zo^vMhj0U|Y{{W>9WsCvxuRgTVv_;B>C#E}73*-}%`BO_AgS!>!DbJzuiY$3(_pTeS zuWD1Y$Vd!Gs;==exZX<+fC{X|_h2-KvGl53%^F6X&A6D0DM&zhZl{idp_^gRlVQQi z_RcvKM%&E$1=d-ITz*29P3@pYrey>b#y<-A$+@cX{{XL%{Eyf0beHyJ6u;;ivi|_d zil=+C64H);hNEIc!FM)4+Nc=GzZ-$631v~a)E?ktzp0s2!6DqrQ=J#uQ5W~_=)k5Nps0#4|ZRoym6dEYOSo{Do+S3Y43 zsruHQoxja(xX9^&UN(O=@D(rH^+()za?;`~Hl1JolFCKoTe%k!zwa9yW4Wo+?qib5 zN$(*P)s2nC(z?5rcI5C^p4A&$Y+b-Jx2ZMjLB3U?@p!IRUVg9hIiDG}>m4*Uav88m z`gE>CO<;9vX6GJg71VgUCri`t2>IJN{41E#$Qr$%BY_||^{>ddm;LU)_0ayv@QeOM z7zDfj0PXDVd`1-bb-NLaRxgJLIu58Yk_YsyjeWOxafwngMggop4l(}6)i~oH(!V^z zrm#}=Uz$I7&93uL`*r?Bj}0`d;~hWBz;doK!-6+gzvv!ho+YwbTsCDKFBRZE7~DK* zV8CP${d;p?K=^&n{3MoVE0HMVSCPcu!++s_srDQIlc`BJ_Lt<3WbsBL_;GgR6Sh7* zYvzM~HlrQ5#xPek^tX%Ezu{Ki5tcq*YWZR}Y%b_|$5CIR_yF6;DzEx@{{SR^CjB^R zMqFitlm7spEB^pWX7#P^`?$&|7(Le=jZb?vd_<(mkq<3 zRMzWrHo#jR-6+)LBKjr$+JL=CIjTNt9m-1|pv7KKB(OBS4jww9zqj#r{%`Uzyk9Dx zhZkwJgBhbaC;g#bI6yYCa!yl$pKA5b79@-C_TkzoL?%=U{^CF2<5EhvbU9Zi2leH|vhu`wzC0MF0;wI9HrOz27R z9t)TLeLMdE;6~<{-d42uU596Wy=YswPPr<{F(=M!;r-o{Lws4Xsq?Qw3$rep39W z@vP;U)^W-rk9yFXNV&SyBc53!w1`F&8iF&r036x0SX!gfSvAxh=E;abB_T^Wfi#wd>7CN%1bVXW)}* zKl)PKCVZsHBWWCT?klPA&xC#uXd2D%@twubitX*DbljLLHVF!Fan}|3o@e43{vIBW zS+wN$=Xcq5_0;|U0ET=c!O)cP7`$IQbnxlIly7fk6uvj3yIqx$^L?I$9p0nlLp9Cp z^1sUsoPK6A?nQfFguiD`h<+~7FK(>t*Tb4jakxgjY&_C`4_x7T=Dk9H+7rS45RT?A z0eDM8(ILnYHNyPk9A^h2vVISE{{Z3##XpHYAiCD|?}nPSjI3?6uM2CpmllF|VfT^X zBb@sB)>N~OBhG6i>NORulI4&2znihiE+63z9mCJ+csQz$?aBLUx^zh=7++^=Ke)9A z?E7WlPXOCqd_?gks|Di%Eg**6eV$2A-5bUW4E8;1m(sP54|sFO5$m@;AGVKDvr`SNL=A+C;kZ?UK^|OZgUX*;Itjzbshb z1_1Iv4Zq_x`EBuU#vTvxH^=RJ#Cjg1s9kASfePJf>l9MR<96e=EGS%_Fe}W=G8xmv zw>p>RZ(gszb#I$JjJuC3)xgS}skg|IO8l@&>dMhc`rcZd=DqRz#QLl$2A9lwgLE}1Dy6%(U4-&-jJbG@QIi5y^`B22}Q!5UePBUBKG8$B$ zFDFahU)SWcK4%xj80kXrpCY}j1d zX&)zV%e0O?tKYm!@oVCL#OV#){QCa6Y%Rny+s?6C*vQH;zXNNMPa`807|h};4wR~F z-TE#45`TH$S0lt?adC8MeVBB+(h=>g@89k@3nsFUUb&9YHS01cjbRxL#b#+9C0`Qw z^5?@oAGd@1M%PW5^LDa5w4;AVX>Za<-*4jfGTInccl$AKzPB0hWKaCy> zTh9po-B(a)7M9RSsAy8$NOeiT^4I10$x?HS^skq#oYJT5Dbx3+qU5`2Z@*5*==d)V zu~p|nwmEw`GUSfwJywd&_SIX+^=Y)Ll+-4PbnDGlNSG|QQ%YgBPxu!gfn3wyX{qB; zVSTKt+{Y0j+r!X##QHAu!TO%nYgW|We;xgj3v1tram=Nswb8dlZ5xh?<;vt|Il(n! zO89x>`8EARQ+wSfz&dr*3Z}zLg=LoBH3uVffQ*rkrYq+0TuWI~{q)o>w7&QB)vo^l z3iUri%ltjbu(gw+8CGuhwvkHDPG@Vqmi~4}BdGYE9}j$9@a?vrqS)!znvisgPZ8W3 zrDgzp&L8dp^{$TN`(kZq+D8rFj$xigH&%K~rVTy^&l_EH^5;FP&h;M~de(Z2Beip0KK-M7b_5!Kf$VhO3hD1`vNWiH=sXH~Ss$L1}d!?+jPfeM!&hng+oob43i%lgONlsC^w=Xl&?WW&PGu>={7-%g2L;DtfR^L|n?I-GW|JHGgl@F&6dklE?>x~IgC5C=#Wd)9lX z$8VNL+@K2LZGIwntHItByVIrAZtw4|qf5vhsGWlv(tQU zq-uIJVKhx%RGtYU04mCPkv|N9U721-D%Ir-ZCA+t9#3^j%dgtoZEn@s=&8t(ZE+}4>%4pj8ehk2-8v4b*Hnpw}(&D7S1ON zf@E~Y;p%b)c_p9Q?!Fvp!|kx!M=i|G@=5-)%-x;Y`q!zKWw=?ms&o`NEoQgpX})In zZD{-IapqZ`Cl0DQxVKeQ=4~}-s3}G~sdP^7UZgq(lG;~|b$vE{mXliAOc=4iVuJvW zX6;=*qaoA0HQ`+sddYclcNNX*k&KPOqsgwz!9E$E;(og>yJV>?&XWPP)}!0Rs)P4i zeM=0V#=0wSfu1GR{6iOtd{wJicwbGoxK@fAk_(s+{Hwt{;=3zml%GmC-{TE_$LzXn!^2ivb}CzZ>{M_DSY&>6^jJelCe{YH{Y;%dufvhzD{6Z}Z=&x|E>*7fU@wNydnGgqLIJmSk3koO(Fm8}GFJiAK76}th_ze&L0a9Ao{ z&kY3#_DL_u{1-ane9JPd>tk!mq`S&Z{(F3kZ!gToF&AJ9WYzdA8J`NCV&j)(?_1*5 z)nOa0fj{0ob5gV@n_3i+eL$|4R?9=?s^$(wD6}Hc?{`wYNQv-&O45QDt=B3HUAM6Q zw7@XpP|QLQSxrjcCc-&S&?^hQWu+%Kg2pO7YZ?q%hugU#uX5UuSY_yw; zC62;-X^vdH0o;GO-K!SDT{c~2HPj68S>TBp3~tYEykexDHd*9bNq5?pA{Q(-5!*iX zJj(VaQGC}MDx|UQ5xO@}H~#=igssS65>*m^w7CFOUTw@Ii6dgm{7wG=)~hy`@WX!` z?vdRf<)LywKHOH0S`8^76{SE+v6y%Haf4Pwmb+7S)^pU6jD9q)e+AX#l1Ca_7bJ*5 z;YXmV&gMx*=T@fpWop`?lC3$#Ye6z2`zqBCqD zDtx1+Ng#f7*194O-o&a8U`|?(nB{kCBe1fOZDzKv6TfoGXR+O_3WBxUo_lM0PrJ5CB z30T;i))>?xmfS}o2>k;L5mTZF@h}M@=K${MQ59vV>Q%mnS7~`^9-Px9#nktK_<^Fr z70<4E)jPY(8RaatDHlI5Zn^r_G}jivg2);P2SSubbP4i=;lSm$0m!V?w-bc9Ny}R# z#fl8)f)5z0aVff%IPIk2n*mDaCaQ_k0DYbyotaK^@6A(ZNUoY#{GH3rLlJ{b%dxCr ztZiHis|%kdc#<|lgOP*zP}j%JUR01i=r(KE zSbp#3Be;BGrDH5=HppCKo_A)lrNPRaDFci(LS9Ji^0;yjIcmaF=2{x6H#B_b1&L`C zd#z0k_S}~8*bi3gSifpM!$iq)LGN)pHrYE(iJhRQ}M{pH37)W2qcHwIjrTr zk}MyVMIFytzYe7X!bG8?_oS0rv^tdJ_9uq+Fbcb>k^SS0)TTc;eW5(55qgDhoARh6 zF*HiaByOa1$2C?YLncO79)`ASLqBIIqV#3sotQ-_ZtesYSG4={Yj;{et2z-OOT?pSz3-qVQeEE39|2hR-TwBpQj??iS}!&cMBEk$fuG3&S}xl zIGItWnLs?@at&9BuHw38h{H5(>T1-B1oB4mt3xh7hovYdeT?TPbc^Lr+4mcSX3qfe znuLp^A#oUF&*CZsL|dG$8AsNnY$SVz@)-T#-79Wq)R|pwGE4F%5r$>w1RjQ?H(=c~ zX*INmwjbuE%PO7(u}l>7$0D=#*fw3X=}FE@qkr}3-pJB3e5RygX$vw;zH0EuQ*}Qp zB!o=_4H)X-Kr2~sMWoGeghxH3hn@S53HPgVSrsg>UKh{gX{)_XZDd=HNEM1fa}mcl zW06cVnLyuavamL>CCo#5>9O3Q;FXYqKU&f0sT{3rTvdtX zVLDw$+_#mJOr6pjWoU0+5&qh6ezdXOM)t)>o(UWNS)36}H!P!Qbt&I^f-0}gvAi0v z@9n7LhBY@9^5o;?lYv$R<-6udUkjc*u0ZCwQ#Z`DcN%tdTi#j zQo7LOs=efk5~Pz!xnw+j?Zc%JNRYEE(?kg$DN~Bi`$e|w8Jl@Lj(=L2n7XuW6jMgS zhEg&=I%{KS#l>n|o_m{!6(W#aL_2wyD^MRe2NOK8s*Hi=5-O}qW9NO_n4Lxl2ZL73 z@np0(kd84ZG@ZxH>}L{^IcJjAMI!^vj2f!8c7|Zj3^*MEe6^<}$nlh$OWsdkB=!8w zRAGRvZxq7^J7mWm)VWsdxJ7Sr*^(0saYHraL=HkqSXAF>WQ9uJOvBaJII59q63274 zqDrc4^Q1;hxOu&86xCis66?dVXH+{wXb{Kx~Saiusw;SBcW=t0rVoczx zpc(vYIEf^W%wQdf;A4aNQmwRdK4l7yIvCjGRdPMhH*-P7!r7|H0x{3cuwS15mNA1<2wh?(+WJ^urs*(6NYUzX?3E<9yKmwk5J$Z|MCT-AdA8xpi<^sL8}1QT zBeOw70Lo8ullj(DX;(})$9c35;Z`*vmge0^ki4irzP+eVTiCjCQH_aYMQH=W zB#}AflE<24am)!nYP(W7;mH*Up4I+ru74VmSBGg-ibr0bD}VLsxs`<^6bG^&T!6&TZ7m+@pNBs&U)gY$i8&3HAr`sKlC_Q;@fDN$dtcol0dwFPB3} z=Z4$_p4Q=H$KFhkDl2u<4f@Ufs8@3557_-_g6j5JQ_Qqcx2aQ{)q^#&sYkS!1NZiz zqI(lge(@{bu#n+i*A?9PE9 zIQyT{zAH7FQKtU@ypP*>I#;WRUFpcoLdA$@=j%@x1MZ)xrv_3=5CQfS{h;9ED~@@u zPujJi@okPr`F4d1=tW7jh{vz3ENa1t8~{3joYe2+eVH*c`N!|0E&}}xH#fUxGJ5D# z^4ZmhC^5;)b6Ij~nsgJiQr<$chQS-N&1$q!I4dFC4`n~rs;!2f3ljy51Tp29ZYT4s zrBSEuv~NmO)%ox89IYIY$#yHOS~*a26JZZsS_ zs3VWkxH0mV?*9P9kEr2kMZ8pd(wFE&UD9-sT!shbD%8pDt}bsK=9Wi!IA$%@kKN!8 zn76Q}h_dGqZ(MgZ>Bdbn<5NpkRQs}mLYCYygUx8(Z~GJt@~%k1Bi@il@_-Nq$nBcB zcNT0R8C-51{p-!e)wOy)r`F^(Z1roPb6OhGU)HhNK9kPR*c`)s0?`$ZZ?QT#d>HQ&r3(c?FG<_JCW@ZdyloqnTA2mGlTV@0$=XnWczoiZNiI=IN)@rZ7nNw#%s@~Q~kDni27`6 zzYpQxY0vZ`P8pRi#n= zl_^p_=k%(hd5D43`ii$0Z?H?22O#FW+{&a>BGT%QtKi@F%8L8bpX5>wRksDe$42i~ z5?#X>!N+mZqS}O?;`hxiO7XX7_0DV5_Kw@1BGP&j;!N?C85!r^q@4?0CKxZu-_oI1 zazd9~gpcP|r(_dHxzuoaeMN9rf9*7%ujG9eSpNXw9~{5y-~N=wDv)-U{HZ`~!wkp% z1=5&Id%p7@dXXhWBjh>t&34Au)t@ZxH)FHlAYB?A__YW=TY;BgEkF%5X>HTe(?iOXe>uGer}usparN1Yq>4yMjrykVk%KS1k+f zd1Y*#S&8jXF@4-2&#o)Uz`1*R*Y3X~>vQl&h}`(3-1|5T7s; zlaLR+5llkL8C3keDgxta%AjIS2&=tsab+*e*d*iT=b)<6Lg}IW%agcwtMEvCmT$d+c*n4z$a@#b!3~|G z>0diKlJ@hz^T+Z(U&|#omf@HEIIsD$n!{rsDxdaOnsOsMh1yB(dS=gc4h$sMcB&)x79F8Y3` z`=1V~C&YMNH<#$l_Ve0#w@TO!+~?fWz+#-7AAa>=?QR}fN0;U0*n&^FrmRmF`s08) zvFTo&C+EfUt;bronW0<-F(~9{`7%E}+bnK?Ss_{bs@Xq`d zAbDKv>(ahpibxLJn8yPQSmwV%@CJOj9c6#{c>e$-e=B`B6I@+`)Barl0PW0t0v5T5 zgafYxW3^npaGK(75r89K;m@r{3Pktl0v0*olkG;KyldlXrp<~yan`?H#MMh2m-i+4 zqxo+vl9vxxU46AL{U$|?QfP(hk;YfD=e1O~jqkM!O9gqOOR0oK!Vmx;*4>4Lj;-S8 ztu-xn4-Y``{_5s*8yZZ25a-smEv@`F9lwVpv$@sJh?7_HZx&dwYaj)HXq)(fUUOax z&gjs}{gh{EsA#PFHnrQK_O*CN7mecYZz@-z?V-%uR&nQqWVO}nB${2%Iq^h^qE0m1GO@onBi?y`vYR^j#0qkA#ZL`#1P$ z`jZ29n|9;zua-PL$NUrlGD!abOh3%m z^8QBu0NZnK@YMX-{(xszcs#BD0Mp2S=_Rj^+kfGs^mG^u2+00b_r-)nXf|gfCel3n z{DQs>{h(Jrw2q2E2XPq3di?;gk2)2Wds)ZR{lQ!uLp$WTZ}?^TqkNuRxwc{FHU9vl z#O1tiZr2|MwU|I3GPSP$UUp<{4(O4$1lKD!(m!n)4lC? zvi`O|5Amad@;uizrHjmH%AnVN(d_TH}`wzpv@RM9Z4sLZO^ANYT{=c16*Z%-$ zy<5vzygL?~phSSG!>2>Bh(7tne24JzeOJam6A#0W4TiYT-YE&y^#g>ok$5M0$!rte zy@qcFcwfWXZmnc|SqF;si$bvuDe3ZP_=I#)O0&2vQ8?N0?LWf0 zA-IiOQ`RRFJCbl2LuUi=9c#(O@l_irLAhULcfXf6=$ZF9SA#i(67pqY6kY0V4~Kpk=@v0Eg|{N+ z>5;MXIdlLXGt}eOzJD;ztI9EyG+I|( zPo;c+`$PEGPa{Y8d*Q7!!&*|>M=MV>Tjq>9k^tI92*-NOvG|kYuMKE3Y1jI_-lO8X z`y+j*%X~b|v4NPQKryvkWFMt*k?E;>@q)rTi_rFCOShi(H#q&=YtDVJYb*OzwGWIw zDAerkO~_q1!*2Hr@~mp7U>=|YUZiqtq7a1&bW=(yQg*wOcCu~!-MgfDG_!2(b!y_L zS*0n;5Kl!Euc}>B(_3tE9}v7PYYC6WUK$h6pzAQSw-NGw&2@rhCqH#d5CG}Lb((&U z2BGmcNt#(>YYTlkJDbRg<8X~Z!9Mvl28Vw49vi&yZohR5mi{3@EjtBB-A49I(c?0+oR&^kB3Jr}{yY8PJ;yjfvurrpM* z+nIv0ZCqnKe>#HW;#b120@?kW;m3sH)^#YjTkD`e1b0@!{Ohv^&6v=1a{Mgn$y=6d z-HdFOyw6AGx~s0Ik(er3E-IccH^c6FNT=+ zPAeUVz7mhO&+&_{&>=*sJ z8!x`(rYO}A#)PikpyYm3=-_E1%y(@O{_Z)cqKT4C!6XOttw^P_Q~SuDBm1k~zJ_y& z`L#;YTWV(8+1;56BZqO$N#?W?7KD*;6pqKZ=QY(^YTgn)1e(t4LJh9@nTJ&uPOPIp zbfEcqahlDZ%Tk9(j`8iTzQG~FO|%tnq0Vb1JM41QsV2%hZT!8<8%NDdh#mNo`eLhY z8^V~RMLgrKYGjG-u2KjN9nKX`1e#uFJd*bTlS`)tHIz6>DTJ~I$&?+(NSB(A@QSM?bw7i?oJdU&* zm}PI?KmGI0DmPGEnAkGo?;cH4SL#G*rMfOG(HOvF5$C>nt1-zFuM=-yt#jt!$HNeP zaw^n!R@p+kLk@%1vU1dO!|8Lev^q5UeCv00a}Dqx=;AV2TiAhEf-93DGQ+zb_`&tf z7aEl2&_VWOw^N1=BLR+m{V3C=tc>vYR%bjN4>EXH4&9=kx#c>E$1K-xGL4RR%vaQ{NE!XhKoB{Y$b9OcQ zzjbCbIdT*n`)8$ENDBt?WCIu=6M>qe9C4{)tiioV;M3MsM)~}}2RsTjzNRvdV?! z&V;Sou~X2!W=RUF?sScq_eROAiB$QyNaRotAG{+pm0eDnG}Vr&?&K%S^L);8^Dci{ zgxt)?a)E!^JetQ#sbI8{Fi@+28M^Jqp`?!W{IG>XuTa3&GpVVpBNe5MF>vGV$Z~q; ztu)-r^KX(Ij*E<%f;+esOFJtMOm(I?vXrrj(OB|Mc@>Lon?efv5;XE|<}mAw@^Okm zcW&*pmW-Y_ZYr}tLYIzYZ2GyVS|EvuQ)$LW9cWQjI;qAxnsJF4nXT?4Vx;_~$28^C zZ|%_Uk9zm@u74~X6e|cF2BuB>k=QCl0WsF1`gZn*E(n7X2qhGvh{u*G6L?Fr{| z9CZe!Ng8Eek&mwB6}pUAB(1T#9r18XcM(Xq{6#zaPH5y*a^-*7~up|OfKZf2bCt2>sIpp!{m^74!j!WiI{*SUD)bCt1-(K z}m4As)Vynq^Bav6jk`vV6@mNU^MlS`-@pF=+ zkyER?CVtqP$7vU>XrrZ>KF-g`(i)AkPF3V+bI`ZU4Nh()C0;lppJ~A>!Np@axhO=D z!zOwVqN|ziA!cMo$FVh6GnFX44wUL3oJnsq5`PIpQ8uk}Z7DHb+^#yQQ;MMmsO<`t zhAD^~jmILcyV%{vHyLAMIRs-Bq&ZsD=A9VzMuKayNgB7>JfZx5A?BYJq#c?-tsv`= zG5S_RSjJauQo8y80S1;6BwK?@5U(G+8%OC?D8)TYYGL5fvbu$#ZPG@{Sn^4r-ddM^ zvk3Y7s~{n(5?N$&RbqlhA9y2V)fq*ciUrlR+(dUo$3KNbhhm-*E;mP89nIQC85yOC zx+skBJQG0RtmZz4c59K1t%9E}{{T?8e#*>o{OfMo^HPo>8s5h|XN;bp)8)|S zSay-G4!d@^OO&2ABayd*Q-5fyDc>H|#{+JETF8=nt)66v?nhmq5mf%zio<(4%bpaD zD_>@%FP;qo{FO;rt-8& zqAKv*Ac1<1hZ=~^qT(T}rtvlc*6*UO&ZHhBabeidbPD~J=z8ieVS!m{Rsyq+{t z7AYUmfTzoUD{(fMlYo9<9UQkt6NA6PYK>YOn`oA0u`&h5@R%p-%{4}wGcM@2F#aSN ztXVE}xm=kvtBYnMfH~%z*47eQ0};Q0`!G1i>r&j3vI(as>!H6Dw8~uA%O=71axhIp zb3UsRY>=y~51XEA1{iglQRZ0cYc@GhMo1N_9;>R!09*T8Ta54yb~orL!lawCMmBNL zuw6n=wE=R9$=hmjD)_pzX+VwF2d+*sYcPpa?-s0s{gb$UwVy4>^MGj3Cw;?d6}8%B zJ+wNqkD%yVDq{W{48;rr5)vyf&2A{gM;PDb6U@CXS5$>)hw> zDVujA?wZlJ(AE%f+?GkMgk;SO_V_s)K_JuO*Cw~ywpmrP$z|*KQXNv^RGW!MCjgWf zsio9fGaOeIwv(w`?{Alnz)^R##ZpPVNmo~vNg3y`Sx07!VAZw1(~f_6actP9&i{26$0v7g_s87 zHMouWOs4Qh;ZVC?0y~Ijg$MkzC;3w5VANV&i!$Etx_M-> z5r*e(%nVbR?Il&ieVdQGr$41Mz06RN99y{m0G5Y5el<=>GU?{R5M!uXze3~4osCq6 zV{FZDtc6j~Y$HEW-lJx}!uio#UL0`ZJQG=J%F>bMC}Gi02kTQsE%G7Sf^nRHu07HTd8DQs+n{cMcVhoLoc~5fO6IY~? zB`8&)bt97}@l|P70z(TyH?G#;QuHcmJJ|VT#1+E_EA$nlyIV$(9)3=yvjm?bbDu)p zYeoqW=`wYxDfoe&#>oN9`OHca5l@SWEIK1cZifEshOYRa79MToKe%K5S*P zmIo&ul%>GVHuK)SSzP$Wn`2mR&wpIO2&m)0vr+tZ)qRsj`3 ze3E)&rC16G-@9s#!l@IMKQe+3BQ;>S0SRRU{uSyqD|S9cNs^g9aDHawWAm%`ZM#a0 z`FR`0D(~Dv_JHrzG8+Xv0!=%Lo#Fq1mmR)m>fg%br@{aWGIm2 z0uO9+UCPUI=2A>}!C-g;(xq2nmEfON=~c@rj<{~Xb4@OANFe9bRZ6O3<+-a2>}{EH zsf_2IwGnc_{M&|3Flw|8rWq6}l1bdANx&hdaua(oa&wOtOxjK z{{W>L*3TGOvW{CA&!tx`KYA18JC7`V>I+x>?8+KKyGC+)^Gw_eJ{3p|dF$S_!%Zw* zTfW3*F}_KI^{M%yLf|kP$oSe0lhwMwQ|vJps{nDpK98hPWu6p8+*%rP&0n%pmCPt&{YFzBI)w1uCck5 zw;?|;{43_GRFAi*r`mz~&QT=t>?7|>5MpJv1pY5f(s}c$kOG{3l)qL~N-t&3bJvP%d4W`Cq0ULb zHEMB-xu>&>HvHyX0fNW7RjX-aXWTZ080p1OmqylY^l^Q26mi=(-F@8En@cF7)7I`y zLFBk*0U!yLBRzLlm7iiIECp5MeQ$@*j5v!3)B9he8cBPpLtKdR=OwxhO)F!_Bu*T9 zpzTy9ZOtT-7*Rx}00WY9RrPDgqlVdRb7Tyvl3?y69<|j=6>3Xf-=XvPyuPfl&JRvz z?Ap_Jui#+#y>X=3Hckw@AIiAPUNxIjfq^K`729~iXyno@5!JN=;S8F|a98gC0Q9DJULZg5A}lkU3g(I!~3UXBgT2E8wuM*h%{T0FnEyX;c0cqy889GJg%O{{R%}r#u4x0Ef+9^`QK| zBC=w45je-aco&D<$Kri8x-Rw~t$S9Tb0X@N=GBm0dAN+Q%Bl4}wdQB^+?B7of2sAH z3yFm)kd&U%Uy?q9@oJ-dEWa-#))qm0HJUQHQ(9%M$|k=JWJutN;@Qu z#@)%D5*Kj;p&h!{0b!?K>R}+$Z0;|d4i+}u`d8ZcJ%+26Wp(Ld8jDlD>egvBsr1Z7c5lZv!m?xxdLw)ZbuT@}1fDT6pY57Mq)+=kYaND8*VcpqAP9vjtT zy%FA|8f=mCEN2KFd>Z1+$0My6;N?v^l;oXHaak!Q{p&ZY?9A9O`r;sNOnJZ?k5SN7n*~sw z7M|zr5?ev4g_&37at?Usy?YmcJ_CGI@jdpJc62LUBGg}IStoLj9AKWj9OI7l>6f3g zcA4SbGArxP8tMAJxnZoO(6swXsuamA2p@YH?kn?*$BrS%?CDeKYqzG-k569b^hN{2 zd>tCjSgcx<+_|}F#mWBw5{*T!zsYB(dmj?~NYSFP@aDID9qLWy-vY1!xS(gq$-xeNjLxSLOoE~fQ9mXu11e4|9 z{#DnJXBeEyi>+Oz)3%#gBzakv4(0hJM~1;sl{h=f(|40^c|O!ubA{^Q~v-33WzAk z7nsMtHTX_RHuDVI{53x|e_!Vo`j%I2lZXD2SpA@Z{{V)I(Miq@I@jn0mznRJNQgx@gl%kIUmroMU3f*9CZL*W9(YsTay={RuLWxV0J68iZ-@6*{vYwj zjJ#)OdePn6=@-()D@B#hmW*Q<9P$b4Uny!3Z}3&(i9|ymc&>13%&nd~D`Sf*JDEY{ z*}w#SF<)`veser7TUMPYtGVy;Tl#*d^XHD)bv#~eMbwkBhRON%I4j0dhWEf$3j9AAlBKDAl5byV_mOyO0~98#mF3#(A$#)-|bL z!gq2tn%h}HDlD@?+v7$(0X>QBSsIDk~^7m8lx%5ApL9XKeTal z>dLP*owq+Z!erQb_(~XlT^!oeqIT5cygl&WLGZS>9j1-r8;x4t<)yaOw5*W!(y7`D zHUaE<99HGllcwkv)5D@&$D!TIaPvp=JL8UeoCDP}!vGHB&TTBYKod`u?_<_Y`=)Vu|bpHSj-FSam z@oAezxNOa(Y4MROO1J^TE>9TgUqIh#9t_iAoqR>&{aeJEvRjk=i=@Ko2tBbX5;0gF z9lP;G=Y?-|Z5P7cAMl2gY_A~Ib%GjAqa=ir11|6w zI4vZ33P0Yi&%-vq6SY4IMPX^-j|u!ev6|iDySuuCUEggyVMoiejPsM*iup{#h%wWb zw5s_(#O(F$&3Qe#MEm@og1B=52SN&1nO$8)S~_2pD&6f;{`%?-}^_#5ZA@+S5*jp@A6mX$e(KbDp`c zN7Zz{gx(X*crx1CQ234FOaA~E z>JrDc+ATtFH6<~Qk)i;ZA57QGJ~{En#xE1es9I~jC`coSGTm5dtYM7`{pBF;&N&^b zwd9u&{5$x4Fkd#>0dU!6>_{z>U!!5T6CDbWSeo9>GP~uZwYM$)H?KqSyvN0Swx%An zY$X>~aB*DKo|kg6ycU{YvObgW{{YA9EmvJzZw>fWG#?4sg7^1#%Bv#Ayy7sYsU0&| zpBHsj_?x279*3%Gx+K~lNu{${vG&_}Mts4rg#Bp7Cf8d%}Nn^JAUAkMV zxdLFp9A_v2{{U%lD^FS0Wbn7e3w=flX1SO9I@xB9++;}!Uzr;oqk~h0$THkMGB~^{ zSB?1-ZSz^A`JMXRtLdeh)Y`8U=XmS{@EL}YpDL*++CI;nHy&NCqiD9Q?{=N_JjcRX zWENi%Egs(WZzGz{QY0BI{5?tJ*QabGf`{H*XIjFUL9?wts zwW4Yo8r!FbH7iM{vYiji(_}QUeH5Gzp{rWXkE&Sdx?hE~TYHUDQ@Wk6H3-r@-eE1e z5ua?}iuSV{#u(XNji9EM{{Uqs`LF4!^*k)AC#jQR<19>_M@`9DFNwZhUY+dIve7nk zx^(xqJ_PZlP0F>0OtAz65+n@h^aUMQMGf-FQagO-3hEa~NMSGm=z#cCSab_(Slk;hwpsc$dY# zH@Lmm^tr^aTiab6tAqalJk_}w_O43!{I;xTN}T0Vx{`2ET-IqTUfNmg{H}H2C}#1M z8qP7Lh2*tKRF^Avl$*C(t<~4f9&N4oYg@ALyjI$OhOX~CNv>O4#~e)q0|Zg14jAL* z+zIPjo(KJ(yjYrsqjlpun@s~ry0kIIOsnQag}@olPr|z|6n@kGWyI;>9U>H)7#fZ2 zc{uh%gZkIbo+J2&;-3~>NOj$Q`gmWDv!Eh8eGY5g$oM;nF?d+huAzsEcWwLA>1!>O zl2%OkzAy1Zf%5FeRp?51x`|mvFP4(E?|0ViyS05RmWcP+tv_eahL*OY`!M+X#CEK$ z8|_wT-Fh%Bj-OiRJW2aR_`_Gw*=Z^WK>N7nfoCS) z-3v;W?SLjQ$lL4B|Jq%_NqJm(b;{+;aTsFoI{JHDi{|WB`5Z2B%jW9=D(V; zt$%;0>X)rPrL11+H!gQMno>bOPM@Vivg$LDZv==(1d68xsV+&2U7iaOldC zvVqfa$QAc=s=^TDglv~%@myvuty+$yS-DB>+q-`=I3!#5Pa76Jlys+g8x%4~@dL*4 zdRIqnX(Gd!40jB@Fe*6`H;nm~?604?dVW=ET*nK=E10UYFCS}pz#Mi4wBV4$qbl-( zKIV9;xQU&W5rAF@BN+Nsh+$K640jV4Et$S|Q@E)0$9joRlR;E!TbG2UE0E$zq4{}J z^J70sXt|FhvqvI>!yq93IjE!)L2~bBbM~kM5RU1B%kDc<7D%6Wo{0pc@Wa31PA{35 zI4c+4dr57=ym7#LFb5{3Yuog-MTb$D;T$SS(SHh|N(y-OabQuIn=D#M`$sxh5l4rAVp_gHi_T!Iepj^3jb@7NV6 zzJ~j1b}|yr1@D-C^C19p^{V1qIS$zF+AJTJ%^5YEw+WD0oll`&D$d(!2rMIZ>@$i@ zx3M10M6l@D$XK8Kq&Uq+(Y#}O4XOUg%`ieXzSLrRe63J45+s>RiDLu%-33gd+qx1- zvea`sM#s*;&)sFm^Qjs|k~}w*-|p2Yn|ayi!F1W@b}Dr$jCWgrx$2zI)`OfC%gu8x zvP!JexIq$_{I97#P5>OxEWvCh@X8 zVDxjEf1Plq7`c+1_x03NTSj`+nDww>^OM4oAp=TYnz>Zihw8@zRq*nmsgWsN@*0+0@DoXmA z_Oof;K>JOTJgji0KA){aaTFp_*6?A!+C0}d4b*=$SBuYXx&HtPc$ZKw0P#Q$zm1Ma z=;M)DNw)SM)tc2aemNyj?9e(8K5f30U1pDI2=B?{5New07gp}AEUd>o?jNODeMZ`8 zo#P*7b{t^t1K$*{Vm+6UI4&|osB_UsG^;pShYmNr&~Yhm1hRg3Lo`^C?E^`?EO=V@1v0n1{tl#MCG zn5~;jx;vCF{?!qz(lIJxDm@QctBX*CnD-Ohu4&PEc=-g8pG;ze%^lo}gJfq6H=4H; zYc4SCzJ*wES;f>9Qrvgkc{JVPFiJMT++(E?eNAH)TeyZ)oSc_Ei5%1`A|w9)0D2Dl zL8)WZ5P-5=BM>-jb50WFS)-CUThXeobaX-VVuNVFEN5>VmK>URUc{p)>6(Z@3yj@ITW&4!N$WX41WVt%;ZEwkQL{H*EB8E8T*@94&xP2 zl221rHit(R*vgBE9dW>MS0QFtcAJNbA9N9#iKVrY-Ac@>AUyolQRHtsiO{F_aaYdP z!souGi4Mf!*yr*z2pb^^U>|$5IW}>r+Eq&dQ9$^ZEmM@~?B~e4mL~LN;ykz2t)+~_ z)NI|hJkz5O@2CF&TCEkdmK$--9?Wm?gx?!WYMX~DO_<& z#C^+fvfy!%$f=V0b@?9681*g%RAYM($|{rn>|lzOFK+yxWwkCnP}Rn13C-wGHFmCgw7Fkr5z%HC?PnTY3E6 z_$`7z3V!+}Lfac_bAGcGYgCpz@yO<$@+(H$w8Pi$DXx2FpfR#p(`oKALh71?G3^t^ zQ#|i|rki)%$@CG59v@vb3AuV8r@AY_1h?1e=5R*R#@0(`sW=6 z;8<0;HCsXy$s#)rrDDN9{d&<^qAAgp?9JIDwYdY#hTWSSWld(h7V$0`+Gw(R#PvaS zL{{4k*=Whg5?kjVj%ved@;jt*HG??n%0lLnNwZZ-cG$R*+s2BqUdn6MQy1I0obNLTAmF|2=>aNA_oi`8KK0*;o5!8be`rJ z*v)R%#rYTwwENZcxsicyI#PX9aa{bD4RWYgQ@RC46=ZTi_Ne~=v~>t!5ytSyndE`@ zsjJ6vdp?NhrnxH!4JijdHhP+G?uh_gBjj?eT=&~$xKgrP4TN$-b3nO{7gF}l6p!y` z^s95zLOp|Q-!RDNe9L=zRB)wE2&%Hcn^-I}l6qj|3aK8aXCT@pNMHNAYWiISAjftU zbMp`=QzMe2mb(?;o-1(vVPY}Lu)+Ok^K|iT@|hH#O4X;HDVR6fEGBRElw{CtNl`p@ z(A=-_d2gIle9e96>_;7qh01RGUzW$FM^CLRc9(HJ%X_HqKsg-HmfCgDe6w3Nc~aQ} z@TMiKvBq9Gz){9gc>~^#YZE&6CV8aV$$4VvzOLOec%wm~DmJu5A* znpB86^EM19TDc_5-X2!kSKmDJuQwlMDpvku>G)|&*y7V)^6ma)F_WF4$v(KL3Y0ls zc;u5*41g%#I~?{Rk1+=&o9)-gaB$m;1@@$pX=MPX3?=0bRr_j^Sg)ok zE2sYeiJRqyIKZwbK3r>QeV^3&S;5PP(*FRbkN*HkG|bGhunqtRf@w|E;~{o@-dE&#dgY1t3F|2)97>-_jeIws}R}A8$r!lN&Nd~lglBhMd&T~%@Z*zN zM)|@K>?*>+CRRp8+TDjrg=CFR?B$5yRgrOSNCh4~I_}7>=OwZ7(sJmDR?B>u6$e|eGRv7#%=P@cVtyk6u>ls6T+4w*3 zVi(|N#&&>9H$4ca7KE1#yFQ1#J8LqHu_4IndWwK5?jeg4oDvU8`X@UdltRrD2;*#T zQJ+OUD>?|Lz15+LI3kMKr}E^QX*R55x$jqlB9ZeR4+M(dhf8fjM1mWeJ6RPamV2!o%&~4Vj2!tCllQdJ*6w|u3gBfrHStlQ?WIlAN)0xorOnNvY3QTVV>eW@ zx3|@0wXwgr)a?)rvKfmZIOGA-kEK(z43~_orFa}M;B!}ey)0-qY?s#yty{>U?F=L# zQ`Lj?IP|L4+g@TF)G-5$2SRaMGh#z%B?jIX(cG6 z?zv@qTUV#9y~o=oSH!2GKhn8t#1)Ndze<+474JUJ|6>0+fWSjEX& z+Ph9)F1wvJv8-6?7IE6zNV2?c8JK<3(y(or+f#_~pD<#psz(x)P@rd%-nBIE?BEaD zR&#si46Ag^-+Cy_>R9=k$>SFbS$Ot2?Oa| z&xhSl_L2FpQv>UY+}0R>Wik)EK>k(9SYADZvnJFgW3-&~ua?2kbD=oLc7C0k=PDVD zXFW7FbZGJ79Vm16+d2BzwrP<3(X##XFx!gpdoSE-))L3Os3$B(PHWRFuCd2^o|rimTj7_3^*@GsuCJ)vYF0iWj^P5ts>}iqpm+LLl4xEhwS&b` zYZiBxHt|gUR;xT@lWhUXXAyyx=sJ4W-X0p${{UgVXI${lh%SCE_{l8x33VGrxVSOM ztHXv(y))Yt=izc%^TSULrFwI>HT8F0JeHblczjF74u)k%Fi>!*O*I7st;*Zh(z0(? zcdou?lxh02P4O7&numilolT17V)HVi0nig(xp(nW+fLCf4wy853C{zGKFMZ+S7JJ3 zu<2a4?IZD*;Eu8I!%FZsz%LKl>2?}@(!9PRyNCq2tnx^B(%{r`P}(j!^EscCeEico!`dqyZ%_&erMLJ@r%SaHZ!D} z#nKm*@DfH$BRt)C?0CF3#$-j2 zkl{(>{VUhNLDPect*`kWb{@Ap8*c3VH~2KC{u!gf>_Nwn-})7Nxu60601pj9K40|i z{{T~8Qv4QmZ`qf_3C`gI1Acf)xKcy7(EZju4^D6$ulenDJW?HNxc%UoC4m*$R)rY?E5Jul~9 z`b0-~hUQy;0AI;&it>ob%bX~{ubySr^!&z``laTjdh5lWnGXK|!=`gyk>WoRcxqiE zP}2NKdwUL&Hl@N_WH1akJAmnm@TK_FG#TzRuLS5C1*==#qS|WcgUnU!md{cv+2DG$ z@Yre6g*PWBd+3r)F1r28Q}h1-5V%&3W1B(Ns-U3@+1~HoYfqZ<^g4|;`NpX%I=!x; z;Qs&$+(@r>_a#h)*Mx1XNa>!Uw(d@mZ!8wNmx!m=uD;SFwuelJc~V21sD1_*t~z(l zE9T!4c+%&_e-$mH)~+wL-9kCn&pvAAQO;5@0Or1?i%#+1iFBDcrUJ$#J%t!9N>O6!+4M5@57IV z{ua`r_<7+})sp-;wrfaM7*lU{R>8;8ybQnF_QZtJBsJ)%$3~M{Zw&Z# z(95XBq#ca5p@oM&>a2&NmRbA6oP! z!+G3g3UF#I>eP2z>CE-JN!cf5z3p^0l!3GlMcs!V~>aL)YE5-a>@wdm`G582BH4Q|og!upbC-N4V2j;MVA>G)R}Wv7eJ+5T6acx@uGzcM=&%Yq~= zwSK)T^bETo$Z+_4J~D)PoTQtS{pod0HQxF?H$N`M=G;|?#bdJC&y~}IvWL4CuNQRm zc5&BxSlaL|fuyI82a9h!=YvSMH&WeCBTQak0a%MZPFtG2ZLM71cn3)FluvyQuytFD zyE#eRErU$VsM$OK2pdNnR?Y6EYvHelww?!jOKG*8PBDL}`NUxY;KPq{Kb3OUn$DMJ z`#aiM-=)Zsd%4P_as`ZHL!A2KwRJ<N-JBfxb97fY=jSAo?TV+M=>t{p zXMk;jua^{a-CntFJcMDmdU6P?4+MCQ^3Pq1Pt!Cj{b$4anzf##6}7WUyIf<<1Y`zK zI{VkxmfrwY+u>9iMxC!Ui%o+q?Z6<#ZpS`fBw+2}pIYF}@h>TrJQgCZieBql+ATF_ zZEqX(-CMErd^-wx?JC&(9vv=d`_Yn1-%?V#zLu4@TWWks;-3><>KcvM)UMiFX|F_j zaZGIcIuaK?hi|2NyuJwdmEs>CM+SqTPbI0dw+8A&Uo2&K?~{RE(=Ubp0B1jj5G-1{ zT6nKj34}tPcq|4w;DPv>=R8aMN_eJw6Jy}b8rQ?Ra7~LVre*+eFjV5b+#Vktm{g3i zoC{R-N>x48(^R*69}k=7Sw=-c$A~jkI?blxM_D^_SvPNWd)``o=b(Hr_)T;0!W~0U z_?fSGa_dTYKGA1vUy55a^HF8lY{sS3eJiLFU-D5DBxzkpD*x&jcU&mnpJfrD_uw3 zj-Hyo!2HKN`bT0ZVOA3(!}};lX;ggk{OrE@ecB$~;{O2J6XGw68faSabXyq)KFelL z1Jiy3SCSj3uV-nm5^3&RgDmp2jDHp+(Hq6EDQB6zLLcW^5kNelwhgL(h@6`JPbsH;FYie6zoiI;m$rWlVNTGbLqxCDB2-4&Oj(86~*@ zZH%DwUi8Gfm45TQKE|`>fgG}HLh`h*N~NHc)4tPEeWaO&=^7Nz-jHxAv{zHCzGQcN zV;fjzw4%IEB#G86Hw5-Sg%Ol>X_(F}bRu}#RcRrTInz9{_o_1ai6+oDA?uOSw`YdI z>~R5%?Ew6US2do|%-{qCm#|@5X(g*7okVBERAemft)IJ&D$3iulZGrpi$Q)EgAKiZMa;qM2a&u8Ba_nz=>X~Jcp?5ojlhovzjbuIodH& z{fL+{Hy?I5HMC|XqkUMc=wwulfhVg{{hK7_L?m_$b5IFkf;LgQ2@e~XQ`S=;;3iac z0~z?<=Z_Ms|3o?-54{93fHV)jpKZ;jb$ zlz#W<52a@*>vE+F`Iln9L_i0aqdcRi$KhHj433{@Ni9+$Im;Z1!P^TsZ!woW^HLBA z1xS8=_G*<`Ee?58jrJ{>AZ@@iNWkw>-BDiWD>QKpno6kZRVkS&Ms}F5XFt zWo{90!`Repk=+Mte=(RGxW`J*+FkFdoRpK*XhkbpPC-IrBkvB><8DwZM=uS+;f+@| z`&k5KzGIdZ4lcO(l$Be2A z+wysV&sHNMjqY+vhW9jkNm*(frmRwFva>Ytko$NjdK$F4a!G9MX>yW<11m2L_+qfL z8YpK-*q-B-txGFpyPh;zpoUlZQ_XA){{TwLb)0uHnrMQ1W=*T)i2Lr(T8LlEZ*L?H z9nrDJC-U^Gw^p~dbIS%Jc~OXBk_J=sJ?f9z-YE9TZqJYJE^9t(p~XI=g6`5p21Ilt zra7lMvMvHEbJUDxsf){b9EmJd6rQWbDt{wQ-b%a0kcefs70qVYpNS%(OW_-KpJHNtKr0$r!=dd({~PYsTpvvyr>6=TfRR_bx6s z(H71oKmnEzMsPsMsuHCBf9{vJMjdHDe>=@{C$Zhqm2NJu%Cb0K%rZ*Hb-K5@)PHA@V<84H$pqE^ z0J4}}ys4#)@yN|WR`ne~nI!gVv>dn8uCh)Tjg8ZwHEtQ*V*%4}_dL~UOz}tsbn%OkQ(wv;%JM;OkZ7k~t;+09QIHo=+8JVQr^w)1HL42ALui1zfWJwX|GpUoSGV z8Y4pc{N)~pH6%{T#K$<@+=IbAz?qCso^~8n#fI8wm&v*=i~aM>TBw;ZqZ3^Hxl}p? zmOOoGxwyMc!|e9&pW!02zI%5DIocfm01!KeBC5}$?3Nlty3Y><oy5YS0 z0%RQm8o6(OZn@mE+c!)W&1608+!^;Q*Oq=nH*xRq4!eteAmDaEE>smAs-jr@e; zZ^}OFFcb@h5V3gUar{cF$gHyj+t5RK2}9VSBl**R;$s}#GBF%wc+FBx5h@DzMv;jo zCF5P09cl+#xN#(RcQFyu4V9{*{_P)Qz(^x)dZT*V zRn+5-FfO3E1FFb_pVF;Ob8U4Q^X+ZcPT^~xNo>jh%;b;a12oN+?$Cr4o$iCm79Ajz%({ng%)k?mt?!w&TnaFo=C52BpcE z$*qY-sj9&ne(Xx8oy2sh7hjT6JosWedY><^=~b3Xh|4;)#uxaPkSQAC>ShYh2?wW} z5$3e!d)&%UT&-BPnx36Br_PO|W9owdRi7hHxIyGzi*wizF<3GqJewZc)SpmAK-P}3 zl`%%E{=uQP%8V@=BccA!mLY_>w4F%kdetXOh-42nuFP~`GAe>7LFPqsaS8WAL9H8W z%h?s}?tHfDq&b~%G}iP-rgv2sA-nB zNsMk%0}sxrkF$BK>uq-u4&k^I`H`f3O0wBa2-_dqQN5U8{;^g8*C3j!C9$m1dOb*9_e+}8f20`Sp<$WIRu!A~dhQVp#A!M>KvitR^;%FW+&os8u{{V4-+AAN= z)J8+jWB`8{=ARAp@kzE=na}rtp}Q+HCx>@U8cPM>pL|!*$fwX$`?VF5GO@yrG6p|N z%#wKIVIs;RBz?z1L8y%KL-Ph@Bh!#-nvIHd8&@;(>Nlal6ftO#fz&R zm~ug(b!dv8G6j>|j=T2Gdu30`*29(Ij!c1vfQX_{H2Z!Y1>V83`|qWkdeb~{*}s`JuTSzH&a_VJV!7m^{IceM0VT$ z)iC3NuaIe_C(y~^p|REdtjtwzAVDu?UiB2MC9~z?C0KAl$Q8~*CEB4zVKM>36Ot(Y z(Y?3IHM87B{obI_%5%#JE^Q8#bvq^6lR$;BoYK47O&IcHFt>M7d9HOeZ9Y_Vy3_A% z+aD{!a1{M9PD{AtQf+lzs6XYL@s%U-HH(tDr`4w`c^^2J!8qNM>ss1r{lkLCIXM7U z8#<}ml25&A>8{&dF_F(WuZ7KH{><&eIC4>P*|puIUf3W1Lflz((PgrsWj;*&kXJhVnx3TB$`D zS=g9#`9LS@%^;Pw^;PuES7|nuBpjZCqR#KArm95j+n5Ezdz#a;U^IJ>cIOAE ztQ9U>hEZBJ8%4dy+|rC3k4p3NNlH{7s{GHT;TWZurQR}MffBYHoSbCvDdp1xFX{{V_%xm<+lk81Pt8C^mD0C^uv!!iE=cwOnp&-+4yfTZ!kCZ+R-mIea)o~EgN z;1?Ts?b@enX`_K%nl%Te4o!NolUpAy;~g$YPUPxvIqOZz0iDPJ>PhQSqbC0VozBzL z)NaZgfgZv9A%PjBq=83MLeh2@sJUXN@*Gm$N~2Pg0&~W2Dy_LD@-9L7zoDrw6#oEe zIm)QO>(;#Qd+Uo|v-+P!6rM*V+M@pe(njvemDt$zJW;!A0fV1moYOp@tT#woJp!5u zU_M-odiAdND?Lw~NitzB?lHIP#b{~ee2KG-+l^)fa-g!2p69)4X^S9PRkm&FE0Z#p z`!uxe`JY9?c3GuApX6s|F)WR{Br(D5)}AI3La1V5eL>{ZOb6N=;ePS{bf!Qs0_-F6 zHQJ}Ak@MAK@3Pz|M8j%26WpFFPE(CO0yfCpbv$*fK_i&4jC0hUYeH;)W5jnh;f@7x zVx*NyT6O&oZzhHCxWxYell4R`K4pA@y}0c{f~?ECdl8Z|PzA^gLn@xgUdKq*(;258XFC!)BPs?00<3ecPo&_MB}Dci?b+D$Cpufee^JGr**(LfVtd zB+J%C<1fEx1aZYj_Ndb%2Y&O$-a69S6=_@N$=iYLRGEUv`DJmq=RaEWsL8BVTRz9o zW-#W;aE-3B{L!gxIBSA8D99O6){smDjBr=xIKa+%HAdRwH-$iAc;I6dUP((z}1Q+X`0@J?ITc+Utq;#ol>{jza)Gwj9wuVbWH$cbtjxn5%&ayYM zZg~R`-Op;~r&^UqE=gX_&&iz_tg{h^g?{{TOJYQ$Hd zTh7^K0o$DWRz{yBB1r)GmmK1s1dx$(7%@=pab6xLTGbbv574rhFR0+|x>x**(BHX@ z9RMmuGCI}S^(n5H6KN7S>QQl;=RVaF6h&~TM;ZPao))=yOIy21o(NSWV!naOF;{yZ zmBR_n(u{RA43`qhp<#@-WnQ&@RgU3c4;nm?G=?(EoriT$oIG$Fi>Xp2jy=uueB4yy zUOKFL6boqY=0_^Ts;4Zw{kod??Ee5Y!YR{gY4YCo*R%Z(-25-#{Nd8XDPi0c{hLl+ z?#^pV?yn>^cUQHSdKGY~lB`bZb*roqWWuQ%5t$#YZ+LgZJ|)+68SNm`=C*0B(i=%8 zjH>dzGI7m%<@dlz^p6MJYQ81$MUu-B?ptV%7@TzKYv*yiXG%0`P^TY>y1C7Pvl9f0?az$S5Iy<-iN6fw~i7%ppC~g%}Hr&A%-#?9HY5H12c#kwU62p(a z*&O{V>sHe~9B957wR;FHb)8j!GZ~kG>yyQD8kdVg$s}>5!h2?C##el_!x&T$yG zuKrqdKGu#=fy!dxN|mCUcbn4f-}=z-@9aw{t-Q%vHTj9zj2u>Z(scN47D$nsYh}J; zfnELW+)mO;(8U>UH)H%On3qJjpZAcNf;rAvhTrk8QjfK%@hdMg4Ht_QP^?`Y!GX3Qfc(8i zM?6>Pr-1bT0EPbmvxkHHP4N5Tug7l%>c3}%AFx4fY$Opn<#I*~vFCy-@@8KO+Q(}e z+uU5obrS}TODUcv2h=i#@NTDbcrK=z^5)^r0UX116V}7vr4?<>0X68^yLnBrmygJ{7(xRmR6&QczFBo zN2U73ORcs~UYFYIQM!WLMX1@_$8QL@jX!rWQMo>bng0L@CG1PFWsd;o2^bZ(K7sbj z541$LI*gEjzEoJ`o}6_xSN;%>5*

wP{dkwjghv+F|lX+~YlctA>VQgN-z*O)Gb4 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

_Lzs_z>gyc?$+ z=8)qgNf|0Kw<<@YFG@)QzdK{=_m_&Q@u>T(-rQlL4qm7$(WL)$DpfJc>;zAg9 zJ?h5x*scDtM_$IGbLKWuL+lt;IjJp3O^`R7u@ZS19mjkz?>F<9-8;fGzqv~z4~!#uKB zu$fr)8O0)`hBLb?bH-Ml@o|;eBObuiAUPNxx{>9|5uI4P@or16MACBrUkcBwTULN+$Cgmie*9?t-)a&{=T#QagiF zwc7bX3dZ1cB862VT{ij_8f}LX!UF#Qd3u^tHM1c7u!cmf7q!@W=tf-sK}{CTH&Qbqwt$@Onqmr;XA z(DGLwyo6-`0CJ;ibS;Dq7txJpGfu6;$gS>8NSD_rc7c=bxvBQ)?uG2-x@4_vM43{o zzULJiM$zGrHc9PLoBhLV*1(@$l`7m?x&@J052!p*&j-|ZowY5eW=v7sN%pqNohfp}DAPqJ*@t(QKH5{uZ?=Nb& z{`YfGukH!Lus*((moB>+TI+LJAIXzxb{RYnYT`)c!=&8)m4dfOK@T4B-z;-h?dF6K z%341_-RnMk=!|DaOPhk}w-t~V=O^XhQpjSRHiRlYLF-x0;DAYd^~gL^L$VI653g!X z$upPPt5XuiP;J3#YE5%oJ|=6w|c6R%M%R8<|zK? z=A`rO-#J!U4{TG4i`<6^A?lKb;lUWjDc)q@e5}BZpz};A8;l8ANbWeOgGi*Rvp?2} z!E_o|H6fkdf|6B-w_4FpGj|x2W01!Nxsxn_obN;HT2|7rU9A5AG4(xbJx+SGx|(HO z*qq-d?tSXzHFRYkcXVbm zuHTfEKVB*sWMP5}?(fZNy`{6;mPp?ts)NmCv@r%MC2{B*wQ96Rl;svGUAo{m%1=y= zD%wvba(uTObsW}sw+=to;OD(eEpT!!Ll4Tao$q3$7#n_iN=nEAH*5|m=i~rCApZam z2Un zXk=l$Y&hhB)|k;Nym=_#oN#c}v)ghIxlP0)$cH@$$Q0LtM)}nvke=$mQzf>R84foT zKK*Jf^G7Zeag5|qwye>455nXIiIn<^U7K(`=_5Xv%^J1G-DMpZ zLz*niONk?J;!qrPR$Np5-!$@{Iy-k?_DIcYCGCu}X6g{&j!K}aQ(EcryA)uU`?xs8 zKZ#x})-@N}L`vg!Vgn;C|$ZNNys?2Oe#RKYRLJWtt2O4Zi7Iw`$0DE*cN zY%J5n%ls^+n9)3U1*5x{IP08#m88b)mn{*H598a&q*=dso^qX|gP6emY4awvH&tYe zcaSoVGAJZp?=ZoprM;xe3J9ZrLcj{Ybe1CEosNL>>MJ4Ov65Y>AqUv>tM;}!Av>$; zIO&HhR49K;K_64pr9e0N2#I2ol;b-2c}M#t04Akyc**)@$veaeb% zBKym{cMODLr%Q>1yPSG=;B7TocC?GBC+PRoJqLPZ!=@iR3R^tP()F_-sm`_s!bX?F}94- zlTL-*j4H};k}9FHRgec~jE;sg%}*8lqC|5O#N&g`K^1kCB$!Sm5y*b-M+UF=a_C1q z;Pqxqx_rbeft}R#ET;#*fGZe)mm77lBE=lfRCRj(}=#URSEo)}WWJ(bqz=C|9P zhaD*PP?OP>?WDKW8Bp8_TL(}feOOk5NqmDa%>>H52skxbZ7$LBiKf=|?Q!%Dg42HKWugFoc!D#hmgu%|2Fv#8MkudxayD80YI*?{7NBP)iegH+qN3 zyH{6BbAihUoYBuEzND&YyQXZL8$$q;M)5v50r856z=j>sUQHCkr#Tf!+~GpGo*Z%n zi^u0q`%24(Z?nu7uE`3M_zG%pzQih1PjYCQ_99)c)=&>Zyi}4%WPhJ(A6>Z=i*IWp zmX2padZTuw`#vK+RnTW%s>6d?uEq9Ai-A@d)B)^qaKX5WO=6q%WHI*L2GMqGKgnbn;iLr6x3xcnHEcRVXG?100|;Hj)!;^VjHWpOiLUyAndLQ z6;53$J*8O3C_l#waw{TRaivJ9s7mp(AC^UPg0;_x#X1n?md9QnFL;N`6?fR`BDqA; z{?e9iB9;1vTxaRlwP0wWxsKygnlQ)i#euzlE-R3@w3^>dw4P~2r1QANsGB_n6zz)3P1bEJqVlJaX*CiGte9KFyoHI@6Sa$TQz8I6k8b^tLvM%)rtn`@MWJ>Xub~x|cRh?Sm zJD8@ikL@tZB-?Fpu@r__`tjHr(qFo+`J;5~(`#FKYp0oUm$r(OCCdA0YySYBV`IbK zE4T44!)cRHu!h%KwVQK7a-L#=jo3J>KM+M68pXZjS9cO4#$~m09v0pDZ6u5ljP$Ha zog(Vu`pV{gkxwAnk}TUn_HkBj@3jTfA<;Fd%0i8{Hh-IF^jetGr5c>nG`{Nhw|jRr zZlu+!@Aq8flTzDn8eB@}<{^r)+J`;GY3b2lT5HXyY4f|@Ou5|4`?9~4V`>l$KJIk4 z*>`AHa=Ba*ex2*C@CE$Z=CsxjSYLUT(Rs2*G-Ruck%blN)|BH#)u*>x?f9H@l_^zF zsP*aJ&+ss=BfPS?onGQeKG56N7|-s(?m#_13dy*T*_og#aJz=~i_1HUdti00&&Sp+ zc{QEShvT}95d6_H6d;4h%_oF)$S2lqMx`tgYbo-oTt}6Vk-s(YwR~gFx0Q%|$)8vmqMY^)Nv$@~1%w-{E9dawY z+o)<+T9KZ{NERo|8zR_>eLkJ*vyA@$X?=>%U%S(VhMyi(f;`qfAJ>;pMQop4L4g0N$YW9;e#2^#rihJXR#Ry$@@704tT)M?gUz z(!DxW@f7B#Z68JbbvUb1!_s-<~_t9`QPDL zdUl-p70J4eSapkAq}eJA6B_#aAA0Y+E2^%a_Ly#TlzmAfD$P85TL+KNO)K?E7z~_W6`&zP|A1h-B5gHL7Z!AJ(8gR5!MSBQlYk@;K{?=CAab zt~B|tyhfV;0E>J=pveK$F4}m>Jmi)n^*yUoTY2uFIBDC?mvkyyasL2x`qrMCE}^Sg zLaThRrIFej8(5C&N7k{9XNjdsDpS3lw|zTbefl1(X+_D-8e3(*Te~mB<#cUpTC~#q zi(MRPZ8QDbXtH0oQVl+R7f`)%k31#_+_8G_NT?O!=#dmTpBRiAI za?cR;$EUS$kKkeAYxLE%pA_BAWLs!ed@47g!Q-WL)2~i)bt5GO-p)<>9{wLSjdrMe zCn?FQ#+P^ToRWxc82w1e70T)#v=+Z-a38^zPoSWD z$0XQbNa(<18uYNw6)OWR(COBw)^WG{J5OKExJk8-3HUZ*mbzTl>Kk>*v9>P3 zvD}bHPW9xM{yOpJ#IK10Zs^FAwRO&Zy8mq{sQ;G}DC|aipoP(T!+o z*YitPCc3+9k$yd5_D_e<*y~b%Y-vD)51MlJ4p*30#$sdj zx}5S_DLw7cN$%{lPkS8&t)$l$w+j>|R*3CZae!)5Wh^>Nz1`$c1^Jy}Kcy|z&E?g< znPG5Xwo&`&*N$r@(%6k4K%czxUo6As{cFR8q^~D!cItgqNY|%1D_>3YN$cgS`_a?B zs*9&dJ+7S61VFLPD9bs=Y<8+|tm`xB1+FKK1y#ny`F8&RTH9!*lG4^O<->0jcvkzr zol}uCsAW++a%wX<#xaHb>nd`iOX;;I*mcpTT#A z87>)&tLAMRgAc;JZ9W_Li^RSU@NAGEjyJP*Ia8GzhhIvkq-%OEiKyP(Txn3=+AM!0 z0RYSKjQWa?UHHM`tx6MZr%M)vV5zZI);+El(;(yYuBvqNtW8);FN9!|e*Cu8TFEVL zj(XUh56keip`TZkS5ZRLsVB|uNxQi_B%e)h)by)whQ0~#g@Ro8%U!S=a7E{aNw&zZ@Q4Nzmb(1w0ggp2~G!o0OH4^iS07yg~5?#r`9@ zbEs=KViIz&L_!7j1ORJ^nVqF9$8(-bHc3B?N)<*~*rDyallf2-#u8 zgr=!s>8M3?NhSCnjOQ8tWt&%Z@%80aZ>*%>-F=sm(5?I!F_Pz_RFRFa?{{@M=xW;A zGfaVSuEzkE;C?ic#UjkgUN+m@bNbh9?YZRhric`VQWt3+{b=%7ADB14J!(sJFFM9m zLb1l|aZbxE!zKVA@@id0aFy1@YsEpPOb{I7l6qG%3FAJM)?K!Asj#>NbnjN-IdWlnQcHiL9WUO2BBlid5fbQd&6HzubY z2U>~8%m;dytBAvN9qXZLk>xe-4u&bEy7J>u&#h~nDpo>cnF_C5sT|cCISf}y-km+` zRtxFhQY~<(MhF0Lky9Dks^<7kinvJ63nfNhz3Fvz>GLz&OuNA$H+>CPXlF$`;*86e--5b6CqOsJ3YI>G5_JqW9w0;&ZV8E|35*=~_$oh&?e? zr-3c?pDH#b00a|OQ~hsIn(;9yscL=ZQ&Kad&mEcikNYx^-?9dV6-mKt=fBKr!@OXo zKlmxuggcoa#y*C`7b})ypZF2467i@B{{RIy@ctN(B)24=p|9pl48P+f z%)i4|^GEiq-SRxS`OyCW(owVfT*e2AJPi2xiIXSsTKi`~IPi9mfM@*zGn4+{uZllw zyq^(x6@mFllOLMb+S&;R!CFLw;l9Hd$NT_SkD2R`W$(_X{*-rMzvO3&{{Xi?^plGC zuI&E+v)_u89zMwYf51(CNUMLLLyR+Q90ToNtlt#azra5hFF5-f^Zx(=HTfJPWweK3 zU^WlsU$yuXQeWBltA9HG0Mbw7-=!TT{i%b$@=N~!N=3maRUTj}K9yo7gJ~rJ9{uYm z8A<*pKJ_ZQsOOJUU%peTC96mBjcPGVMr(O-Nr1n)J$Cxj3=-w=0rv)}tI5L#B>VGI zE#t;W`A%xpXg$teNiBwzln4L6(7*sZhrrf~_)b+>FT)BlmMC`RU@I}(P^2nY{lY!QDNVb8 zNKB9RTQr|C2g*u9kV1KQKJ?r&rqZG=RJjIDchjjZfqn&XCO9zhdk6x99TIMMfDt21#%mbz}3XMm1Dt>N}be> zYE?zl$C08hDprh$oeKJT)GQ@m;K#VDEix0GyBPK>Qpa_b+7co@m8(&GN6gVc%IH2| zaD4?y9I|czH_Pa1X<><%c4PxSxdN+sDAFCWf_-Z~StecL(Q#xd`T0k zkTD&0(rw&J(2bc)tX=@49IE!FDYf78#_G7>aZ<36PB%p3yL2X^kgLAcj1D_W0F(8pQRa%_ z8)Jg389?kuN~~oOFb(F09oTfKe%lkM4I?qn_i<6}6Y4{ZjV()2xz%qH=Jg|a)dFu- z!60>m%e%ml1q|6RADN2$mXpy_F`9E2oBToiC7PD#UiS6 zyK4d5QyE-kyyXd=6!xYEbz%%@DE|Ot)VQNtHe3uPx1xd+{ zL~o^Cj%AN;nU({Qwxiv(*^KVC6%?lBia{XgKs55V3mzE02SLUvCQEmjr4ks4IVz(9 zl_ek$W-htzC{MW!bt|-!EP%Gt??AY8W7Ct+3b(S^@wk;^=yEC&$ttRAH4Mo{U&P!qVnl=Gu12ri!FvH^mxT>FN5^$<7XWs`lP&WtHuVu0Hou`PIa`Rm$xnkGlQpH+C|pnwG;NxO0_dNrrjn2CheP zHw7{51GZ|BHjdoF(Xsv{YGc737%j_Vw&POaE`&-DX5f{8-xFnrJ3*pClgGy_dBLm| zg5^_kN~it>%{-g6A(-Tjg-fKQny|Na@?!zlj*9f-HoB844|^RG%Vh9E zuo(=ye|#jz-uB08gs;oFV+Fb#VzLkpsc=;L(Cu=J36017G(*9y6r^M9bk3iOm?%39HW3i{3}S#JxH7<12ia9C+7ql zWltEX$yO?3mykJE6>3!N!@iC zcQal&u&&X@!_j+FHvr+bj(haYSXH@<0_p(ixp@?i4Bvg8DNuI*0P9igJ8x2-$KGNTk!1aq{$+M?+)FeA+eusr@ord-Qnl2R@cxMVb8y$B%F zRj$XB-85GYPgWq*3wLU*jpYyfwUe9bXsEZ))fW@F0$X%)INjV< zf?r#hl^QvslyUO(HHQ_%PU;frc|YI4tpFJ=KwQZnISmu!8igjdW_2kix-Y!3Nfvy> zI5^va9Da2acM`1IQdZ-$P_yQCX%-nX{q^VbsY2UGxhM%ekn%qY-ZO0Glu}z3R%sOP zDx<#y8oT?euz?vF@%I~or|Z(OyogjdNhVKK=~_*r+}miD*YN6EW#UW6kS88$eOI+w zoS?Nbbd%VtEK=Lt9qP!y@<_-(l{iTR_%a~Mo~SXO&ZLs&=_3mzynr5rHgQ!F^*rA$ zc$4PfGcE`}T57LmG@Dxz$qF-`eMKl;u@q@e)AwH#$$XfuJgJ8{hT@*#2k?)7|KIw1ivPf@oc^Qq&O00)?} z4^ST?@~tCYJ2K%?boDvOtnMHu%8FCZMPZRtX7d%dO>J|I>@k|{Bv{$R&`stpFjd!S zAB|NUBTW)7XI!PAECx%1n%0mhyX;dnM9I2iG zH4WvYGhay~2`$;WDCAW|vX&xBNEv-IN>h`28d@9N=pnhCAwRww6n)ZiK9yE$wv_|@ zkZv90Jl1-}u?cjY0q&=d%A}4bINLDKesD!=3a-{?^JGT z6tlbYRybIhN%=;3{A#7VSl5=%4{FZ4p}A@Bm16!^w1Ld`CL5?!It>$ngrK6xX{hwioTQMK0TzgrIOiQ%;gQ8DjaMSf+2fK*no+($dFT zv6|!iWpvFjn?Qxdg9k{!r_w)fCN3Qo?w0S(1ZZ#~jP$vjCau;X#9 z&k1Wj8`L!IMlTmzOJO?$_Brj#VNY$!I{r0Q!6m%XH3(s_H~O41kpyo%LP&9RC37W--H?nm@1HQ1a!HEvX5HQPazQ8j#&yTU^KH z!bo4?ZuO~o91jJvnSZmdULW4X5BjNn2<^vertsdj585HPY;`A-Us052RI>^`(w))s z`Ho#v2T?+$oya7;wVl-cl))+Pr>$E{J2|BWDd&mLQ@9cNR#~^ZG3Uxqpz=Vb?7Qd7 z+Naf573=#>=-_eFM`KD|HQG`H_#^n&wM5n$fC?6PE*JP&jt|nRyqcxB0%hKZox{C2 zT)ewNMnN3lrxZEUeJnJjmiH*kZ*6XmlMmSLxM%J2~NhcdJK4m`pf30{p_XTw)XrEV>Ir7EA zH<8#yCx)#xn>g-oH4B*|U}tuXNIuAW{x$0U9My)YtZF*Vyb;?#zqyHKL4_C`dsl$p zPGGi*3%FLscZUK^x$o3g*Mdwfysoz|O4>bnf=o@wY?z zCkKqD3a$+G&3i|Z9|~UUTK2dt;fm)L(8hAgaoC=$8t9x@N5 zVCx#i&ZD6{qs!#kTd?vizs9WcVAD3=BXTEC3i#$E3Soq@AwCy_LOC^teoZ=QBl6g7oc|B`lPYF$_ zM{RF0k4u-!^QO69-Y9?WhF&v{-D;;=i=zhRziVB8Uzs!$QkN>$`mZ&;h}hm-n4r4S zr_^-oC-Tg&V{`WhsOOPf&b_5xrl6LZi!5;`&Aqd~Z)5M+S8?I{iw!P$u7%`wch4?k z^Ep+($0NBo{cD}^w~4HE{{Rx(2-TyW(LA*XIE)jXJ&#(#gsLjZLOOT-e)GPpJ;dh! z0I$^Y%bBOryh#*l#z&8s-NsgB_2<2J+IF?8N4rtBV+_*`tnkJL(ToX z0b==DKrqez(D$pFJ>}K?&-NrUwY)J%0+2bAKDFxNA3YS@71sWr*F%>NN?h(LUWJ%- zEq2;l%eZabEZgUqWci34+n$w1chEddW%i3EHkW|l%A7v$UuyMvd=aeaJ}I#m_XcYw zk8Q)0EfG>Pmd9%6^p6C1TGL*=ys_~`rNYQbn#EM2MtuP%73R>)Fs?479i**i8^0?* z_#>SP(VS_{JkfjiM=;k{&}itgUR*4eacukKi3ePtTGWbb7q`<~q{3;J%xPpf-g<2{ zVRXj4OPHWATp-J254qbQ)_s+tJ?u8SzSv@udhX#yJ!wj`XBOMlZ~c0mai-I`jjZ^3 z^3PS9TClg4OLri;!np{Y&OWt!#FqA#J`B??EU!{hq-B%~!B1-{`{b7!ulj zK5$UN*vzB2=e2nhcXsWpHM7SRvc17!Z71A9Nj2)_)$7%dB$lzYn(O5K4<8wZg*p4X zGpNu!QZ&B{NocmxO6+ibkD)%5%<4DS7x4+@iI~SG;K)e~J?m=f7qFQuti&QI#~=*+ z-hld6UXy&9ezcHzg)ZJ*t!@zh?LWMK8tHWu?>NTq`umLG2N@+NYm=@YMUzm9d9Cgf zTW*(W0$4l4^#(l1u+*G<2L?en>JaM>p$ zA5QhXWv$JmY7y#C*+mozqA69=B0=1YRy8duPnF%f+snx8r*CYzm6n(P0Eahk8LhSU zwEok#hQbyPW~5}RdXvKh-oSWLcs zypYH@F9SIIbH!h@l4vyRYtg9-s2#AbWnJT+x<_jBYT>U%KDJ-e^Y!X&hs8Q`aDNY< z>HTb8@wJTBUN+Hg?Iu;0=?emmcDNjEZ?9U)@SlkrPo8@%M$s+cmP0IlQU?u#gPioO zUlQ6!cP5Zx)TJgR-95F#U}M!yd1K#W#1}TuZIaV>lB(Pl2a}WauDrUGYvKKy*30#O z(mc#nX;H4(488VlI+(*8PxU_d84C$ap-q4X&xifAeMMf z+sv3MP#hD_9@XX^H1LIvtKf@!eIncYI{L~?MHWAIFefM6AJV-WPa0f0Tvsiqv^Qo^ z)V1o`q_dI+v$=Mc?}FtZO@0qc}Y|)t$QPn*35{ z!qnc{_}JEsrTLy)->ze8)+B&Mq9LEjc&grdrl5X_pO}*)*U5o;7<;Ld}=GU~TXQ%X%{ZE?poh)ef z8ikyanI*s_z~en|D}hwq7-a`{q3iXpQt<%4)_x)DFj<*y>|Io#Z@35@jw{dZbjj=_ zXfG}2v7bB_2a)YxqVVMTDEleNb8lqz)ci+{tH%?Fh9ZJ0i@>}5a!WXhDE@Pl6rGcl6=j$EZ%~ze5|}}KT%N>+^2Hv$4nZA#~Jq_ zb!8-Fi36hcr+l)iqY|=qC%@L55isApkUlh-S<+eWaokAUC+zWi4vYhG0F?Wbek;JlumH!@JF0LVZ$zpops z{LUxDz8lnhE8?j%y+s*VppqFeg^^p4gX#t|Sz~PQhQSV>cb@h4M~{9U+k8OyFlV<5 zZ?EZg>n)V5zj;6fll}#aSHdb~hIdIpNuzd-R0pFe!w<|F@_1W_;hSMwdQ^k7m*o8) z=X84>B=9u&TQ`;+Yes(b8|~To#p&mxH?;ZIYgUd#Wnys{W6=6luPMS2%w!*!XQ{4z zm@A8gm4tuB2Nlr8brsEuOCsfm3{YUO^{>3kaVjs8Z%&`&ehtQXC$x{(DKB|^OSEnEDJI+K)P3S>RXLnv*P8j9M)yBo z%M?{N80?w)hx;%P-?CPW8=bDhpZAS;uaBE={1n?jDf1on_#c6XQ0-nzAwNoci6T%o;|VX+b58*e8@_KsF-?j@3_{B)9@RdN2YT0B{mV zU8bN6fQ;au%B5w6uw#{#k8ISbwj8zqFbFTl$SY2x6TH3ucc*!w0xP`I-gpw zv&+0}K3+WzDXQ98nK-+VGosCvG9sVhJq0>Rqc{jvy?Dh~oXH>s(3}oP8LGr&&*u$4`9C?kB$-)-!KW z^0N-Yr;2F+>UitTQmt*!rA?PwJijgrb_SyjBxFA)o}-Ft&AGuN13a3s=c_&#lOMk| zeDQru^;?cxw~ARd*Dt?I5N zYv@QLjzO{Vta@?9M%J=KHzRKJ#Z~jCjlN`W%BD;3%g8wtMsVs^EY`zI%A@zFK^~*6 zB1<0gkjPJ^SzFlhcY*=zML9*Qw&oyu04qpJFQ_+Vsvbn1R`ffMVATfcLBlUjc&AMq z*~~A;r4gA>Wt8srHP1M<$y*98S7v04F#hc?pKQucmeCJDb5d_Dv@{scaZt2Svz(}3 zp{2^ilI%#HL&8rB{?R6+NCPMC?g=BP&lOa~8mVAd;*nSac1TeAp7dRJAxLj_0j4ZlbleA#axi2mE@}f@NX1&UlFI!-GveTQ|zg8@5e90kS3ei1a;a^7bkE z5}B?c3c$w8*QZ(p(ahz{8(9AUbn#GZk0)%B!|cN%ltk*MY@m;B4NoYni3`FcD)GKO zMNhMVv4oNL4b)W!S&MwzPt;RCdlP(zk5Fm9G!7k^qGQ@~Zy??M+Ilpc3z)|p2pwvI z+(=vZh;#knRt3v4U)-*JP=`dF^+l7D^D;iG8p=i%|1KFj|3qDxd)R|NXaq=F^$;k zwuKbdhHmNVilXcnUC3i2t~=F}cNrLxJ;06_R1WDJYmplR`cpQ*`1zw9=``=S`C|34 zCz}Lv2F#mJYP%Hbz?5?S#;ExazbN2i(A2+Yg9j`JzV2$2T6z;W!Iz3fJXzt7Vh#>! zv0Z}rQYlI?-4kZXBu3&z+^jn(rU`c+mPSXnx4i@IiX_9YJC3T_>ZQdTjs`K5%8xHZuWw|K(Hj->nN6*y?xHd!Es zVtN)F(v}_))fz^-T1glQBe>lZ(G#9`v8%H*uv;Un(akGz%NhH$ve;?z$mO8&o79X| z7O+?wbbFhQ$E9ZQv$l-BYEmwZRhbkqIUVs6=`nW!!k_;!k)!>AEjW$e;k8su?7R9 zlY>*O+$#S7Ao)*lb3|hHxz8*=WNvx(5<<%@o+bYBF{ng#z?QeTVBOKpP&XFNzk3I` z2L`1JZ*Vac#@6(4T@Zq|Loa65_b==$pu7y*c?234%JaaH8*V=urUbB|Q2RzOq;e@1 z>hvfRpq4yvd(}H7sw3IAvos1qTlaScCOw;=s?tSttWM|~Ju^`(f(0hE@T4};Z-(gBP4V=>9Mg@}$WCA{j--waI9AhC?q4Lf(9mmJIj$rtZzKa5 zP;r`}abd_{k^(w18ilW;DY9r9KXp?__L8pC6vvO@?kjJsuBE8dRgn|bJ)W$+cAxUBYWg`uNqn9XG+c*^-TAu@ap#5(VmM` z(W9tq7EsR>%(k}>S=-Bl2yMb&a!(`htnFi6OPNxACJC4_f%C<-fjlA$IlAzMa3|pLnq_ z_Hk0R-L~53WICPoy!(iG8efz_BN9RM8R=JVwfli(9fkaoNMMt4+Nc3kzf&^&+^)4FeWmuY3w2p*Q2(0x@ z9#$~Dl*u0CnkC9O_s2u^tc^w^{g(vqwPrkF6oSLnxu;5&A#ylqpXK?lFTCr6aI?AX z_I^FMp3&`YRt-w})(W~c3*bihMO7Glq)A1 zu}yU9{{XMd_e&i|!M7UBx^>>Gf2Pg55MN{W4e7j|+2e|u>dJc?*0-7AxL&C=40bs6 z6~TCZ?^e3f9@gsCJH?0$Nh;-|AM9h&y$4daxYN8jXwqFZ)yac>wEK2GKe}^X?n9qq zY2&9y5mM==qiaic(La+uS31e4PLySbjh+1e01}eRXmbm-+GE=z^`O|o?Yax1t_Dgm z!TcyUbKCer3+-}yTV|K;h8|!U>AN3y@vcu$@l^UimfKddvyg?&yog7Z!{3_w2=OKw zQBFScXN6CO@p98=`T3(#=IT3e(CSmeCgXvRPebT_mBe0LTV3A>C6%H`&+aDlUqkCy z7y86HjE3aKA(-{peo`v6sA=s?u}-YZ_t1~HKDF}L++A!#dg;*nj1~%x7AZw*)bF)j zQcXg}3!?u3X;_ZXj5$$Fv(zR?qA^O5<^JOG39JiX#?_YMLL->uAROYVTd7%#?lH)X zl}z;JzG4_!Y7Pl(eV^8+?YZAm(5~(^Lv=LQ4+_nIP&xs(r(a6G+Rf&va-Kv#XtlP3 zY}3ZMEHlw-j+*G+>R-Q`EwbpF({{RbKSixZoaw>IRne`RsVkxRhKIP^3 zc0DRHb5i&0m*QU2bqzpW%b?rYoi^Ra`d66v+7EJleXFZ|ZuSojt*xz%!|B#?1^Z+p z8@SKjA6np&R=Mzf=A(6W_IaZF&d27s9@wodJH+KQ$ZgBCw#wVQr^YjkXNvN%G+h1Y z#XCKB-@X3;56tu^)@fQ&wbJ{#dLEyp_~ErCwz0XmxQ5kSc_ujvj-3hgu97Wk#CUsN zw=sczEALp~keJ!92H-j`9+l&^nzf~ul?+yrD%?3{SimGN^yaynt#MbxklexN!3E3t zY^3m`*YvM3WeTlHI7gL!dj7UL=a@92r>lB?M{99*Ui{m`YaPg8mIXsF{{UzcR4?@Q z-WmhDY+t&#+k)Tk4_d^E>KOcfvOVjxYZggUz#jF`-0ODtqcDEq$_%Q4)wpX zsZLSkTcVaG6)E1QMsZqJpQvAWrVDGEl}Kc4Gj!Y5yMv?u0Kze=$EaM~%7C!@Gsc_7 z?#e}FYRw(1#dB{AQAAgHRVONa>eQYhwz=??)rHt+yMq@n%6ZN>!1t}|O1)ILl|$^gVOMUMRZI?es|!;Z|h*<-#vm`fUr`*B=Lh8q>uxTE>t=qt6}{r*UpF>gEYL-|2C%C$vb+@yaf{A2EKUwbaTm)(C`o{Z|#uT@G--}LNupJb0k(|*ky(Zg<^BeJ$ko%;3_%w=T>fPOmiNqodzNuTRwC%qcmgqk8oG%adBiCxmp{g_ha=&M_jX`N;JZ#p)8l z7Nqw!tBD-^`-jdxhpDYCGT<*7YlCq7QB6`D{ljymbbt>o(>aq)86&(UwV-bF}8V z=~-5{HPhEmJx4dsLz#5$VlCvh;!C!f5KM4lbRV8;Y`N7mB>n#Yl@hL0uPENt&g)j- zXqL-+43RPn`HTEV-lg#Dw>nkrz0IV8SB&|FCK*>=n8Etjr794qPn|n7{zso2LxkKO z&+|95>&vYUYj#-G)gN+_axq)C8it>D;hQ(nY^@=>jF-Dy1G%zzBl^**TQRmYgkvj4T3gqDN9WY@aqw!J ztIMo){{V;eJMRSRdL7?@FT7O@jcYcUl9uHB@+jvR^ry{nZGG`CPS?CUzAZafwzIL8RfA4&$zd3w*zVO3uo^h)zfQM*NLXZtu)YG zE&`c><%#Gq{{Ysmbfre3yV2=yKPTpT5u9fo&QHVI!G?E&DAGA2lspZL5rOw>u-EK# z-w`ZQ&urE@m`ufUA6)t}^gmkTukB;Jp4Bv>ziW;%^CECM_dd0H&rpi{M-fQZ7VjH= z@qq-E9kc0Mx_6hfhKz2_a!*uQTN|A!&5o<(TUgokdav|NTzPR3E3oG|gf}3KQIF2ppxXu!nD&Nro^gX)R>9vw<#e+{C|kA1EHx z-)Y*I)O49*mEuUzfHBCNfsT2q8s3+0vf4{n*`qu#QIYt6_3OL)Ms*)6(VSHBs#JaC zujX@6MDSbewwxqn;aOW5HK#S4`md6=_Kk52W9D~boPBC5{UT@#aziN==$sSDQ}2qu zXR1z?3vYKB zdA;q8)}5&}rS-epU7_U|ezos!;%IE`#Ayt`V-L3^4EL*duc3I0OSZSZwc5LeWsm^> z0EK#3PA13UCY5;e!@Avnnew@>17Pt`=D|rqYoqvIr*Fvl(4>ro%9D=cpr(18oiSB)W3gCsE^z(%l(mS4;l&Sq|?(n&`6BAF`Q<}G) zmi0d_#$?$1EpKC1lTXt3^tRldNtN-~VB)rPz#-r-b~-HhalciDvS`Ig}tT>R_1lk}%~CPxb# zhDP)~stv5H!C92&8-)^jd6iCf-%~!}8arvjp;p>`u~`wsmwI_%!6r|<39h#0>+M=} zkX|C00+Af!uj5=pB-S_Bkw_z`{_w8{FuSSQpQ~_EPYF9a>-ra2F=K`tg*mK?Y#m-B z{Hvjz3+aDoj1q+jCb2{*4zp$yoUkRcUNtFcCF*{Yh=tuhky7YmQ9tijv}iVhYZUWb zpu+IIdRLCmADOIdQaOG}uXEC&MXgPqleD^-EBKKJUYNG5*l4&9ZCtKG*Qz z5_~x>M<&;3Bc8&)HvCIv<#?x9o;6{OLSZ8R0NY09ze+qTir)_4SkA;2{{Sz!#eRP4 zai922b=7p<4xun_f1KCF_(euFaT$bPM;m|S$JTu*5*KgzE|Z>TEbo#PXp4j%p#*SmtpXJ zCUvM(oc{ou^gm3$Wy!aG$@VBu%(EO1#Mh7fMv#yADOZQK0#BK5{Ed3A?6v^?m2Fvw zB+tS8O?fxOpjZA1J>k~RK4rf@fv@IF9=uVRFYeX-5AOPl{xR&auK0h+8o#xijCD^1 zWOVaC_FDTN!z-TvX%5U-HI!g>{t;gte%2dV{1U*N7JPr>wf0Aa)c*j&0il9N{CUU! z0HBKSvmRgddoT5=`JU!p+RkzR0QV3707+&i#5{k(fbnkg@(T$$AMTp`k%Xe!!?s4o z!Pn_uuHO&>pMX9t+t2z0xgYQoUy+fR#jIQu9$5Rs+P`J+CCBPmyKm1Q$o@$BR5ksn zg8u*nzcg7wy&PpvPkN2wkaLC!+cgf?E*T}s9Vwz&mO@$B{x$o|XVORVM5EOX+Ce`t zV0wyvarcV_^c>QenBj4`y?rWWED-KhW7t-l$q?HRd2F0EAJB?6g&e4F_OnmSY=9MI zZsbr$%Y`5cmhNQOz=e5MAy1*^oFtV~2Y%X!p$r%Tew1$j^6U?#N^LT%nJ!lwzjofa z6(^q&U8dbgKg2kw1ML|Seswa;7nUWxI2CGSv^)seK|ojNYBwv$+qnHYRhBmL#28Lu zm~~unO#3_e9%9c7+5QfOrObuqL$yc%s;+y|suYvvRw?a4Nz@!hr}3y)&fY@;2YQyu zwaY?Mj0!ZWGv2NF?JH!2EC*qVqLWTZ2)P|Tw5u>o?u(rBL~3&NA;RX4=2)^33}3`p zRFSM#4za|Exw*}YPUp3M~Jjrr9=Ogv2DRSm9xa4;tsZK9OiRPNt=6~5FBjs{EnDbCHQYay^ z2l%1TlsQv(4J}|5}5)>StR}-)SM#rG>vZNTFY>U9%BG|W~~XNjYc*zA5l}u zXDD2$jfZY(7DbJKksCenQz*$j#^j_6aLtm+x%y;MEyh@uL^$n=g}_(JFlDBR0pn;M z^_!D>u;oR@XjwtnQ2SJ&+=1n@?H&CqG>yGaUYIp*11UTeIP6VInJM6sfUl6VM~-+o71XM(rg4p#OLiRPSp8~XfzCuv zfIC#OPaK2ygOTbnQH3m-Nt7w=NzHUM5y%QRM(Ulor41f1OCb7F2w*mrC4DnW2qOm| zcC1@uj@gfyN;l(9j!D(GFPV=_aZxHnShF(p%^j`Sz>rF6c(( z-aF)TQEq^?2qCe-6*7cvqc5G1{h`%@=j9bLPL0W87@oPNG;SB~Zd21V&5^SF$lMx> z$#n}wmyD7q9B)J18l0pOZDf6?xHX!P;oA<$`0y!AGL!qaB~)7Y&wgPy5_*C(wm*D?IaG5Xb}!pNCX3}CFmy_u;*BX`~hJ;BXZ z0Z$E_dkS&420hWXaoZ;}CPPcPf5~ws6z*JiJc`ejDWhh}uo>z(2Aq;eK3un^38|7v zHw9pL{A#(=dXldlN+7zn=JNuM_{}(6x~MA3SJNEU$C|!hA#vPetyhvbx9{2V5ysKd zn~Hles+Zjr1;lbf1E$lQJ?!EuLS$wE7yECQ`9x zCSVC-PrfSbcNiGl3j6k|Z)1pri2h>#0J3=%S8RyK5-=UZ3NIzGn}jB8$gobEhSL4; zDwLL=KLtSg)iU!&yVd*lsbjpCAH6{;dU{rhqJI(y(v)^$d2+!Z5_K#O_i9#yBQbzfbpfhmmqAKh$4PB)sv0(F7rq;jQ7rN&U01vc^D6 z?j4VMB)U@INo-M#G}VYnk2i8eHiu>1{q?DZ;yU?r#TH@v0^rarqv!(_GJ{;0$>(Ijz--c$bo)~2I% zbTu^HnM3VSrg0la$Ec|i<}y#36shfshs#kQ42+NK+MOkf5Lz`Jr)j2?jT(niK#D^c z0?NH{o<%A;G1%!EoPE|j)~l+TCfvx<0mrb#V>w;wi*((z zEdv-JB9j^HjZAg7NsEJUgmwVdd|H!6{{TI*FdyADsM^Ms_9%;BZSFscO#ScHsYzPQ zhe~UqW;xbqL&Gd$L>M9XC-A1V+{q5xlnj~UkLOhvP_cOMRpVj&Knzug?qMTnxdt=U zSW}GGbDh&`?3CU+DW@e1Lnrr1NEM(n6FW%3mdL8$vtZj+J^-13P(_;s>vL&;gUheLORlJ zanzq-PDgOJEtU>rWY0+lH8RBo#Gfp}43G&?kU8pWf){e_Ih+&d*{e}%69PWsd#-Y7 zp^LVR!dMwCQ$2=HhdQMCBv+mt*YuAQGiS`Qx11T{z|Y+u)YqL#S_`>hy0!x1HrmKj z7(RxggH^nZyvQyjjfY<Q+c%oj-^$=kuzDA`)#fTxA&9tFne5m5FZhwbZ7NV35uAI%@#AlFj5WwrXWa9lw=sJnn~l>Y!qfcSRx(l=Nyog4jL$XZR_ z!)Q6I)*qW@YZ~!en9*OzhzFmA9h_E-I+J;Umf{2Kz+$qe)8&HhNaXV%bw73ED0A)@ zW}`7O#kGn#YR%KD0^K@NI%T+pj@{}BJr%lC##xMHERnY#FPOQmY8V(`mPG@wYPbaD z35}9P_cgUTt?rIl&`Ida(*W{DWPwoQmPP$)aV(1wP@?J%#5M@5z_KhPx}y%@H$R0u zg=jZ4a!2kOuU>%Zqe()#5aHsN)C#L4H?f9j$heQG!}O|#835fB`;ViVc)7kz7J?^1 z#zR$e>1hfy+S!(o-OkBVD~?+kBC5|~UzmbBb|Zp+3Ynvd=@w|>mKpQNRux-p{{S{0 za}Jyk-{C_^Z>dpE`ZA_jU6G4h$U24?r!0~AKuW)8QPhsVoiVPA=bWRD)~53{2w{IXTgsT=u*QEH$=MrZi9m2NNIVL4 zwy-q&=$`2pQ?cENAbye$N*!)TsCy|%>8VdswoOjaqLw9(3zgd0BkAc}xNSM~7q!)G z9NVNjQb<=U4tlU14RxfTsdX4y-%4+AN7ON z>sVHeI?-~AS3Ud&CZ#FHjYzvaj~*7V-bX6MJp-ZvA#T?aw&A18;gsX^w+Zx-W-*< zG8GB$Ua6z%>8HUZvd6a2NApK;GrPA@SUQ}!)rHhH!pI{RR$je6==Sf;dX#Wjc|+Po zy*sVX5;?9eRb3|(o7wBXOaB0pIZZ#qx9yNf($ z{zI6iE&G?}?zds}>s>#FuSNc$sH)5ngqzl8A1fZ6DcZiY_L{uWf1}5765)dk;Qs(D zS3YM>jBuBwJ5QqT>UUsq7}t-TIi%vZ^1p89J*Znt;T>|rPL}B|V7x-k(R|3tI}ci< zbW6Q&Rf>B?xmX@RVv8M9A9&}W>MOF*yjMP{;j^IX+C_$~rjxx(AKpNFGWI9xYZp+y z8efQE@}{_jkYQGQ3@PIraC+Cx;d45XgQYraoqf;GO;@4q)x)_v!glEY0I#0^03r*G zE9@R3RD#Rw?jqc#cHFLgRGziZU+VEKd{2(7f5@(<#LIJQqG$C0o8mu~}B^~ruZ}Hcup9Z;j zB(;z)+0!8Hjj_Aj*HJ#F{jUCHzN8|M$BVmb$01Su5T4lXE6Uc_R=Dw9)xDf@#_Ka- zO5_f6jP$FvR~Od4AZur7W1AagP?&F_3^=SS;2h+tLHpJz@>7hUwp;ex?ey(V_e_kf z?X{i$mvtT*7ngfKIL1ie`_((EZ9dZW(b;3XQ2Wx}d9mfM_dUnGaZ~Cu+G>+Tp`A-` z81g-+ov+a%n(jNBbz&MXF$mrHicrgHMYkOjs&(*vwXCAcIT1~>)*p&YONP~9s+ngHaG}qN;y_>{Q+ePIg1!)-L z80vA~k3n75sUDT7_-Ffm&REP+99~-oA?=PiJ#a_2J!@Mfo%kr-Xyr1B_3LUWM?=P zwWjLUw;mshPrGlk0>A4IIUkKBoKJJ9OKE6C#bWt^<8u1fnF^IDsi|(dzQ@^ArwL6o z^z!r)OBo^4nk9Q@e6(m@2^ zCJ7j=9XDFExM}U%g?7L#&OVuW(U^vA6_#`4hH z1iY3@f8KMkeX5(x`hKwknLl=0A~yN9jCJOzUZfLg*OH~et;jxO?&$rnqN*^9ijPOL zM7g-PEzZgvN9^~4H@TEs5%WsFd@XagI=oKC(iM>Imvmdc_C0e@Ai1}fOqS`CG^#g7 zdyMoo)9V&+NVgiaam5w9m_y|p`6mN`>+AT}GWK+;E@gZEX`9W?aB@#)uX}EDw^x$E ztiVtV00NQJ{cEjB#J2Ir75oZu=FKB6O7_}0uRQV=XyLsQ&n(L}JfVQ0eNTMWrSybq zU+DJ28%YKwU~;P7nXT*Lqdr)ts{Xo}(8Nj+lYLpCtY6$Vy=!RK49Pogkr((t;~B1| zMzfkkQmq_urraU>$NQw$o7~77QTti|Cj)9BImf+q(D|`L0FnIlxlQ08;2xZs&lN!^ zLfSv;^d1_!w6Cte@W#!({LgW570M(^cm#}sJDL2GrTz049k zXCN4JyPS0(^r>uh;dg%&kq0Ty>MUn~Ng(bU5h9Q{)qb@sxnwq#dE?IJ3N#5N*;CYzG6r|-9D<{;q zZ3eyJd!0TVSXkZIT_*TYIBlcU`ZWePqSf8v+o;*+Y=s+y2b@-I?zMHRq_(XxynD=w z0uPh%^yac-zB+WqIb)Eka}bOETAI=rI<+F)(o%i2HHI#oHnqC*{En2vZX>(3w1yk# zU3YnRL-kzrHOAegu)T&$8CNK!Wk|*d=cX$oRo1R=waF&CmTMao;H+OO$?eBM^sHBr zUs0ChNs443WyoTGpIY_sd0gO=oVWYFZ~Tup7n#zi?-l-kBWF>P{taysOOHAU7w>jo zeE0OO%T4i2x(%t0SmU^kX#V>B{8t5UsYN?NrY+G%F)4HRPJ34E<3KMbgvk}O5=V$x z$0~3+uB=`bH6W?gjsE}({l_jB7gC&@=}5U{c_sd>EzPv@-0AB$SYVa0f_Wzg@viRq z7g6z@%+LTtl7-vA;Ys`7g?aX!b8BOzL>*HRf6GNbd)~8Won*Xgm|=UHGIt|+ zgfw-*JQqDpG)n1y9-8$#-Y=G#zOQ%vb~FvMS>M=P*+UWXZ!lsfsX6QI-o2%~M{T8e zy57T0SZB3{0p`raZD|e&+xd}RN28lNol$PX6tj&B-I<#JWBS#jbEmW1pE^ajjk9ck z4X4u{wDA~t)k-r>+V}bY0GH}xLa!yeW2M89a2v*kv9==CGgxrEl% z;@A5jFGt$f{cEA>Pi)sccj5%O)#Mi!6Gw1k+479!`<~UErddNSqjwa__D3J_@V(gc z$*u6%WeRqbY?4;8{lCLV|>!xpqxlOOj2`PwPXyxRxC@ zD|mluTqZxhPi`wt z=2z3c9qIQG-a$3vua_$)a8F_CJ!>0GEvR0+m+|@1#~04I>S>cf4eqA4OB8}MQzS@- zo(*|?svNQYS9bgP9oK&Ky8Z`4Vl+5(X(jXTcFLHUZWyr1?g{Bs8>IUXJz~-zqy#HYHEq1q0^Kp*7v@CZwgh?n-c$ zn;l2?FWK%JbTY$g<0=^EG>@jhVGhV|rXO=J^Dol0buSd?x`vHw1a`M@T*3zDVs?T% z4r-~^^tmr0TVI;vW=I@k+P0@T)LM>I;|FV%{I_e!+V4rbjwR#GladFnF<4sMcXCA= z+QVxkaX(bYm_>F;s7x6LD*Oet6H0gCrz?pcSge)@Apr*tT4H*VU<<)J^D@E z$G4+A?B|8BImI_tFWJ`b(fY5~bL42Z$1=L-j&s_qNESe33IIQN1CPeNpT(aEF05|j zzwqqIbEI96W43?3g!Tk>`q!0TX;=C_uGaUKa>C>9#~{HY>Nu~{GOYUvje?yC-^;J1 zkHs@=gBzFB<-}8Q>3*Ll)WEnzTN%od4#WJb4$??3?bY_l|@!bu88}-1LlqvqLTYxp}B5kx3+CQMJ6c^?#cD^tf`{M zjU!BDPyniW{uR>LNpE{*(9F1!FPNU|j^eQIV3tW>yC3VKkf|%&6T$qe!KF6mB>d0S zu`l>n@+eBH7Pz~VHeUc5_026Fds3}2MA|rBJ6Dt46LU0kt~bXZ4x+tJL7p{7+~K}K zk3q$7X6d>SeNpw?1pffxMyy-iqwhZo$L0Jru#YVvTW`F2^smotYT*;c`uUZLs%kT2 z{{Y)Yuh2gZUfRX*uG;$Q<~wUR?F-2)hia;U$u;?(;yp<<9~tYDTDWT_)F)`%bd(tz z3_Y>W<6jTq9cfaPMoxI>)7d^ z%=yL`6;e)X8Ae%1?rU-jwYk%zlrY>-hEdwEB0n-y%$k(bk7JL6Xikk9)aI zhIn&uCo(~d{SALJ;N$-Q8D3-l8o#0a=Q%I+Yb}0wf66A;?OGek@Ka-eU%#%}`zyk% z&G73(WgMF%>;CAkj{g8_G7Z0jLIbpJ{+0GOg>pU`XhXl)(0}8iyc}!44&Xg%erLOa zfAF`DfA#P3W@nEwegSy9Z{GU^naBI4za_lTY@rN=m`1$*75dHN(CzRK#j1zoTM2hJ z`~=tJ#7+&2AiA*FIQ%R1?*iIbTv}hwza#k<=~%zvO9lQ3f9XiB%L8Ds+TTu;;SxIF z6>NLrp6Xpr6$<{f7&zcYabLZs-2O+ns)&T;cCq)T`Cx)~51=%g(2y7~$DpOcZUGK6 zOLj|algeX&2n6&Q=9tm2?q#>0vxa}vuH1so4)UK@}f+KV84Mb-? zU=I?Ubs%-CqA=r!UEY;l;+VEJ4AA4|Tx6RQ&xFa9hdA}-oEkEF=9m<#VC`CXh&jk` zap_Cm2V_}Rfj|X!9`!76Tisnp6ksfjagx{-SOObv20NTkNACem!lh0|R`V@OZr0MY zes9jF2b!+5i1fCmak8_@{Ivm~ET_ ztP76((yrxPGDw)`tr5+J!D0t&)YzTWn30)BUUOIOv^)1731&N$*+@CgYQsp+pEVXj zKZ_YPOYINBvI0BtQW+rfzHRZJP-=auOv%CAvxwOS)xignIHPod`7Mf~rzeRB6=pYa z{{Srk9`%0O;&Eu5giHx4g!jnBRx!rIDYbtdDn|1>qEl(lT#8^U05buO*%+$!m)!|z z)QiYDBy1nq+$KSi703Iu^DJ(1BO!ZZim!;+Ww!(AN~^t!`G}sx)bq$rD4k4C zAYF}*tw_ro1GL}{#8q{UVK3bTdm2dwa>XPby!5J73FX&8#1sUeZ>}gz2F`HbN`Ofs zw*`uN8j&V}n+}I}s5Lz3u2yIn_aIV$pdI)oqGgGJ^0JNT+L*FMyQY0JRwLNJ@BsSJ z&vPA!wm+4%qXn_UA?B*Ias?Ul7u=e@(d<7YyM3I}t2u0Ljs5eQY;l|28NnoBoy=*% zNf!Vdfm*?(RXK$i9^#P6ZzAn*(Kn{vDq3B|?Jv-(j;|hbwf!^Jh8X#z2RZC&D~LiJ z@%+o5#8fEB%RiV~u&7gOa*|I}T4W;(q%ia%lrw|MZT|pvtDh|6GB`e!W+adyD(c*H z%^c!;4V7>7TH6!_ZJpOYe=PSi<@Zh~*zrv!|32CTz#89}%X zKZ$t!>N6Z=zDH6%wHw>9Y#?3TuzJyHbR$Q(q(n0-c}}~rk`EcGEdby1MnT6~s>v^z zhF_R>2Ar}?hmhwy9GuYR`i?NN(T@?l5(Y*jXR)ikb4zcRMJ?_+)jzZ*(Yhucr!_a4 zzEj^x@(VuFr&>xwid=c9nYU8PvJ;B0}&{aoy0m%Rn+#0sc zAT=i|fhwv00D#rV<4-I~B9&u5#Ju9GtLN_okmt2n4poK>u_@|18ie&6$E2zW23a`! ztOX*Mk+!zkLG|nSQ)NWulMcA#gUG0nVn2FjNjnad?$Mo3sS&OfGLr`bv-6sm%97#Cdt3}LQgCXcs}OzX zSGYPi)ZYygFV8Cz*_ko<)OUJVXa&WwPDjq7v+eILVRF&5WON~hb5p^ng>t2KbH)!9 zq%jeCNg47^F7YcX&1)9cw}NCRsgEb~s_tQSW@ueAT9DUh914?;HnRrLcXAk=C4WUz zI{OtIRzAr+ja5a|jUng zJq=8wD6%G_CAraw)=!pm6C7~BZ6=gLg$P-8`f-}W^6rFthDLe@0-TqZPy(_lzp>)C zRhm|4=9LG18L-yUgjr)qq$8sP&(f;5lJfrmq}t6EdYo`6kYC0Q-K>Q3@|@zdh1y9O zSCL(F$YIE>6-d6OPo6JSW6P(*E=&`%4#CC`=UJ_7EK*>wBkNrYc}Xtq?3nJOH1Z*l zG9`@rky7cxM$yDHbFt3I`FyeLRk^KrwH%NgUP1-{VVYSjg2m>^1ad}y<)mk))~btW zq$Ec%jQ;=+HO(qAjI?FR!fR8Y)8MhxW_Y4uV|qqn+%T{0p4C!YdE&S#z!{X_m1@rk zac{BrX9tYc__bF#62z^~C%@-Tob9B}SwZg|NM-;snb72pN{rV-rFg5w+ANlmXxiP} zP}<492w3G1;~hSnb*#;{cM=AQXSZYgFUp#!C7i!%Eg9T>5zTDrMXSYvae6b*?|vrg z8r=6U;$IGUb5OaOJ*_+zLKy-6_U0!i-njB?ZWovpPI5LH#F8t>nVa{Gj-aSGq>ffO z4HwLM5OGr)l_2cLI$YYOU%1oZc~{9IB6?(FG|^*m6XHMKw|%D~m(7kcC3}FAbP>r` zp}D{~mNi!Aa6KyH?AyE0iF-u5l%%(t%lU(b^~FTKXl;U16rPeCX1ds7n(EK(8Oru zSk#fg>}w`_Y2qQwL@6IDfx)SjDXmjAr&1E=EPARVC~I0h&PpDK@T`_1q&nzTOgeg`ZqN2&KY0sf$IB!wftsq; zsOh-OyAMGkGLq)W|C`Y*xpEPoNZy6Pd7GCEONxSFiZCz{{XLC z}Gh$L{Pg(<$3B2 zbyxbgpK7t*SjBNDQHddoXg^2IaUBu3&BvSLOv$KD66O7h-mi50xC8;N1z zUvb>a?kk7dIuLTRah95NJsR+iCbU#i=Y{lrdprJyNS5B$#IxLJ@-3MylK|2{Ex&6c z#5zmDfPKb3sOE}clVQkuJ6_qU&ane_CheI>S^d55IkOJk@7Wep#hh6-_- z?e$$tOOoW@&20>)ZXik6NwsnJG25PVRQ34u%dZPTbEd7euiB^k>iO8%=xZh`3t?*| zuA}A~(!0#iE>y3m&%JU>+2R_jB-7g6e9hqp7iF!>dR&ilJ+u9cUFq!pSy>Z)!~XB3 zZrNMgXuc_u%Td*YYEYdz`qb}Oe*x5X#c;Y0_Kcc}*;&Iq#-Q>aBQ9eD@Em6zwbyGt zb(e?cveb06)2^kHXpcEDNJrk!raubL6-W2p%KA&9wf%Mf04qJ1sp{_feaL2&s64ki zt%bGCy1am&v^fETXYUVAl?BYJadUNg_ZHVW%fZWn7|g)nel^W&wzhV+b}wN$Y5c5Q zh|fp#KZQxBL#0VzFJrnETGUQiZSX&MG1s2;=tm5w%iE{;e7^6<#mm~oCb!pLTk31g zcqF%v&C?-mU03Gc7Sa!?9cnF8TE5p_!aLbv@~va?Apl^ zVT)_Y41aWgbhq(S^lJyzR(&5wgi5P6;%=C!2OSQ1BCJIjgGIT%x0>|Xn|!%w##QCKzM^D4HaOap6W4od2O^vV;fi83iIUq*wTVH9nPZX0YsV{&%`sT387%zh?n2me)6}YhKb^=wkxQ1AAL#}@C^sGzCH{FIv z!$+P+rFYP6$)xU%YP_n=D>F*+{{YO=lN^J?Nt$;_wd61o%yYHIdiqx@#ZiNFq@Mf!r%b69Bg5 z)xFW>wo6!ASD78YY!8)x9`x$bq?(MMr>5eCYK|^ZS~7&!6I^e+F3OAY@x^skI;0Zl z*0#**?4xrA8Q$!?w@XrYV*&&!Ir_VOc!)-yBteL>_^TWfni_((McmS?&@ zb_YBX-ngo^Z8Sb6WM=tHgU%sy^7X*3o=D0z-<4eFgLhinnf=E>rOIwD?lw4p+ozb! z$B)9Z?k~*ta+POeDJT?w5%sQ)`K_k$1MASdG1|xiM`s$09tYkZQB>!<@{&^2Ra1?OZhLCnYXj?Wbqed7YD{`E1_T{{VpgW;B0pvGCNAO9RC0dPoQ_?kl5; z-%+yg_L?GZEv^Q44yT@#9o@CYp?4hDQcTv{aU4iXWd8t4(9<=kE~mHCW{b~g&d`dS zs`_TJuU1osGD-Djv>=q+TWg~IO9t(u)h=L~REFTFC=}$e$8*w{buB^u(GH&gQpx_6 zGZCNo4MB0I#yojCMzBPre7Tn^8OL*0Ep6U!5?fh^!I8gs;NTI@O69dB6)p5nU+em2 z(UnPit4(Z7x6N+_yfDZil41MF7<69ZpEctxq>u|nk>gD72X`NbO6N89yAr*jfs!Ek zibh;B&Vd)G>%89_|P>k@6pu+3%*X{_P6wvI;Jzv(Q$!AN8= zXpqAss~pW47U>zs{q^r%B3nJbf!gNZV_A=ol6Mk%^IR^V(YgtSE!msqm7DJUE29fn z+df{AXEq`p$+z7XY}WDY+8~BG9lm!bAPVSj#Iw7V53TGxc+`K_(Ol}M$^ZKaYWgV{*C-W1;39DMKF z^saKw?&j7>;})Voh+E7Dp0(0x&XDOBQ$S-W8lNxC;hnnVde=Fp!k3fC?dK0MjzYOR zzY4;Htf$UxRxh4Buc3PK?r3eGv$Sbl56^a?appH}ewC+pWiQ#R65S2fq!S)m$N*A# z%O6V4NH4FvNMvVQOJ;B*L&oe5zT&aJ?f!J%282iJ>UEi zT~!#jE7|S;007jI-qsl4XOPQ!?U@_+Lj#Odw>qumwWy9Jis}LKxKV<~*ZNjGS5qV? zcC5r7oRs}VMH@>TUulzMvNlo`Uz8{(uf1vPoS(m~zps&-sI1g<88zxnqs;eK;het* zJb~%-tbwV;w+f3M^UitW(w(S63;~{RDll;(=OwF3*3(3nL6TCB83P;Hj|13x*J5<( z!uEQ;oeoI*Ny|%UOJ{7lhLv*+a;#TM;e?$|+)`b^3`&`ihIq#Arid*qwCV5W({2mf zOApHOx6Fr*l$u?fI)<}o(=nDM`J@}Mx7?b?n^!x&Urly5OPiK9)tffDg6VK2iU5r; z+;F+rKfG%EI^@>Y*9m0I(WuXv-1_FTwY$43ja=DT6j3PKb8+Yg92$asJ7$crX?GGB ztLKDF6Sg$kbzh~;>S zkZYTB+4TPa6I~^QF=^-vp(`}9{l#4VW|90s4vTo=HEYY~`OBZ1@Bnlb$J$7vOb+u( zBQgBLZaMX`rUsMeeQM`@+pEY^|UT)Cd= zSvMx(@{ekk&rwv@CAX7l$R>1NsyzjAHy$TTX>zX$JEqYJL_Svk02;U9?LOk;S&vz` znW2oIodV^G_pVn%;+;(s+x(Hy8q1kRI-Z#ncK14biw>M+mSggUKRW$A>aE3$*NF|Z z@l9uUYNu-{3c&RP-iu8});XcLu)AY*lZhMVIR_X5r;}2=U0T*V)JffP%`j~3T<0u* zrE*ZII&*gXcl=KI!ZV7#%Bkm_??-9{e)9ezSP zbBgS=yQ|^h(s^nDJOgd2Tm6#ptu9t&-vrnkdJOv42rS{Xv4699Q8BRbw z$UTp>b-oeTE#4cwFI1f0BCh!0L;J+XK&Pp%ov7==r`9m?YTMg?UoXj>@r@i!H$xE~ zW#_8=e*?#SMex4!OR&0YFEZ~>c!+VInNLm+dij@9(`V9e7TWDyLoq5HNOT$WuhUD- zN5ezIx_zvM<)V^L;9^W?JsP-Q9r!E4I-Z&u=T6-xmzB5;hEv-6&53?!(D(Y+i!4&<-Z*4Cni(Z%%P{1rC+0r?0OMa_ zgRKllJfSP;r}g?9Vk#!7-=&CUw7Im@uHtNf&dR6z-0*)I>9id{*@=wUL9=FCvGuB+ zDtP|hZmo+fYSD~ml5trPxR(C_Wa?TuFdONPwcRRey$^Vd260ybiJa-4o8xbanwN-t z8>RS1O?hneJ5(QNWo#Rk1Q0%hkzPtjiqVn4R%YN2;R3d&)4s&kk`gBKN&7mF;^)88 zrqgt-_w!A5%jL$|Db$nx6tcVy8w*KN!^X+B{ay8M`tmU1{w&94wd!N>)4Tj4x+J3u@{2u2cuUMs&(0L&Jow9SDGEH-`fYD%#iuH-CV7{=s zw~^2&8CUeLFu1pSTgfftAhMpLxa@0+&L`+uR%skvH%-5KJNfjv6`jnnT(D9=W!gdR zD(ZqHTyf210k--)lfzc1Y|aNvn#U8mK94K-W$J#4{>zgjU$VaZWrffMeNQ#zUlbVs z0K08fp37GFXspQI#a;^0A$zXoN(^2g}CJh@~_uF7lHo(3Kzx)86!=bIR5~2 z*W_dlzhQ@PZ0#K@^-lw)qlLyN{L%cG{EhUh*E7L?f`6PuXyo0ME5~Y#d4T-U{VG-i z1-CYPWKszjAOz<%``l)%e<4ZgGbnPVJ`Yj_F4aZK09VwGYQnbMF#(NORo?G$LW5_?v!18cnHt2udOgQID#LA* zWUDWxI#l!YB2v_daKK|9LqoYxK#Yw402g{kRS0lNKBAEh;rCqNcBL727nnxPj20kw z%}Qi)I3d^2)n_EO38yPzcs$Zg?8jlnL#}>aJ!&Z8O;gu|s)B`2zz}37>XZz%?s*&+`?GwNI{BQS>?(5dp$(F8(9oMpQz=^ZL*%}N;sQu9AnHeYkIb}^E(-@fw8=@HK+LGV zq;M*;#zSsQAEie$hZrK_Ly1P#C)gU6L?jIF1XUQ?K_DQJinP}Z*vk^bt|_UetjTeb zW0Arh9f{9Mw%cV;M2nu|9V$ z=9&pyhdCckO$3111gJi=T_TcX!dDD;qk-FLr>yZY+UoTNWXQwk^{4G(xxoxOVw!U9 zLy8{h7$70ed*h{6XxK4iU{9eHD*46E0VB8~oI`aXlzR>;w*=Z`2_u2Eq6|CYowyu; zrCYTw7;?jK_C0B(*eMAX2fb$1jV*C^%8WOB!_XR-O&$-*(Xs9-Av`LeG;N%7#XEcq zK2{jVam^)eDrZh3B1eT4DKn);@Hyjc@2sHBpsRTK1sOG8Pssz$2yf4>z zJ?Ro@q9m((b5{1AiljC<&w8sQWFB%pwS=L4hZ$dS>31+tr)y)TdYYYXV{Gq;D|(8c zQGv)g{3)3`v4fh6G>hbmH?7- zHA)vWrh!&WtC-2?I)hb-l(q<5depybXSTy9Blw8TMzY|R2qif6t(1}?DoJWF;oLU@ zyS}v2hX9oU`(V`Jppi!9+TMWD7=oXda{X#rQrNC;;}zL4@{)Vho@%y1J6q7x7{1U| zm5*`Wqbwv{tr09c_oDXDEplLE-O1WLXzE7Nti6aeS(P>rrPTZLN%nVD+^nsSLrKY{ zpwv;M0CR$NFzydppKG!ld2T@D6N6bXN%Lii>)Ngv1Ih^-Pp&F?*_5E}BNMoh8B^#f znN~kO=G`@q$6B&jyg**V~mRnE~-iD)YB`CUih%~q9VNwQEd9mPzn#YsC0 zdVx}`{R1Mn_TsAPitRG0+{c_e9QGrMu(Mm4G8o2v>L)~E!~>Dg3WTgn5IOnt$USMU zWIuJ6vV6_a%#M5e(nT_*)+CBKRFAr9kU)ND-9rx9=A<$+Z7hHh-xSotl(?{~M$NM; zlgFh&@@+dA!)KLaQ^hDT{{R}E{lzN}FkqrP9*mTePg6B@xezRiw`SnoskmTp@u*)z z$fh`wHp3SL9s#MARVb?a!9LZax+_~<6y7u&wgQLH)8d@QyIpd#Zs0B zQ=PdU#-+nsqLWWXT->aoqAI!SDB9Zzz;*AA)lw+co91nv^=a(piA0e(aD5M26r@A4 zcDSBwL;xAl$FD<3!Inia$%1;|Rasc8e)<;!)KfCMva>h`pd+Om?G~VED7ec!XK@`y zY2xWf**&Vr-I)F1S?FiZ=%q}L!!@H9n{b3YM7oUSd8Ve!?+*1t%V$PqDdrF1ZuG>N<5Hx&51ueMtA$A>u0w^^f?Px9Om{$@V*Ttk z4OH@2AC)B@+0JU`+S?^=B3T&pb>PwlP%^J7k8{)UttBYQn<+^v6vfL#_;{Id?af*H zMXc+G1s@-sO~YlB$3J{CWYtMv=;9Ut_Z=!Z9_V*WnI(ZG067B~!Rbz66SopF5y&E| zGKmxqEkOgOc|V0Q23X=oLOruhNv#8sZd~)EM)|HwoOC_vcwt+RLm1KfGO!h#=|A2p z49n|^fVS5gp&Wm7)8=XU50N#aHD1=_0-?M2U~^R+Zeoyzg^2YX>8WuS0VZ|-0A=d@ zbIr>n%OZ}d!kniTOXgh)D?6)WY^Xu+(yo2E*#Ii8JF5z@lOq!#Wl9s#0*QJDu0SIkZP+;jVmyVY0o4n6zFHRHwuR2tY^CXzokho;UQ?|Nh8m1 zny&4w!pS{Q3y8!8OFWTvBRqpj8roGGB~spx+L)I9WADg8*LKb*n#JVf7R~6&*e0Wv zOkU;pCtolEH$(vU$f;GCFsA|gA6m+NKH@XE5x^bQsKv^!@wo50l5&qhN)c;DYJI00 zl1-(vh8gSl)1Es^oPC~EN9nd+Pv=<%L?k4Ue8;({8A6_tEX>5z4>abv#sZ+$78MNerO$Bw*Di^0)O>BcTn!{3;}^ zs$=C+-5aTSa9tS0B-nC3VT!YHc^$;&c_TKi=jQT<%UBUkcLs%%%pH9{DzMswIKZ_tY{AiY(HF#O>%C`J2eS&JEse;OYnt2m426o0b6*;MB+dx_ z9!UHu7KZjbIF?6WP`Slm@TxB8(alXEMf9<$R$PJ8YMhEmZ^Oh?%ku&9hw9WV%!>PN zfGR(TN6tOzCh}yFmN=l1eIMj+%C%8_7_6f2V}ZMCiw$~9jV4#N5{yk5!Q5*m((-#9 zYTkEIx--ae^2wh{^a-t?k}yTHzItpKBk`^qThso_B(bcs{g9pU`Kine>7P&WuOk_T zoPFedo==XYT{=@*wQYLz`TWkV&snvVr-)nPNlsId^7|UEWgYFp{{Ur2JaF8?`2h6% z>y*>3rMSG`wli?C;Dk@SGt~b8jaqF|SnnQKlO+7I@$)aZu3C792(E2St7SaZXBb*8 z$^85JSY`FB>*96Yn>}4$X?WNaao3+(&eb(7W=&Kmu%YV4?E6b^5 zF0DC`Kl=Q22hzH04J_E`_8Ps)!*yjj0!S2%;1QhXIL&BJVWr;)#pHucWl}e+c=JcC zbHtr8*uu9E+}ShaF6`ueI~wt;s!2+n*1BoA?$W6`{H%$ zwEO7g-4VEuZIok`&T+e`%`;KawB0SPAhy&m(_4@IL~N`>41xD?&nK@+<{I)V%c%Uc zOErnN06MR@_pbLy@io?ANEAJ)37^wJ{m z&8?NNfa))V+HF$u?o>s%mOnBnBl&RMIUmxxPYc^UkJiwrQ;lH>^>+AScd+EHZjY`(k#@1;r70_TX<0iWe65$>TICRvw z)?(6SN6}RO(AIJk7t#U zwmN;>7Wy`&C6&Z*t*V zuc@w2V=8fsTyFH&rT5$V-1>DlILchz{dF#fjrpR#Jw+oY{3M*DXaz$fWgW)$S#H8*!{S3|1KO1F4{HsdU^yeINffa-~Rv(QkLQg@9w_IJhH=V0FS0*=y|Ps zO<`iOxXhEEJvK^#0bj$?u`Fz5Yf=hFZxcS;t78M+w(KW+F9>Ro$!@Ja^W@=o2IHu% zOhjq&@}+w<{eGuS2~AzMYo>Fz+C7z{Tu8c!g5oqYeCPiF9pk-osjL`p*6LrI9XRV& z{6gPlmIx%3BzdDIb_4F8PpxBl60V!&ylP`lpL-1CdS<<>EH6ztyWH}s&z7a2tz)~3 zR)!YZ%96!9jxoxE>08>>y`hq6miNw+$^jz&>Eo^|%wfEadu5yVPc&!cBh%8lO*>MJ zwGkt`L|^7CImc??#Nb>cryJ?N;Cd8sN~C!u@;2qne&v3g+mW;9cy}DMG1;2;q zlE=!MR+{H2FG2=Cm1IMEYcGf{5F~d&Q)~f~rhC%s&1tve$0ERg}vl&NiT0J7xGh^XdZ6vt2kle2D zq@KRjE%uRZe`6a(X>DyI0U?JcEJqc|>C+3p5zHlyDIin`ss;e)c=xW?ShsmJ{Wg0E znp?FWy^W4AKdpG!h{}~@xvbu|>9Odi3bdPXx>|YIz|*wPv@y2S3z>Y)w(&*=Rr_b~ zrM=O_I?cwNJmz4Du!w;9*zy4UD{DoGuKZ^O#+G8b)mgHr?X?kr#!2+9N+!C4;vO|A zLtL3y$Wgaoa^n<+%vuv(mb&0;{1#G{8G;#4!H= zc>e%+)kwTQCHIS786tR~fjrsS!5B|(ewC$XV=kkv%LF?Nl7k#EhT%QWr%ttLQa_rgIT*GH(CH~GpOwun|pQp@!!lb#L z-%7fVOtGD$Y!$kgFU>o81KE1!tfrfGrdt`6Cz+GX#_yD`rfUkd`J|iCbYH2gDcUw$ z_x%bsQ`lKryyW@PWUy7`K=eNKV)Im%=FD8Vb16R{BWi{E3Td>DOGyzeMCUu!Ea&v} ztoM%o`sH70#{)3HbFo48&rwb)5|=mP$IT>^e*=F`k~`Koo6BTR-K>L>e;Vht7Q1Vw zo@mv=J`gD56}e+>E-&OTu)LMXSC&QjBf#nx`qev4K)$ObgfPQ(YK%~^jFJv{HIzNt zl9X1<`qZiW$tR%%vR_MV6-Yv{{{RmlA9{7HuW1d+-Af}#;}I&8!N*$aH1lsCg*7ST zw`-e&a1<(z6k@QX)8zXzT}=K$ZqJ(_$KX9_Dv_1q)xWEQgrjGB+}zRawDAlkQ15uX z3k>5w#A?JoAk^XU%yxE&vP8$rb;kuyT=o@-Z+Mz?O!oH@u`BaV!#|Z!j`s3tKhYz2 zA~I#9*_V*|n#bzx&Qq4F%-`Fna;Q5U+1DbszE~k2WtHCrlxOfhg09_P$^DOXrtzEi zWutWat?iz*!0HxS)wTRgV^X&RD#9{c{uR5XXt%dEGF!{2AdOJ4^N!v-sLgX!p+QD7 za$0=N>EbHQxLMrRwefw{mEnCp(79=)$s=(m8R#okd)Os~uCMN-k`~6_D3HXS#LEoPAwpxh1TeMjkNYXOEL@|;pIZ#tdagDpbnX1J}HyJzjJIyLx zA}gf4SS1KP@`KQN^WME4z%HZVXd_#O)1{TnhUnwW02~Z{72@`Hb6rJmVk1f3X7Zvd z)pP1=roGo7PY~N%G!p%S)C7qU@In4AJu_ZDFAFIACA+@sW&m+wM9$onn1I zQ%Ejl{mf69r%v97+~b<*EH8A^sM`x7OK#AIX-%D#QE)F=MWX1HIp&u|EiNY`?(^vLO2 zniju*VSX&6l6%{$se+qwcPJkJ0EKze$fHWDs|jn>Ug`I@W4<}JJX9vF=l*A*TI=?2 z;(rd=-r@*0vfeAGEa*>4;XWjMFVP>w5qN{b`nWoM%)l+Ii<2XB!r*buVjWW6=f{^* zD#*_q!Z#||Aol{gXf-Lc*fDa4&6XEvCZ00hSkLhP0JU9;g={rw*P|w#wOt+c``2@s z;%U}an!TRqhHIKxlfb%+R~D05>nnJIIHX(&5OpB;u1`<2A+6`SERe6uDeirTy?u)` z7M?5kWu^^I#v^$dDz`)BZckkHuMF{D!%cn*)U?nUFRfudV#W>_WaRqilV3-d=XB(q zDzA~NzzCVUblVfF>n9P=m&PwM1Y40A_u!&Wud2 zCiNip^r*Eq zRi`RaS4`-yHQRKa*iH)Wk8lT|=~}k;Hm@zD*7uM}=BeDHs1?HMiX@KHWxm9UGOT*~ zRgEs*S;eaZ?@eo^!V^l&k}q)TMJ$_ zs7+mW>wWe!!Umal<#6AvX&}K;23+t3K(ia$fDCGq?$63T@${>OmJ#I&e|C?(+M%wtesWEW{7M3+eY|*6<>Zz!A^uUU%_)h5fqxGTmEzIsA=!FYKt;{hW0W zIX`b4eii258DTH`Yu%h} z(Rn{XUpts5{;puZ#XrpYJQ82q`2PU#()^@u__QzlC{Gs*A;OV?UFDa=pAg%8BToceTWLCvsWpU^&Uy*}w$z(yy5r^0uC*3S`_c;G7-}HMVZb=KKOBt^f zoc*0cfcWHX?r~So*p6#6B&>mV?hdrUEABW14uc}KE^Xrbd&guR;@z?3uoz-~l~t|z zC}Wjaa7KBiq}fVqsawoFN)zi(TcrD}hi-YM$!^KPW&)ZZW*Jso(@sOQTDf6_M+I1+ zJ&iOo$I9_l!pInh=N+m=-d~fNeC#=FP97O$K4IIR;>97hL-!veJRe$#(YVM_?@amB z<8dRk9@DxKU72wrNZ%5xx?`gH)GkyZS5_lDW3@dcoS_MapC}cSoOL6u zMp;*tl0;nh6-cvl^Yh%(mRWKD3RHC_g;kU6>|PQff4;6M?HoiMu10#1RQJYtJ9D2( zlmNpEvB2l9D!s0RIM`#t`$<_tFQFAt!*B}i_Z4l6Ap>qRPhF44Q|M?>O&TdQSC3}V z^Dq@Q=HR5COqvP>Zd0dBQ`IArk}!QU(vyvmEua@S4q7(ac>CU!?OJX3!Hr|!ZKj8= z=-Q8kyn7tPpAbS6+uR{;1cZ`!Ucgt2c|eop{wFk`GW@tMPjJ*mO=u+Jd)U#}G|N3N zUVCjbTC?#DrZSf>WG~SB);p{DLA-#fKe}ns#K|Y|4`Iziz1JaKiS#r#+^hB&3gnWf zIq6ca8=R5tOy2m*E-AiYE%!miX3{Fmxg3n3t7M@Zfk;Az1z3gjHCZJlTovn9GM~f_ zJ!r8FS&#Wk?!nJtns|~#!QMbU{V9P`L4eAqv8J?gpd$+)^%Pi}CR!3ZsVdPi{HdOE zulmSA&q57VMhY@PLGCI-;K!9>7t=LS>@HF3a0}t1z|C1%VQ0YkPw83vm=2lGpr&pF zies@QZJfG6lGLvb0w0g=GL^fhs5bRQ{kV{$XQa*C@Wv2wWFJ7$s#jjUN)1bbEX znmJH0L~c3T)~QM_LK~D>l3<&XBRC$0p$^%)J;Mh(B74-(4jnRCvt9vl%Sn{&0iPG|3jut?Bp0zTv zu{g+YN}#GsjsQN!t*+unx2IaP+GcW!TN4(Ds4u!Qe~O?pNfU)Ek|$=TIFWf7+utIi zW>PXya7SvriHby@Xk`Z~tPeTwSFN=KSjx+}R~%!Iezi{BlOQ~5%6k06H2G{7%QC>_ zQ{Sa$?{pNS2c(gw1)C2%PvjS?;-~Xr^G4X@bUko$iq;i7 z9MY#G_9A;pqEjNW%^4i$sHhbfU~R}fb5d>y%wv{B$>C3Wu?x!_ZpI{;TZS3US2S*4 zGbpkY+)Pdv+MKfuxZfyWL)xxF_ToaWuMj7p9150OM3WB#0y~sAKb2HpR1TuPsLtKL zm6aqb{4OwmN=FBN=Y%0Y#I<63E%ETqU$=bK5Ly=7_JRoh2U;ZBcV>}lTMrK>nYA}J zsHo&I?h7(HKliF!hF#3@lkC{VPC%9{xejrRlbUJtxbI?zlMAjyiceut7^OmZz{dm= zRwT4z#4e1(wlPr@kymRM4d_iwl6?(R^Bon|#M>gVKA_e3ZjruVe7E)LrnCH)X#VRl z1Ncowo@$e|Ne$PvN|cc<5s|ho%aXW-AJd!~u$POuW4wh~2Sx*>bL+iSfTWSzH6W4p z;Izs;F~w4-WauVzh6rYm$!hD7(Mjg3OlAxgWEk(baDOV!ifJQGid6N;tE+nEKQ3hq zxZtVHY^tmFF!pkb?nKdy;h<5Tgi?702_iPz?82-j$rz`exyK1Q@l5+3*U1CPbs_E*&P_w*O&7~4Eg0{&nwL(?RA{Ou z^ko1%ph`F-bp&%$FO_f^B!MKz>JBke%LJ}G%W{&(-y;U8w&ZW#qTd@ed?a7v+37M8IhjN z-zr#V0=eqcvbsHL8Gk&KUhN%AUxQ@mXOV_DCyahoT|7*wr$aRARz*8!-gsf^FsKCC-hBH&t~-U=4SR8^2`6LaD>{j-Euq9} z`b3tOG2Yur6jv(QP=n=vtzyY>X?t}9l3U4YS#cvp&py2W09y2^UroBSFkE?x*zPhE z`&R>V1X?BK%+q4;Ot{M21Y9&+aDUzDUOqOQV)>%GcR00>{G_quA8%U1(Cseoyh9zcOq-mrP5fnf zBMs2h`i_?u_C3t1j~(r)%a6RSqx|)*2vn;Zx_Tb&D-VaQSy8O+)wS#Y01VnSE>hD{ zNbUARawPfVY>-#jR~>bt#W|g=CXfLkRLIEAIvUu5;w#Clj4Z-#j zV!|UI-eZDVv{d6;SGmsXRKZz2n@jWkEO~>a=9_aV;ISKI3_4Wy+FkUpz1%k@%plJ2 z#1r%&@m(IYBEGqb!p_+4!~n#J+*?XTu^y|6*{NdOp>dY@jnro=B( z!B)vS87!H>3^@orNbON;aJWl*v~->X7>UPLUw=x;;VJWTTVLz*CY4t?S?urle_EpU zwRsk&;nlj5-WaZtcPpX)09)#y#sY{>JVtW>%1m-CSoF zKEu6hR)spWef6X6L@^86xJBxfz%|jnMPs?rN(f5DXpekYMwTe`$Wm6%mFvO?FDEhOG7>Ny)1+eRj#Mbx9Bx5lDcs zi2dFN2Dxcan`}T!pg%AjMQYw$-JcN8G;Gt!aWDl3-M|?Bl`ZX*V)8cAU(1!)E33E4 zq@L9j8>bklG8*S@Nq$J*8}HbEf5k^ap~;mb%hIa=QFWRA)O%f31R>sR!)wZ72i(X~s%WbrTVfIoZN zH3hLt4I=Kw%2v7)HpyhpFutO=C03`il`HC=o=d&i#U zY^=V^W)uhj95?`E{&iPND$}d2yt0_r=L3Li)gMl4&jVY!+9O#bi5_r1U;yZStIRbC z;yx>p>=CTtRQZ5hDEe0TEK;pa(o5mfe%<`pg?bK+OSix4sk;fWwSwza7YZ30<=k)! zW2JJ6t#Pci*}kzdxyVf5A8MLHZgk0PT4NAjoi`2~)hlZ;ZzM9Y-|`s<1BLBflqo1F zHue1sDpk9ROGW)Nr(+|9Xl@{xau7os<(I!B(z*$+)=eJj7#Jdj*wQ-lyNdGLYs;HU zsP64Iw4sjD7bCBF>Tczl<3qN)5rk`r1Inw=99CG27rh&r)5Uv?wRt6|)Dp_xG+Rxc zTgrz%VK_N8+pU(H1Agk`7Gl@RMF0jYaC7foVQw>V6orln`IEJDwig#xT4a|n$iKe( zsKe&`E0Y_Ca*9!w-;4hMGouMw2|i{201f>!N>LrPtP2(1&n3Th#Rop;*0pW5wp#%N zFBQzezE>xjH17^x&!Su3&21EuUH<^9g}K@f@iq-|iKpIL>sPkYg3TPcc^9DLpsqCv z6}h71n~$f@@j5-NT1{!AJBXu#&r<%>(}lsemT@1N7_TH`;11c%WopyfFNh?bAVFsv zB_jl%^WK>i)xS0ak_ z7VVKdM1}4px)XpMw_|AZ80}pIQbT8NH;^CCb^XTvIQ9JNI{Qn8J#217l}({>G9I82 zn!j}xp{#g%)%3kSYjG=xh0l=8s-4b99jR1soFlHEfiP|y-S6}4VrmOvXQnoz_Aj*D z@*!3j1<&z)E1R~|bt~;irN}ZXjBP7~$Ds79n*F`py4-qtM{|F93hhQfLO0jasc4p$ zcOD{+(@~r3c9BRLP=|J3A9NAky<9ywDlSdk@ABzy=^QSjm0nn@BGcMkN1EhjHSs=T~iD$>(Ll1IMOuK+ro(w-q~3`T>vBc6I< zvj)o>D~o+LbZh22Zf8UDAU>akL1Sfcr483Ine{12XA+$GAocudma|(}-mTo7OX2pM z`GES@9AKBi@A)_WT@l#k+gH={M?ku5wd|u%o=C1%MG3M$m5}=J--^7Z;^Ow+!phO5 zOGt^HR&AwI)sLlPX>pg<u; z`PV$Dw>vp)ZTeqLm;3_x)MKLa`-|7QmA02RoVPZY*Aku*2J->!f^m^qkwZ1!wI%)R zlB`n4^1wzEdt;#b)~q^C+c=uu-V+>gd6P+y9dYTN^;-7w=6kDo#45Ue&8Hl(9`$tQ zuGBZ`{{TWNCw0&AMM$qT#5Y=832zm=hch}a%&X`R(ydu(x5Io^@ciy}?@pZi)z`(9 z&5TmNnDZ%;Nk{M?{t|uiDcVn$Hm0z_B=AJjee=-u>q@0&pxk1T^xyiiROzQQn|C@Z zOBuBP01Ks;lx}2m^Gt^e8++rg<6O<|pLDv>g8iQff~_lI2hen`hUWUy?MbJ3jpS!^ zvZ=us^s0KLirnbQb}vQhEBQ?P8HG@D}3E($4V18+o@4AP9_lDfO?@qSwNLG3;X&(4nWt4UBq)&5UeYPex{9$NgyJ3gVeAZgu?6eZG0}Q5C*mPdGk; zy(h%5q&ifVg4vMX$dk<|I1E6>2eok;ZGxNWVOfQ~^d@P$tYfYZt!aV8#llnS{(siD zBN0km(SzuEe}!d>LDMIXTu4rlsws_>NI;K_7X#E|t$D4?@xgm{xxBFRGTO!tJk$h% zpInSqyWYTtcSVxuEPh-@KuW0h#~k&eRr@xr4UV%Nn#nv^NfC|)dmo_16lwb^j&l23 z{I=8ZY|^y3qLP0PIGq;_uui%-}Me@{gPi6XP`I)+M#<4}EGBQhjd?#rcF(%?kARkU^vhn5C z?N7s2HsDD1_Ob~UF_6b29M>tJ>apD4TV3DV8;I@Lx-q~iigA(cQ23Wn8ji20Y8HiH zoh{`p9&ifo9P?a>PI#!Mw!Qsq?f4r>sNwFO_WORlUpsRICju}I593=F z*V`aliSDGCvA5)6jt}A5xa)PeweXdMsH*bIFFTG*iccfhRhYGC&Y5u(R<`Xsw%AU2 zPgB>{qP;fmlD@C=Iw@Ca-^lO&$)w-t$eM!1apq)8ERlv~^j*iAhf(-F@bN9?xzoS2 zZ1n}SX``J9XykF*lU%vf+9+1wWsDG#nC||hdse=e;=7$vI5fjJHx~orrL#8YXl`)S#qINLcuquvabxS=yI&OeL2NuVV?K{0^Q_VtE}@&5Bf;S0aqnDY zh`-qB#$Go8jy-G8l|?7be!TBs)gY72w^00FKK<2h9Q zue>Vz*DX9`fO!}d+kVQ*@_x_yw%Ham8iMB|{hHvuG$LC5*S;5j-aLk6B)6r04?;ij znB#Tn0X-bT<3If+AKMXY{Y}el-iPLni}s}~d?VpW9e5yZKAkJ;F94`N3w$=il=~3R z85!x`zHt4d{3YRZ_%*0_mfuCQxA7!bu*SEsMgzJt@(gX}jH@!q{8}Cly8VrOOkQ zDp`mG5$X*hM8)=svn*>IhvXohfYAwGFylW;^rK!a9#c|USct5t@{|N)wM13BE^AkO zVlszw)Mh-AP_W0XTB#Og&ibMhc2$W{ytY%4bIm?ha^<6tpHtkLa)w|@P{ZDz3{g1- zSjbHBRMG8Ydt7P_u4`yUtgjZ=BPXFX5rub=g*fVS*0gSP_|*iFuy~Jfc@+e9V&%+H zxQ_!lJ%_DSYx66n5{rwoC6oIuUk!*MwRF@KviBRw1ZSo?bgUw!B*1WcZN+LemDRkv zRIH2Gsp~|kE;h*nZvOyxn$b%@jO_O*lBl6@7@ngwRl`-m6xY(95YpuPZD}-#@UX>c-8o>A~|`xL89J68`{bPKslJzjibC+qdCW z?rz@Z^`&5{Sd)bu4AlCK>dAc3#=C8zC1X+3j{g9SQo@m)qyyTsg{ALxHmK~mM`cQI z><@B9Jz#SiOT#MlBA8-Lq<}#0PblqZQaLdnQn>3*SGI;w<-V+HEadJ0mG-4_`wsZG z8i*aZ3gmj#psLZ~nCo@laYmG z^%a`i#~ZRcQlz-xWD)CC?QNkho9J5G7b~!Q^+hS?qGE$ zNS-!52=7X5<7LQm89w||zRPf@jo5>Xu#UyQ! zoO;lB1$OS^f)7Jm6UU?f0KzF__6e?K)_1qtmQ(wnnE7^&xy=^1l4dEHm4Mryd{d0T zwn4*wRMeG&;ea27OjZ|eNkdI9Fm~#Nj_9c&uvfiK3@^&Mt9#Wqhie@3>56DL>bMjs zHKP-RcSX-Byv@pEe_f`fSlpKK(+)Ynsu|kbqb>BSX(?gLGDtcwp)^FI#soFWc}30eX~&mBC%J96YMImcsJph zl=_OYqBj^>NMYYKYFA;)VT|$QgOxtio0P}$vk5(OQ?zB&h9R4=s=_%HxlnQGM3WjO zOQ}&fWp*6xZim{s9ab#@NNpcRy}F)xAyao1#6biyW9AEvtDc6ri6R-xqN{xkDj;>h z&hKMW%+`eRM{;(xa&Q3NKf2UMCBiF40~9}a9z_LYNb`pTcg-qEmm8zW@3i%%*HkTR zPC1J>JD0HQO0s2vZlrgpo+K`0hDj3~;Et4=q;<<|lBrGgCd9>5pPD%2TywR#s_hJ0 z_z$<(Qg4Yc9w`)_!mLW7Fp@?cqG6B-qUu+;^+hLz2h9|_m)v5V6FOw9oc9^2nn2C> z8C$UgRY%C>hQ{^5spaa85^r+)vlI?gRM-A)R9;!Uz!iWjIxsjiP2`l>JZEX@%)Ep3s3M--^MH)r+*R=;ZxBMr!}?c5YH4E! zc(Vpe6hba_QF6z|z}^VvzMcQ#FY^S4s$USt-g5>tm*s zWcrn5iO}bJF#hm0BC|RxdFsa<7*V}dl}eQz!8Gzw8*(6EeMqeKHoGAyD8ngH&rsCU zB&qk5Hht>gUBfD+PjO5!gD4V19Ey8`gH`h-Np(eUv=NQb;-BZZVpnUa?0Sls?2xbS z_b;GopwTpYz}}yM#YCeng{K#>r*Cl^pDo7L{{U;DsNBPnO1x*W2c>3ga5Aph?kZK8 z%8kpo4_>sC=%1fge7QoM??(n7M6Zy{*URBFJLx-@0u2b1kW+{&s7 zOxXw0sa0`gN`>`DKn!dHDP=y2$BK~M4T3kAf)53k6_FL-INs>aPdTg4I|s~>20}Rq zN9S6sLRy$QF6HAi62hwfS#R$ShMM+KNWbcl{Q@3pm}^%UP*;!QQ&LA1Ehp~eO#c9N zNg4d=y{|IVj!s>Qk7SXtR}#n18^uPeBu6nx8xKHvtwy%JQeN72azBCbkyP2IIWoeY zXzP_c)^dVq)-zA7$E?=@!x-3}_%(1}k`TUrho|RResjdZg}R{~)YIDbH#?<;)yVtF zj2cQ!btZI^dm3#eqc~wB!6SE5mHcW+1;Ri+OL@@qmFtSeTcsS}kD|?+J+*(aAxrFa%Sw&^dszs@3jR1;Qfm3U-yKZ0L<9uh}CnAz)X`Q=XjSxv67uIR#Y0^X z+!9po@}$ds&wr&cpm^=&f@uIQOCUpnYQ2rQgIkSf4>Tlv(d1;0sp7o+MK?{kDDA1} z(wr(%aGbs^7pBK~B+$=!8(K7S-`c+Ik)OUX+P9(BY^RnRWR$@?gCaNi!5>r7ys@L7 z`)X;dkJ$noqN(H$>sfP4c$%4!U(9xsB0f|+O4co3&+<6294UsIvy-w~e_p4y z+*)r}FtWvTyr?{@dsbD#E!Lb_;)rfs5`U4beHT~M?Q9$+t-apknN7sK{eG0#uW#bl zrnix8EbXr3-5ekio3Y3rmTTChn8LIZe-~5d9!pw>~gkH`CcSzSnkDw ziHNt6&Q>#w<0qi0-uqg<)@Rdh1(~^s;pB{!NmsGyRBqz)JV$?HGevFz!C(##e2TB8 z+(C8XSbwx`UDDbwC=~|{->>D?xFn;mL+xwEYnpr6E|>egdtB)+G)FgZn`?!h{uskt z#S(x3?~GI{soKu6+i4c^o5>E+NX%-zGJ6A>-qPi~wbL&y?VT3xEVIT(`pElpT%0y0 zZyLi5zR=gmWkraE+H=oST{3*Ba&fhz~l3L2Cqclr2?5r{s zkH~$6WnCXH_Z?#by^ouEr-V!B|_FCYQRpK7AE^Cj`}vOrvx&p}Uy*)L^v z->|65`&6sm>613Pk~PH75suK@7#+WKRf_F6rwC=4l^RQpOHh$`i+{|g(AP_UXXSV= zO$v(;+yt8xj6OTm`gE&ghfrwDGn0pr042DhpEI8%)sz0Nan-H+uW3tH(RrAfRoiL4 zC0n+)njs2ebaGBUpPy>1!fi*y^D^E{qd9=cPVRdg*H^92VK;)E%ay)$!W8?`p1jwe zTf54ju`x)kf;v$w6k%1%eJ%1f!s2CGjqKyE<)G_N-QL@6$t-y%obYR}@bt}b;%Om~ zQ_G4hs0)sH=87xM%zg=aA4h=JD*k_w&lYGrOCX4q5wR;qmVV!_>Cs#OP~08cc+M4w z&*CVewtvHKt-nTNOL+SJrmgkd(-snKEpo-BY;tkNGwH`lW}e3D!B@~u7Dcs?v;>ct zaoawWQCyNqQ&#Saz4@=({ESAK#0;4PH(b?uS(5THj8_SPgGCkSLw0jb+Q!syCC8GI z?rg3}&JX8Kyj_ah1AiqQmw)e?j!DCqf@=6dyg-93`=^ovm$)M;J)>3Z^i}9-P)5xbFtLc^od$t2(o7I4p2F(M5Pz zC`Z{*cGbaO@H^|t-dgP^`HOw>+E`u3`?;Pu}uYLBxa z#C<&|qPQ_s<0|ShS6=t%diYlTi+yh&$c8;W+CLm>6C$v482&Cf0M=XRx^=&Vbc={! z2`uIAWFYl$#AouNit?#dnw&M?m-1$Egn1sDf0{BTu(fS|!WNHoa!w;)PhtuD^Hc_- zapBoKPp#?VBYy-YC>mwnu>dob9h=-yMSC&#qiJfI{{Y*LI3%TY=lL8CjdeZ!mCV<2 zw9{SO12eJb<{3CWtEty?n=3D}+1tj+8%L7czHiQoE7!!g97IylU-UR>r10&%^gDk7 zv7g{yh%cO=e$KbwymekcJ8^4e5;R?k;h6XuNs11U#aT<0Q8i4 z_@DQBeu#$dC6mJT(y?IDP7$zhF<9XN*X*nTWwv=XI;qA-G*MoSABFtSKBvd`6g7Ds zJwID2#B2no`#2n8rO__uGscC^#fNwuv+G3_-6*F+Z|caxjGwprzf(r?W|zcqBP@GM zfIwcO71QXUA4a&1qmN|yR~vr}k3&Tjh0-Vr1BVaB8aPrsh;en`U-+tj^yKF{#u!|_G(EzapCBdapD z1!n09=Uv`F@=9XzkIEa0D6c|~@aFvA=5f{jD)e8HHhgsu)4VI-J1aJl2&RfrDOUNI zZXHc@8jG8|U0dxKkVB@E7$b$kiYTrv@Q`nN%l`mNIv2-PdVlFBC*i3imRq9k~!O(_o9mPlYYi8zc1)^&*FbS)VCV>z8!{UC(LyL zh&afqFuAbsv{x3PW14%B8@@T(Nf@Gv(mx!(#D@F%9^c{AGx+iwDP)zc%nHRzedB@G z*0-)Sdl9Gq0K!JGvTCqid2z_CfCfnE>%|mT%2k||XxaAsZ*%D=q~Ym*(5a#6c6Xl^ z+UDg9(y$z{&N4fCRZkk}7ILaPdAr%1GY24?HU$(_WmRUg3VOYf$(~TBJi4zmQ{SP> zc-vEbYs4C!r#+sZX)HQoLXp|PB98$vlB4*JIW_Y&q-k~FJxcCX9%#52#{!Bg^h_Ik zpE#c%lv0H{^m@Z-8$^;6Uh(E;B&|suOt1T)F0W( ze1Lac#LezQQAK!}3;zIx+$#S1{Lh>58Gpt%n19!*pZZHbIweI(QP+kbRXrwW{{Vzz zT-+7P&I*xMe3=Y3*WrHCxLodFMoV9fFgN)Zekdkx0tC`GkHM zqKc|ge2Y@6(u2m;(P-c3S~l>-q@$`0%y}oC^@TGrz9T0Cu%e3V!AZBPK7TueQdUC` zHgk-gedH3qxPxi8*#9Dwf=*a0Ky@TDpd#J?)Hl5-ce%BQd7j;)*NSrrnPYveg;Nt11R? z3C3!?_R&i=SRC!_Xri@S6-~ZmV!Ug-j&K{+qLiKIlk)VUippoD5m){}%-zd!Y1X8T zPSoV&$N{2?&HN17oA=RL^PNiLoMJ=M>s8~Cf|H(TqND7iN&HN?Bd}ypa0uq4SAB%; zIUEWot!exwEozAs743sC8O>HQGRc5=^rDK|8zVZO6D=&RBkkAHu0n}&q{^U?+ze4g zZ4;hFTgzyat^ps7SGc)%v4TC3C{lS@)ymVS!Hw zq!W%s6jDGuNg^pK?Z<5KTDL?!yev{MOk+4)QAKSH%xBQYo(R@eARc=2QIG_VxZrf6 ziq2XyqAu|)v}!F?fWh{vzGD&16i`YmfE@v0lU13D$Ur9)QBGR~3s4_4?0gUb$E_?l zdBPAj{V1Y{>_miQRJe6sg0w9#w-GkgVtR%d6j4+}_A6Wfx`dH{HWoZ~sw@DQfkhQ2 zl=c;r6ek?#tvOU}EsjMLQ$c+RZdVB#fqQlF2bH% z3CZ`OimHwKGuXmLKHfTXC|z0G-S}@xyPh!f$#!98^O1L^(qgq{5e#r+Ju%c41suNJ1cERuwON@@h%C^piO~TJl*mn^t9y%yrz- z1^Kh}s$LzGqUwpVHXCv`E^*BiRZn($jW4RNm*!qwR`N74q<}Bo>D$xkQd_T+Bsb{K z_Ly$=M#S_O=|vTs8@m=FDN|`J&p_053y09!<@~mq08DIGryV|(<=Q-(JY5W|k;-I~ zEV3@;IrgH8?XKIg;$%PaEvf4N03!ag8cX9l`$-fuP{tKA*8~IBpwjLpHqU5Wm|1p^ zdg6*J%*|5d`JYFH_>%IE{*sE4PSf4l#>*NjosY3`xM#g|ek8KDu!6A&l#&x&ngDciIC2p;z0eMUP;Uwytq>^(D#R(7XxEsn0RK*z~1zhm+< zj8R2zS6J)VtUOYwWVEs>*|(YE_#Kr__rVz8aoBdLwToC_ywzigHmWw|^#^F8irRwx Nz^k|Q`*|^{d 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 diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/tokyo.jpg b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/CityDemo/Resources/tokyo.jpg deleted file mode 100644 index f0261885afcf3a2449763bb3140bd1e43423bf17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1069604 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%0A3;JJdUw3aXLt83K$`u{igV~hRKWCbzslOHBVu; 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 d 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 >Lh?mRDDj;LFo^Ysg8xwh77V0h= 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­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

CF5!}Q7f{^RMuJ6D-pzHh8Yo$(}w75KT$_t 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 diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/Simple/ViewController.swift b/Carthage/Checkouts/ListKit/ListKitDemo/Demos/Simple/ViewController.swift deleted file mode 100644 index e64d789..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Demos/Simple/ViewController.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// ViewController.swift -// ListKitDemo -// -// Created by Benjamin Encz on 2/19/15. -// Copyright (c) 2015 Benjamin Encz. All rights reserved. -// - -import UIKit -import ListKit - -class CustomTableViewCell: UITableViewCell, ListKitCellProtocol { - var model: String? { - didSet { - self.textLabel!.text = model as String? - } - } -} - -class ViewController: UIViewController { - - @IBOutlet weak var tableView: UITableView! - - var dataSource: ArrayDataSource? - - override func viewDidLoad() { - super.viewDidLoad() - - dataSource = ArrayDataSource(array: ["Test", "Another One", "OK"], cellType: CustomTableViewCell.self) - tableView.dataSource = dataSource - } - -} \ No newline at end of file diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/Carthage/Checkouts/ListKit/ListKitDemo/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 36d2c80..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Carthage/Checkouts/ListKit/ListKitDemo/Info.plist b/Carthage/Checkouts/ListKit/ListKitDemo/Info.plist deleted file mode 100644 index b79541c..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemo/Info.plist +++ /dev/null @@ -1,47 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.1 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Carthage/Checkouts/ListKit/ListKitDemoTests/Info.plist b/Carthage/Checkouts/ListKit/ListKitDemoTests/Info.plist deleted file mode 100644 index ba72822..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemoTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/ListKit/ListKitDemoTests/ListKitDemoTests.swift b/Carthage/Checkouts/ListKit/ListKitDemoTests/ListKitDemoTests.swift deleted file mode 100644 index daf37cb..0000000 --- a/Carthage/Checkouts/ListKit/ListKitDemoTests/ListKitDemoTests.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// ListKitDemoTests.swift -// ListKitDemoTests -// -// Created by Benjamin Encz on 2/19/15. -// Copyright (c) 2015 Benjamin Encz. All rights reserved. -// - -import UIKit -import XCTest - -class ListKitDemoTests: XCTestCase { - - override func setUp() { - super.setUp() - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - func testExample() { - // This is an example of a functional test case. - XCTAssert(true, "Pass") - } - - func testPerformanceExample() { - // This is an example of a performance test case. - self.measureBlock() { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/Carthage/Checkouts/ListKit/ListKitTests/BasicDataSourceTests.swift b/Carthage/Checkouts/ListKit/ListKitTests/BasicDataSourceTests.swift deleted file mode 100644 index d530e72..0000000 --- a/Carthage/Checkouts/ListKit/ListKitTests/BasicDataSourceTests.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// ListKitTests.swift -// ListKitTests -// -// Created by Benjamin Encz on 2/19/15. -// Copyright (c) 2015 Benjamin Encz. All rights reserved. -// - -import XCTest -import UIKit -import ListKit - -class CustomTableViewCell: UITableViewCell, ListKitCellProtocol { - - var model: String? { - didSet { - self.textLabel!.text = model - } - } - -} - -class BasicDataSourceTests: XCTestCase { - - func testRowCount() { - var array: [String] - array = ["Yay", "Test", "Nothing"] - - let source: ArrayDataSource = ArrayDataSource(array: array, cellType: CustomTableViewCell.self) - - let rows = source.tableView(UITableView(), numberOfRowsInSection: 0) - XCTAssertEqual(array.count, rows) - } - - func testCell() { - var array: [String] - array = ["Yay", "Test", "Nothing"] - let source: ArrayDataSource = ArrayDataSource(array: array, cellType: CustomTableViewCell.self) - let cell = source.tableView(UITableView(), cellForRowAt: IndexPath(row: 0, section: 0)) - - XCTAssertEqual(cell.textLabel!.text, "Yay") - } - -} diff --git a/Carthage/Checkouts/ListKit/ListKitTests/CustomXibDataSourceTests.swift b/Carthage/Checkouts/ListKit/ListKitTests/CustomXibDataSourceTests.swift deleted file mode 100644 index d040087..0000000 --- a/Carthage/Checkouts/ListKit/ListKitTests/CustomXibDataSourceTests.swift +++ /dev/null @@ -1,77 +0,0 @@ -// -// CustomXibDataSourceTests.swift -// ListKitDemo -// -// Created by Benjamin Encz on 7/21/15. -// Copyright © 2015 Benjamin Encz. All rights reserved. -// - -import XCTest -import UIKit -import ListKit - -class CustomXibDataSourceTests: XCTestCase { - - var array: [City]! - - override func setUp() { - let city1 = City( - name: "Stuttgart", - country: "Germany", - image: imageInTestBundle("stuttgart", type:"jpg") - ) - - let city2 = City( - name: "San Francisco", - country: "USA", - image: imageInTestBundle("sf", type:"jpg") - ) - - array = [city1, city2] - } - - func testRowCount() { - let source = ArrayDataSource(array: array, cellType: CityCell.self) - - let rows = source.tableView(UITableView(), numberOfRowsInSection: 0) - XCTAssertEqual(array.count, rows) - } - - func testCell() { - let bundle = Bundle(for: CustomXibDataSourceTests.self) - let nib = UINib(nibName: "CityCell", bundle: bundle) - let source = ArrayDataSource(array: array, cellType: CityCell.self, nib: nib) - - let cell = source.tableView(UITableView(), cellForRowAt: IndexPath(row: 0, section: 0)) as! CityCell - - XCTAssertEqual(cell.mainLabel.text!, array[0].name) - } - - func testAddRow() { - let bundle = Bundle(for: CustomXibDataSourceTests.self) - let nib = UINib(nibName: "CityCell", bundle: bundle) - let source = ArrayDataSource(array: array, cellType: CityCell.self, nib: nib) - - let additionalCity = City( - name: "Tokyo", - country: "Japan", - image: imageInTestBundle("tokyo", type:"jpg") - ) - - array.append(additionalCity) - - source.array = array - - let rows = source.tableView(UITableView(), numberOfRowsInSection: 0) - XCTAssertEqual(array.count, rows) - } - - func imageInTestBundle(_ name: String, type: String) -> UIImage { - let bundle = Bundle(for: CustomXibDataSourceTests.self) - let path = bundle.path(forResource: name, ofType: type) - let image = UIImage(contentsOfFile: path!) - - return image! - } - -} diff --git a/Carthage/Checkouts/ListKit/ListKitTests/Info.plist b/Carthage/Checkouts/ListKit/ListKitTests/Info.plist deleted file mode 100644 index ba72822..0000000 --- a/Carthage/Checkouts/ListKit/ListKitTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/ListKit/README.md b/Carthage/Checkouts/ListKit/README.md deleted file mode 100644 index 272eee4..0000000 --- a/Carthage/Checkouts/ListKit/README.md +++ /dev/null @@ -1,124 +0,0 @@ -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) - -Looking for Swift 3 support? Look [no further](https://github.com/Ben-G/ListKit/tree/swift-3). - -#ListKit - -ListKit allows you to use table views in your app **without implementing the `UITableViewDataSource` protocol yourself**. The framework provides different ways to initialize a table view with custom cells. ListKit uses generics to ensure that the content displayed in the table view matches the custom cells you are providing. - -Instead configure a data source with your content and your custom cell: - - dataSource = ArrayDataSource(array: ["Test", "Another One", "OK"], cellType: CustomTableViewCell.self) - tableView.dataSource = dataSource - -#Installation - -##Carthage - - github "Ben-G/ListKit" - -##CocoaPods - - pod 'ListKit' - -#Usage - -You can find both examples below as part of the demo project in this repository. - -##Table View with Simple Custom Cell - -A table view that doesn't require a cell with a XIB file can be implemented as following: - -```swift -class CustomTableViewCell: UITableViewCell, ListKitCellProtocol { - var model: String? { - didSet { - self.textLabel!.text = model as String? - } - } -} - -class ViewController: UIViewController { - - @IBOutlet weak var tableView: UITableView! - - var dataSource: ArrayDataSource? - - override func viewDidLoad() { - super.viewDidLoad() - - dataSource = ArrayDataSource(array: ["Test", "Another One", "OK"], cellType: CustomTableViewCell.self) - tableView.dataSource = dataSource - } - -} -``` - -The most relevant steps for this setup are: - -1. The `CustomTableViewCell` needs to implement the `ListKitCellProtocol`. That requires defining a `model` property with the type of content the cell can store. -2. The `ArrayDataSource` needs to be configured with the types of the both the custom cell and the type of content stored in the cell. -3. The `ArrayDataSource` needs to be initialized with the custom cell type and optionally with the initial content of the table view, represented by an array. - -The result will look like this: - -![](Readme_Resources/simple_list.png) - -##Table View with Custom Cell in XIB File - -If you want to use a custom cell that's layout is defined by a XIB file you need to use a slightly different API. - -You will likely create a separate Swift file for your custom cell, it needs to implement the `ListKitCellProtocol`: - -```swift -class CityCell: UITableViewCell, ListKitCellProtocol { - - @IBOutlet var mainImageView: UIImageView! - @IBOutlet var subLabel: UILabel! - @IBOutlet var mainLabel: UILabel! - - var model: City? { - didSet { - if mainLabel != nil { - configureCell() - } - } - } - - override func awakeFromNib() { - super.awakeFromNib() - - configureCell() - } - - func configureCell() { - mainLabel.text = model?.name - subLabel.text = model?.country - mainImageView.image = model?.image - } - -} -``` - -From within your view controller you can configure the table view and data source as following: - -```swift -let cities = [city1, city2] - -let nib = UINib(nibName: "CityCell", bundle: NSBundle.mainBundle()) - -dataSource = ArrayDataSource(array: cities, cellType: CityCell.self, nib: nib) -tableView.dataSource = dataSource -``` - -The setup is very similar to the first example, however you now need to provide a `nib` name additionally to the type of the custom cell. - -The result from the demo looks as following: - -![](Readme_Resources/city_list.png) - -#Acknowledgements - -I first encountered the idea of an `ArrayDataSource` [in objc.io issue #1](https://www.objc.io/issues/1-view-controllers/lighter-view-controllers/). This microframework is based on the idea from the article. This project takes a slightly different approach and also adds type safety by leveraging Swift generics. - - diff --git a/Carthage/Checkouts/ListKit/Readme_Resources/city_list.png b/Carthage/Checkouts/ListKit/Readme_Resources/city_list.png deleted file mode 100644 index e541f86f1b04d0fe106ce8cd69f43237688a91a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147099 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�wSt#jhzk-Z+M22 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%0Dl`^kCYc7e=RkY)F>z4{wSA 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�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

#OaG=$jQXJIUFE~t-iL6<6w#8rj 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 diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateInfo.plist b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateInfo.plist deleted file mode 100755 index 146a6df..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateInfo.plist +++ /dev/null @@ -1,73 +0,0 @@ - - - - - Kind - Xcode.IDEKit.TextSubstitutionFileTemplateKind - Description - A QuickConfiguration subclass. - Summary - A QuickConfiguration subclass, overload +configure: to configure the behaviour when running specs, shared examples that are used across spec files. - SortOrder - 1 - BuildableType - Test - DefaultCompletionName - Spec - Options - - - Description - Name of the Quick Configuration - Identifier - productName - Name - QuickConfiguration Name: - NotPersisted - - Required - - Type - text - - - AllowedTypes - - Swift - - public.swift-source - - Objective-C - - public.objective-c-source - public.objective-c-plus-plus-source - - - Default - Swift - Description - The implementation language - Identifier - languageChoice - MainTemplateFiles - - Objective-C - ___FILEBASENAME___.m - Swift - ___FILEBASENAME___.swift - - Name - Language: - Required - Yes - Type - popup - Values - - Swift - Objective-C - - - - - diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Objective-C/___FILEBASENAME___.m b/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Objective-C/___FILEBASENAME___.m deleted file mode 100644 index 3e8da5b..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Objective-C/___FILEBASENAME___.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// ___FILENAME___ -// ___PROJECTNAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -//___COPYRIGHT___ -// - -#import -#import - -QuickSpecBegin(___FILEBASENAMEASIDENTIFIER___) - -QuickSpecEnd diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Swift/___FILEBASENAME___.swift b/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Swift/___FILEBASENAME___.swift deleted file mode 100644 index a8371cf..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/Swift/___FILEBASENAME___.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// ___FILENAME___ -// ___PROJECTNAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -//___COPYRIGHT___ -// - -import Quick -import Nimble - -class ___FILEBASENAMEASIDENTIFIER___: QuickSpec { - override func spec() { - - } -} diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateIcon.icns b/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateIcon.icns deleted file mode 100644 index 5cb4ae999f06c9d5b5f3152a034c65f23137821e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529473 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%0D_YWU3_}$$FJi-@LKlix9Xblc5@0Ulz3?A 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%0Dl`^kCYc7e=RkY)F>z4{wSA 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�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

#OaG=$jQXJIUFE~t-iL6<6w#8rj zAj_b#pHrNw5Bus#4~NyvI|$wZ8YI=Mk^ep(%|~oBOQ5O`+Q2CxEBN@0mBl@4(UbX> zJ>?PXY2$49ohDQFuXNdms2|v8U`f|TRs1bgaX=m6f&JG{hBX1AwgS`aau27CDm;QC zn|E)+62KtgeA{B|lD@;F(@#%nW^uZm#C9@_jmE__|8ln~&lcF;K)`o6aE(1A?Z&BTcHza7mc*vdi)vwx$>n>Q6W~+Svp7V@1ryJt=zI z`ssMb5=@M69gzs%SZ;P5o7FT7R+==shgY^0;cwIorWRg7@Rq1PHcP4>4 zCgj)7JH8FI8E*tKbp!y+gNuL@Gxdf#QN;evsb1OTd2hFP5mbb_2j#|t-CH=~@Nb_B zzFWI#U8~-an1E@Yl9#r$=gwHND=inWxvwRGf}5Cy-D=sTSOt6N0Q-oHsjJHNc%?<- zv#S&F$q}UmNCgO)VhB*!{tMept!b)MO7QfDEXi*EdQaPh2T~iDWjb2d^8xK_6)U6W z4F$IdqHfoDRvhl;1$CNpPt2}?)6nGd6x-H2H;eS2;|gn;xnVWniVPqFyw zpLX9q&a6WH`!d*j6b#oygoA<`{ldEnRx?(6fB&m>Xi?-llI(+xe~1?e#w6gS7*uLh zHC<&crf)|OnlaIXyKK=lvYsIV?e4puOwyJvE#N~UbYQ*_H0bL)mh0gi=+-t4`&D~_ zv-M~S0&nO8J8xJS)_C8|ZWbBIE{IKF%iT}PdMaJ*reo*klGXhlTAneV^77BF@K{fD zec$rPF2pT2i?a#hT~^hMUtTTl&sgz+W_x}aKX+)q*}Y@ovBgvn74mjIvZQ2n0hhA5 zbp^aaMCcv!+$VY#GkrZ8NGe*GbNu!XG-SnZE^AejVeG2W@cbS{5jeFH(-+qTym0%Z z8V#n6rsV7;%Bg4WTsJ5>rY-K>jG~usGZovK`%_lNlFPj#L`wenN=EPV2GA`J^*BOe zc$NgaZWFpZ__B@HJg*$J59$akG|LeRd>6X7)I3AjqVv4*=Sh@^Z+aCoy-t5sYEq^6 zX}|kx(#^$V=1B8)rpS$4?UHKWke@aQ|J-Nk>=7Ng%W0%yAcbTf@=|$d3QXmAOC@$y zNJ$eRZ6mMi22aM;>`B`W{diukXuyT8M z*k7E1ahL6TNNkwsQ`?JTrNHCGh!OJ+SNbrHzj?>CDs+rtVi_Gky07!TLUt zpHlZr$Me^m`x#*mFlQ+-)}^4_HlDtE=}#GNA&n!sw1x}(LgVI2Y_78Fe@ZQhlvdJP zA|m*xMjl`uj{POn2Y$)+K@SD7_d@X%Ye4|=UlG#ZTU;XI;a%0SRjZlV@#Vwc zRrCIP7=_$T|LuT_EM*>LugPAk-|6_?s)co<#S7YN*gzbh)M}teQ=qk#l=p?6iAgNlBBq(>7S37g!NXPg#=p_SPe^|Q{(xgrPmeT#kn zA^j!mebObOmqH%cE><}zWIdpvI=^3iv96tM8RBRMKpU4r#sBvL2>wqWRU%-Yn9U(; zs+q0M^4_iV96?bQ9}?@-AeB#x+#as0ddUd}I{#d(pZ6|K>?M%;KX=B>0{&Upq(x^f zFS>bCR2xB%KReE{-cjy+8{%m&%X2UIC&~UyZogDk<|G1T&a(ytemSm#%>=X6u!PFi zX(?^0;l2AOY8E0&>2kK&p3HusX*-JqDzzSUf7MakWpB3&Fbx{muF$5b&*Uv{{nTAS|^9-cpRm8}3OEk-~M7W@!?Y?x9)YR)o}nPFT_yz0F1 z#ELx+AK$iJe6M8bb>31cS|LI`BLg%ibBS?1Mm|mZuf2u##3L!##-Hf9qFo zp!iv^ulOg2-gpP@k8=|f4Jb@_qTEJA5_-BOux~4*3fwODe-de;y`N7y^Q6xeYKOY@ z{@_**W)sTF!3YYVD6*8^s@w1hIc?nKs|HicRPj{^+NWc zb7K0B`A}RjxeKe|kDiwF87j`7dztarv~J^^{q-cZE`9g=%={SHHxr*4fB$z;mCcVv zvi9>?xw9+iFvZ$iEh7o9H^}wm%}w}DSJzu_gh%b1-(2zZ&V=jE!oKZJH0prZIWk@m zy#);U;;#atd^6&nA`&~1h)wyn3k?(U<7*yduM@+n0BGXe$wg6?)?yC6GAXx@ z7q{%>Z)7@^+ zemv)!iE&OfyFL-!Eb}qR2wFJrFcqu`XjVDr6Bm7@5cuUllsrw+Z&dv^TX2Fcwv&CI;z;Oj}Ms&kb3AmK(A6%9ODU6@^dvtt6HXy2j48=*2*oOd`*UF=fi z4i`;O`Gw&T?W|W6xWnG)bH-Sit-_gZDeHLI2)Ug~+)k18fxl!(HJS`a;*cebkm4we zqrE@1-9#V$)sd>>v0!Mv+tOztc5M2N7QD*b53F9e+`0o}IxA!bDb3?&W)_Bim~|GU zR1DM4P0V_Fmj_&~8{6aROm}PHQ#GX3Q={>{Dk7wn2P~nwGPYMD1K;l$bHmr>!_OIs z(_gL>0w&6_l&x`vy4-Nq+6q%M^-u7zQCMJT0B5)PgXGtg>JvoNmF=$8Y17P!9ZhAM|l;>>-u{Q0Xz$uo#tu70j|} zZ=-yk>DX%vkX4M8#qMWG=LHaa&-|vv?bh8gu=tF!nJL7~zKk3V+7;^*4EPnDb4o%O zA}^Y9ZT+Ph$J?5T12QD~*n$SW$vi51S7Z7{olBT0@mE~LU+?p3r&o<}(>cKeQHZ|f zOP2ST@!c22FJ?b{{|otm>RK>Inb*mxk4yN)=>`kRxV2RqScxhs-X~NsZ#?p0bETJM z3Um!LS-KM6o?jyrVEnqU6{Dh_R(fwdZDzk`4AZD$B{`OovM5faQ1<6vg`pu<3BAIe zT^hi754t!EvXZBh*vT-%ZLSxpHscrmLQ!n22R4UJ)Hz8uxXSIhY3Mh<`t2e@Z$B~?f&;3Rj3sVANnMG3a_!gz;P$xkKDBvXZee(5t+o& zBWrbP5v@wAxN(LHf>!*qALo~Fy!>eJH2gt!0o?Y;cSBvH!vC4mRPN^>3w~*-q{INV zh%7Va=mqNWDb6V2h)O{s3jU4Z-y;Ym@SjjOg6B>Od=Gug_`BYcccGH%a+3ZLNi`kz zTyIBr_O#D8GWO>bZ#^D%b6AmgMdo)>^gF=$A^6X$?Wu=+!G3<|>deC6q;Bu-O8VkH z7qwjpXyoiJccb)q=7z^pNZ>LTzJVf?($~MEN^LG7xbR_uOlp?|ilX7?7{N~gV5E1lm>qy-bWI^j_lRF*u>1-c{cfK zXXU8x##zy@o26vw+F9GnUUg|3smMn47Dk+d=Xc-sRo%EI&+{H1+f+q%+B+)#Ox-{k zjz4yzI6>lm>O`S~g^`po=1e>%uB-3AQ0rmzwT$k7eF+ZP{@!BR_C9Pj*QJKnS?4-JOIYpAkOQZMxf9WTZ6yrjkcJcXB95RHA5D`(rFb?7mb*Y&Oz1x`0j%b zVgTcCLv(GgcZNv3fu{!Ims|JE5_R{FJKue3ysJe>dwXFku`ile>c+=%$wckLFhfNz z#ECLop8u43a!AdEk}xw1pc4s@)%2)Cn5&oj^#G*NrxeQ?uM5x2M3FN0{hXf@-fC8W#BzkM5@6qd2%@zTixF9;WFB5AO3LrOvCRO4#;!@$o9^Uic} zJLsJ5xl&1)mC=U%#fp6OtzFQ>s5;FYUIV_bCIt{_nKpA)=8HgvOca~pKF+Rg1V0IB=wdrh7#k~wM}I3-^6G$f`1zN?NVmG8L^yeu(F zWVRBH?X)rb$lf4cVO!ZiP9Gud3X&E1Di)MOb^YSL$=MsFcdDhWFXDTn&T zX4~K+mYh4Yt<_0!^DZL{55xd2^cU ze6=)msZdQFzsdFdBywKR457!5>n)H9a=Y z;B8d8%&x{=CuCcIz;^taA>AR$~B%Po8yc@g4(Xo zn?pP2M0b1P2l)DZnkzm=;e9-28@>n8XdgZ-(B=pt&JTJ;Mj#~~mS;iy&TDi%vEqnq z^Gu*At?Itj66#B5k8)PWC~5w!`V4$?9wEm8#4i;+J4>yEW9T5)#&OP?^M{OSdd)9svz_sNFmcW8s(|!@(hFHzEKL3x(M_|A(F@Ni=jMrPN#54I~8}jo1+&%4?kvZ9gIhn zMn@Lfi3)S0PRl^?nY2yP4EzFT1HX)p9B%OWQQ62)`7G;PW&Ld%SB)ldx|U#|miaqd zs`7ZsaQq2kzwXQ|B*?y+`~k6KH)cg2@CmhjmU0)Cz@j1xD>X?JKhf>XpLG6^v1y9% zdE5WOkngTKS{6F;wym@P;-3m%yqnnR71_Xv^l4inb7k$OMGSiPHRziqG86x9kSD_)z@MtIFFA>$)L6*DK2zyE7W^eVr&Jk0q3J(&KKWhT?16d4qyh z4>VIQRW$}RN`%4_&TQ`o(LYmy3OO`*3+kruJ%ShB+)@jX9(;In6vd=UmTLEo-1ag0 z5NuFgX!4!xagMcBSlkC4SfhJ>AYBCQ;o-sEw}$nndGxh+uI)c<&Ei}NN3QZIZ)rr% zq-PMG+g7<7WPLYupSk+IAj6*zT=t5Dsd4yG6=ISHRHx2xP;1n7$1!$IaNxJ5=ASPp zgX-Yb3CbI1s>Y{3`fAip+!4s}uN`sfRBrn_K(oPcYd46PeoN|tQ$XyAmE95bi}7hu z1;sXSeOn$xfj0(|vBAeC$7gL%cXG~tP@h{$QqTwz;t7~b$R+Ie!?6vkZ2js=-|L@$ z#*5r+-8rEX4!kv*5B;i4?}Z|}(Q2QQa|MJ7T9BQQI{VprRpk!)Tjxj%eqr^jO2p_{ z_}({ui&yLxPhvO?b9B6Cer@@{&b-dY;)_51-)kuSht~gth4}<87KJx-#7lP>Ag8Cb z3BsBx!|!P>d@&r&_(;p<&9#w9N&0(#Is7V|3K|zL;uz7-F4!N>FEkjz-7A)iVa3Tg|^#qJ#)`|V6)W6*wdVq@ndK)=8D3~ zNniz}$K#b2I^p{42+=e1ypZd)-(Z0I3j3cffdD|w6#t_<*}=fqO9|bX=eH%^H-A7| zF=U?elCi&Bu1UvNmRum~BY6E>ILr4MCX=Z9D3aT18a1-90a1E*a3p7S%$IX3eK;vEU;)Va&sqxM zoXXhl%RgmzCQf~^IK01JcUe&I%EQd3w;I=~A5M1K2lolHH!TeBFBb$HKlLK8c<&!s zA5SDZQx8< zHjk=@;$RagrD02Ri1@YX`_@^-+U41+=)ymKH5E1|=%yf70(Ga{pTAKH8`p3$pRM)f zX)x?cu&I#OHDfBfAKkOpi+%Vrb>a`#1wq3}@>lcjXJa8*FDfsQzaIO{W$)q5m|+F; zYBS9_0O*m@TjAH0>n=IoO}9ZQS%j34Whl96(sWp0FY@ql2=RzSSp6sRHjc=#SM)S{ zB4PZKNbHUf4m&fy6Ne*1Y%2Fx0noX^3-Q$TiRy(~!?jSGdaloRrb6s#{1xow6Hh1F zaqF61_v?qp87hD2>x}INKDP}^b$>Pr%=NtWJy0dVc=q(`X({+F^PYcOXsck2z@1)tV!?P|*7J%NyPvKNzB>i~^wTja9(zTV%9w5ll2m=Io}PS3HK;N4cx9+y;Ts&uQ1|Ub z&UzA07Qw!=cXk$+I+sg;QkVKtvV!R5W&?>*Eg{wEi=ASK#aCpDXZAE@dltZ@rLDV< z-e@x)6Gu=WWzupOX}Zz(g;EUSFb$-R$e2EU;By68;j3@iEQa`Q13M~31us+eE56?p zy#0=Df!KjL7t%y%j#+Z9cykRS}?&_o6SwNa&d6i+086+(u5` zTiRJ=eQ6*yWH1V-o9WA1VOi1}PaHr%hh{bD#qR#&!I_ILNDj&kNA|bR)A?<7dMBZO$y@kQL zmhAuXx6T>lWz+0QW^6jPTRYjAHCChhHx|`hzhr0AK9O*VIOsi@T0a#i@bqO#^eeuQ z=GgjqN!HuU^H-UT_QF@Jg2DgsHM7SqCMKo~t~3P$YBzcmi)VkHAhYk`LfC$e#{4)o z1#x|XzgNY18A+WR1GTX2lzmHglhfjS$TE1vyaolbeX?ZaN)-w0C+VX z(Dcn)HCYfCo3>@gAQ{9S(v4vnSbg>9$1X<#x>CWI7aDN~sb|#fWaNJW6;g*CkLB}h z$0$g5>{^Q6>uW8LF}+-Z*zImRRk-l=$U);(IhYN`(Y^P6=D zH4g`H6f*4%+Hc%^*w;E9gv+x)Yp-Nc3!IlQcHw@;5zW)T??%5Bn=Zp%t}LBt8oSsD zMw}Gv*`6^YbM9FGC4`y{zbAzmGTnPzvYYO_=lfft^O(twTz!8_?Ykd$;o4)x1*Y4a zvkd{s?B_dSx}FU$R}NO!wcS2?ttXp3ZceAr!XCA--pL=y3fv3@nNL0QZHPwvD9@r_h#={ zy}858nMHEj21p;~V+-xyxTK53AJjr;Ytm87FsHT#u_n3_5~^ zx06~O>&yER@W;>R@=P6=#ZSezEWVbwjtntzw0xWzM3ZBQk}dbvXN#J>Bb=7j7Q0344hdmQdaL zCvj)8lxu`X=YAQ7vE-Ss zuk=P8KjYe!IUO_Gd(%csacBRBrne4@virV=XNHnakq%KpYAERvr9+TzM7q0S2tlM& zx=~uXn;94+q(Qp7b7%(UH_!L;zSsGCuKV0`uXFY}d#}BgN66LR7{LB{Ca?FT3&3_o zue?y4Qm1C#yj*DYG5mdBDawLiSN~}Z_*{1pAJEDupR***+?vgu>*aii0ly)4w};62 z++&XA9^Y`C6>NO$3M_JgKmJD~xtr05$#x~Y`S^bR)`8i)&D%ie@6Jf!?WZ@jEuH1< ze%txSxx49Hs#{My*mIen_`uLJBx<=MU=I^;n}h#RVjn~RikW)BVBdJ%!teKV9~%b1b_WtAbMx=cX=fC}Y6wp@PNE~iJXYE_?I?xw#Z+VnwU zY>Za7BSAKKKUO$=lAV#kGKDTXFY;dP{jJTZdo_vLaR^B}1|jdI9}*qsvK|WG@R$Ve z6!IADI}vp5q)5sCE1gq`&QdOFuejq#PZ(8~-s_`qRYRtHu(^4juou>^E;vCwo3Jb> z$^4*^ll_>%GrbHAfm#;$o#e&@9i9#hUSqU}n~mqQp_>rs5^#u!F8b9Iu*br&fb|7y zeK&QsGDH$^BzUZUODSXMBo}?nhB}FVc!{uIvFKYK(dMu=Ft9#GTqwUl8`k-djie5; zY?dY2o3R0IrcGQ3-)^WaM)LGl>4nEk@C~6AvoGt|&7(%1!|(yF1$@gW=>V4rOQYJQ z>!U-Lo`-uJ@+`D7b&A4m2tfIjS9o0x>`YY3qt$N2(0JzbEE57$iB=(@7XK zVG0@4ugzhRLSr(&y80BR9e(dGbwcNaA5kCwgyf3cU!=3$e;EpT?k&ivTW&l3_31FS zhSc_FMpXu+-_`ZTm&)|chk-c3k#IqYsUi8$SAZe;Dq8YP148)gD=vYobljwu0i(!) z*z{k+n&Os(jI-Ky5`3?Js2@;wz}VpCr16K}G3INnWR8xJ1Y-i8aq=8~w9t1i#LNBq zZ>iKXd5TZ&j6RQ#^jCb}?Qs!e%(=Be8jn;)b`ii%0~&V8K8f!%6(CRjiWg>e1xZ3s z`)Y{2j<&mBYj@GSIKQ5(7-Hl-Q`}h0=dbMJwOVf}|ESJ^S^vP4*y+S(qy2PqN2TpY z<~1oXZ4id^op${*2aMCcVM{g03L!C&X@b-1SlULr+ySEz4`BIwf^aa-UiF^?x#u!{ zpFr@!r5xY0g(NbT$<+a2khf<<)pvla7KR+xH6V*(L`O~7ZZWUQYs2&2OgNB?J1baQ z3`uW8Rj#>5*QB}-r!otcF7CR*kZ2opMSgw`%~(44a?I_Fj0pne92wC<ImG${ z&JoV+nE&y>73fgu@_y-_J_yUTY3^TfdW*}d7>)90?8xN_2fgr@M-Ayu4tiggkL8MJ4kCglpW0jJ%RB{G=g-7N4+nnBUN|J!NzVl4P{F4c5(d;g zian*;rO7o`CA++48Y}kR@zaddvP_7#n+S}qO+T51W|QtXE_A^KK345+%NDlvI{W*k zOorP)=0;Ba9nQYj;`8?LSgT#_%~0rjtRkHnf-fVUNhmg zdmMLK;vK=c?U<02&L#VtgTGc<2&Ju-#-9W1Spfw09QON*by9AT&WKq`RpskwV6JR8 z8I-L3K?S;>lLOKLq~+)eKQF?;x+(I5OW+?`(5ddpTx^W9(~i?@xJ8HG9Ck7J1@&&RTVHm!ZPh*6-e3aOGMK7pK^Z|;^pk`=V~t^|9)Zklef7O}DctLmRuI)idM zOI^tb0d|jfTYcM~I|0q?5zW9cnzWSInSNP9jRg&5Y)stwyUZU92-TBzCt|qGG*ZIU z+sWL=Ld{^aX1o95Y9#{j$Q3;JrChvu@DMT*%;f}EX# zZTPY*{KN28Atb%n35?e8c!u~o*UtW42!QytDHOgTq_)7uYZ^Gv0~%t;XQ9xf?Zl-!1f z$DL5T-b3yGx%b3a?KEYd)G=br{goD^xu{_rQaAMW9$>N>L=fPpQ>Pp_LapQKQ3&fCF-2rSP{oDe-1NZ3-@*W*p^}bI zNv|A0ZW`S~>OZiJTlb2bRF^yxsd&x?ZRP_jOP+=bHjey;$`9tjv~JN3Va{buSUY7K>+9re~h zp=~!7K5YgoCU)M$#2J^pX77jIGFp5mf3r+$!gR5OlZ{%LcR5}%RKn=2q5giM9B}=2 zyLZ8|q~nf3>+QRfDVKxj(H<#9nW%#H)-#2*g*ai{ zV=vsQ06?XRnrW?j&yckB!#Zlpm=Ev0&Ghn6nE&EKNC^Vf+EvjG+~`)Ud?moQ z+*tZ$A}E~`TOw*r>@SKxbxXpnj0S=zxO)0GrY5t&SbFl;NNglE>Z*^vG%WO&UHo*i zsKiJ^}cyHYVH#n(<34wCX4Ee?@(|5jb zcTzKsCecIbJxHO@p>3o0b!J?HTo7ZPpLcr)tmF(kKLsSTBSDH*lE8F(F}*yFJM zjx^wM)=Z=+K~rG#aW?f}xY?2xH4*fEmPUBP%J}f)y7K7Mxz)Kn^V}2*lBqShqdk%) z#2@f4uY?UT?D4n5TEGR*HIWgN?TkpryFmA}>~yK7etcCu!>Xn6e(+uGV$qC}>cG%o zPZ~w8FPoA8S2iN+Q{qbXjv$zA%K)ySjy_amWqE%nJoJV+|5D1nso!h6Rl7fqHp*C1 zO@879m3pjg$aFk@w}UN`TJ<^gC1~{10`+f%?aN5THR^)BRnMHz0MJqBlz_o#Pj(f; zu5N%RDgd+;XLIA!ngx60$%VezO>e==`B8r=IXObD&oY+McOxP@NL8DUXpr66xWMqO zkHCk-?|8XGL-868II zR+T7BQFO?9TV31o(CEoXHsJO*&+Tl`*W1S;i?w5No;6`&_+H{1Ba+cv-LlnJL~RBd zle;korCnJQ{!{tpPOWrLfQM~pCBbis+Qy(O7XxdZCq(C%LOu$6Vh-j12vsOIpf=*& z`qMV_!YN#HuhW;nrf>DtOy6N)cGfR@0PAE)FO?k7ItBdbv~-uE{g|Q5A1yq18WGGl z>R4B(Z6Sf6OY0IJCCK9}rLD9%jNGyNz2;|V9Vdg|m|f{-N_%B@LhRZ#A6okk3>M7k zm;}v9tEf4(>V|*&V5=tip?s8v-9_G92EKZ39mr~jnL;VFF;g0sFh4#j1#!bBAgh11Zf}!0CynfPo|G&PB_s);TtH;?W?nS!g zG6f9J*h>1FhOPcqs=oc(1vXD1NtCadv7z#c{VciV%4DGw?olI=>Yr+h8`KPO)%+6b zV4in%e=osLaz%BZ*0Zvzad}Xt<>@x_@qNh4T{wYmr2X%qdddjhz9j`;$o~ywbZPd*EzCB_x_tDch zDcV8@1N{9hX%`{A(!?=GVvb6^R(Hd_Ahm~-gf%qVF4xrJZea*{sVVJ!f6aaAo$phm zaO4obvzzm?X^0i$(y#&EwrA4o-8-i=quwL_m^0qA7pIXa8$kt?AazOqDMZzAp-#nN z7$^W~R5z5UJQfc*wettI-T;BwX6@@elOo z*#l6ZQwL}c>RPHIj55yX;E^O;PV%!5o6jSKV8Q@FZ~d-L@K!G@0ZMT<~SR zHW{fpfC4^DcoZNfKgU0OQgqo=@>{mMMm4!KP0XN<9j>JX-ESjbw0WD#-Y>?#wV`@W z;OgR1<#)NSQ)^;-$2R)oN+0G(3UakP^$CCtr(qBXd|2-;2-WblQ&b2{Yu!j)>tQ4C z?b(={o3leFCuW#R0Ejhs)bL$vCo(S(GBeB~B-x~LI<@lg@oxdbohB9j$kq^Qso!W5 zI;Ccbbo7D$jDcGZ>_}`p4&)-05Pc!YzTreR4fQyOr+}goQJS}N@0G7921Z|grR8p( zlN^nm;uW+lnMBwgYQCP*#@n@&ZM`y}#cJWrJAN!SivXCj;=`>{OyZfFE$+bk6S>>k z@!S!&ZXY<;7DgL4J`xM8zRi(n?!spV&<2uVDjJRKDs=H9$yO$+A}mm4=ER(%R^9g+ zs0)qBA;#?lfS+Mt8NfB&{+gmWiSVaq0%(s9B+uYXOyhdxn%M`x@o5xt_$F-Arm}sa zo#S`c@i`Y`p4vg&i+HypB;F?}bRnc(o=Mr-wYNbWaZF^+eN3&n;eaIUV|+@LwI}|L zR)Be8Jsbb{eV_9g4PXA~3tlnLO#ZIxg;hHYo%mQG@)rKdLoQIc=?ICT3`cz`4@;h( z4W7ALCiE#^R-n&~`wzVubnn=n}R++v#mC@sS*=-3y@v7zbY~&0F4z zEWX|YtDpExtYUXQWMOBz3V6etpib~jddswUmzyV`-s@Vh`zfD#BZu7Hc95aKEBeR$ z?xN2@x@YE(Ar}fEN!E|HVcVfLPtn4Yl=hXGj#LQ~}D1odBv>BX{KKZ{Qex#Ge*^#i?avKu}>2o39Op}b0k=Y*}!+;2Z zsEv8yS)JT2@~~Uckeve|H@LtrG-W$LWO0kXGyjD6$_uC#ctUFuvLP`w_S`R$7jc!FK9 zvb?MgCP5p-u3h@4i8xQ6o<+6Pb)wMrAU(6V(12@a!~k2aARQyiBIpYON9woLa%fi$ z03RGLP|6b>)zwJ5c$AYAJbh}g=DiURm?5-+hz-#l%H`Jvu1YwZ6ChsEdhanL7vk98 zIW!BPrA1X8zobLkeYJcC*W_i(A7{RU20zkC!JG_s5if@nTLeJHRiP3-0mbu-B!_pmXY`s1`UwS<2H+F zv|OCr_n8C4vDalBcmAT6jo;mmt|I&ACZ2-}!H};=1LxlideAK0A)mZ59{mkD{{0;qF4v4Dv_Lj@O!W=31g(OD z863V`^h`-*fh3f!fb@-z$ZGmMNu+?zk^ zrLyVy8xb%012^71NVeB4FPhB6Tf(^yol2ukkN3;lj)Be4)*runx7dFzJ+YY=V2(_f zrvTk?kaM*HKA3)7e0{#~QVqd@?5MCwGx!uTwO zzf#&pJ{0lkk>VE~z(zM&j~)!~Wc*8pp^!p30eSZF(1w^H$=y-*%ju(jN7vvf9W;Bb zaWBhdbNZKsLi|oc$j02{leZ(>rqrYwSpxsq?fnPN;uPaa-uy7-7wZ+aaVdMY%uy{w zRTM=YE5%Jh-E_N29i+!%9%xQUHF~;mj-5skhPcts6#q0-*P;iJkl1yxyJ~K1pGAf< z1}#f0x3gTYl63i_4zfG8x2A(%x%{$Ms}ay&z0W39(f3}Cs!zCM|UQV2jLnb|<+pni_`7$mdC%pdE?6+HU`B-EpC&XP5gtqv@6|d&jO_Bpf&%s1FFRp86;*rT&=q!F7vC%^FMd}3bWB2Az;{!@diYWq=6DYr~AaE zS5Ai9Zlx;4X-G^zTI#N-%;5Ql4e&wluaAYJ3^RZuM+-g~XnUk4zaOZ_U}G!-qG@eF z=FO@lFcLXXMS)!j*SEdXvL3SHn0yBg`Mctv)UGqB0Hlec{c_a#M0gb|vU_sG*kpTz zKriAiGtn2H`}x;&3&89ZIynr|-iv7o_Kv2&{?$ZY(tG;&+{C$klZM=&cIy-BIw25u zv$|Br`a8(ve-VhfmD({Td#xo+6t*m1KlS7jjN5eXd-rDodmq;~gv9-lgvafDsrUbC z-YM8N{+g4xI@f}B@UV^!osRsb`i^}c(4_n4CN*;<0GZdqc^z^#JeuLvQT0`mFk{17 z;r5(PB^;Kwe@@)n@hBxYCsev1Je`sea(XYV?v#2p*y10*#tb-(CxJOK6#WgSm0u7V zOLUz+5mkPY-%FBOJlK=PaKks4Aio``^+0h0s51WT>Ypb420sj7H$aEp=OIW*7J_5mI6%JAp)-JsRSK^&Av9+@!!S>IjOZd70ce7`WTB^ zEz&$ESThd@VEe;K-R1^QK$c_4kbpbm!zBkG@Ky3H#tTNu)M+89PWXqO^}a3Mc2+U` zET**ner|RX=)jpyv+lz2}>Clsn8_jTx4R%52-^qVMyI75#0ofaZWEf z$O`^zleM!OC_ICao9GbE6DjPo_J?cE1OVbEeO7CZV{4j@yzO)4BrM}+{}}qHj};A` z#wJ{o_*%P&5b2!^F~QleXQ>K6Rl$%V1*6W_vg)}%MHx2^jFG`fl2@1G^!0e0D)_^{ zwTDq%sR=#pshPP_t(jEU3CA_2RR;OqhXVO*v9cc}@v$Rq+J+V4DHX74g97l@hIQ1dgoQi1~ zocS!j&CrbUWNl%U#$gd)j~+gp6={!rJWmjIW&^I)SRa=SejLhZVF4^o5Is&(VV7t| z=Dk$n8JyrR|2k$%o8*;Co!!bizd9(>4NOqac)rm+7cGd?!P%5Zou@i#PG}jy%%3REx#8clJhcbO&OS=nbN@HiN7>a!&;!Da zjp2ta%2UI6;h}OZHx&E|)CPE6C#w)6qHCSyG2Neb`bKTZtK{mP(^9AEoxNB$S8xWa zRtxy)LD9>&b#CNU6Ld*?R!{n2Ph-X_V_k75$m}MNf=H3O?{_iA_$P%EB>?0sCYptb zuIm(QM?W}fR^og|^3O|RhSPzy0q#4`O!H?Qp+1FX@0aLHolPGPZKUsyM;{MIy-5m^ z%>1#*V$Vd{QiNG2%P8L#Zhdv2J?Q86{O#fTg*yHG2iDjC5@HzAg|yBzu*ltO_x^Dp zq~$%Cpqhd~XQuNb7V)`|%*tu4#9&mcyHB`B+FAO7ot#Qk7O~Ln| zO0Nm)jd48X3FUhc@s$I*-)Dzb&Sf@Ri!5(feJpWRp08Q{ERlSf zO&(t{y{+$*=#L+2f@sjCQPgR*hi83!GyjZ~w-(Z;V#F5yjbr;)#81Lu>lvc>Oz3T9 zg42st1qMD0XN+37&t>AML3%Asp4lsxtAhA;3E4*}cUxm~STwffDXs2k!Oz8#;+1y4 z$!%uqG%AT$yl|%K+6kj|Fa{@r>oYNO&}YM7zK7aIevNaUOBvwHezOwza5-~wK?Iln zSI3riH@gF>yOUe%53pDA?~~T1v9D|=R|uA0qY~>cxS5k~p_e_o?kQDX;=hTJDC>6)fY6Hf{n23t8o0K$@-qBh7{`G6wLmZS`e^|H z>E+bOvF~evOu4Vm@-QOb#L*v!1ER>JR)i#hu$m}7`lv!NPFMSfo#XzC7ge>3@0P)3 z1wYtMx6{LPXz*bT5 z0_|SGk>jTL{dr}Fb!~F-du0qvzoY$2@u}2Lp~-J|pvXa}V~%9NH1akVb^Fh?3;-4? zb+&&?yw@lxF;CQbGhFizgTKrDi|D4 z7;(8gXsyGblKykq$ixNbNB`L-)cB^`tp(hBvw51OMc-<$|2rI5g&QR`Jg&8$tm;_ziuls%?7SAT4W>7%Mh9cT~DY-Ep&iG`EWQE{g&~+J5+514|Ue5~ZSNX1a&v>G8 z$=fAo`bJsAqeGw$1-*%Z+Nz(It}>hWykHQ@(^{SQ0I95HVh*ejbv$-7?#HWD?Y4epVMzJx1pAK@=-$oL4v&#{Tjk9HLbePCztM!A zO6q34;Vl%T*U1mmTKxWpij1ilUtvO6BH(cyzVdjq(lOCVR! zH~0)+OY1IuRS#(Xq)TIK$_^q}DMij*eVL(cb$oZMwD!%LPTWn!^2f2r3H)Qnfe!f1+>6tylA z<>tb^I2n)<`>CkL{q6KiiFbRt=4`&0-#8B?e?w%Ac)sqZ&+RQaC`1YXdm~nlBf6Tg zpf-FC7WO%|Yg^@P7G!`6zbiOAPTa?|qH>q1T2Ye{Ay}+f#8Zx|bCf9yq|u-2pVw+* zoX@Wc-tn#s-R%p69yPl z+j^VYcl=}H+}xX3C6lGt?nW1-!B(60jtklu85~1B6ngH2+Hpl8-pI?t| z1Ijw%r4-E{DVpscj``PV0~O`;*X2urpG0jmeSlp1yNt9^Tz3=!B&C*QlN!?{Z zHAkP6+!1G35s8zpo2wl9-%ybYrD~%(yX$)$cZA>CZ>QA9#SI{dUK@pP^q})Z=Fg+w z4yRD7k+#UU=;Lh`jRH9zyDyBN#TXBFXyu`Y`D;913KpGQqrm8V$f8AFUOE+&uLK0) z&^(gDv&G=bG~bFs4wwy!ebh-yq;(A8zm1IQsEM<% zx@I+O;KX``9`YaZ@BsOC9{F-2dOt=sO@&_h;##mTQ$CBt)*b!-X08bA4MGYU*iuIjHSKGDBuDqTLDM>xstx}=2*_`++B zZW=M-SK1q0cEeBSza92-2>8B!D6Fjxgnv*gltB+zLmot4LCsUJlY6&U4HK}!sJ=%9 zEM`ErWVmwEysaWJiFAovj^WFWffo&0+DuM%iJs_F@?s+jHDZbAW6gs8dy!XIJQ!H= z2oFBg2WEXN$cOJI?k^+fJg~|LyCIDCY7Q%AM)p@14Z`tf=N*U~TvmHENVtS0W6Q#F z`wT92nj7u6+WnAlFCT#C=S1f)hVCgHj`!%{%FQvBeL8H|k0yyJ*QikC%0piCH+9@T ziZFg$yDCA~M1<~||3r5Rcm8%UEjRss;1Q)W@T;>tRSai8#6(G~f_1Z=-kyqQs_Or~ z;wrxu`u`@k$Lh7%c1usk5ZTxIBEM3vz7io1@V(g8tZQsc!34Pai1t36vqEYyjv7o~ zK*h(83om0O0{zkZpU*Bt9tOnroSy`l9`pa|>!fUpO6`1pvdB6=IcED@Yz~U~|7!t! zqxtziVlu4mn+W7k~}_yDbK}7_%86%1VI*NuF>EG({5?e z|NRIZ8~nBM>;aVq9fn%lgBAw|2Z#Uu{W~j3@UpU?r3^pRJ7)0n-_x?K zoJQ7GA>RgNgPID867)z*LGxy)hZBNZSNnM zp3GiX`cvu0b8m#FL*ea8$V24-BaW(4z@gx|-OR}q90s_orLK0- zv7Am=#SkR2D&JuMG*(0gGqb!;qeNKP@fMH>P5y725h#Qm(yghEw@AR!-(^Op=&$X} zdF_QzFRu1(Tn4*>X3o>GG|rIQWdUWw;YMY{Hcc}bO#utT_e-92&W52lDG5h?oe+kL z&(XzLbTb6PRGtZHQBXNctQEUY*P!mnF9i=kN%jtk7rU(cpRbJJ6IXA_%Ko<~136%6 zn>F~?$len4GH+w8+g~y_aSA?}her_frOS`8Pr`3n9umAltdWN}s{sJh>zyFOOQ_qb z2SAK;*0GZ3K=}a+7l3dG9N9Q@^r4)a{3Ti1Jwh~x*Ydvy82^W1(#=RsB1;$?DGw3R zbHN05V)pw(u>jNeCyOnUHe0VaUY#4QZVyXlm+bF^ye;AUf zAho^Slj-5{n@{6_#So6z72RVfzyB5U?|GP=;!>daNd@cA4KuU<;hQH66su%M$KrwA zWVH$yX5NB86<8Tge3l`e(aU&XIb!)H=<56O3Y50C zGqOIT)bJYGDa27sWBNaY{-h`Y!JeGMxuW<~kvwITfc9C;-Quhx^4H}O@UJJnJZ#0l z$NbUP8N@hhh-V=Wzx}Q(#FvQDeC?ww8p$7kowN)X#aOX0K=?7v;^Y%5^%st7)an+A zy&<2kF?RsZ$=7FA|A&RT0)XX@KDk8%Z9X~%q+Gtnauk^3_(c@AegVEmm#~D18KqS1 zLzdA}rI`^xvW!wqd6aDemN6q^KWKYc&9i$kuVD$akS)z@BRwcSE}nh=oM@}9nO3Uj2p`6{1*Ul z*2>N;DYu?|@fzMFNhm|rfdy<+vH?OwFInsWo@Fu~M!9&)%QHFQgTJvA1%f@of0ln_ zSE^*?q%%xf%ZYxGel+O5gmyA%2^ydFbZEQ}Zc%w(Q$~>%24d(f`Xc6#^c$F#{4rHT zYABNsQfTp7I*yrJ;fbF<9@ui%l;PrL`Xj>C>*wugaQ&QwA9MzJuwxWGMYK7-RnS7Z zu#n+Bx|;o1e~r^~jpbkVDTyToqv+^e?--Q{Bdq~9ZiM5%{$pFlu}F7IGc59Ecm7Wn zN-EmDCSLTpRh@WNB_g_b#u8ZQ&w1wMYENM9POxcwe~&K8U2p@C`jn?MQt1Rn8$0oU zbr_W*YI`{I$_PZq@<}7qh4QV)?EJhv(F-Q769yrNsJ=KU%2_&0X;ClHZ4iVU@03px z{P^eH72l~4e2?m0$0D?DQn`C=Ei^v*I9e);Qq*25@Mf$%xZ+N?L+f~tT`*t-p$@DB z-(6lB4fk#@c}{#z(5a}Xw4*-suB(>_3L2$t!mH9UU#7_G2r$m@k*@fU#vI01WI&$$ zO=K_v^BDyJTCBXoA^3LCj8&e928=Ek&J8Ju%mdS!8$b~?Zr==~f~(A+&N&i(KaNS6 zhS_ohCy=`e(#md66hwT{bc|MqRgan&g~766GhSrDt!w+DV=?VbFGVNZ1RdB#mGoG~ zQZc)Rs1I@Bu){MJdKygY zTY{4RYNpQc3JX}mg$kb83}o;sX-PhlcwspgHl3^T1{lGq1PaJWtXtEec zD9S;wKT`+kTdIBe`R6cX1&~RON|FE&vY2L(odISrR7RpQYHsqvT|WZch{3Y9IiNAtns-T!t4S_k3P&|-f^_Mq>sL^FO>06%#y%b)|x?&rOQ8N4Gs*wlQduZ95q&yn&boAeUY@pR1b`7DYzTAjf$gCQ zUcs2a?!7cF3?_DPnF3&y9y@>UfP>Y1S~*!FjcGgfZx zt8V`gS7oC1Tzp<&_WXdWeg>Zmkbk)n6314@FR)M$tta(x4$kF3Jg@!h$4$6pA0z)D z!+wRm8EPCq7n3v9QOrbjWUre@rJ;^9xnr;?2uPJ)b4hEo8P4lH$p=^hH{gB5jG2tV z_u3mU@8^8MQSs(ybn6^JXvhBTV+Hm;~kh@qmby7a~%JTHM*>{Gb++G}^ z963yY9ljaVFPW9BjI(UGI5+sWD=+oMexRqb&}RF8Ck8~(4fWPeJl+Ruj9hBbp>~4s zIROM)Jmb1KGJX{XQxzi~YwVDap<5@%VRa4gD!oOHxFc4AYs;#zj|EW&_W?@euHaDS zg4n@aB9!el_NEBhq4L`@-jf@d+oaoAcb{{{r$_d8EKI$11=NVIJRXKdmIJ%GMk{s6 zF+yvKq(|Y`hvUFa>u=V3_Pp(r-Y~X#1GcU-z4Kp3aeV;*bcoI`uMpSa}5dQG5&y~?W1onLdld-Ni;^J#!REj8*wrm#Gf3bj4 zy91C$@GJ1D2}ud~9W=Tv8~rjAin>MxBW`zc*+LEju8#{P0iM%n!;Y6~0K>3KX1eVJ zY(OS3?V_SOPxhl_P{r-u4sixr28ZEDMULrcl~yoIkS)ef=2*(0{Z30@vx& z7}uww;nJjX$@y8;Bd=+pkLU8ROBzIlQER1P)^_|=Ete7rgk^lYx=fTBE03{HzDc`J z!Jc>M!mK^;rzLE3a*uQ$(w7NxLvXm?Wn5bqp!p0K@rI0SWrSMk-i;bWrK$#4kRLR9 z|I~K!>ylSMdF%u?LpQiKFywj+?*vX56_O8pa-PPN2^77Twx`6QW1z)$jvyisXpL*5 z9oCzdJ7wVuN1gc)XX+V64Wp2HE}44b3d6h?SY71lBe8)=@_EHyS!LPA38961W#PK+ZSKI@jP>+C3@#b~IKsT&s)O!&1+edj=8@M#8B>$N%5-@?9s70qAx z0A_bn#uT}~56E~3dB3nu*%>U?uJ5m}Je2F*nBjc1;3#!}_yHGieNV1>>&=yncnr19 z{*dFCY>kD9(tL^R!2O-e;3FcE%_q@6m}wkWvUg2ow&2ulE?(up(~3?E<&;7#xN#q72{jlygGJ4A-K?#a%vpjp ze+j0EoY5U(y-sd$JugY-S7Onn<)0W=k>LM3MY!tDW;xo+vrD{DuM4x-aGK}ogI-;E z{}?V8w_YCe{Wb!|QLQJ$H2(&8)~S}~v4P{pVm0Tj6^1K)!D0Tk)pnuA&WR)nH_zTR z3M4z3mIqcklUqWVJ1!jgtDhkIH;q7>G|R8G3ho53utp+-|GN|Wi-j`&TH_IiRTqrA zVauKFyjns_=`dHMPyC$qjQX41Ag~&*EdJ!k{stDCs(bNd3AI^v-^#REa@%L-BzS@* zmxbK^$C#h)>}2)r?f|leQhPHXytXZNo%RVs583nKwXPhV_&NK=rggyq$NJHy%TYPV-MXM)OVdT~-nV=B z88ohDzi&H+zE*kUV7cr7=`RbaxN99fOKghvBp$#CxxYzK)PU~0^DN60^uUCXo^AGez!MNS$a_!Vo2edow^ov~PI%vM>>uI|gTwcdM=~J|`NXYU zg2c;5LJJd5cHv>M&ua6(=hl}d+E6i3eRUM~*i{@HP>^r_3w(I1Sd5{a6}&RARRTk>ycB##-fxokG$X7))cge3u*iA+ZGDPw zw7&`3wR6f3`@f4PHHjCUB8~5DY)rsW_rEo2&*O3)VbrB?uHr+$EON5yM43s%{&AF1 z>NRg6=?yeD#I|uxEDJk_nw@FZE^rN}iQ)WQ0DKb*QVXNCCR?&*_jvB6oD{7(ZxFia zWi>NZK49dj@K4XTjt|T&Sm-T76T#5kPuylT&$7y{+@k}cD)98OQyq zxZc3OfE~WL`5`v`6kqH>I$4zO3MTxA**KWeJig$MsG`H$^F;H;;<)Vl*5y=Q1$P{P z9uoUS@o`gVV()9$XIXNEb5q~fv$L1#BOrM*G-DGi<1(hWZ4oM5YnL0dMJ=WAOd3fH z!lPNLPXXI+`|Y~M*8bYed(J#Jb#A6H&3GE8j6d;2qBGy6xr$+zjCo1B+4W!G)tYWy znMqjHgl4Vnft|UGe_r$AG z&E|JSFA0?on!NHeJD=Z}IqzP{s*ya>9`Q?!`NLM)$6pF$_#s281iu_?*SM@Wu>LFz zJ6U#+|7DPsiih{b?!(%5Z0n!_nPu=p_eBTABmItBKzSbdd$Rxv5M$$?e@=4+ANxkTEAPesw!;Kt1>I3<^}YCa1rn2w8cwhU6fB&udZ7t^hsWz48|d`tf@iyb|pMe(5ACIuJk zQ-jtT&-P)iD;)tV5|c}K0o@3aP;=$LF6uOJpw##F@=;a~(a~_6Yp-Yhmh>}i$#s#ia&4W z1kD?`vJv>~-ybynxe!j4zE0*6HVeMB@;JEiudAhgqe3rE&XL%=r}$RoLG4Jqq2h_y zrOQ)*x>|Q4keyaIn}ZN!#VblZ%bEO@-@^^RES8f-20qrEkhvminh2;~Y@eIiRtmCm zH44WLz%qXfAR}qqOsTU%Eb``A6t%EiK`TQ`a#_Z`R^P)ITz+GlO9b(FlpKsS5Rkun z7*dNWscvZ?*~TW912Dz5;ZFozS>mA+=6ssktBd(HRg>aip|n?Zx)f>(VryinT%qsG zNzidrA=GDujW7eZ9snN4z=bkO1=}un1ZAEo0A%v{2s<~i7LA&w>ql+nKr+UJ@l39$ zN69xE8%njrIt>oYf?L-Xzd)Zi3)=~h5tdI zD0XKWN4xKzUtqKUKbFojkj?jf`$?>rv070h)NYN~dzBisOIy?kDyY4w6`Pu^y{Xxy z6g5kXQhVFgH#Q%DCR78!R+4bj> zN4lS(uU<+bIpff@pa~IIV-u%pwyIjqQM2vb2yQ((Sz`?ad-}g3n~`0MU`#=nQp1DT zuo`=@`J;Rw>NDr-Hb4M{xY(csUT#^9#gHAJ$!05EUD>9fMgzdcGu*%0j6dbwr$|bk zh5#2N`W_nGJic?eIclRm4pA!narhf_We!d}oZhy(VhFew zk#HX<@h#74AI!V}i<+)MR#-apHBGZAm^bsKhz0x}L|=zP>Y4(s&FUf$ZKVxCU$?!6 zHBkb2^D2J9?{0Db>4e!-#_{o~No%3!_lO_a3dF}xMJvIg<(|@ymfy(SYAU5QyWJBQ z7NtVD1@X0Qqzw?wTx6Wey_ZWoT~+>Xxr+WP7VuCC1tY}gzY}aHBH8{}hK*{^0qj8s z3TA`VUTYfRqG3O(58m~>c3ISsxqv(>SLgv}c))Zg!rd?PCuG%V7L#Aqh zqd|w+S~e}Va%$fb02SXKJ1nSy6=*2iK(LzVoE;uVY8KG3-dxXa%t&j6MLsfi3Je+o zEZ!Us!b)@Yy~V1BwaHRt@k|mLd4WKQy~d$^%mvH$!@IRtEq1@;oa~kt6peE)Scw6G zJPKe1LyKQzf&6%Nv2C?Q59=P9FmAI0Ks^l;|LE-zbzs2PD}H=GJC7Ht2Bi+`R#zuI z=1+3xcZJSN0e1$WZFmKtLlvp$h3SpWaQoJfGkvo{MNhF zNI4f01x=9|JTh%1+h5*}^J&=sW@9e{4Ta+|_S=}^t z{q5)+n@o2!9%tNNPMv*Hrz_M-M#vcZrDY7R{YUL`ANJN91(gPMHy^0?CDS+BxE>Li z!Hpc>-iyzE0>*|rTZZY0Ew%aw!>q!7tZ=a4haoUG7l|axKdrh{6y(O*>8>sH5w`Gm z%a9}*x$k{Ez>!2Qs}wEb!N6a5ujZ*oKF1Da$e@(y-*Kh_{@Of+g&Pkac3bCw3=M8O ziXHfVzl(PIMmj?9qCivT_@N4J7xJ{52Q$A}s&b~5|@lNaftZTJg^h_t4JwiG*rNk_ohNpbo{hdma^Y&ky04M`$Qdj{(7cA4?4ut&WDnL!tjyY>#l?yO~ZFdqDTB$48s3*nu3%Vk_=_VbOAs2APPArBwUFmjy(L6;2{QkF8#GeF; zOsM$tW{pe!((X9nb{O`)QeN$HR8>Rit%9!36lp`CgyZMGp07H84?F!W`Sk&u;sH1= z{O{5b@BIN+NpLo zst#u{)xC-Fq9S`Vwwc&*?d-HECJz-cU&5Y@4vvURMtpDxxG~)-wFM!r;09NG70bk( zPmSlPXg6lzQc#v_Ac)THi;(`)#|33P%zl6obk$mOtbm2o^;KB?bbalD7+ER)ttzQuR=?`vIM+sbVytb9@1l%Qgud5GnESUR zOMI_~D7!#3i(**nV7RJ419Qz`hIk3sQjVLRrYjJ6nF0h}ul# zh+dmgx-(jjO!EHmN$@Deze$M{0q?F5jPB%(t6bwpo^Wf=B(VH@E`4vQ@(gxpNIeu3 zxN)7qz!mmPoVlsX=R=5Z65XI~Apj~=*GX-Kfk4N$Ly|{Q*|e`56e4VL}14$aaEa>;yi`Yh4`>9)%E zPAL(g!oFd;ze)#X_xJ6hg%@Y#t8D1IKn7sVPlX4WI*run_SP&igZ>0XxIK>&TY>AS zx?bzeMVGu2!|!5uU5Ur6DB${+Onxn_lOJ?W25osvnU?YL!5W5fye}LyB)aCnobE6P zV1{l6AF7y=YcP3s&D}I!A++Fr_<+6BpxdS5^4@?_DWn&ZI6z1@0zj#HO!-rCP1EjV3ts*`d(`g89Z2BuNm1p9#8P}Q@~)}qZa^)u3y0R z{XGd}ei>4VB)wpk^TlQ^#j`liRqjN5NwJwfxAf3Q+q-^^CVv{U@bRGP-6$TmC*HQe zPYZwMF0y8ny8}o(+Z{$d(v<3%{P|Gw2f0F;7F!dOfa4tS0mSVWJHES=o)=xIRRRdqo@9_O)O@t7? z3VD_|uJsLfey@#sC4?Q(`nd-X0~(N*)7B}{f=iy}sc+w1?)gCVuaf4r+0N4V|3w$$I}yuR zGMRx?Fb@8eTBnmIi|F@!B(LBmv?zM)29e*rGN8a2v?oeVMv0W9NPA8~4e&Ta?qn8fxkXXW9j%NJ`&$iyoK44u`X= zo2)406UhjBMxK;aOSYY1FRQAnnD#my(rpYG@QU8GT*+ukjZNZ)sN;flke(ocb89}P zs2U34WNfj{!Rkh#;HD>t@RWRX>6gMm_N$FI z^wj!md*Mfwfe0uYG;abWJoiR~Z!UdyqSyx8%vV0Fqg^M7SM7dgB z3mfvctBtTD=Nq!Av074z4`>x7%+Lg+ngVu0hNYnR#EbShTKRm&)D&&hB6eIE{h{h6 z+d)CC{yPph;dG1rQB7vTSpCf!Rr9)lNijX@R^)+A+MiQWy!F8bNTiN^(x}L(G+$HJ z1IUBS_~Rl)+?uT3PgQ}?^^lQbdE4bS30FUe+;kUyDVhRG0fo{=ky~0OK3`~;vGTqu zV_MGreI_h5;=&W31}LF7paQ^8%*9wA`gDvao~*itx`Cnpp8vI$2C;j*^jPIHmg@}T zASQtCQN9FCQk%iIlN*m>$>X!TxhU2TA)ciQnWx(yS>~r-3^Es{r0Cu#m0Eqje*EfL ze$!t(MZ9#JYh6U^9$=vI-cSL(4B`Sx2!yuexhoeVU+}nC^T7G;NKWNL#7kY$cVV0_ z-j$tNY>g(Nnj2dZ4w$R%(zVW!+l4GoncG-#EJhNwd(;3CjYtc&i%^Ctf0xsej=J?c znI|Nh#Q1$H#p6S6iqtCil_;N}6%~TJ@rZyZ4sbk~+cHFVN*dwg6ZWI&OZ|uc>ORSr zetilauj-3@(&g=aZ|?*4)9h|wKT)H+CE^PGAGc0iV_5kjp2=AL9Ifg`MgZ?l3{Bm^ z$DfL~?JRHJ@EKcv>}%%wx}UMRzt@@J8|JXzv@VoqM2^k!^wDO*Pm1RVexAPHRwPeJ zQLYXcmd@i}b9S|34dB0cY}#^tu*ent!Mzl)ARN_5VJV4Pj-Qv^zpbmFOp9WT^&hKQ zYSeHb8T+8HtAz*x!NwKY05W^0Hqj`TRPf$>OO{+S-nXZJjK-Pq+jrX+PDj448%2ci z$MSz`Cfn{cBuV%B)uoavS3v?89o;ezq$k^$^1oOvl)LOUmLHJ^0YU&di9~mAagtKT zpl9CV;q8`nab}^7nU}gO!}rR;>b*892cr`Z`ymsjc4~AmRIraJf`X)wtWS9CraFQ^ zu!G=xLCb@I0~Mg%jn&J5vQeVHe_HIh13}QuxvIV z`PI-+E_Ar~DRiy2<;L;2HmKJu9HRbrYHm(_)5=_-s5f8#_Mfl|%Xj>PtIh=M{PmQ! zzc}V_dC&vWrc(`B)RszX2|>8L7H1$yE7!AodN?{M5XaVPx9g;R8t{Mw|DKY&j26~z z8P`=ee%8;*Tm>9+lQAQS5^YRu6L?D~8~N!4WeUjV8St?B%?4Xv)G~dJb%*fit~xO* z{A6BL33|^`lab<^qWm&+Cgj`9tF;lUH+(O4E{zPwR73GY1Q&0vy)$VKT=Ps@!z$S% zlznqvXG{Wn34J9i>6rQPLDfLlH}E|r45xzF^SvKGRTW_Kl4A#X18WcxfT_>v4Njv; z0$4ZsA?O~}D>fjxooQN(PAOJMux@v_i4~v_UUvFthzHAaYS0z&YPV_|N-J8j31wEr zj?kTZ6byYFJFsxG!$%lFh@RA*7i^>(K~G4YH|dc1Obj zjvTirBP-+glzr7YDEp`cP)oApFpmaTfWqgN$qbyPK%#V}I7w)`6z}2gwXD>B)Q6R9 zm#kM}eNx&s4Q#sSrbE3lJDvPVfDau0&Fjt|?n0imlzol*K#bOk z3EF(Wly|%G`1@+rAclMH6}r-*lML~bC^!im=4uY;VhQ*rkLKDEfRY zr4Ul8-?TGhr5uC;6U05|cmBStr7ud7eVXj#^KmEUpjnPTNGj0oiU`w($WG5NlTJudOny3duqarnP5wE(Uc@PaaB>7g44cVBGv73Fw*1Jks_REkq zTT=Ml3nq7~AJUU26u*YdEcvJF3$t7(@ex;9S>82!x9XV|S&C^THmBr*i{vXqF zZoznidGb08@29uX&+!;;-bD}-X+TU~7B$hXul7zwhEe|fQW$C;bhErRstU=Rtvxzi z{&-tA>Q~$LPEym$8XBSBmX}@E$<2d)-cLV-v%PbC7@Uez&W+zyqd^0dOSM(@s+bc8 z>TK`%7o+L*0V=dNVa=ebB+&`VuDqM@P1iK}ZOl|3&In;+1sZ&jbE%q>C-;=sM0dYd z;;TfRWIV3KSTIyI{wVIp}>;BB=e@O zTvT{?0uP0c>x1a(^kfR?=J(rwwEtBn+4h-=(XHHs6}qFvgO*>GODOyYE=(47pgl6# zp1a$xw~hsj)Yo0>(+*wQ{dXhdDw&*D1<1%b34)f}r51BpfNw5%$TwFM7|_--bs5EZ zDO3?7FU#`2{wTdI$Bvy^qchwd1>F|)=Ky0XP#0y}4Q73)FrUzs1qQ;xDyUnqtDl&8>8k+q{zw~wc0A*S)X=ZEX z0vvpn(T104QPBul<~98TIb56dMESV)H`z*h-ju~#p!|m+5%n$AKc)q@ujdFyzS2PT z7)N7F>fF*qFXPBf69udy#x(@x>9mq!0ufV(n-+GL#e1p@x+8l~iVUwScWOWZLc>uK zKj~yu?vj`P=beS3wYk>hwQ&qIDVm^v#XAX!awfoO2tC4Z^M>o@Y(J5?Pg>Ip0rg*O1dt*{RDG?1f{80itrn$T^}$HR=M zRWl0RXPr$C-o<_D3Vvp>j3g*IhqHL#6FwCS7pz!ZtBh706PCgHS;Xt_COv1dr4N+~ zy%xdqHzKP0%y2!;9IgZQDLZ!lVb5gx#ckrZh0kVcV?j5wW0PoU;LFnxSp&gjvUeWfxPsM+v@LMwnrvxDY2%1`)Q;2 zB((#uimRzSx1U!7h!|zD2^33s&xWPY=~urZtXM2gp&Gzio`)%WmC+?6jQw^c&&=5R zp9C95nrO5Ea-zQ|TO#8iz+h=$r(lQOQ6_tKA1H{Mm(}UTV#R?GMn^waNLyTfepFxO z*YhQoDU$o)ec~v2&5vhLMkwCDWK+hKMxV5XU;aX)0xW{C!c4gs&gYs|#H0Hr1+`I!#KxmKvD7k5N%t zi{c=lG5G5(4moFiWzHY_-?F1R(*6x`(mhc4bXGl#=(bc8Ok1dFnJT=}${QT%fiWuS z(n>${mRQY76Le^2lV@n-wtp{Ntx2ZL+|=-^z~K6XmU~l%!kB(=Z-kR?zg_cUbj{Wr zJOUR?#s8%Bv7}}HLKt0XMq%}d?;6Svs+|>qzxTJ(__GanxWZh z>7Yl{2|3oJFzgJJx%az;JBlL2(Fb@zWUD)@_cPcH+*{c5#C{}Op6I9uKGjVf$p)JL zkP*W?9-ODC_BzOSTzr_n%{Q)RD_YGvgfvD9fs3y+KPhPZRi`Q?!C9>h-bk6UdutN% zBU$=R8YAMpW}Jcfgey^ta8~qz5i-4_D7qKb&2Lf8@l;8#BmpQ9PfOKxsV6q^%4jA% zGS~@uRF|>pLQCQgU%}&RC6ZqTmXDjjNZv3*^Tx(Se^nDq{BT}qPC6T|(3eBzX8R=w zA1BK}<%kGFr(1lF8!pFx1b*K}nU~6;2^+`*KBalSTVl~2$~AnJDbe@niKUwn_q}I5 zel64Y%;1j3n4gH@()tx5Nb`J`)mr)lre;+BjK?-1@l3oz6M6wgkuij+`9;rcvdjsdo5)lzLc^U~ypDAKqvSJsI40XFufzIVZc3@}l@M+;{Yk-VB^9c)+kPC5ahHFu(> zvDM`P_ZXElW%V|n&pmnwI%6U>*(pG{wGwKIaM2PUK+=%Vj7*!)5Jqni>}2InpgdBT_4nu%N&EKwNq&fPcr zE91>ewE0YY6<-6R={@_V(mb=B1`Xg%u?ndjy5GjM8}8#uMJKEu)*~w$BlWBETYzV{09fU!5;}U8 z3~>}_P4hF4jn^k??viiq_HCEIOE>_iwyDG5BE5ukt>6-dwrg%i!v`#T^JYcsNQJ8> z(|HYcJPSX?t}27w)T{h9h-SO~*5=jrMix`1*CgY;@4Y46w;)k`OwBz!5JrlS@(LzK)HUJZ)wEdXyAWtZL_DAJ!Yq7!=o$d6zunBlmLaV^`t-X zm5Oc=SLcVr-cG=T{eOdD23Yu;qs3}aTX%3O{Yxst6CJ;~kzwhHuJhBT3Bk@Z0W(pU zXQ}*dM&pgVT5*Cx=o2#zXk2*DFD_(5u{0o`*tgl|@|o`mX*VIjzd00@8sDtQd|p$O zCPy5rVz!!qedqgxLBL%3s;1hc?KhrayG?YwEO^gqfDfO)=Xht@o$p?=j)>_bbz98( z)(=~!Fo^FDQmzdxv)USYVr<=y)`w3ZOZ{G++eou9ToKg7?MsY-PYI%pI0mogaIi7` z((qt6&5g;HTTj13%21{(5IrTFEPa(1Bp!M{Cl8+fSo6MkU=bIj9VOV_L{2KxBTHOV z$wS|C43|T0I83~|Ildo;CqtL?jt01hLV8BKVZ)cY&5!|YeU1URP;w36Z z{(kbvlOl(|e%2gk?EaUl`$f^fHXJQZZiE@f(-fu4hdXAlC)(??Fwhqa-UjXvP5m>- z8>v&62k#F}Nl3^i(1G`PquH-GXP%hz@z_Qo=-2n=$afcgq1Vjp{=pDX*O5?{2v-f! zx|i^dt^JogNrqQ9*{v^K{xfkB=Oncfh%*V2KeId%qR_XFxAB&B9^quD~wu`UfT@)q>P2a0t_m$Iw)ccs~k@BS$WC~226DJp{w7kldae26*3=;?w&LG^E@ zLomesr()_^mRMm4z1X$BC7u7y66CL{!-U4$>$x$N+HnE7XSUYn8f{M;#k^r`!r@Fe zIh7g}chXuS9E|HvYtPy-A$U8fb<$Yv@AN5rEYPfBmgkW#t5^~pv1D=u<<&g#2MIq{ z&K@um9k-M$26;S1n!_h-}F&%Z`Z;-Njptb;+8^Sf=~;C-w{Vj&WB5-?@%r8Adr#Mi&%ZU~&$4|cZ<()^ z$0qt#LI|`5^1S+eZ;F1VF^r#ecJ3AxkZ?Xuso&#Kh|_Kioo-c#hWU{#8!|rN+Y?0b zd}2b}J&~77a%CmF$d_yJ-2Qd-@I-;MRXRWzdAE~-P!IVHxR^6b_(4-5>i+^LvNbnF z(|2w7_ZgQOVk^zu|1f;R-&}%OUFlrA;^GSe7ZSx7Fi}bsMxB0`q}hb`h?6{)p0R6X zQ6$7)|CW^^v19k)$ij~KXxo{8nH~-vzp19$_&#DF?imH)d*dAM^v7G`=>nbB?Q0e+ zRsf!xXnSP;mAuVe8H_u+r)Hi+b|FPBv}b4k)+no&1gEtmb?8J|`B{I1Wmo@+G9GBZ}Z zQ669s;Uny@9^HEO_PW|PEVy55ulPdb^zr=u+a#tgTAJ_4Zxjz-BF-A@gM2R)K<#sD zqdIm!T#r!2k~7ZL=lSYAwo4F@A9y9t|42>PgDJ(JxopfA@&|kdH9nW*S;`pzs zA*VeC3I}E;LqEw?rC&H>K9rN+=O-?8TFSb}wfnHKD3wXWgd3Z2Ju&lwd#I#83MD0@ zPLleBMdU*rgx$Q&!U%;uu{%1(Sb7s)cFd&c#dKcNZ}nlaT%!jUfXJr5u+9Mhx&Jyb z*+^n89DB%CJ{NXew5=+tWYI55fACiFC0+Yf;6sv?FHYli^?@b}iA^@|K&b7g2K7md z6!qcthy)_}`(Lt%v9BUP!Q~gPOBwXM$*prmHd8Sa#U~J{(BJ>AHv|Torm8R~M~i>P*7yULl{Sj!NS{g3SJYH<_|uxo z%jn^BV?}j4o&e6iJZF5DQeb9vfB$tufPl6bZvJCTB7&zNpLiBJi(g~z7HgrN_%Q6u z(p@R-0S{~=1`{#?QChgY_%JHLaogTnLLrqb1pvSY)Rh$tjtXukL)B&YB$s7@PsGu@~MaCB% zyU{RVc=t92P{1O_C`_L(5Z^9;@WM1I@bevKX7FRH1R>C8`YlTbs<#-!|L_I8zDP*+ zn4KNg#u`zLOt0IFD!XT7B_4|1`ud~D3oAm--(istADBW;)XBDY?Mj4MRT#Cf-;@an zO8its8G$a_8GX_>k15P-0X{?&lVr!AUn2R#-1`M8l!_N-Mbw}XA~Kk07c?dm(JBPQ zlb>w3a<8;eI}7WLyP^^tXQx&QD!W?Jl=l2tZtp8DCN^p;cDg2px4W!)`Nd$ZQiVLU z$vZ)K;j$6R^_itr%MpSs=nc?a-`|qMhKJ`M6rPJ5Uz$MKF6QcK*87yC6I=KSw%@kq z9ramqGt~JJlMpsHH%~aI?e1mVHB5BrU*qYta>)rF)X8Hc=3-jPMg4HD4oByp5t%@2 zMo(*UwyUL7QAo4amJP2`Md7>#C@ahVH5x>jNx0i*W0Oa%NHmC}gUZ5#D`Q^1DT_P` zIGg7B;#>`m+?=tBXBy4xz1nZ%j6GbAzmn{w22(XTJ8V2a5-WEns*2kDFFrvsdQbol z%8K`q9FNp~2Z;&0X@y}GEz_B^nI`vt9ePW3RhmEWIBi3%0sjSdxUNSY(hNvLF8(vx zzFnX{@yWg)+=}pTziI2Ap-T@EjTC{a#zX8 z0YYMO%3n;>QfQAccOpH=LHee8=Er;*xaq9MAZa*Zy9yZ7I@FqBZN+9GT(yQLRh*be z2>iprxAzVx0+hO8oFv;`^V3X?8S7L1Oy5f^#Tgmm@T20`l?(#vbDOF+V4jDe#EZ#Ng~)E zY`>t0LXWM9+=Nrf8AH~Wr5xaR^2lY4t5npim2t~?th<9;AxP3l!S_=Dvz=M%Xg;=?ZIv1Z{0zfneYEc;8sCSN91X0`J`$9vZp9klu+UU`bj2f`2YATLT znMalCj0ANIysgv>2vC9@k}>)G?U|~~$aho7+=y+gLzW#RW?N)*3axmvcSBHQ(K!$c z>(rF6kUL)pSHJDB?v&F6vjo=in#v2nD4j1x`)is9<3OJzg|(6BmwxWwVvV@A7u(5% z2kWHew_*m*nbjY=a1vsNBxo;!>3os*CwMp76>SOri6j4np1K=gdmd$24Tm1Jw%H~` z*6CHMmSMwmt~L@UhAj$*ls1h>hO&?&jct)%-F>s>61{uOeM{wkAI||TGEm_aPX5S9 z9g^nOM3;L8X#S{dqN@TKq8Y>Jmrlmmq)z2sj?Y+vJq1tqhr1o!@1N^O<9fYy$bJNL zG~1hMuGQke)k{)J7AFga@dD7;$N*9RV|2S4{*zE0P#?`Xw20d`)23LF6el?;RIprA zm3p4(HQx@p&wdhzFhhRaf@o%RdEpP84_F!en2TL8X3NtZUp9Y;c-x6g5x0+tkeFlzml(^<31#30 zjyLn1v(BlPoiSjLH(9LTM#_ez}k1A~aEuov!9 zByjFxF#w%#0noRBcx^NB(es3kA5rei17VRuZF0{{1Zch%Py14S>*rk@_LBw@^mN4X zIm~1g3jSUL9~lQf>XuIk!R0OB-?Pv~8d}o|KOk)Bef#VmHxc2iwOf6ZO^NI`UXE;` z?31uov@azH73vs_@=gz;cQR3nDM4GjWcb)w(LLxh!|%#{%#~x|T20It|H2Hr?eVE- z2Kz6q_EeQ#fHbhP{S5mS^Cpp>l)12?W#=NU?fT0VE+6H~#6QX=3;$f#b`c}UEeH2Vv<^{K?=$}iXi`A!+~}#4T#Mk+gYCF)r2sdk zq|9NH;-A9`h<|Y9f62gz-uj?_7t<2_eXx=k)_52Kt$XQ1iQDU148d(k0T(@(9eq9Dtn4*zm%W*0O-9X7xAW$}wFy!J&R z)^Q*bXaoV_!D=fdVL8S&J14cm1Aph+Ksp!Mmd^jt!+ig1ldfwW+GoM~Xj3FLnM$H} zMFZ0L`xeL;BVwiUME%nFJGcCxl7!Hg=f@Oe6PJhLG~Om{u6U#j7j>;fDg#2m%hywA zLh~j3&;+e0UObGd#O7c5F#P%DKDP!Zz6BGNW}MdOe;_L+5;gakc=L9FX(>CSFNBz) z}aeLjkGwd791T2L;{lnjw40I@~*qO|uOJ2_wxDs1;Jw|}`4ifjsh23vC?Oqdge zZzHA(^bUBL|NW)OBC_(Y%%L#xgjXPiU9VQAF9nY~8#`jog~-Gc4n_H= zA`-|ck_$Tq?Sko7$*=}tZ~yNG;oxt&xGTp7cE9)AA`t!tR%0dBZ{$C=0@oZY+f|v1 ze?R}lYe|0Se6AmJxXzuM!H)|pUZ+2IyAQbEETgE=^FD2<=mj0; zpU3mA54^ghe?L%lSXRo&E+Omc&kds!Fk=S-n(91kodx0n<=?`7Ar$kBH5%{2jb#bo zv0MM+uwj1cqbj#~JAdFH9%q?(KzV5Ki#50!ve)7LF)m9XU1GmONgvgTG7_=V*bUBb z%8=b`yuIia{f+KJ7F?(QOglwV{3FLs=l{I=Xn6A^9WWKPe z6{|n-p%L#vAm%F<&%;X_S`$QI_qta{6)_t9QY5eRt+>+h-qMyhjKb0hoUWT zaqaE4Oh_a{)%LvVN9yC0_ssg`S{dp|^Y&-$Y9uC05`iIUu0*i0yKE739M7R(U|1-f zE01*V1N0wfPsbP5%G}-cvjacIzx?l@bQ2?3d zFayZq{kIJF+7^1bMdT3NTsSZ-)MxcKV3iu^>Qk$W;EZos1Z17S_beh@1oSAK{CP;> z+(ZZ6L>HKL75NcKIoBu+X0W(}CH}z3^Bq^i=Y}bO+q<&?hu#mfYWZJMd23|OHW*(| zRPNB-1mE15W6~}GvKNYl^j~Fhe2P=!nB|AQRUu`X{4d_nrA4_bbVLAzs1=m?*|QqA z3T1SeC5$01r$4VBr#}P4dp-HbBoRE6A4~fWpbk=~2q&VTv~B%NT#?Ed3weY85>MhC z{;Lx=2FGdb2eLDnE^j0y{7Jld09|daKD<+avJW&^o|F9)d8_An%Y_OpcSR-M?q&hW zL_K(`!Nia;3dzM}t2b0E$+nWQoIcc0I83QCB*b<~G6>{czF>M?Ue{`*pISzThZX&xg}Bto5X0a+1I!6X`(31-`!PwR&C0^zEF9}C!b5b=IS zt?||1BL!bf-G3+Gn%7c1Of%JTd$oP`F9(BNm%pp$05%Z;xYy6IAA%15(CyzGCIm5t zzN4tae+l9PW}-+AM5RH26Ko0$7+<*rIdwoZzWjre>xH}K-;oM_JF-EyO$7GT0GH;* zA6i#CT~<#<5+dd3A;AmysAfqOk`}y!t??j{`h~n2Brn1Lor<9hdcG#%<|{SIDg$WW zsg7cYx`p=%+)>dI*Bt=gmZuZ18ELa{{55tH$G7{jwOFXMl&|H(37FzcOu|nDpx2)< zGk_$lI!dl$BL&^*+8+CLg~XA?tIBphF=v+k#WPj1c{=X6Fs;4#zvJc0Pzso((P($! z;rB6SOA6V&ecw7R1q*<=q*yZ;5#3TcM5^ndqqU;-}%kUjNTT;loqW2f>4;_4GZn0O) zL-c5%@a=Mo@$lbPR&wFA8eLKfqqb_^=E5KV}*8CY)+$UW-gzY9YHHb41*IFIw&7_x(?@R)Kz( zoI7ORJhpd>L@hJlZe}RfXuUSV>iORX$wN9E=Vt*v@-zw4?@!f$WeZJ#r)z(D(*%~Z z7e(#aZ!@nsZ?o8(i1}6Mx5Xx$G$?bGV_#Q?&1xbzSKg}DFzO%6tHYg z)>4#^MVEgwVRLftZDH)~Qcu>QpzZ}Df_D$yPUvX6FB#hGD1&HCN>M@XXN?bc`MnaK zd^MOGaJ?HtC$NB-#XRlGobMY*e#rsQHp5B zC`4V-TiXs{mA$#JV|Q(dw)&TUQ#5?48PH-@B{E-6WGOE{bF8!yTN89IoE!S;tGK-X z-E!~U<-*-9zZpgRK3f-w@6n1BDB#VGQg*Cp!12mb_kk+wuw2Nhs5&TEge4?sqXsQq zZjN{I7dognYELT#Z6A0J8s3>Bd_zs$sYLr!U`F|FC^qGcPH_HQU00J47kJ4K&)T{0 zF?hn2^lbSrA-i1V9Sg!?Qcy7Pa`n&b`ruuQsVqTn?55(c$3UONYl^Rez)6&xs1RuR zk?%r8blRypOTHEWP25B1iYMw-A|`Y?YpIc=waIxHH6lQeAGcg#{t=H_E^ZU~! z>e%J(3Qh8lT3v0-2T~4QpB%h_5+w;s+U+k+E^i5m0XK;NEY9M%%#=}khy!Y^?ePJl z1b?d2F_sg}7{t}PieNG=f6sLcMwknpEi%Z<%iUdWWjQwo9FHF78G|UV@quTLdh%&K z@rUY+?X-+5D5eux!U*5RHG8UPfJ-JEt5D32nSuVlSoXfUPrY|!OOHA0e`&%3{7;DO_KKLY^B3q&iux%3>_DB>UzzL8+0R+4^pk`&f5c)r zxB%5kUX2f(1+Bkr423Z6TBM2I8|OucPgt>drVijQtfMU8Ibi^LsZkmx)HW?rwOS(ZEf}j=(!L;tHThQJ$Yymu^;-tl z%5^qxvN=&xyt*)aSYl@0;r{z+1;v%rS+WX5sn2oN$N7^eQ_TSMRkb;$eJbLR;vztP zF6Ka;5poaaZ0V4;xRiCU8=y4_0nW|36V14oBnmIT<|?I^qAjnezuC9K4}BbbKYzZ% zOg}!s(Zg|ca+2rTDBCCpku zJnGsNhvoHmSB7(M>q0H>Vqv-7l4IZB5ixIQTlHl#LFaxGuMxOc60H{qZJObtPkb4_ z@lC!S6R*5)c5~F*5_oa@|7yDScqZTX|IEgWGE&N!5{W2so;g(1H<>>B2oXw3&dg!V zVWZMP4ylmCltQ7U9CDt*9Ac!L4+}$P&W4Totv>ypf1lUue%<%=T-WtnulM`D-WO*f z8a8m@t5?i+#*v4na(2UFjS_BmRXSQP#z{T>>Ui>&tx@thO9wCc2og1j;gZwVTgCQ5jq81#rI5zDlW%JC z@$NiF+%%O8d<+ONVa+x9rlM2*T|H6J_RBw7>wqzchnM*^T=T{Emhd1owv9MJ6@J_$ z)3LK&wU#noQfGfYUJSuXa2XFZuiNDH@E{J}D zS2!*|bn^rm$`Ws4igLH_OcQ`*sS>XS~MCPXtFOO0AIz5_$qb zte&NgqhDd4iKzhrf#>#+`zOZfncm z*UyU6OFczvGp;|2b>ku*Z#hEH$Jl9f&>E7 zmczjdqr!4NsYz_PN>}k)CjpzQP?6Hx3bV?&KJj9>!B-&&LOC}h-q+kNqa}|Vm3N(i zji)nT9`D3vO|xy4F0p;DaL$Dt22y-gZ!8ef{C!pw(>g(hkRMk&c3l<|*Xgs42gbdS1K{8a~^SQCOy@q8SxN`;MU1kpt*!@^){Qp4MO0ycc|i=GCCx zt0XOm&Dl)_$)|%lTnB?<;T|`01f&fL-m0Ob%U`2{ZU?9f3w-d7WhFrO(P{YdJht@7 zXC^-!r+h8K)Du91T)mISU)aLPx6u!R`@kjs5-vEL0dl(ivU-%9zioC++R zzzKKt&F)xQ7^0pUEU7yH=SR%9T(SJ=Ue;G)0lNgj)in!r#*Bx4ehv0%kjN(NmW@5R z{3ZvQXs(Mg@_`Nlk~!Hrh@jnzvnMRf3`&`Kp6t$uA=D3+_F+fLN`IisV0%q)hy~BG zxoSe`E5O6_we$Ebo~~RoAT00NAbvb7s`FS7cpkaN%y?c0iZO^j+t|kdV)RU+8nKAG z%J<+wn-d39_IlfNOZ z>u!fK^jh`+KI8>j7>#g8OWXPmG0fI|x>Rh?d8U#&(l(>FOY=LdzA)OK3}4V#&tkfB z-%K#};L#>r!#YR!q)t+w7$ew>^EjKJ3q7tY>cRKcOovfo@`dUXBLg;pMb!_($e{+);|w*HFHSRz!UwJ*NO$X(`` zmsT&swn$|Zgx%-$6yNj%kqGRXs{;ca$cGX0VtCMT=$wro{;S%S%mGfV^yRQ;_t7^w z=_t$6r_kNmx5AvASXz_o{NCO5bup~@b8;(}SSSM!O$mGO1A6)N03FsAnWeoCZ&=2lB=kV@MQ1R8tXp@mtC|P^4(unUWR%^j8MTNzk|jEtqnkF7{GdYviMtiO4hM4 zH6IDy47MCWJUY<7_gq^6f7rL){*^YTq0xXGzeR7#68WYTB=E6-GxByHV+gLpI+mUn zy$2A!5Acr+hnANKMV~b`^|^U{QMjAW^q9y9{Q?*sfINFjd?T#D)yudv9cyr8dr()FPT z&2Z3`(%-5JO42#)_xG?W=2xDG<0Fj;~UYbpHWRnK9jA7+hjx2@8k$wkHoh5 zOemXoo%Cmc9Hh$$y%KITq1&G=AdjpnrBk-wQnUE5rRcG87G|tUej$=66JE{L$FaL8 zCVEIrW0S=e>OUX>!Fl?W{Fi6v@OsLj*5i zW$omv_oEq^{AP$@a5yh$3OlI(iOt)fPi9AJ=bhHM#*yaE*4YnfmByVez)EoaE*^BE z65Vv3wokBV@slAn2U*d33rapkU06y16mm`G)mK@PaFDe0%*#_ap+tT`TJ**j`Dfft zeH9>{*@H6iVGo}GJSH~YYziraubzr7_iOV)>h?0r(~YPDeXE$W<35o=XWfX>=R?EO z3NUY>O=DOt)8qT9=Q%pkRAvQ6um$yFFl%|pv1ZM@DuGe%?;7dsm zh1`0o$xcL#7M10Hv>_eI|9JQ6Il-COk_~HuVdc~&@*H1e&s}b0K6&DBLk`gglp#0W zRvu;$cWszs|0Zh2oVqlu-`6@lD0`5&f>Wn_TnM-(AN@XIPOWz|xM-lSUyc?4PHWmh^C2X&euo|k2&PH!fHTtU8yI_21aD}i9Q2fbkWaf5pOBI; zm{T0__L9rMQK^B<;ipC_eO$A?>1+TSgJHrLsG_Zp?_lw0h59kqNmN<-H=SGl+AnGw z_C|D$9!2x z-o;>y>;~isV7=rn4jkuHiBrKpkL(Q}#u!CCi!1mwT}9y-*XDOqj~^zE({)wu5Kr+X zp$hcNQrg9Z5$TrD0vd>)5d*vgJl`GzE{hTI|c`!HK)8pWEgp za^sIiuR^{c62%>#`KwgHnrkWUPGhlgvZ$^EgaCs!Um0bI6A^3%G z$PB>^1*Dy97jvt{WO{f!Kxq1o5Z52D`4mvl$GTF4%3)u{l}X8eaSn%l`CWJ# z+1}vogTx_7I9E6F$^5TyJjtdw=DA*B4aWXMl%{J?Tp(A*(L`<&zNQr7wo`L|zh@Yf z99hOJzB&}yClxiCF+${AB`@r6$@Cp7pMk+;-1v?M95A{{hxJQ%DuMQ&xbMal3FD{6 zHBE;{6hw6TE>XXLr@12L^-&@FlH}Z2tJ8s30@pPtY1_Nr5sNEig_*;)@N!TIBu_!$WQg}h67Xw`#H3?6QP`WwCm?|1Uj*0S)i9?NH5PV zKW1j)&-!1~&xPQvPy2Doy6U?5o#ihotBBuDU3w3NXY#yKB|W8m(9y=qTPUbncI^w? zq-K)`h;!#2@E)B(f~>1nXrv>X^rR(~ak~>iC5vJ*liuhuXL^vftF?QVy!L zKt<< z1|y;aq%$3gL||}}IgLaU(p?L<>`eZ}?8XKA`kmDJEqY2lca21Bvg<)UFiEexN4&Rf z>wOlowVsQ(Kb83Kg?d_8+abW zY;!+hj-9{to{SrGnL_I^@E>wnpldQejJ1hYdIbItu^Jw_`&=eG2kxR z@IGLHJ`*l{9yfyxRqXnEhAuh(g=-NL|4fr3H?vN$ z(!S2Bj?jT;#UeH~1YH$ZB$4HxOkcW!r6M2bzESPxFHoJ~OHk>FeT57iC!no>^5FQC z_>l3i&jtpVz?^sD2P9p;9k*F?_`_C+^nmAW=Y!+-3~&2-YF@9`2APg+Q*$m{Adrf^ zRVL=sUtC_am($PZot&bS8SDH^McpSSoi^~yu!W#5umAt6w1el+lEah&(5=-;Iypf^ zi$06`F~irUr9rJy)d*@T98G~*pWqEvgN6OmT4AAra*Z);+SR8(J;sf2lt&7iMMj)W z7AZBB$kF(Zd`tWVS~ptPrW`csnTwOm8DIdbs`H8C!{dF=Dz+{N)r|O!n_ei95AZ>& zwIi60ahDr35dIHfrmTnJ%~F!$UtK#OdqW8}+5vBp!Lu~Yp`-&x^vrA$t8)GjCWvRy zDo+>J5Gm7sED4QCJaS@hbvT=67_R6ZNqJ3BEFM%yb6sN_0-Elm+g zkKije%b44j3216|CF@qNX#l$99~F;ueEwvBWwINNyzTo#|9fkhSyl*bQ^Yhc`Or!h z;Qij^bC29fpB&DfqQlO44ZR6qB(5%vEEpET|^KGsK@3!B5x=HqC_vPF3h69PSf zYz0)+Z0HODa~??ZHuy9#ivTs?q-62uGGdLxt$jWBpYby}{gqfV{ zME;Td6v0rB>-(~o)TbJ5`8$wZJ5Y$*W%JU0Fo=>|U7j0+I({GGl^zMOT z>HX%=FzW+a#n$f{{+e7dTw&o(yk-wg!o6^E=Do`lkccd0CZ#9{E^CjhJaHhU6xyu` z$m!pKxW;~Q`lnUAg-nXk^1S}t>auBg&Rvut7=ajRqlWq>i<+Nje%jh|O~U8`TlUhJNJhY!U5HI1k-8Tn(uHhrGn zR%DQ8AnX1e;9U3ZOVj2R8w&&A{A}R(&t2nHS}1en!=MZ)+JkJzON;n7r}3mRpe;~- zk1|9hV4zozfjw9aT@&}f5&@^xMy3W!zk2?xL{<4 z3B(u6(2~uD1Pt(z8Y^qvomu2t!lOwC2L*JpO+zL))BwF+iP`K8sB`Z{i+!O z{hcOV9V?2SyINUGoN+!dXs2A9zBI`zVU^ z<<^s%yZ@#FnGeuq?zDbBwvB!H%KDjGt7NH*YycnHGU++Q| zM)LlAHgecq@K1?8gQ309g_FriZu~hcF9_}6|ML02yIGe|{U=>Mfp!l5X3*DukzzIfn2%1t ctdZ+MF{u8`MzL@;fcKm`V}1Iaxogb-0j2+a@c;k- diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateInfo.plist b/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateInfo.plist deleted file mode 100755 index 7b8088f..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Spec Class.xctemplate/TemplateInfo.plist +++ /dev/null @@ -1,73 +0,0 @@ - - - - - Kind - Xcode.IDEKit.TextSubstitutionFileTemplateKind - Description - A class implementing a Quick spec. - Summary - A class implementing a Quick spec - SortOrder - 1 - BuildableType - Test - DefaultCompletionName - Spec - Options - - - Description - Name of the Quick spec class - Identifier - productName - Name - Spec Name: - NotPersisted - - Required - - Type - text - - - AllowedTypes - - Swift - - public.swift-source - - Objective-C - - public.objective-c-source - public.objective-c-plus-plus-source - - - Default - Swift - Description - The implementation language - Identifier - languageChoice - MainTemplateFiles - - Objective-C - ___FILEBASENAME___.m - Swift - ___FILEBASENAME___.swift - - Name - Language: - Required - Yes - Type - popup - Values - - Swift - Objective-C - - - - - diff --git a/Carthage/Checkouts/Quick/Quick.podspec b/Carthage/Checkouts/Quick/Quick.podspec deleted file mode 100644 index a0a2c21..0000000 --- a/Carthage/Checkouts/Quick/Quick.podspec +++ /dev/null @@ -1,38 +0,0 @@ -Pod::Spec.new do |s| - s.name = "Quick" - s.version = "1.1.0" - s.summary = "The Swift (and Objective-C) testing framework." - - s.description = <<-DESC - Quick is a behavior-driven development framework for Swift and Objective-C. Inspired by RSpec, Specta, and Ginkgo. - DESC - - s.homepage = "https://github.com/Quick/Quick" - s.license = { :type => "Apache 2.0", :file => "LICENSE" } - - s.author = "Quick Contributors" - s.ios.deployment_target = "7.0" - s.osx.deployment_target = "10.9" - s.tvos.deployment_target = '9.0' - - s.source = { :git => "https://github.com/Quick/Quick.git", :tag => "v#{s.version}" } - s.source_files = "Sources/**/*.{swift,h,m}" - - s.public_header_files = [ - 'Sources/QuickObjectiveC/Configuration/QuickConfiguration.h', - 'Sources/QuickObjectiveC/DSL/QCKDSL.h', - 'Sources/QuickObjectiveC/Quick.h', - 'Sources/QuickObjectiveC/QuickSpec.h', - ] - - s.exclude_files = [ - 'Sources/Quick/Configuration/QuickConfiguration.swift', - 'Sources/Quick/QuickSpec.swift', - 'Sources/Quick/QuickMain.swift', - ] - - s.framework = "XCTest" - s.requires_arc = true - s.user_target_xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '$(PLATFORM_DIR)/Developer/Library/Frameworks' } - s.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'NO' } -end diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj b/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj deleted file mode 100644 index bd37459..0000000 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2649 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 1F118CDF1BDCA4AB005013A2 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F118CD51BDCA4AB005013A2 /* Quick.framework */; }; - 1F118CF51BDCA4BB005013A2 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F118CD51BDCA4AB005013A2 /* Quick.framework */; }; - 1F118CFB1BDCA536005013A2 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE714FD19FF6A62005905B8 /* QuickConfiguration.m */; }; - 1F118CFC1BDCA536005013A2 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA169E4719FF5DF100619816 /* Configuration.swift */; }; - 1F118CFD1BDCA536005013A2 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E519FCAEE8002858A7 /* World+DSL.swift */; }; - 1F118CFE1BDCA536005013A2 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E219FCAEE8002858A7 /* DSL.swift */; }; - 1F118CFF1BDCA536005013A2 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E419FCAEE8002858A7 /* QCKDSL.m */; }; - 1F118D001BDCA536005013A2 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BDF19FF5599005DF92A /* Closures.swift */; }; - 1F118D011BDCA536005013A2 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BE019FF5599005DF92A /* ExampleHooks.swift */; }; - 1F118D021BDCA536005013A2 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BE119FF5599005DF92A /* SuiteHooks.swift */; }; - 1F118D031BDCA536005013A2 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A619515CA700CE1B99 /* World.swift */; }; - 1F118D041BDCA536005013A2 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759E19515CA700CE1B99 /* Example.swift */; }; - 1F118D051BDCA536005013A2 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA02C91819A8073100093156 /* ExampleMetadata.swift */; }; - 1F118D061BDCA536005013A2 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */; }; - 1F118D071BDCA536005013A2 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759C19515CA700CE1B99 /* Callsite.swift */; }; - 1F118D081BDCA536005013A2 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6B30171A4DB0D500FFB148 /* Filter.swift */; }; - 1F118D091BDCA536005013A2 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A519515CA700CE1B99 /* QuickSpec.m */; }; - 1F118D0C1BDCA543005013A2 /* QuickConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8C00201A01E4B900CE58A6 /* QuickConfigurationTests.m */; }; - 1F118D0D1BDCA547005013A2 /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; - 1F118D0E1BDCA547005013A2 /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; - 1F118D0F1BDCA54B005013A2 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91AD19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift */; }; - 1F118D101BDCA556005013A2 /* Configuration+AfterEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F619FF6812005905B8 /* Configuration+AfterEach.swift */; }; - 1F118D111BDCA556005013A2 /* Configuration+AfterEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F919FF682A005905B8 /* Configuration+AfterEachTests.swift */; }; - 1F118D121BDCA556005013A2 /* ItTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7AE6F019FC493F000AFDCE /* ItTests.swift */; }; - 1F118D131BDCA556005013A2 /* ItTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 479C31E11A36156E00DA8718 /* ItTests+ObjC.m */; }; - 1F118D141BDCA556005013A2 /* FailureTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919C19F31921006F6675 /* FailureTests+ObjC.m */; }; - 1F118D151BDCA556005013A2 /* FailureUsingXCTAssertTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8940EF1B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m */; }; - 1F118D161BDCA556005013A2 /* BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA87078219F48775008C04AC /* BeforeEachTests.swift */; }; - 1F118D171BDCA556005013A2 /* BeforeEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 47FAEA341A3F45ED005A1D2F /* BeforeEachTests+ObjC.m */; }; - 1F118D181BDCA556005013A2 /* AfterEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA05D60F19F73A3800771050 /* AfterEachTests.swift */; }; - 1F118D191BDCA556005013A2 /* AfterEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 470D6EC91A43409600043E50 /* AfterEachTests+ObjC.m */; }; - 1F118D1A1BDCA556005013A2 /* PendingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA63EA219F7637300CD0A3B /* PendingTests.swift */; }; - 1F118D1B1BDCA556005013A2 /* PendingTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4715903F1A488F3F00FBA644 /* PendingTests+ObjC.m */; }; - 1F118D1C1BDCA556005013A2 /* BeforeSuiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91A419F3208B006F6675 /* BeforeSuiteTests.swift */; }; - 1F118D1D1BDCA556005013A2 /* BeforeSuiteTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 47876F7B1A4999B0002575C7 /* BeforeSuiteTests+ObjC.m */; }; - 1F118D201BDCA556005013A2 /* SharedExamplesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91AA19F3299E006F6675 /* SharedExamplesTests.swift */; }; - 1F118D211BDCA556005013A2 /* SharedExamplesTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4728253A1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m */; }; - 1F118D221BDCA556005013A2 /* SharedExamples+BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAB0136E19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift */; }; - 1F118D231BDCA556005013A2 /* SharedExamples+BeforeEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4748E8931A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m */; }; - 1F118D241BDCA561005013A2 /* FocusedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9876BF1A4C87200004AA17 /* FocusedTests.swift */; }; - 1F118D251BDCA561005013A2 /* FocusedTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */; }; - 1F118D261BDCA5AF005013A2 /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC81B110699006F61EC /* World+DSL.h */; }; - 1F118D271BDCA5AF005013A2 /* World.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC21B1105BC006F61EC /* World.h */; }; - 1F118D291BDCA5B6005013A2 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE714FC19FF6A62005905B8 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F118D2A1BDCA5B6005013A2 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3124E319FCAEE8002858A7 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F118D2B1BDCA5B6005013A2 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB6B931943873100289F44 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F118D2C1BDCA5B6005013A2 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A419515CA700CE1B99 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F118D351BDCA657005013A2 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F118D341BDCA657005013A2 /* Nimble.framework */; }; - 1F118D371BDCA65C005013A2 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F118D361BDCA65C005013A2 /* Nimble.framework */; }; - 1F118D381BDCA6E1005013A2 /* Configuration+BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714EF19FF65D3005905B8 /* Configuration+BeforeEachTests.swift */; }; - 1F118D391BDCA6E6005013A2 /* Configuration+BeforeEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F219FF65E7005905B8 /* Configuration+BeforeEach.swift */; }; - 1FD0CFAD1AFA0B8C00874CC1 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8100E901A1E4447007595ED /* Nimble.framework */; }; - 34C586011C4ABD3F00D4F057 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */; }; - 34C586021C4ABD3F00D4F057 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */; }; - 34C586031C4ABD4000D4F057 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */; }; - 34C586041C4ABD4000D4F057 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */; }; - 34C586051C4ABD4100D4F057 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */; }; - 34C586061C4ABD4100D4F057 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */; }; - 34C586081C4AC5E500D4F057 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C586071C4AC5E500D4F057 /* ErrorUtility.swift */; }; - 34C586091C4AC5E500D4F057 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C586071C4AC5E500D4F057 /* ErrorUtility.swift */; }; - 34C5860A1C4AC5E500D4F057 /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C586071C4AC5E500D4F057 /* ErrorUtility.swift */; }; - 34F375A719515CA700CE1B99 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759C19515CA700CE1B99 /* Callsite.swift */; }; - 34F375A819515CA700CE1B99 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759C19515CA700CE1B99 /* Callsite.swift */; }; - 34F375AB19515CA700CE1B99 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759E19515CA700CE1B99 /* Example.swift */; }; - 34F375AC19515CA700CE1B99 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759E19515CA700CE1B99 /* Example.swift */; }; - 34F375AD19515CA700CE1B99 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */; }; - 34F375AE19515CA700CE1B99 /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */; }; - 34F375B719515CA700CE1B99 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A419515CA700CE1B99 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34F375B819515CA700CE1B99 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F375A419515CA700CE1B99 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34F375B919515CA700CE1B99 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A519515CA700CE1B99 /* QuickSpec.m */; }; - 34F375BA19515CA700CE1B99 /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A519515CA700CE1B99 /* QuickSpec.m */; }; - 34F375BB19515CA700CE1B99 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A619515CA700CE1B99 /* World.swift */; }; - 34F375BC19515CA700CE1B99 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34F375A619515CA700CE1B99 /* World.swift */; }; - 470D6ECB1A43442400043E50 /* AfterEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 470D6EC91A43409600043E50 /* AfterEachTests+ObjC.m */; }; - 470D6ECC1A43442900043E50 /* AfterEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 470D6EC91A43409600043E50 /* AfterEachTests+ObjC.m */; }; - 471590401A488F3F00FBA644 /* PendingTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4715903F1A488F3F00FBA644 /* PendingTests+ObjC.m */; }; - 471590411A488F3F00FBA644 /* PendingTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4715903F1A488F3F00FBA644 /* PendingTests+ObjC.m */; }; - 4728253B1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4728253A1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m */; }; - 4728253C1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4728253A1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m */; }; - 4748E8941A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4748E8931A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m */; }; - 4748E8951A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4748E8931A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m */; }; - 47876F7D1A49AD63002575C7 /* BeforeSuiteTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 47876F7B1A4999B0002575C7 /* BeforeSuiteTests+ObjC.m */; }; - 47876F7E1A49AD71002575C7 /* BeforeSuiteTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 47876F7B1A4999B0002575C7 /* BeforeSuiteTests+ObjC.m */; }; - 479C31E31A36171B00DA8718 /* ItTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 479C31E11A36156E00DA8718 /* ItTests+ObjC.m */; }; - 479C31E41A36172700DA8718 /* ItTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 479C31E11A36156E00DA8718 /* ItTests+ObjC.m */; }; - 47FAEA361A3F49E6005A1D2F /* BeforeEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 47FAEA341A3F45ED005A1D2F /* BeforeEachTests+ObjC.m */; }; - 47FAEA371A3F49EB005A1D2F /* BeforeEachTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 47FAEA341A3F45ED005A1D2F /* BeforeEachTests+ObjC.m */; }; - 5A5D118719473F2100F6D13D /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A5D117C19473F2100F6D13D /* Quick.framework */; }; - 5A5D11A7194740E000F6D13D /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB6B931943873100289F44 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64076CEF1D6D7C2000E2B499 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAEB6B8E1943873100289F44 /* Quick.framework */; }; - 64076CF01D6D7C2000E2B499 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8100E901A1E4447007595ED /* Nimble.framework */; }; - 64076D021D6D7CD600E2B499 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A5D117C19473F2100F6D13D /* Quick.framework */; }; - 64076D031D6D7CD600E2B499 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8100E901A1E4447007595ED /* Nimble.framework */; }; - 64076D141D6D7CEA00E2B499 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F118CD51BDCA4AB005013A2 /* Quick.framework */; }; - 64076D151D6D7CEA00E2B499 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F118D361BDCA65C005013A2 /* Nimble.framework */; }; - 64076D211D6D7E4D00E2B499 /* AfterSuiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64076D1D1D6D7D0B00E2B499 /* AfterSuiteTests.swift */; }; - 64076D221D6D7E5B00E2B499 /* AfterSuiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64076D1D1D6D7D0B00E2B499 /* AfterSuiteTests.swift */; }; - 64076D231D6D7E6B00E2B499 /* AfterSuiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64076D1D1D6D7D0B00E2B499 /* AfterSuiteTests.swift */; }; - 64076D261D6D80B500E2B499 /* AfterSuiteTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 64076D241D6D80B500E2B499 /* AfterSuiteTests+ObjC.m */; }; - 64076D271D6D80B500E2B499 /* AfterSuiteTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 64076D241D6D80B500E2B499 /* AfterSuiteTests+ObjC.m */; }; - 7B44ADBE1C5444940007AF2E /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B44ADBD1C5444940007AF2E /* HooksPhase.swift */; }; - 7B44ADBF1C5444940007AF2E /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B44ADBD1C5444940007AF2E /* HooksPhase.swift */; }; - 7B44ADC01C5444940007AF2E /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B44ADBD1C5444940007AF2E /* HooksPhase.swift */; }; - 7B5358CE1C3D4FBC00A23FAA /* ContextTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358CA1C3D4E2A00A23FAA /* ContextTests.swift */; }; - 7B5358CF1C3D4FBE00A23FAA /* ContextTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358CA1C3D4E2A00A23FAA /* ContextTests.swift */; }; - 7B5358D01C3D4FC000A23FAA /* ContextTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358CA1C3D4E2A00A23FAA /* ContextTests.swift */; }; - 8D010A571C11726F00633E2B /* DescribeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D010A561C11726F00633E2B /* DescribeTests.swift */; }; - 8D010A581C11726F00633E2B /* DescribeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D010A561C11726F00633E2B /* DescribeTests.swift */; }; - 8D010A591C11726F00633E2B /* DescribeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D010A561C11726F00633E2B /* DescribeTests.swift */; }; - 96327C631C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */ = {isa = PBXBuildFile; fileRef = 96327C611C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h */; }; - 96327C641C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */ = {isa = PBXBuildFile; fileRef = 96327C611C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h */; }; - 96327C651C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */ = {isa = PBXBuildFile; fileRef = 96327C611C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h */; }; - 96327C661C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */ = {isa = PBXBuildFile; fileRef = 96327C621C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m */; }; - 96327C671C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */ = {isa = PBXBuildFile; fileRef = 96327C621C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m */; }; - 96327C681C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */ = {isa = PBXBuildFile; fileRef = 96327C621C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m */; }; - AE4E58131C73097A00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */; }; - AE4E58141C73097A00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */; }; - AE4E58151C73097C00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */; }; - AE4E58161C73097C00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */; }; - AE4E58171C73097E00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */; }; - AE4E58181C73097E00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */; }; - AED9C8631CC8A7BD00432F62 /* CrossReferencingSpecs.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */; }; - AED9C8641CC8A7BD00432F62 /* CrossReferencingSpecs.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */; }; - AED9C8651CC8A7BD00432F62 /* CrossReferencingSpecs.swift in Sources */ = {isa = PBXBuildFile; fileRef = AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */; }; - CD264DBD1DDA147A0038B0EB /* AfterSuiteTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = 64076D241D6D80B500E2B499 /* AfterSuiteTests+ObjC.m */; }; - CE57CEDD1C430BD200D63004 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */; }; - CE57CEDE1C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */; }; - CE57CEDF1C430BD200D63004 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */; }; - CE57CEE01C430BD200D63004 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDB1C430BD200D63004 /* URL+FileName.swift */; }; - CE57CEE11C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDC1C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m */; }; - CE590E1A1C431FE300253D19 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */; }; - CE590E1B1C431FE300253D19 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */; }; - CE590E1C1C431FE300253D19 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */; }; - CE590E1D1C431FE300253D19 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDB1C430BD200D63004 /* URL+FileName.swift */; }; - CE590E1E1C431FE300253D19 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDC1C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m */; }; - CE590E1F1C431FE400253D19 /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */; }; - CE590E201C431FE400253D19 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */; }; - CE590E211C431FE400253D19 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */; }; - CE590E221C431FE400253D19 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDB1C430BD200D63004 /* URL+FileName.swift */; }; - CE590E231C431FE400253D19 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE57CEDC1C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m */; }; - DA02C91919A8073100093156 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA02C91819A8073100093156 /* ExampleMetadata.swift */; }; - DA02C91A19A8073100093156 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA02C91819A8073100093156 /* ExampleMetadata.swift */; }; - DA05D61019F73A3800771050 /* AfterEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA05D60F19F73A3800771050 /* AfterEachTests.swift */; }; - DA05D61119F73A3800771050 /* AfterEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA05D60F19F73A3800771050 /* AfterEachTests.swift */; }; - DA07722E1A4E5B7B0098839D /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; - DA07722F1A4E5B7C0098839D /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; - DA169E4819FF5DF100619816 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA169E4719FF5DF100619816 /* Configuration.swift */; }; - DA169E4919FF5DF100619816 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA169E4719FF5DF100619816 /* Configuration.swift */; }; - DA3124E619FCAEE8002858A7 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E219FCAEE8002858A7 /* DSL.swift */; }; - DA3124E719FCAEE8002858A7 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E219FCAEE8002858A7 /* DSL.swift */; }; - DA3124E819FCAEE8002858A7 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3124E319FCAEE8002858A7 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA3124E919FCAEE8002858A7 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3124E319FCAEE8002858A7 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA3124EA19FCAEE8002858A7 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E419FCAEE8002858A7 /* QCKDSL.m */; }; - DA3124EB19FCAEE8002858A7 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E419FCAEE8002858A7 /* QCKDSL.m */; }; - DA3124EC19FCAEE8002858A7 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E519FCAEE8002858A7 /* World+DSL.swift */; }; - DA3124ED19FCAEE8002858A7 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3124E519FCAEE8002858A7 /* World+DSL.swift */; }; - DA3E7A341A1E66C600CCE408 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8100E901A1E4447007595ED /* Nimble.framework */; }; - DA3E7A351A1E66CB00CCE408 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8100E901A1E4447007595ED /* Nimble.framework */; }; - DA408BE219FF5599005DF92A /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BDF19FF5599005DF92A /* Closures.swift */; }; - DA408BE319FF5599005DF92A /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BDF19FF5599005DF92A /* Closures.swift */; }; - DA408BE419FF5599005DF92A /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BE019FF5599005DF92A /* ExampleHooks.swift */; }; - DA408BE519FF5599005DF92A /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BE019FF5599005DF92A /* ExampleHooks.swift */; }; - DA408BE619FF5599005DF92A /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BE119FF5599005DF92A /* SuiteHooks.swift */; }; - DA408BE719FF5599005DF92A /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA408BE119FF5599005DF92A /* SuiteHooks.swift */; }; - DA5663EE1A4C8D8500193C88 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAEB6B8E1943873100289F44 /* Quick.framework */; }; - DA5663F41A4C8D9A00193C88 /* FocusedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9876BF1A4C87200004AA17 /* FocusedTests.swift */; }; - DA6B30181A4DB0D500FFB148 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6B30171A4DB0D500FFB148 /* Filter.swift */; }; - DA6B30191A4DB0D500FFB148 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6B30171A4DB0D500FFB148 /* Filter.swift */; }; - DA7AE6F119FC493F000AFDCE /* ItTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7AE6F019FC493F000AFDCE /* ItTests.swift */; }; - DA7AE6F219FC493F000AFDCE /* ItTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7AE6F019FC493F000AFDCE /* ItTests.swift */; }; - DA8940F01B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8940EF1B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m */; }; - DA8940F11B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8940EF1B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m */; }; - DA8C00211A01E4B900CE58A6 /* QuickConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8C00201A01E4B900CE58A6 /* QuickConfigurationTests.m */; }; - DA8C00221A01E4B900CE58A6 /* QuickConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8C00201A01E4B900CE58A6 /* QuickConfigurationTests.m */; }; - DA8F919919F31680006F6675 /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; - DA8F919A19F31680006F6675 /* QCKSpecRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919619F31680006F6675 /* QCKSpecRunner.m */; }; - DA8F919D19F31921006F6675 /* FailureTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919C19F31921006F6675 /* FailureTests+ObjC.m */; }; - DA8F919E19F31921006F6675 /* FailureTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8F919C19F31921006F6675 /* FailureTests+ObjC.m */; }; - DA8F91A519F3208B006F6675 /* BeforeSuiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91A419F3208B006F6675 /* BeforeSuiteTests.swift */; }; - DA8F91A619F3208B006F6675 /* BeforeSuiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91A419F3208B006F6675 /* BeforeSuiteTests.swift */; }; - DA8F91AB19F3299E006F6675 /* SharedExamplesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91AA19F3299E006F6675 /* SharedExamplesTests.swift */; }; - DA8F91AC19F3299E006F6675 /* SharedExamplesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91AA19F3299E006F6675 /* SharedExamplesTests.swift */; }; - DA8F91AE19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91AD19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift */; }; - DA8F91AF19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA8F91AD19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift */; }; - DA9876B81A4C70EB0004AA17 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A5D117C19473F2100F6D13D /* Quick.framework */; }; - DA9876C11A4C87200004AA17 /* FocusedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9876BF1A4C87200004AA17 /* FocusedTests.swift */; }; - DAA63EA319F7637300CD0A3B /* PendingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA63EA219F7637300CD0A3B /* PendingTests.swift */; }; - DAA63EA419F7637300CD0A3B /* PendingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA63EA219F7637300CD0A3B /* PendingTests.swift */; }; - DAA7C0D719F777EB0093D1D9 /* BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA87078219F48775008C04AC /* BeforeEachTests.swift */; }; - DAB0136F19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAB0136E19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift */; }; - DAB0137019FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAB0136E19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift */; }; - DAB067E919F7801C00F970AC /* BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA87078219F48775008C04AC /* BeforeEachTests.swift */; }; - DAD297651AA8129D001D25CD /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8100E901A1E4447007595ED /* Nimble.framework */; }; - DAE714F019FF65D3005905B8 /* Configuration+BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714EF19FF65D3005905B8 /* Configuration+BeforeEachTests.swift */; }; - DAE714F119FF65D3005905B8 /* Configuration+BeforeEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714EF19FF65D3005905B8 /* Configuration+BeforeEachTests.swift */; }; - DAE714F319FF65E7005905B8 /* Configuration+BeforeEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F219FF65E7005905B8 /* Configuration+BeforeEach.swift */; }; - DAE714F419FF65E7005905B8 /* Configuration+BeforeEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F219FF65E7005905B8 /* Configuration+BeforeEach.swift */; }; - DAE714F719FF6812005905B8 /* Configuration+AfterEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F619FF6812005905B8 /* Configuration+AfterEach.swift */; }; - DAE714F819FF6812005905B8 /* Configuration+AfterEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F619FF6812005905B8 /* Configuration+AfterEach.swift */; }; - DAE714FA19FF682A005905B8 /* Configuration+AfterEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F919FF682A005905B8 /* Configuration+AfterEachTests.swift */; }; - DAE714FB19FF682A005905B8 /* Configuration+AfterEachTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE714F919FF682A005905B8 /* Configuration+AfterEachTests.swift */; }; - DAE714FE19FF6A62005905B8 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE714FC19FF6A62005905B8 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE714FF19FF6A62005905B8 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE714FC19FF6A62005905B8 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE7150019FF6A62005905B8 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE714FD19FF6A62005905B8 /* QuickConfiguration.m */; }; - DAE7150119FF6A62005905B8 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE714FD19FF6A62005905B8 /* QuickConfiguration.m */; }; - DAEB6B941943873100289F44 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB6B931943873100289F44 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAEB6B9A1943873100289F44 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAEB6B8E1943873100289F44 /* Quick.framework */; }; - DAED1EC41B1105BC006F61EC /* World.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC21B1105BC006F61EC /* World.h */; }; - DAED1EC51B1105BC006F61EC /* World.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC21B1105BC006F61EC /* World.h */; }; - DAED1ECA1B110699006F61EC /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC81B110699006F61EC /* World+DSL.h */; }; - DAED1ECB1B110699006F61EC /* World+DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED1EC81B110699006F61EC /* World+DSL.h */; }; - DAF28BC31A4DB8EC00A5D9BF /* FocusedTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */; }; - DAF28BC41A4DB8EC00A5D9BF /* FocusedTests+ObjC.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */; }; - DED3036B1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */; }; - DED3036C1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */; }; - DED3036D1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */; }; - DED3037D1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */; }; - DED3037E1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */; }; - DED3037F1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 047655511949F4CB00B288BB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 047655531949F4CB00B288BB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04765555194A327000B288BB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC97E4194B4A6000CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC97E6194B4A6000CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC97E8194B4B7E00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC97EA194B4B9B00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC97F0194B82DB00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC97F2194B82DE00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC97F6194B831200CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC97F8194B834000CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC97FA194B834100CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC97FC194B834B00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC97FE194B835E00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC9800194B836100CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC9802194B836300CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC9804194B838400CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 04DC9806194B838700CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 04DC9808194B838B00CE00B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - 1F118CE01BDCA4AB005013A2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F118CD41BDCA4AB005013A2; - remoteInfo = "Quick-tvOS"; - }; - 1F118CF61BDCA4BB005013A2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F118CD41BDCA4AB005013A2; - remoteInfo = "Quick-tvOS"; - }; - 5A5D118819473F2100F6D13D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 5A5D11EF194741B500F6D13D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 5A5D11F1194741B500F6D13D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 64076CE71D6D7C2000E2B499 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = "Quick-OSX"; - }; - 64076CFA1D6D7CD600E2B499 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - 64076D0C1D6D7CEA00E2B499 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F118CD41BDCA4AB005013A2; - remoteInfo = "Quick-tvOS"; - }; - 93625F381951DDC8006B1FE1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; - DA5663EF1A4C8D8500193C88 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = "Quick-OSX"; - }; - DA9876B91A4C70EB0004AA17 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5A5D117B19473F2100F6D13D; - remoteInfo = "Quick-iOS"; - }; - DAEB6B9B1943873100289F44 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DAEB6B851943873100289F44 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAEB6B8D1943873100289F44; - remoteInfo = Quick; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1F118CD51BDCA4AB005013A2 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F118CDE1BDCA4AB005013A2 /* Quick - tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick - tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F118CF01BDCA4BB005013A2 /* QuickFocused - tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused - tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F118D341BDCA657005013A2 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Externals/Nimble/build/Debug-appletvos/Nimble.framework"; sourceTree = ""; }; - 1F118D361BDCA65C005013A2 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Externals/Nimble/build/Debug-appletvos/Nimble.framework"; sourceTree = ""; }; - 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = XCTestCaseProvider.swift; path = ../../QuickTestHelpers/XCTestCaseProvider.swift; sourceTree = ""; }; - 34C586071C4AC5E500D4F057 /* ErrorUtility.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ErrorUtility.swift; sourceTree = ""; }; - 34F3759C19515CA700CE1B99 /* Callsite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Callsite.swift; sourceTree = ""; }; - 34F3759E19515CA700CE1B99 /* Example.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; - 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExampleGroup.swift; sourceTree = ""; }; - 34F375A419515CA700CE1B99 /* QuickSpec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuickSpec.h; sourceTree = ""; }; - 34F375A519515CA700CE1B99 /* QuickSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuickSpec.m; sourceTree = ""; }; - 34F375A619515CA700CE1B99 /* World.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = World.swift; sourceTree = ""; }; - 470D6EC91A43409600043E50 /* AfterEachTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AfterEachTests+ObjC.m"; sourceTree = ""; }; - 4715903F1A488F3F00FBA644 /* PendingTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "PendingTests+ObjC.m"; sourceTree = ""; }; - 4728253A1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SharedExamplesTests+ObjC.m"; sourceTree = ""; }; - 4748E8931A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SharedExamples+BeforeEachTests+ObjC.m"; sourceTree = ""; }; - 47876F7B1A4999B0002575C7 /* BeforeSuiteTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BeforeSuiteTests+ObjC.m"; sourceTree = ""; }; - 479C31E11A36156E00DA8718 /* ItTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ItTests+ObjC.m"; sourceTree = ""; }; - 47FAEA341A3F45ED005A1D2F /* BeforeEachTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BeforeEachTests+ObjC.m"; sourceTree = ""; }; - 5A5D117C19473F2100F6D13D /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5A5D118619473F2100F6D13D /* Quick - iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick - iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076CF51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite - macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076D081D6D7CD600E2B499 /* QuickAfterSuite - iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite - iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickAfterSuite - tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64076D1D1D6D7D0B00E2B499 /* AfterSuiteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AfterSuiteTests.swift; sourceTree = ""; }; - 64076D241D6D80B500E2B499 /* AfterSuiteTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AfterSuiteTests+ObjC.m"; sourceTree = ""; }; - 7B44ADBD1C5444940007AF2E /* HooksPhase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HooksPhase.swift; sourceTree = ""; }; - 7B5358CA1C3D4E2A00A23FAA /* ContextTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContextTests.swift; sourceTree = ""; }; - 8D010A561C11726F00633E2B /* DescribeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DescribeTests.swift; sourceTree = ""; }; - 96327C611C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "QuickSpec+QuickSpec_MethodList.h"; sourceTree = ""; }; - 96327C621C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "QuickSpec+QuickSpec_MethodList.m"; sourceTree = ""; }; - AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XCTestObservationCenter+QCKSuspendObservation.m"; sourceTree = ""; }; - AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossReferencingSpecs.swift; sourceTree = ""; }; - CD261AC81DEC8B0000A8863C /* QuickConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickConfiguration.swift; sourceTree = ""; }; - CD3451461E4703D4000C8633 /* QuickMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickMain.swift; sourceTree = ""; }; - CD3451471E4703D4000C8633 /* QuickSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickSpec.swift; sourceTree = ""; }; - CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSBundle+CurrentTestBundle.swift"; sourceTree = ""; }; - CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickSelectedTestSuiteBuilder.swift; sourceTree = ""; }; - CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuickTestSuite.swift; sourceTree = ""; }; - CE57CEDB1C430BD200D63004 /* URL+FileName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "URL+FileName.swift"; sourceTree = ""; }; - CE57CEDC1C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XCTestSuite+QuickTestSuiteBuilder.m"; sourceTree = ""; }; - DA02C91819A8073100093156 /* ExampleMetadata.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExampleMetadata.swift; sourceTree = ""; }; - DA05D60F19F73A3800771050 /* AfterEachTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AfterEachTests.swift; sourceTree = ""; }; - DA169E4719FF5DF100619816 /* Configuration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; - DA3124E219FCAEE8002858A7 /* DSL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - DA3124E319FCAEE8002858A7 /* QCKDSL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QCKDSL.h; sourceTree = ""; }; - DA3124E419FCAEE8002858A7 /* QCKDSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QCKDSL.m; sourceTree = ""; }; - DA3124E519FCAEE8002858A7 /* World+DSL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "World+DSL.swift"; sourceTree = ""; }; - DA408BDF19FF5599005DF92A /* Closures.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Closures.swift; sourceTree = ""; }; - DA408BE019FF5599005DF92A /* ExampleHooks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExampleHooks.swift; sourceTree = ""; }; - DA408BE119FF5599005DF92A /* SuiteHooks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuiteHooks.swift; sourceTree = ""; }; - DA5663E81A4C8D8500193C88 /* QuickFocused - macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused - macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - DA6B30171A4DB0D500FFB148 /* Filter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; - DA7AE6F019FC493F000AFDCE /* ItTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItTests.swift; sourceTree = ""; }; - DA87078219F48775008C04AC /* BeforeEachTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeforeEachTests.swift; sourceTree = ""; }; - DA8940EF1B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "FailureUsingXCTAssertTests+ObjC.m"; sourceTree = ""; }; - DA8C00201A01E4B900CE58A6 /* QuickConfigurationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuickConfigurationTests.m; sourceTree = ""; }; - DA8F919519F31680006F6675 /* QCKSpecRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QCKSpecRunner.h; sourceTree = ""; }; - DA8F919619F31680006F6675 /* QCKSpecRunner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QCKSpecRunner.m; sourceTree = ""; }; - DA8F919719F31680006F6675 /* QuickTestsBridgingHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuickTestsBridgingHeader.h; sourceTree = ""; }; - DA8F919819F31680006F6675 /* XCTestObservationCenter+QCKSuspendObservation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "XCTestObservationCenter+QCKSuspendObservation.h"; sourceTree = ""; }; - DA8F919C19F31921006F6675 /* FailureTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "FailureTests+ObjC.m"; sourceTree = ""; }; - DA8F91A419F3208B006F6675 /* BeforeSuiteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeforeSuiteTests.swift; sourceTree = ""; }; - DA8F91AA19F3299E006F6675 /* SharedExamplesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharedExamplesTests.swift; sourceTree = ""; }; - DA8F91AD19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FunctionalTests_SharedExamplesTests_SharedExamples.swift; sourceTree = ""; }; - DA9876B21A4C70EB0004AA17 /* QuickFocused - iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "QuickFocused - iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - DA9876BF1A4C87200004AA17 /* FocusedTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FocusedTests.swift; sourceTree = ""; }; - DA9876C01A4C87200004AA17 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DAA63EA219F7637300CD0A3B /* PendingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingTests.swift; sourceTree = ""; }; - DAB0136E19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedExamples+BeforeEachTests.swift"; sourceTree = ""; }; - DAE714EF19FF65D3005905B8 /* Configuration+BeforeEachTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Configuration+BeforeEachTests.swift"; sourceTree = ""; }; - DAE714F219FF65E7005905B8 /* Configuration+BeforeEach.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Configuration+BeforeEach.swift"; sourceTree = ""; }; - DAE714F619FF6812005905B8 /* Configuration+AfterEach.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Configuration+AfterEach.swift"; sourceTree = ""; }; - DAE714F919FF682A005905B8 /* Configuration+AfterEachTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Configuration+AfterEachTests.swift"; sourceTree = ""; }; - DAE714FC19FF6A62005905B8 /* QuickConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuickConfiguration.h; sourceTree = ""; }; - DAE714FD19FF6A62005905B8 /* QuickConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuickConfiguration.m; sourceTree = ""; }; - DAEB6B8E1943873100289F44 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DAEB6B921943873100289F44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DAEB6B931943873100289F44 /* Quick.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Quick.h; sourceTree = ""; }; - DAEB6B991943873100289F44 /* Quick - macOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quick - macOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - DAEB6B9F1943873100289F44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DAED1EC21B1105BC006F61EC /* World.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = World.h; sourceTree = ""; }; - DAED1EC81B110699006F61EC /* World+DSL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "World+DSL.h"; sourceTree = ""; }; - DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "FocusedTests+ObjC.m"; sourceTree = ""; }; - DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSString+C99ExtendedIdentifier.swift"; sourceTree = ""; }; - DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BundleModuleNameTests.swift; sourceTree = ""; }; - F8100E901A1E4447007595ED /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1F118CD11BDCA4AB005013A2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F118CDB1BDCA4AB005013A2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F118CDF1BDCA4AB005013A2 /* Quick.framework in Frameworks */, - 1F118D351BDCA657005013A2 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F118CED1BDCA4BB005013A2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F118CF51BDCA4BB005013A2 /* Quick.framework in Frameworks */, - 1F118D371BDCA65C005013A2 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D117819473F2100F6D13D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D118319473F2100F6D13D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5A5D118719473F2100F6D13D /* Quick.framework in Frameworks */, - DA3E7A351A1E66CB00CCE408 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076CEE1D6D7C2000E2B499 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 64076CEF1D6D7C2000E2B499 /* Quick.framework in Frameworks */, - 64076CF01D6D7C2000E2B499 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076D011D6D7CD600E2B499 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 64076D021D6D7CD600E2B499 /* Quick.framework in Frameworks */, - 64076D031D6D7CD600E2B499 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076D131D6D7CEA00E2B499 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 64076D141D6D7CEA00E2B499 /* Quick.framework in Frameworks */, - 64076D151D6D7CEA00E2B499 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DA5663E51A4C8D8500193C88 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DA5663EE1A4C8D8500193C88 /* Quick.framework in Frameworks */, - 1FD0CFAD1AFA0B8C00874CC1 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DA9876AF1A4C70EB0004AA17 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DA9876B81A4C70EB0004AA17 /* Quick.framework in Frameworks */, - DAD297651AA8129D001D25CD /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B8A1943873100289F44 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B961943873100289F44 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DA3E7A341A1E66C600CCE408 /* Nimble.framework in Frameworks */, - DAEB6B9A1943873100289F44 /* Quick.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1F118D331BDCA645005013A2 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1F118D361BDCA65C005013A2 /* Nimble.framework */, - 1F118D341BDCA657005013A2 /* Nimble.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 64076D1C1D6D7D0B00E2B499 /* QuickAfterSuiteTests */ = { - isa = PBXGroup; - children = ( - 64076D1D1D6D7D0B00E2B499 /* AfterSuiteTests.swift */, - 64076D241D6D80B500E2B499 /* AfterSuiteTests+ObjC.m */, - ); - name = QuickAfterSuiteTests; - path = Tests/QuickTests/QuickAfterSuiteTests; - sourceTree = ""; - }; - 6C3983EE1D1E930D00637469 /* QuickObjectiveC */ = { - isa = PBXGroup; - children = ( - 6C3983EF1D1E93B700637469 /* Configuration */, - 6C3983F01D1E93CE00637469 /* DSL */, - DAEB6B931943873100289F44 /* Quick.h */, - DAED1EC21B1105BC006F61EC /* World.h */, - 34F375A419515CA700CE1B99 /* QuickSpec.h */, - 34F375A519515CA700CE1B99 /* QuickSpec.m */, - CE57CEDC1C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m */, - ); - name = QuickObjectiveC; - path = Sources/QuickObjectiveC; - sourceTree = ""; - }; - 6C3983EF1D1E93B700637469 /* Configuration */ = { - isa = PBXGroup; - children = ( - DAE714FC19FF6A62005905B8 /* QuickConfiguration.h */, - DAE714FD19FF6A62005905B8 /* QuickConfiguration.m */, - ); - path = Configuration; - sourceTree = ""; - }; - 6C3983F01D1E93CE00637469 /* DSL */ = { - isa = PBXGroup; - children = ( - DAED1EC81B110699006F61EC /* World+DSL.h */, - DA3124E319FCAEE8002858A7 /* QCKDSL.h */, - DA3124E419FCAEE8002858A7 /* QCKDSL.m */, - ); - path = DSL; - sourceTree = ""; - }; - CDB2AA5E1D6C84CF005600C3 /* ObjC */ = { - isa = PBXGroup; - children = ( - 470D6EC91A43409600043E50 /* AfterEachTests+ObjC.m */, - 47FAEA341A3F45ED005A1D2F /* BeforeEachTests+ObjC.m */, - 47876F7B1A4999B0002575C7 /* BeforeSuiteTests+ObjC.m */, - DA8F919C19F31921006F6675 /* FailureTests+ObjC.m */, - DA8940EF1B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m */, - 479C31E11A36156E00DA8718 /* ItTests+ObjC.m */, - 4715903F1A488F3F00FBA644 /* PendingTests+ObjC.m */, - 4748E8931A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m */, - 4728253A1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m */, - ); - path = ObjC; - sourceTree = ""; - }; - DA169E4619FF5DF100619816 /* Configuration */ = { - isa = PBXGroup; - children = ( - DA169E4719FF5DF100619816 /* Configuration.swift */, - CD261AC81DEC8B0000A8863C /* QuickConfiguration.swift */, - ); - path = Configuration; - sourceTree = ""; - }; - DA3124E119FCAEE8002858A7 /* DSL */ = { - isa = PBXGroup; - children = ( - DA3124E519FCAEE8002858A7 /* World+DSL.swift */, - DA3124E219FCAEE8002858A7 /* DSL.swift */, - ); - path = DSL; - sourceTree = ""; - }; - DA408BDE19FF5599005DF92A /* Hooks */ = { - isa = PBXGroup; - children = ( - DA408BDF19FF5599005DF92A /* Closures.swift */, - DA408BE019FF5599005DF92A /* ExampleHooks.swift */, - DA408BE119FF5599005DF92A /* SuiteHooks.swift */, - 7B44ADBD1C5444940007AF2E /* HooksPhase.swift */, - ); - path = Hooks; - sourceTree = ""; - }; - DA8F919419F31680006F6675 /* Helpers */ = { - isa = PBXGroup; - children = ( - DA8F919719F31680006F6675 /* QuickTestsBridgingHeader.h */, - DA8F919519F31680006F6675 /* QCKSpecRunner.h */, - DA8F919619F31680006F6675 /* QCKSpecRunner.m */, - 34ACFB7B1C34859300942064 /* XCTestCaseProvider.swift */, - DA8F919819F31680006F6675 /* XCTestObservationCenter+QCKSuspendObservation.h */, - 96327C611C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h */, - 96327C621C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m */, - AEB080BB1C72F028004917D3 /* XCTestObservationCenter+QCKSuspendObservation.m */, - ); - path = Helpers; - sourceTree = ""; - }; - DA8F919B19F3189D006F6675 /* FunctionalTests */ = { - isa = PBXGroup; - children = ( - DAE714E919FF65A6005905B8 /* Configuration */, - CDB2AA5E1D6C84CF005600C3 /* ObjC */, - DA7AE6F019FC493F000AFDCE /* ItTests.swift */, - 8D010A561C11726F00633E2B /* DescribeTests.swift */, - DA87078219F48775008C04AC /* BeforeEachTests.swift */, - DA05D60F19F73A3800771050 /* AfterEachTests.swift */, - DAA63EA219F7637300CD0A3B /* PendingTests.swift */, - DA8F91A419F3208B006F6675 /* BeforeSuiteTests.swift */, - DA8F91AA19F3299E006F6675 /* SharedExamplesTests.swift */, - DAB0136E19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift */, - 7B5358CA1C3D4E2A00A23FAA /* ContextTests.swift */, - AED9C8621CC8A7BD00432F62 /* CrossReferencingSpecs.swift */, - DED3037C1DF6CF140041394E /* BundleModuleNameTests.swift */, - ); - path = FunctionalTests; - sourceTree = ""; - }; - DA9876BE1A4C87200004AA17 /* QuickFocusedTests */ = { - isa = PBXGroup; - children = ( - DA9876BF1A4C87200004AA17 /* FocusedTests.swift */, - DAF28BC21A4DB8EC00A5D9BF /* FocusedTests+ObjC.m */, - DA9876C31A4C87310004AA17 /* Supporting Files */, - ); - name = QuickFocusedTests; - path = Tests/QuickTests/QuickFocusedTests; - sourceTree = ""; - }; - DA9876C31A4C87310004AA17 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - DA9876C01A4C87200004AA17 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - DAE714E919FF65A6005905B8 /* Configuration */ = { - isa = PBXGroup; - children = ( - DAE714F519FF67FF005905B8 /* AfterEach */, - DAE714EA19FF65A6005905B8 /* BeforeEach */, - ); - path = Configuration; - sourceTree = ""; - }; - DAE714EA19FF65A6005905B8 /* BeforeEach */ = { - isa = PBXGroup; - children = ( - DAE714F219FF65E7005905B8 /* Configuration+BeforeEach.swift */, - DAE714EF19FF65D3005905B8 /* Configuration+BeforeEachTests.swift */, - ); - path = BeforeEach; - sourceTree = ""; - }; - DAE714F519FF67FF005905B8 /* AfterEach */ = { - isa = PBXGroup; - children = ( - DAE714F619FF6812005905B8 /* Configuration+AfterEach.swift */, - DAE714F919FF682A005905B8 /* Configuration+AfterEachTests.swift */, - ); - path = AfterEach; - sourceTree = ""; - }; - DAEB6B841943873100289F44 = { - isa = PBXGroup; - children = ( - DAEB6B901943873100289F44 /* Quick */, - 6C3983EE1D1E930D00637469 /* QuickObjectiveC */, - DAEB6B9D1943873100289F44 /* QuickTests */, - DA9876BE1A4C87200004AA17 /* QuickFocusedTests */, - 64076D1C1D6D7D0B00E2B499 /* QuickAfterSuiteTests */, - DAEB6B8F1943873100289F44 /* Products */, - 1F118D331BDCA645005013A2 /* Frameworks */, - ); - indentWidth = 4; - sourceTree = ""; - tabWidth = 4; - }; - DAEB6B8F1943873100289F44 /* Products */ = { - isa = PBXGroup; - children = ( - DAEB6B8E1943873100289F44 /* Quick.framework */, - DAEB6B991943873100289F44 /* Quick - macOSTests.xctest */, - 5A5D117C19473F2100F6D13D /* Quick.framework */, - 5A5D118619473F2100F6D13D /* Quick - iOSTests.xctest */, - DA9876B21A4C70EB0004AA17 /* QuickFocused - iOSTests.xctest */, - DA5663E81A4C8D8500193C88 /* QuickFocused - macOSTests.xctest */, - 1F118CD51BDCA4AB005013A2 /* Quick.framework */, - 1F118CDE1BDCA4AB005013A2 /* Quick - tvOSTests.xctest */, - 1F118CF01BDCA4BB005013A2 /* QuickFocused - tvOSTests.xctest */, - 64076CF51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests.xctest */, - 64076D081D6D7CD600E2B499 /* QuickAfterSuite - iOSTests.xctest */, - 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - DAEB6B901943873100289F44 /* Quick */ = { - isa = PBXGroup; - children = ( - DA169E4619FF5DF100619816 /* Configuration */, - DA3124E119FCAEE8002858A7 /* DSL */, - DA408BDE19FF5599005DF92A /* Hooks */, - CD3451461E4703D4000C8633 /* QuickMain.swift */, - CD3451471E4703D4000C8633 /* QuickSpec.swift */, - 34F375A619515CA700CE1B99 /* World.swift */, - 34F3759E19515CA700CE1B99 /* Example.swift */, - DA02C91819A8073100093156 /* ExampleMetadata.swift */, - 34F3759F19515CA700CE1B99 /* ExampleGroup.swift */, - 34F3759C19515CA700CE1B99 /* Callsite.swift */, - DA6B30171A4DB0D500FFB148 /* Filter.swift */, - CE57CEDA1C430BD200D63004 /* QuickTestSuite.swift */, - CE57CED91C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift */, - CE57CED81C430BD200D63004 /* NSBundle+CurrentTestBundle.swift */, - DED3036A1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift */, - CE57CEDB1C430BD200D63004 /* URL+FileName.swift */, - 34C586071C4AC5E500D4F057 /* ErrorUtility.swift */, - DAEB6B911943873100289F44 /* Supporting Files */, - ); - name = Quick; - path = Sources/Quick; - sourceTree = ""; - }; - DAEB6B911943873100289F44 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - DAEB6B921943873100289F44 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - DAEB6B9D1943873100289F44 /* QuickTests */ = { - isa = PBXGroup; - children = ( - DA8C00201A01E4B900CE58A6 /* QuickConfigurationTests.m */, - DA8F919419F31680006F6675 /* Helpers */, - DAEB6BCD194387D700289F44 /* Fixtures */, - DA8F919B19F3189D006F6675 /* FunctionalTests */, - F8100E941A1E4469007595ED /* Frameworks */, - DAEB6B9E1943873100289F44 /* Supporting Files */, - ); - name = QuickTests; - path = Tests/QuickTests/QuickTests; - sourceTree = ""; - }; - DAEB6B9E1943873100289F44 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - DAEB6B9F1943873100289F44 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - DAEB6BCD194387D700289F44 /* Fixtures */ = { - isa = PBXGroup; - children = ( - DA8F91AD19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift */, - ); - path = Fixtures; - sourceTree = ""; - }; - F8100E941A1E4469007595ED /* Frameworks */ = { - isa = PBXGroup; - children = ( - F8100E901A1E4447007595ED /* Nimble.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 1F118CD21BDCA4AB005013A2 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F118D2B1BDCA5B6005013A2 /* Quick.h in Headers */, - 1F118D261BDCA5AF005013A2 /* World+DSL.h in Headers */, - 96327C651C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */, - 1F118D271BDCA5AF005013A2 /* World.h in Headers */, - 1F118D2A1BDCA5B6005013A2 /* QCKDSL.h in Headers */, - 1F118D2C1BDCA5B6005013A2 /* QuickSpec.h in Headers */, - 1F118D291BDCA5B6005013A2 /* QuickConfiguration.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D117919473F2100F6D13D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - DAE714FF19FF6A62005905B8 /* QuickConfiguration.h in Headers */, - 96327C641C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */, - DA3124E919FCAEE8002858A7 /* QCKDSL.h in Headers */, - DAED1ECB1B110699006F61EC /* World+DSL.h in Headers */, - DAED1EC51B1105BC006F61EC /* World.h in Headers */, - 34F375B819515CA700CE1B99 /* QuickSpec.h in Headers */, - 5A5D11A7194740E000F6D13D /* Quick.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B8B1943873100289F44 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - DAE714FE19FF6A62005905B8 /* QuickConfiguration.h in Headers */, - 96327C631C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.h in Headers */, - DA3124E819FCAEE8002858A7 /* QCKDSL.h in Headers */, - DAED1ECA1B110699006F61EC /* World+DSL.h in Headers */, - DAED1EC41B1105BC006F61EC /* World.h in Headers */, - 34F375B719515CA700CE1B99 /* QuickSpec.h in Headers */, - DAEB6B941943873100289F44 /* Quick.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 1F118CD41BDCA4AB005013A2 /* Quick-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F118CE61BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick-tvOS" */; - buildPhases = ( - 1F118CD01BDCA4AB005013A2 /* Sources */, - 1F118CD11BDCA4AB005013A2 /* Frameworks */, - 1F118CD21BDCA4AB005013A2 /* Headers */, - 1F118CD31BDCA4AB005013A2 /* Resources */, - A870E6171DE00FC7006891AD /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Quick-tvOS"; - productName = "Quick-tvOS"; - productReference = 1F118CD51BDCA4AB005013A2 /* Quick.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F118CDD1BDCA4AB005013A2 /* Quick - tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F118CE91BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick - tvOSTests" */; - buildPhases = ( - 1F118CDA1BDCA4AB005013A2 /* Sources */, - 1F118CDB1BDCA4AB005013A2 /* Frameworks */, - 1F118CDC1BDCA4AB005013A2 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F118CE11BDCA4AB005013A2 /* PBXTargetDependency */, - ); - name = "Quick - tvOSTests"; - productName = "Quick-tvOSTests"; - productReference = 1F118CDE1BDCA4AB005013A2 /* Quick - tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 1F118CEF1BDCA4BB005013A2 /* QuickFocused - tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F118CF81BDCA4BC005013A2 /* Build configuration list for PBXNativeTarget "QuickFocused - tvOSTests" */; - buildPhases = ( - 1F118CEC1BDCA4BB005013A2 /* Sources */, - 1F118CED1BDCA4BB005013A2 /* Frameworks */, - 1F118CEE1BDCA4BB005013A2 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F118CF71BDCA4BB005013A2 /* PBXTargetDependency */, - ); - name = "QuickFocused - tvOSTests"; - productName = "QuickFocused-tvOSTests"; - productReference = 1F118CF01BDCA4BB005013A2 /* QuickFocused - tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 5A5D117B19473F2100F6D13D /* Quick-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5A5D119319473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick-iOS" */; - buildPhases = ( - 5A5D117719473F2100F6D13D /* Sources */, - 5A5D117819473F2100F6D13D /* Frameworks */, - 5A5D117919473F2100F6D13D /* Headers */, - 5A5D117A19473F2100F6D13D /* Resources */, - A870E6161DE00E50006891AD /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Quick-iOS"; - productName = "Quick-iOS"; - productReference = 5A5D117C19473F2100F6D13D /* Quick.framework */; - productType = "com.apple.product-type.framework"; - }; - 5A5D118519473F2100F6D13D /* Quick - iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5A5D119419473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick - iOSTests" */; - buildPhases = ( - 5A5D118219473F2100F6D13D /* Sources */, - 5A5D118319473F2100F6D13D /* Frameworks */, - 5A5D118419473F2100F6D13D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 5A5D118919473F2100F6D13D /* PBXTargetDependency */, - 5A5D11F0194741B500F6D13D /* PBXTargetDependency */, - 5A5D11F2194741B500F6D13D /* PBXTargetDependency */, - 04DC97E9194B4B7E00CE00B6 /* PBXTargetDependency */, - 04DC97EB194B4B9B00CE00B6 /* PBXTargetDependency */, - 04DC97F3194B82DE00CE00B6 /* PBXTargetDependency */, - 04DC97F7194B831200CE00B6 /* PBXTargetDependency */, - 04DC97FB194B834100CE00B6 /* PBXTargetDependency */, - 04DC97FF194B835E00CE00B6 /* PBXTargetDependency */, - 04DC9803194B836300CE00B6 /* PBXTargetDependency */, - 04DC9807194B838700CE00B6 /* PBXTargetDependency */, - ); - name = "Quick - iOSTests"; - productName = "Quick-iOSTests"; - productReference = 5A5D118619473F2100F6D13D /* Quick - iOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 64076CE51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 64076CF21D6D7C2000E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - macOSTests" */; - buildPhases = ( - 64076CE81D6D7C2000E2B499 /* Sources */, - 64076CEE1D6D7C2000E2B499 /* Frameworks */, - 64076CF11D6D7C2000E2B499 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 64076CE61D6D7C2000E2B499 /* PBXTargetDependency */, - ); - name = "QuickAfterSuite - macOSTests"; - productName = "QuickFocused-macOSTests"; - productReference = 64076CF51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 64076CF81D6D7CD600E2B499 /* QuickAfterSuite - iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 64076D051D6D7CD600E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - iOSTests" */; - buildPhases = ( - 64076CFB1D6D7CD600E2B499 /* Sources */, - 64076D011D6D7CD600E2B499 /* Frameworks */, - 64076D041D6D7CD600E2B499 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 64076CF91D6D7CD600E2B499 /* PBXTargetDependency */, - ); - name = "QuickAfterSuite - iOSTests"; - productName = "QuickFocused-iOSTests"; - productReference = 64076D081D6D7CD600E2B499 /* QuickAfterSuite - iOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 64076D0A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 64076D171D6D7CEA00E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - tvOSTests" */; - buildPhases = ( - 64076D0D1D6D7CEA00E2B499 /* Sources */, - 64076D131D6D7CEA00E2B499 /* Frameworks */, - 64076D161D6D7CEA00E2B499 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 64076D0B1D6D7CEA00E2B499 /* PBXTargetDependency */, - ); - name = "QuickAfterSuite - tvOSTests"; - productName = "QuickFocused-tvOSTests"; - productReference = 64076D1A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - DA5663E71A4C8D8500193C88 /* QuickFocused - macOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = DA5663F31A4C8D8500193C88 /* Build configuration list for PBXNativeTarget "QuickFocused - macOSTests" */; - buildPhases = ( - DA5663E41A4C8D8500193C88 /* Sources */, - DA5663E51A4C8D8500193C88 /* Frameworks */, - DA5663E61A4C8D8500193C88 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DA5663F01A4C8D8500193C88 /* PBXTargetDependency */, - ); - name = "QuickFocused - macOSTests"; - productName = "QuickFocused-macOSTests"; - productReference = DA5663E81A4C8D8500193C88 /* QuickFocused - macOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - DA9876B11A4C70EB0004AA17 /* QuickFocused - iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = DA9876BD1A4C70EB0004AA17 /* Build configuration list for PBXNativeTarget "QuickFocused - iOSTests" */; - buildPhases = ( - DA9876AE1A4C70EB0004AA17 /* Sources */, - DA9876AF1A4C70EB0004AA17 /* Frameworks */, - DA9876B01A4C70EB0004AA17 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DA9876BA1A4C70EB0004AA17 /* PBXTargetDependency */, - ); - name = "QuickFocused - iOSTests"; - productName = "QuickFocused-iOSTests"; - productReference = DA9876B21A4C70EB0004AA17 /* QuickFocused - iOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - DAEB6B8D1943873100289F44 /* Quick-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = DAEB6BA41943873200289F44 /* Build configuration list for PBXNativeTarget "Quick-macOS" */; - buildPhases = ( - DAEB6B891943873100289F44 /* Sources */, - DAEB6B8A1943873100289F44 /* Frameworks */, - DAEB6B8B1943873100289F44 /* Headers */, - DAEB6B8C1943873100289F44 /* Resources */, - A870E6151DE00E37006891AD /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Quick-macOS"; - productName = Quick; - productReference = DAEB6B8E1943873100289F44 /* Quick.framework */; - productType = "com.apple.product-type.framework"; - }; - DAEB6B981943873100289F44 /* Quick - macOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = DAEB6BA71943873200289F44 /* Build configuration list for PBXNativeTarget "Quick - macOSTests" */; - buildPhases = ( - DAEB6B951943873100289F44 /* Sources */, - DAEB6B961943873100289F44 /* Frameworks */, - DAEB6B971943873100289F44 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DAEB6B9C1943873100289F44 /* PBXTargetDependency */, - 047655521949F4CB00B288BB /* PBXTargetDependency */, - 047655541949F4CB00B288BB /* PBXTargetDependency */, - 04765556194A327000B288BB /* PBXTargetDependency */, - 04DC97E5194B4A6000CE00B6 /* PBXTargetDependency */, - 04DC97E7194B4A6000CE00B6 /* PBXTargetDependency */, - 04DC97F1194B82DB00CE00B6 /* PBXTargetDependency */, - 04DC97F9194B834000CE00B6 /* PBXTargetDependency */, - 04DC97FD194B834B00CE00B6 /* PBXTargetDependency */, - 04DC9801194B836100CE00B6 /* PBXTargetDependency */, - 04DC9805194B838400CE00B6 /* PBXTargetDependency */, - 04DC9809194B838B00CE00B6 /* PBXTargetDependency */, - 93625F391951DDC8006B1FE1 /* PBXTargetDependency */, - ); - name = "Quick - macOSTests"; - productName = QuickTests; - productReference = DAEB6B991943873100289F44 /* Quick - macOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - DAEB6B851943873100289F44 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0810; - LastUpgradeCheck = 0810; - ORGANIZATIONNAME = "Brian Ivan Gesiak"; - TargetAttributes = { - 1F118CD41BDCA4AB005013A2 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 1F118CDD1BDCA4AB005013A2 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 1F118CEF1BDCA4BB005013A2 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 5A5D117B19473F2100F6D13D = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - }; - 5A5D118519473F2100F6D13D = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - TestTargetID = 5A5D117B19473F2100F6D13D; - }; - DA5663E71A4C8D8500193C88 = { - CreatedOnToolsVersion = 6.2; - LastSwiftMigration = 0800; - }; - DA9876B11A4C70EB0004AA17 = { - CreatedOnToolsVersion = 6.2; - LastSwiftMigration = 0800; - }; - DAEB6B8D1943873100289F44 = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - }; - DAEB6B981943873100289F44 = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - TestTargetID = DAEB6B8D1943873100289F44; - }; - }; - }; - buildConfigurationList = DAEB6B881943873100289F44 /* Build configuration list for PBXProject "Quick" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = DAEB6B841943873100289F44; - productRefGroup = DAEB6B8F1943873100289F44 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - DAEB6B8D1943873100289F44 /* Quick-macOS */, - DAEB6B981943873100289F44 /* Quick - macOSTests */, - DA5663E71A4C8D8500193C88 /* QuickFocused - macOSTests */, - 64076CE51D6D7C2000E2B499 /* QuickAfterSuite - macOSTests */, - 5A5D117B19473F2100F6D13D /* Quick-iOS */, - 5A5D118519473F2100F6D13D /* Quick - iOSTests */, - DA9876B11A4C70EB0004AA17 /* QuickFocused - iOSTests */, - 64076CF81D6D7CD600E2B499 /* QuickAfterSuite - iOSTests */, - 1F118CD41BDCA4AB005013A2 /* Quick-tvOS */, - 1F118CDD1BDCA4AB005013A2 /* Quick - tvOSTests */, - 1F118CEF1BDCA4BB005013A2 /* QuickFocused - tvOSTests */, - 64076D0A1D6D7CEA00E2B499 /* QuickAfterSuite - tvOSTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1F118CD31BDCA4AB005013A2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F118CDC1BDCA4AB005013A2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F118CEE1BDCA4BB005013A2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D117A19473F2100F6D13D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D118419473F2100F6D13D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076CF11D6D7C2000E2B499 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076D041D6D7CD600E2B499 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076D161D6D7CEA00E2B499 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DA5663E61A4C8D8500193C88 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DA9876B01A4C70EB0004AA17 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B8C1943873100289F44 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B971943873100289F44 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - A870E6151DE00E37006891AD /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint; fi"; - }; - A870E6161DE00E50006891AD /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint; fi"; - }; - A870E6171DE00FC7006891AD /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint; fi"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1F118CD01BDCA4AB005013A2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 96327C681C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */, - 1F118D031BDCA536005013A2 /* World.swift in Sources */, - CE590E201C431FE400253D19 /* QuickSelectedTestSuiteBuilder.swift in Sources */, - 1F118CFC1BDCA536005013A2 /* Configuration.swift in Sources */, - 1F118D021BDCA536005013A2 /* SuiteHooks.swift in Sources */, - 1F118CFB1BDCA536005013A2 /* QuickConfiguration.m in Sources */, - 34C5860A1C4AC5E500D4F057 /* ErrorUtility.swift in Sources */, - 1F118D041BDCA536005013A2 /* Example.swift in Sources */, - 1F118CFF1BDCA536005013A2 /* QCKDSL.m in Sources */, - DED3036D1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */, - CE590E211C431FE400253D19 /* NSBundle+CurrentTestBundle.swift in Sources */, - 1F118D071BDCA536005013A2 /* Callsite.swift in Sources */, - CE590E231C431FE400253D19 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, - 1F118D081BDCA536005013A2 /* Filter.swift in Sources */, - 1F118CFD1BDCA536005013A2 /* World+DSL.swift in Sources */, - CE590E221C431FE400253D19 /* URL+FileName.swift in Sources */, - 1F118CFE1BDCA536005013A2 /* DSL.swift in Sources */, - 7B44ADC01C5444940007AF2E /* HooksPhase.swift in Sources */, - 1F118D001BDCA536005013A2 /* Closures.swift in Sources */, - 1F118D051BDCA536005013A2 /* ExampleMetadata.swift in Sources */, - 1F118D061BDCA536005013A2 /* ExampleGroup.swift in Sources */, - CE590E1F1C431FE400253D19 /* QuickTestSuite.swift in Sources */, - 1F118D091BDCA536005013A2 /* QuickSpec.m in Sources */, - 1F118D011BDCA536005013A2 /* ExampleHooks.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F118CDA1BDCA4AB005013A2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F118D381BDCA6E1005013A2 /* Configuration+BeforeEachTests.swift in Sources */, - 1F118D121BDCA556005013A2 /* ItTests.swift in Sources */, - 1F118D1C1BDCA556005013A2 /* BeforeSuiteTests.swift in Sources */, - 1F118D1D1BDCA556005013A2 /* BeforeSuiteTests+ObjC.m in Sources */, - 1F118D0E1BDCA547005013A2 /* QCKSpecRunner.m in Sources */, - 1F118D141BDCA556005013A2 /* FailureTests+ObjC.m in Sources */, - DED3037F1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */, - 1F118D0F1BDCA54B005013A2 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */, - 1F118D101BDCA556005013A2 /* Configuration+AfterEach.swift in Sources */, - 1F118D1A1BDCA556005013A2 /* PendingTests.swift in Sources */, - 1F118D171BDCA556005013A2 /* BeforeEachTests+ObjC.m in Sources */, - 1F118D231BDCA556005013A2 /* SharedExamples+BeforeEachTests+ObjC.m in Sources */, - 1F118D151BDCA556005013A2 /* FailureUsingXCTAssertTests+ObjC.m in Sources */, - 1F118D131BDCA556005013A2 /* ItTests+ObjC.m in Sources */, - 1F118D191BDCA556005013A2 /* AfterEachTests+ObjC.m in Sources */, - 1F118D221BDCA556005013A2 /* SharedExamples+BeforeEachTests.swift in Sources */, - AE4E58171C73097E00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */, - AED9C8651CC8A7BD00432F62 /* CrossReferencingSpecs.swift in Sources */, - 1F118D211BDCA556005013A2 /* SharedExamplesTests+ObjC.m in Sources */, - 1F118D201BDCA556005013A2 /* SharedExamplesTests.swift in Sources */, - 1F118D0C1BDCA543005013A2 /* QuickConfigurationTests.m in Sources */, - 1F118D391BDCA6E6005013A2 /* Configuration+BeforeEach.swift in Sources */, - 1F118D181BDCA556005013A2 /* AfterEachTests.swift in Sources */, - 1F118D1B1BDCA556005013A2 /* PendingTests+ObjC.m in Sources */, - 34C586051C4ABD4100D4F057 /* XCTestCaseProvider.swift in Sources */, - 8D010A591C11726F00633E2B /* DescribeTests.swift in Sources */, - 1F118D111BDCA556005013A2 /* Configuration+AfterEachTests.swift in Sources */, - 1F118D161BDCA556005013A2 /* BeforeEachTests.swift in Sources */, - 7B5358D01C3D4FC000A23FAA /* ContextTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F118CEC1BDCA4BB005013A2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F118D0D1BDCA547005013A2 /* QCKSpecRunner.m in Sources */, - 34C586061C4ABD4100D4F057 /* XCTestCaseProvider.swift in Sources */, - 1F118D241BDCA561005013A2 /* FocusedTests.swift in Sources */, - 1F118D251BDCA561005013A2 /* FocusedTests+ObjC.m in Sources */, - AE4E58181C73097E00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D117719473F2100F6D13D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 96327C671C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */, - CE590E1B1C431FE300253D19 /* QuickSelectedTestSuiteBuilder.swift in Sources */, - DA3124EB19FCAEE8002858A7 /* QCKDSL.m in Sources */, - DA408BE319FF5599005DF92A /* Closures.swift in Sources */, - DA02C91A19A8073100093156 /* ExampleMetadata.swift in Sources */, - 34C586091C4AC5E500D4F057 /* ErrorUtility.swift in Sources */, - DA408BE719FF5599005DF92A /* SuiteHooks.swift in Sources */, - 34F375BA19515CA700CE1B99 /* QuickSpec.m in Sources */, - DED3036C1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */, - CE590E1C1C431FE300253D19 /* NSBundle+CurrentTestBundle.swift in Sources */, - DAE7150119FF6A62005905B8 /* QuickConfiguration.m in Sources */, - CE590E1E1C431FE300253D19 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, - 34F375A819515CA700CE1B99 /* Callsite.swift in Sources */, - 34F375AE19515CA700CE1B99 /* ExampleGroup.swift in Sources */, - CE590E1D1C431FE300253D19 /* URL+FileName.swift in Sources */, - 34F375BC19515CA700CE1B99 /* World.swift in Sources */, - DA169E4919FF5DF100619816 /* Configuration.swift in Sources */, - 7B44ADBF1C5444940007AF2E /* HooksPhase.swift in Sources */, - DA3124ED19FCAEE8002858A7 /* World+DSL.swift in Sources */, - DA408BE519FF5599005DF92A /* ExampleHooks.swift in Sources */, - 34F375AC19515CA700CE1B99 /* Example.swift in Sources */, - CE590E1A1C431FE300253D19 /* QuickTestSuite.swift in Sources */, - DA3124E719FCAEE8002858A7 /* DSL.swift in Sources */, - DA6B30191A4DB0D500FFB148 /* Filter.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5A5D118219473F2100F6D13D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DAE714F819FF6812005905B8 /* Configuration+AfterEach.swift in Sources */, - DAA7C0D719F777EB0093D1D9 /* BeforeEachTests.swift in Sources */, - DA8F919A19F31680006F6675 /* QCKSpecRunner.m in Sources */, - DA8940F11B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m in Sources */, - 4728253C1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m in Sources */, - DAE714F119FF65D3005905B8 /* Configuration+BeforeEachTests.swift in Sources */, - DED3037E1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */, - DA05D61119F73A3800771050 /* AfterEachTests.swift in Sources */, - DAB0137019FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift in Sources */, - DA8F91A619F3208B006F6675 /* BeforeSuiteTests.swift in Sources */, - DA8C00221A01E4B900CE58A6 /* QuickConfigurationTests.m in Sources */, - DAA63EA419F7637300CD0A3B /* PendingTests.swift in Sources */, - DA8F91AC19F3299E006F6675 /* SharedExamplesTests.swift in Sources */, - DA7AE6F219FC493F000AFDCE /* ItTests.swift in Sources */, - 4748E8951A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m in Sources */, - DA8F91AF19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */, - DAE714FB19FF682A005905B8 /* Configuration+AfterEachTests.swift in Sources */, - AE4E58151C73097C00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */, - AED9C8641CC8A7BD00432F62 /* CrossReferencingSpecs.swift in Sources */, - 471590411A488F3F00FBA644 /* PendingTests+ObjC.m in Sources */, - DA8F919E19F31921006F6675 /* FailureTests+ObjC.m in Sources */, - DAE714F419FF65E7005905B8 /* Configuration+BeforeEach.swift in Sources */, - 479C31E41A36172700DA8718 /* ItTests+ObjC.m in Sources */, - 34C586031C4ABD4000D4F057 /* XCTestCaseProvider.swift in Sources */, - 8D010A581C11726F00633E2B /* DescribeTests.swift in Sources */, - 47FAEA371A3F49EB005A1D2F /* BeforeEachTests+ObjC.m in Sources */, - 470D6ECC1A43442900043E50 /* AfterEachTests+ObjC.m in Sources */, - 47876F7E1A49AD71002575C7 /* BeforeSuiteTests+ObjC.m in Sources */, - 7B5358CF1C3D4FBE00A23FAA /* ContextTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076CE81D6D7C2000E2B499 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 64076D211D6D7E4D00E2B499 /* AfterSuiteTests.swift in Sources */, - CD264DBD1DDA147A0038B0EB /* AfterSuiteTests+ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076CFB1D6D7CD600E2B499 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 64076D221D6D7E5B00E2B499 /* AfterSuiteTests.swift in Sources */, - 64076D261D6D80B500E2B499 /* AfterSuiteTests+ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 64076D0D1D6D7CEA00E2B499 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 64076D231D6D7E6B00E2B499 /* AfterSuiteTests.swift in Sources */, - 64076D271D6D80B500E2B499 /* AfterSuiteTests+ObjC.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DA5663E41A4C8D8500193C88 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DA07722E1A4E5B7B0098839D /* QCKSpecRunner.m in Sources */, - 34C586021C4ABD3F00D4F057 /* XCTestCaseProvider.swift in Sources */, - DA5663F41A4C8D9A00193C88 /* FocusedTests.swift in Sources */, - DAF28BC31A4DB8EC00A5D9BF /* FocusedTests+ObjC.m in Sources */, - AE4E58141C73097A00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DA9876AE1A4C70EB0004AA17 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DA07722F1A4E5B7C0098839D /* QCKSpecRunner.m in Sources */, - 34C586041C4ABD4000D4F057 /* XCTestCaseProvider.swift in Sources */, - DA9876C11A4C87200004AA17 /* FocusedTests.swift in Sources */, - DAF28BC41A4DB8EC00A5D9BF /* FocusedTests+ObjC.m in Sources */, - AE4E58161C73097C00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B891943873100289F44 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 96327C661C56E90C00405AB3 /* QuickSpec+QuickSpec_MethodList.m in Sources */, - CE57CEDE1C430BD200D63004 /* QuickSelectedTestSuiteBuilder.swift in Sources */, - DA3124EA19FCAEE8002858A7 /* QCKDSL.m in Sources */, - DA408BE219FF5599005DF92A /* Closures.swift in Sources */, - CE57CEDD1C430BD200D63004 /* NSBundle+CurrentTestBundle.swift in Sources */, - DA02C91919A8073100093156 /* ExampleMetadata.swift in Sources */, - CE57CEDF1C430BD200D63004 /* QuickTestSuite.swift in Sources */, - 34C586081C4AC5E500D4F057 /* ErrorUtility.swift in Sources */, - DED3036B1DF6C66B0041394E /* NSString+C99ExtendedIdentifier.swift in Sources */, - DA408BE619FF5599005DF92A /* SuiteHooks.swift in Sources */, - 34F375B919515CA700CE1B99 /* QuickSpec.m in Sources */, - CE57CEE11C430BD200D63004 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */, - DAE7150019FF6A62005905B8 /* QuickConfiguration.m in Sources */, - 34F375A719515CA700CE1B99 /* Callsite.swift in Sources */, - CE57CEE01C430BD200D63004 /* URL+FileName.swift in Sources */, - 34F375AD19515CA700CE1B99 /* ExampleGroup.swift in Sources */, - 34F375BB19515CA700CE1B99 /* World.swift in Sources */, - DA169E4819FF5DF100619816 /* Configuration.swift in Sources */, - 7B44ADBE1C5444940007AF2E /* HooksPhase.swift in Sources */, - DA3124EC19FCAEE8002858A7 /* World+DSL.swift in Sources */, - DA408BE419FF5599005DF92A /* ExampleHooks.swift in Sources */, - 34F375AB19515CA700CE1B99 /* Example.swift in Sources */, - DA3124E619FCAEE8002858A7 /* DSL.swift in Sources */, - DA6B30181A4DB0D500FFB148 /* Filter.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAEB6B951943873100289F44 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DAE714F719FF6812005905B8 /* Configuration+AfterEach.swift in Sources */, - DAB067E919F7801C00F970AC /* BeforeEachTests.swift in Sources */, - DA8F919919F31680006F6675 /* QCKSpecRunner.m in Sources */, - DA8940F01B35B1FA00161061 /* FailureUsingXCTAssertTests+ObjC.m in Sources */, - 4728253B1A5EECCE008DC74F /* SharedExamplesTests+ObjC.m in Sources */, - DAE714F019FF65D3005905B8 /* Configuration+BeforeEachTests.swift in Sources */, - DED3037D1DF6CF140041394E /* BundleModuleNameTests.swift in Sources */, - DA05D61019F73A3800771050 /* AfterEachTests.swift in Sources */, - DAB0136F19FC4315006AFBEE /* SharedExamples+BeforeEachTests.swift in Sources */, - DA8F91A519F3208B006F6675 /* BeforeSuiteTests.swift in Sources */, - DA8C00211A01E4B900CE58A6 /* QuickConfigurationTests.m in Sources */, - DAA63EA319F7637300CD0A3B /* PendingTests.swift in Sources */, - DA8F91AB19F3299E006F6675 /* SharedExamplesTests.swift in Sources */, - DA7AE6F119FC493F000AFDCE /* ItTests.swift in Sources */, - 4748E8941A6AEBB3009EC992 /* SharedExamples+BeforeEachTests+ObjC.m in Sources */, - DA8F91AE19F32CE2006F6675 /* FunctionalTests_SharedExamplesTests_SharedExamples.swift in Sources */, - DAE714FA19FF682A005905B8 /* Configuration+AfterEachTests.swift in Sources */, - AE4E58131C73097A00420A2E /* XCTestObservationCenter+QCKSuspendObservation.m in Sources */, - AED9C8631CC8A7BD00432F62 /* CrossReferencingSpecs.swift in Sources */, - 471590401A488F3F00FBA644 /* PendingTests+ObjC.m in Sources */, - DA8F919D19F31921006F6675 /* FailureTests+ObjC.m in Sources */, - DAE714F319FF65E7005905B8 /* Configuration+BeforeEach.swift in Sources */, - 479C31E31A36171B00DA8718 /* ItTests+ObjC.m in Sources */, - 34C586011C4ABD3F00D4F057 /* XCTestCaseProvider.swift in Sources */, - 8D010A571C11726F00633E2B /* DescribeTests.swift in Sources */, - 47FAEA361A3F49E6005A1D2F /* BeforeEachTests+ObjC.m in Sources */, - 470D6ECB1A43442400043E50 /* AfterEachTests+ObjC.m in Sources */, - 47876F7D1A49AD63002575C7 /* BeforeSuiteTests+ObjC.m in Sources */, - 7B5358CE1C3D4FBC00A23FAA /* ContextTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 047655521949F4CB00B288BB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 047655511949F4CB00B288BB /* PBXContainerItemProxy */; - }; - 047655541949F4CB00B288BB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 047655531949F4CB00B288BB /* PBXContainerItemProxy */; - }; - 04765556194A327000B288BB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04765555194A327000B288BB /* PBXContainerItemProxy */; - }; - 04DC97E5194B4A6000CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC97E4194B4A6000CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97E7194B4A6000CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC97E6194B4A6000CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97E9194B4B7E00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC97E8194B4B7E00CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97EB194B4B9B00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC97EA194B4B9B00CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97F1194B82DB00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC97F0194B82DB00CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97F3194B82DE00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC97F2194B82DE00CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97F7194B831200CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC97F6194B831200CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97F9194B834000CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC97F8194B834000CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97FB194B834100CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC97FA194B834100CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97FD194B834B00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC97FC194B834B00CE00B6 /* PBXContainerItemProxy */; - }; - 04DC97FF194B835E00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC97FE194B835E00CE00B6 /* PBXContainerItemProxy */; - }; - 04DC9801194B836100CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC9800194B836100CE00B6 /* PBXContainerItemProxy */; - }; - 04DC9803194B836300CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC9802194B836300CE00B6 /* PBXContainerItemProxy */; - }; - 04DC9805194B838400CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC9804194B838400CE00B6 /* PBXContainerItemProxy */; - }; - 04DC9807194B838700CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 04DC9806194B838700CE00B6 /* PBXContainerItemProxy */; - }; - 04DC9809194B838B00CE00B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 04DC9808194B838B00CE00B6 /* PBXContainerItemProxy */; - }; - 1F118CE11BDCA4AB005013A2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F118CD41BDCA4AB005013A2 /* Quick-tvOS */; - targetProxy = 1F118CE01BDCA4AB005013A2 /* PBXContainerItemProxy */; - }; - 1F118CF71BDCA4BB005013A2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F118CD41BDCA4AB005013A2 /* Quick-tvOS */; - targetProxy = 1F118CF61BDCA4BB005013A2 /* PBXContainerItemProxy */; - }; - 5A5D118919473F2100F6D13D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 5A5D118819473F2100F6D13D /* PBXContainerItemProxy */; - }; - 5A5D11F0194741B500F6D13D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 5A5D11EF194741B500F6D13D /* PBXContainerItemProxy */; - }; - 5A5D11F2194741B500F6D13D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 5A5D11F1194741B500F6D13D /* PBXContainerItemProxy */; - }; - 64076CE61D6D7C2000E2B499 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 64076CE71D6D7C2000E2B499 /* PBXContainerItemProxy */; - }; - 64076CF91D6D7CD600E2B499 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = 64076CFA1D6D7CD600E2B499 /* PBXContainerItemProxy */; - }; - 64076D0B1D6D7CEA00E2B499 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F118CD41BDCA4AB005013A2 /* Quick-tvOS */; - targetProxy = 64076D0C1D6D7CEA00E2B499 /* PBXContainerItemProxy */; - }; - 93625F391951DDC8006B1FE1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = 93625F381951DDC8006B1FE1 /* PBXContainerItemProxy */; - }; - DA5663F01A4C8D8500193C88 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = DA5663EF1A4C8D8500193C88 /* PBXContainerItemProxy */; - }; - DA9876BA1A4C70EB0004AA17 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 5A5D117B19473F2100F6D13D /* Quick-iOS */; - targetProxy = DA9876B91A4C70EB0004AA17 /* PBXContainerItemProxy */; - }; - DAEB6B9C1943873100289F44 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAEB6B8D1943873100289F44 /* Quick-macOS */; - targetProxy = DAEB6B9B1943873100289F44 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1F118CE71BDCA4AB005013A2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Sources/Quick/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Quick; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 1F118CE81BDCA4AB005013A2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Sources/Quick/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Quick; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 1F118CEA1BDCA4AB005013A2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Externals/Nimble/build/Debug-appletvos", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/QuickTests/QuickTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 1F118CEB1BDCA4AB005013A2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Externals/Nimble/build/Debug-appletvos", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/QuickTests/QuickTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 1F118CF91BDCA4BC005013A2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Externals/Nimble/build/Debug-appletvos", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/QuickTests/QuickFocusedTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 1F118CFA1BDCA4BC005013A2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Externals/Nimble/build/Debug-appletvos", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/QuickTests/QuickFocusedTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 5A5D118F19473F2100F6D13D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Sources/Quick/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Quick; - PRODUCT_NAME = Quick; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 5A5D119019473F2100F6D13D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Sources/Quick/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Quick; - PRODUCT_NAME = Quick; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 5A5D119119473F2100F6D13D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 5A5D119219473F2100F6D13D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 64076CF31D6D7C2000E2B499 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickAfterSuiteTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 64076CF41D6D7C2000E2B499 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickAfterSuiteTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - 64076D061D6D7CD600E2B499 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickAfterSuiteTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 64076D071D6D7CD600E2B499 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickAfterSuiteTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 64076D181D6D7CEA00E2B499 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Externals/Nimble/build/Debug-appletvos", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/QuickTests/QuickAfterSuiteTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 64076D191D6D7CEA00E2B499 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Externals/Nimble/build/Debug-appletvos", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/QuickTests/QuickAfterSuiteTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - DA5663F11A4C8D8500193C88 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickFocusedTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - DA5663F21A4C8D8500193C88 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickFocusedTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - DA9876BB1A4C70EB0004AA17 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickFocusedTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - DA9876BC1A4C70EB0004AA17 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickFocusedTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - DAEB6BA21943873200289F44 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_IDENTITY = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - METAL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - DAEB6BA31943873200289F44 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_IDENTITY = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.9; - METAL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - DAEB6BA51943873200289F44 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = Sources/Quick/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Quick; - PRODUCT_NAME = Quick; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = ""; - VALID_ARCHS = x86_64; - }; - name = Debug; - }; - DAEB6BA61943873200289F44 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = NO; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = Sources/Quick/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Quick; - PRODUCT_NAME = Quick; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALID_ARCHS = x86_64; - }; - name = Release; - }; - DAEB6BA81943873200289F44 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - METAL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - DAEB6BA91943873200289F44 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/QuickTests/QuickTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - METAL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.quick.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1F118CE61BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F118CE71BDCA4AB005013A2 /* Debug */, - 1F118CE81BDCA4AB005013A2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F118CE91BDCA4AB005013A2 /* Build configuration list for PBXNativeTarget "Quick - tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F118CEA1BDCA4AB005013A2 /* Debug */, - 1F118CEB1BDCA4AB005013A2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F118CF81BDCA4BC005013A2 /* Build configuration list for PBXNativeTarget "QuickFocused - tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F118CF91BDCA4BC005013A2 /* Debug */, - 1F118CFA1BDCA4BC005013A2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 5A5D119319473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5A5D118F19473F2100F6D13D /* Debug */, - 5A5D119019473F2100F6D13D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 5A5D119419473F2100F6D13D /* Build configuration list for PBXNativeTarget "Quick - iOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5A5D119119473F2100F6D13D /* Debug */, - 5A5D119219473F2100F6D13D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 64076CF21D6D7C2000E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - macOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 64076CF31D6D7C2000E2B499 /* Debug */, - 64076CF41D6D7C2000E2B499 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 64076D051D6D7CD600E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - iOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 64076D061D6D7CD600E2B499 /* Debug */, - 64076D071D6D7CD600E2B499 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 64076D171D6D7CEA00E2B499 /* Build configuration list for PBXNativeTarget "QuickAfterSuite - tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 64076D181D6D7CEA00E2B499 /* Debug */, - 64076D191D6D7CEA00E2B499 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DA5663F31A4C8D8500193C88 /* Build configuration list for PBXNativeTarget "QuickFocused - macOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DA5663F11A4C8D8500193C88 /* Debug */, - DA5663F21A4C8D8500193C88 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DA9876BD1A4C70EB0004AA17 /* Build configuration list for PBXNativeTarget "QuickFocused - iOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DA9876BB1A4C70EB0004AA17 /* Debug */, - DA9876BC1A4C70EB0004AA17 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DAEB6B881943873100289F44 /* Build configuration list for PBXProject "Quick" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DAEB6BA21943873200289F44 /* Debug */, - DAEB6BA31943873200289F44 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DAEB6BA41943873200289F44 /* Build configuration list for PBXNativeTarget "Quick-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DAEB6BA51943873200289F44 /* Debug */, - DAEB6BA61943873200289F44 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DAEB6BA71943873200289F44 /* Build configuration list for PBXNativeTarget "Quick - macOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DAEB6BA81943873200289F44 /* Debug */, - DAEB6BA91943873200289F44 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = DAEB6B851943873100289F44 /* Project object */; -} diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/Quick/Quick.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index a459aa8..0000000 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme deleted file mode 100644 index c8b0c3b..0000000 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-iOS.xcscheme +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme deleted file mode 100644 index db251d5..0000000 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-macOS.xcscheme +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme b/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme deleted file mode 100644 index 4537096..0000000 --- a/Carthage/Checkouts/Quick/Quick.xcodeproj/xcshareddata/xcschemes/Quick-tvOS.xcscheme +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Quick/Quick.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/Quick/Quick.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 48af53a..0000000 --- a/Carthage/Checkouts/Quick/Quick.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/Carthage/Checkouts/Quick/README.md b/Carthage/Checkouts/Quick/README.md deleted file mode 100644 index e6dc0ad..0000000 --- a/Carthage/Checkouts/Quick/README.md +++ /dev/null @@ -1,88 +0,0 @@ -![](http://f.cl.ly/items/0r1E192C1R0b2g2Q3h2w/QuickLogo_Color.png) - -[![Build Status](https://travis-ci.org/Quick/Quick.svg?branch=master)](https://travis-ci.org/Quick/Quick) -[![CocoaPods](https://img.shields.io/cocoapods/v/Quick.svg)](https://cocoapods.org/pods/Quick) -[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Platforms](https://img.shields.io/cocoapods/p/Quick.svg)](https://cocoapods.org/pods/Quick) - -Quick is a behavior-driven development framework for Swift and Objective-C. -Inspired by [RSpec](https://github.com/rspec/rspec), [Specta](https://github.com/specta/specta), and [Ginkgo](https://github.com/onsi/ginkgo). - -![](https://raw.githubusercontent.com/Quick/Assets/master/Screenshots/QuickSpec%20screenshot.png) - -```swift -// Swift - -import Quick -import Nimble - -class TableOfContentsSpec: QuickSpec { - override func spec() { - describe("the 'Documentation' directory") { - it("has everything you need to get started") { - let sections = Directory("Documentation").sections - expect(sections).to(contain("Organized Tests with Quick Examples and Example Groups")) - expect(sections).to(contain("Installing Quick")) - } - - context("if it doesn't have what you're looking for") { - it("needs to be updated") { - let you = You(awesome: true) - expect{you.submittedAnIssue}.toEventually(beTruthy()) - } - } - } - } -} -``` -#### Nimble -Quick comes together with [Nimble](https://github.com/Quick/Nimble) — a matcher framework for your tests. You can learn why `XCTAssert()` statements make your expectations unclear and how to fix that using Nimble assertions [here](./Documentation/en-us/NimbleAssertions.md). - -## Swift Version - -Certain versions of Quick and Nimble only support certain versions of Swift. Depending on which version of Swift your project uses, you should use specific versions of Quick and Nimble. Use the table below to determine which versions of Quick and Nimble are compatible with your project. - -|Swift version |Quick version |Nimble version | -|:--------------------|:---------------|:--------------| -|Swift 3 |v1.0.0 or later |v5.0.0 or later| -|Swift 2.2 / Swift 2.3|v0.9.3 |v4.1.0 | - -## Documentation - -All documentation can be found in the [Documentation folder](./Documentation), including [detailed installation instructions](./Documentation/en-us/InstallingQuick.md) for CocoaPods, Carthage, Git submodules, and more. For example, you can install Quick and [Nimble](https://github.com/Quick/Nimble) using CocoaPods by adding the following to your Podfile: - -```rb -# Podfile - -use_frameworks! - -target "MyApp" do - # Normal libraries - - abstract_target 'Tests' do - inherit! :search_paths - target "MyAppTests" - target "MyAppUITests" - - pod 'Quick' - pod 'Nimble' - end -end -``` - -## Projects using Quick - -Over ten-thousand apps use either Quick and Nimble however, as they are not included in the app binary, neither appear in “Top Used Libraries” blog posts. Therefore, it would be greatly appreciated to remind contributors that their efforts are valued by compiling a list of organizations and projects that use them. - -Does your organization or project use Quick and Nimble? If yes, [please add your project to the list](https://github.com/Quick/Quick/wiki/Projects-using-Quick). - -## Who uses Quick - -Similar to projects using Quick, it would be nice to hear why people use Quick and Nimble. Are there features you love? Are there features that are just okay? Are there some features we have that no one uses? - -Have something positive to say about Quick (or Nimble)? If yes, [provide a testimonial here](https://github.com/Quick/Quick/wiki/Who-uses-Quick). - - -## License - -Apache 2.0 license. See the [`LICENSE`](LICENSE) file for details. diff --git a/Carthage/Checkouts/Quick/Rakefile b/Carthage/Checkouts/Quick/Rakefile deleted file mode 100644 index 7eb39cd..0000000 --- a/Carthage/Checkouts/Quick/Rakefile +++ /dev/null @@ -1,68 +0,0 @@ -def run(command) - system(command) or raise "RAKE TASK FAILED: #{command}" -end - -def has_xcodebuild - system "which xcodebuild >/dev/null" -end - -def xcode_action - ENV["XCODE_ACTION"] || "build test" -end - -namespace "podspec" do - desc "Run lint for podspec" - task :lint do - run "bundle exec pod lib lint" - end -end - -namespace "test" do - desc "Run unit tests for all iOS targets" - task :ios do |t| - run "xcodebuild -workspace Quick.xcworkspace -scheme Quick-iOS -destination 'platform=iOS Simulator,name=iPhone 6' clean #{xcode_action}" - end - - desc "Run unit tests for all tvOS targets" - task :tvos do |t| - run "xcodebuild -workspace Quick.xcworkspace -scheme Quick-tvOS -destination 'platform=tvOS Simulator,name=Apple TV 1080p' clean #{xcode_action}" - end - - desc "Run unit tests for all macOS targets" - task :macos do |t| - run "xcodebuild -workspace Quick.xcworkspace -scheme Quick-macOS clean #{xcode_action}" - end - - desc "Run unit tests for the current platform built by the Swift Package Manager" - task :swiftpm do |t| - run "mv Package.swift .Package.swift && cp .Package.test.swift Package.swift" - run "swift build --clean && swift build && swift test" - run "mv .Package.swift Package.swift" - end -end - -namespace "templates" do - install_dir = File.expand_path("~/Library/Developer/Xcode/Templates/File Templates/Quick") - src_dir = File.expand_path("../Quick Templates", __FILE__) - - desc "Install Quick templates" - task :install do - if File.exists? install_dir - raise "RAKE TASK FAILED: Quick templates are already installed at #{install_dir}" - else - mkdir_p install_dir - cp_r src_dir, install_dir - end - end - - desc "Uninstall Quick templates" - task :uninstall do - rm_rf install_dir - end -end - -if has_xcodebuild then - task default: ["test:ios", "test:tvos", "test:macos"] -else - task default: ["test:swiftpm"] -end diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift b/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift deleted file mode 100644 index bb5cc0c..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Callsite.swift +++ /dev/null @@ -1,32 +0,0 @@ -import Foundation - -/** - An object encapsulating the file and line number at which - a particular example is defined. -*/ -final public class Callsite: NSObject { - /** - The absolute path of the file in which an example is defined. - */ - public let file: String - - /** - The line number on which an example is defined. - */ - public let line: UInt - - internal init(file: String, line: UInt) { - self.file = file - self.line = line - } -} - -extension Callsite { - /** - Returns a boolean indicating whether two Callsite objects are equal. - If two callsites are in the same file and on the same line, they must be equal. - */ - @nonobjc public static func == (lhs: Callsite, rhs: Callsite) -> Bool { - return lhs.file == rhs.file && lhs.line == rhs.line - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift b/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift deleted file mode 100644 index 583651b..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/Configuration.swift +++ /dev/null @@ -1,161 +0,0 @@ -import Foundation - -/** - A closure that temporarily exposes a Configuration object within - the scope of the closure. -*/ -public typealias QuickConfigurer = (_ configuration: Configuration) -> Void - -/** - A closure that, given metadata about an example, returns a boolean value - indicating whether that example should be run. -*/ -public typealias ExampleFilter = (_ example: Example) -> Bool - -/** - A configuration encapsulates various options you can use - to configure Quick's behavior. -*/ -final public class Configuration: NSObject { - internal let exampleHooks = ExampleHooks() - internal let suiteHooks = SuiteHooks() - internal var exclusionFilters: [ExampleFilter] = [ { example in - if let pending = example.filterFlags[Filter.pending] { - return pending - } else { - return false - } - }] - internal var inclusionFilters: [ExampleFilter] = [ { example in - if let focused = example.filterFlags[Filter.focused] { - return focused - } else { - return false - } - }] - - /** - Run all examples if none match the configured filters. True by default. - */ - public var runAllWhenEverythingFiltered = true - - /** - Registers an inclusion filter. - - All examples are filtered using all inclusion filters. - The remaining examples are run. If no examples remain, all examples are run. - - - parameter filter: A filter that, given an example, returns a value indicating - whether that example should be included in the examples - that are run. - */ - public func include(_ filter: @escaping ExampleFilter) { - inclusionFilters.append(filter) - } - - /** - Registers an exclusion filter. - - All examples that remain after being filtered by the inclusion filters are - then filtered via all exclusion filters. - - - parameter filter: A filter that, given an example, returns a value indicating - whether that example should be excluded from the examples - that are run. - */ - public func exclude(_ filter: @escaping ExampleFilter) { - exclusionFilters.append(filter) - } - - /** - Identical to Quick.Configuration.beforeEach, except the closure is - provided with metadata on the example that the closure is being run - prior to. - */ -#if _runtime(_ObjC) - @objc(beforeEachWithMetadata:) - public func beforeEach(_ closure: @escaping BeforeExampleWithMetadataClosure) { - exampleHooks.appendBefore(closure) - } -#else - public func beforeEach(_ closure: @escaping BeforeExampleWithMetadataClosure) { - exampleHooks.appendBefore(closure) - } -#endif - - /** - Like Quick.DSL.beforeEach, this configures Quick to execute the - given closure before each example that is run. The closure - passed to this method is executed before each example Quick runs, - globally across the test suite. You may call this method multiple - times across mulitple +[QuickConfigure configure:] methods in order - to define several closures to run before each example. - - Note that, since Quick makes no guarantee as to the order in which - +[QuickConfiguration configure:] methods are evaluated, there is no - guarantee as to the order in which beforeEach closures are evaluated - either. Mulitple beforeEach defined on a single configuration, however, - will be executed in the order they're defined. - - - parameter closure: The closure to be executed before each example - in the test suite. - */ - public func beforeEach(_ closure: @escaping BeforeExampleClosure) { - exampleHooks.appendBefore(closure) - } - - /** - Identical to Quick.Configuration.afterEach, except the closure - is provided with metadata on the example that the closure is being - run after. - */ -#if _runtime(_ObjC) - @objc(afterEachWithMetadata:) - public func afterEach(_ closure: @escaping AfterExampleWithMetadataClosure) { - exampleHooks.appendAfter(closure) - } -#else - public func afterEach(_ closure: @escaping AfterExampleWithMetadataClosure) { - exampleHooks.appendAfter(closure) - } -#endif - - /** - Like Quick.DSL.afterEach, this configures Quick to execute the - given closure after each example that is run. The closure - passed to this method is executed after each example Quick runs, - globally across the test suite. You may call this method multiple - times across mulitple +[QuickConfigure configure:] methods in order - to define several closures to run after each example. - - Note that, since Quick makes no guarantee as to the order in which - +[QuickConfiguration configure:] methods are evaluated, there is no - guarantee as to the order in which afterEach closures are evaluated - either. Mulitple afterEach defined on a single configuration, however, - will be executed in the order they're defined. - - - parameter closure: The closure to be executed before each example - in the test suite. - */ - public func afterEach(_ closure: @escaping AfterExampleClosure) { - exampleHooks.appendAfter(closure) - } - - /** - Like Quick.DSL.beforeSuite, this configures Quick to execute - the given closure prior to any and all examples that are run. - The two methods are functionally equivalent. - */ - public func beforeSuite(_ closure: @escaping BeforeSuiteClosure) { - suiteHooks.appendBefore(closure) - } - - /** - Like Quick.DSL.afterSuite, this configures Quick to execute - the given closure after all examples have been run. - The two methods are functionally equivalent. - */ - public func afterSuite(_ closure: @escaping AfterSuiteClosure) { - suiteHooks.appendAfter(closure) - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift b/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift deleted file mode 100644 index 6f5d0e6..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Configuration/QuickConfiguration.swift +++ /dev/null @@ -1,39 +0,0 @@ -import Foundation -import XCTest - -// NOTE: This file is not intended to be included in the Xcode project or CocoaPods. -// It is picked up by the Swift Package Manager during its build process. - -#if SWIFT_PACKAGE - -open class QuickConfiguration: NSObject { - open class func configure(_ configuration: Configuration) {} -} - -#if _runtime(_ObjC) - -internal func qck_enumerateSubclasses(_ klass: T.Type, block: (T.Type) -> Void) { - var classesCount = objc_getClassList(nil, 0) - - guard classesCount > 0 else { - return - } - - let classes = UnsafeMutablePointer.allocate(capacity: Int(classesCount)) - classesCount = objc_getClassList(AutoreleasingUnsafeMutablePointer(classes), classesCount) - - var subclass, superclass: AnyClass! - for i in 0.. Void) { - World.sharedWorld.sharedExamples(name) { _ in closure() } -} - -/** - Defines a group of shared examples. These examples can be re-used in several locations - by using the `itBehavesLike` function. - - - parameter name: The name of the shared example group. This must be unique across all shared example - groups defined in a test suite. - - parameter closure: A closure containing the examples. This behaves just like an example group defined - using `describe` or `context`--the closure may contain any number of `beforeEach` - and `afterEach` closures, as well as any number of examples (defined using `it`). - - The closure takes a SharedExampleContext as an argument. This context is a function - that can be executed to retrieve parameters passed in via an `itBehavesLike` function. -*/ -public func sharedExamples(_ name: String, closure: @escaping SharedExampleClosure) { - World.sharedWorld.sharedExamples(name, closure: closure) -} - -/** - Defines an example group. Example groups are logical groupings of examples. - Example groups can share setup and teardown code. - - - parameter description: An arbitrary string describing the example group. - - parameter closure: A closure that can contain other examples. - - parameter flags: A mapping of string keys to booleans that can be used to filter examples or example groups. -*/ -public func describe(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { - World.sharedWorld.describe(description, flags: flags, closure: closure) -} - -/** - Defines an example group. Equivalent to `describe`. -*/ -public func context(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { - World.sharedWorld.context(description, flags: flags, closure: closure) -} - -/** - Defines a closure to be run prior to each example in the current example - group. This closure is not run for pending or otherwise disabled examples. - An example group may contain an unlimited number of beforeEach. They'll be - run in the order they're defined, but you shouldn't rely on that behavior. - - - parameter closure: The closure to be run prior to each example. -*/ -public func beforeEach(_ closure: @escaping BeforeExampleClosure) { - World.sharedWorld.beforeEach(closure) -} - -/** - Identical to Quick.DSL.beforeEach, except the closure is provided with - metadata on the example that the closure is being run prior to. -*/ -public func beforeEach(_ closure: @escaping BeforeExampleWithMetadataClosure) { - World.sharedWorld.beforeEach(closure: closure) -} - -/** - Defines a closure to be run after each example in the current example - group. This closure is not run for pending or otherwise disabled examples. - An example group may contain an unlimited number of afterEach. They'll be - run in the order they're defined, but you shouldn't rely on that behavior. - - - parameter closure: The closure to be run after each example. -*/ -public func afterEach(_ closure: @escaping AfterExampleClosure) { - World.sharedWorld.afterEach(closure) -} - -/** - Identical to Quick.DSL.afterEach, except the closure is provided with - metadata on the example that the closure is being run after. -*/ -public func afterEach(_ closure: @escaping AfterExampleWithMetadataClosure) { - World.sharedWorld.afterEach(closure: closure) -} - -/** - Defines an example. Examples use assertions to demonstrate how code should - behave. These are like "tests" in XCTest. - - - parameter description: An arbitrary string describing what the example is meant to specify. - - parameter closure: A closure that can contain assertions. - - parameter flags: A mapping of string keys to booleans that can be used to filter examples or example groups. - Empty by default. - - parameter file: The absolute path to the file containing the example. A sensible default is provided. - - parameter line: The line containing the example. A sensible default is provided. -*/ -public func it(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> Void) { - World.sharedWorld.it(description, flags: flags, file: file, line: line, closure: closure) -} - -/** - Inserts the examples defined using a `sharedExamples` function into the current example group. - The shared examples are executed at this location, as if they were written out manually. - - - parameter name: The name of the shared examples group to be executed. This must be identical to the - name of a shared examples group defined using `sharedExamples`. If there are no shared - examples that match the name given, an exception is thrown and the test suite will crash. - - parameter flags: A mapping of string keys to booleans that can be used to filter examples or example groups. - Empty by default. - - parameter file: The absolute path to the file containing the current example group. A sensible default is provided. - - parameter line: The line containing the current example group. A sensible default is provided. -*/ -public func itBehavesLike(_ name: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line) { - itBehavesLike(name, flags: flags, file: file, line: line, sharedExampleContext: { return [:] }) -} - -/** - Inserts the examples defined using a `sharedExamples` function into the current example group. - The shared examples are executed at this location, as if they were written out manually. - This function also passes those shared examples a context that can be evaluated to give the shared - examples extra information on the subject of the example. - - - parameter name: The name of the shared examples group to be executed. This must be identical to the - name of a shared examples group defined using `sharedExamples`. If there are no shared - examples that match the name given, an exception is thrown and the test suite will crash. - - parameter sharedExampleContext: A closure that, when evaluated, returns key-value pairs that provide the - shared examples with extra information on the subject of the example. - - parameter flags: A mapping of string keys to booleans that can be used to filter examples or example groups. - Empty by default. - - parameter file: The absolute path to the file containing the current example group. A sensible default is provided. - - parameter line: The line containing the current example group. A sensible default is provided. -*/ -public func itBehavesLike(_ name: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, sharedExampleContext: @escaping SharedExampleContext) { - World.sharedWorld.itBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: flags, file: file, line: line) -} - -/** - Defines an example or example group that should not be executed. Use `pending` to temporarily disable - examples or groups that should not be run yet. - - - parameter description: An arbitrary string describing the example or example group. - - parameter closure: A closure that will not be evaluated. -*/ -public func pending(_ description: String, closure: () -> Void) { - World.sharedWorld.pending(description, closure: closure) -} - -/** - Use this to quickly mark a `describe` closure as pending. - This disables all examples within the closure. -*/ -public func xdescribe(_ description: String, flags: FilterFlags, closure: () -> Void) { - World.sharedWorld.xdescribe(description, flags: flags, closure: closure) -} - -/** - Use this to quickly mark a `context` closure as pending. - This disables all examples within the closure. -*/ -public func xcontext(_ description: String, flags: FilterFlags, closure: () -> Void) { - xdescribe(description, flags: flags, closure: closure) -} - -/** - Use this to quickly mark an `it` closure as pending. - This disables the example and ensures the code within the closure is never run. -*/ -public func xit(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> Void) { - World.sharedWorld.xit(description, flags: flags, file: file, line: line, closure: closure) -} - -/** - Use this to quickly focus a `describe` closure, focusing the examples in the closure. - If any examples in the test suite are focused, only those examples are executed. - This trumps any explicitly focused or unfocused examples within the closure--they are all treated as focused. -*/ -public func fdescribe(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { - World.sharedWorld.fdescribe(description, flags: flags, closure: closure) -} - -/** - Use this to quickly focus a `context` closure. Equivalent to `fdescribe`. -*/ -public func fcontext(_ description: String, flags: FilterFlags = [:], closure: () -> Void) { - fdescribe(description, flags: flags, closure: closure) -} - -/** - Use this to quickly focus an `it` closure, focusing the example. - If any examples in the test suite are focused, only those examples are executed. -*/ -public func fit(_ description: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, closure: @escaping () -> Void) { - World.sharedWorld.fit(description, flags: flags, file: file, line: line, closure: closure) -} - -/** - Use this to quickly focus an `itBehavesLike` closure. -*/ -public func fitBehavesLike(_ name: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line) { - fitBehavesLike(name, flags: flags, file: file, line: line, sharedExampleContext: { return [:] }) -} - -/** - Use this to quickly focus an `itBehavesLike` closure. -*/ -public func fitBehavesLike(_ name: String, flags: FilterFlags = [:], file: String = #file, line: UInt = #line, sharedExampleContext: @escaping SharedExampleContext) { - World.sharedWorld.fitBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: flags, file: file, line: line) -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift b/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift deleted file mode 100644 index 127ca54..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/DSL/World+DSL.swift +++ /dev/null @@ -1,175 +0,0 @@ -import Foundation - -/** - Adds methods to World to support top-level DSL functions (Swift) and - macros (Objective-C). These functions map directly to the DSL that test - writers use in their specs. -*/ -extension World { - internal func beforeSuite(_ closure: @escaping BeforeSuiteClosure) { - suiteHooks.appendBefore(closure) - } - - internal func afterSuite(_ closure: @escaping AfterSuiteClosure) { - suiteHooks.appendAfter(closure) - } - - internal func sharedExamples(_ name: String, closure: @escaping SharedExampleClosure) { - registerSharedExample(name, closure: closure) - } - - internal func describe(_ description: String, flags: FilterFlags, closure: () -> Void) { - guard currentExampleMetadata == nil else { - raiseError("'describe' cannot be used inside '\(currentPhase)', 'describe' may only be used inside 'context' or 'describe'. ") - } - guard currentExampleGroup != nil else { - raiseError("Error: example group was not created by its parent QuickSpec spec. Check that describe() or context() was used in QuickSpec.spec() and not a more general context (i.e. an XCTestCase test)") - } - let group = ExampleGroup(description: description, flags: flags) - currentExampleGroup.appendExampleGroup(group) - performWithCurrentExampleGroup(group, closure: closure) - } - - internal func context(_ description: String, flags: FilterFlags, closure: () -> Void) { - guard currentExampleMetadata == nil else { - raiseError("'context' cannot be used inside '\(currentPhase)', 'context' may only be used inside 'context' or 'describe'. ") - } - self.describe(description, flags: flags, closure: closure) - } - - internal func fdescribe(_ description: String, flags: FilterFlags, closure: () -> Void) { - var focusedFlags = flags - focusedFlags[Filter.focused] = true - self.describe(description, flags: focusedFlags, closure: closure) - } - - internal func xdescribe(_ description: String, flags: FilterFlags, closure: () -> Void) { - var pendingFlags = flags - pendingFlags[Filter.pending] = true - self.describe(description, flags: pendingFlags, closure: closure) - } - - internal func beforeEach(_ closure: @escaping BeforeExampleClosure) { - guard currentExampleMetadata == nil else { - raiseError("'beforeEach' cannot be used inside '\(currentPhase)', 'beforeEach' may only be used inside 'context' or 'describe'. ") - } - currentExampleGroup.hooks.appendBefore(closure) - } - -#if _runtime(_ObjC) - @objc(beforeEachWithMetadata:) - internal func beforeEach(closure: @escaping BeforeExampleWithMetadataClosure) { - currentExampleGroup.hooks.appendBefore(closure) - } -#else - internal func beforeEach(closure: @escaping BeforeExampleWithMetadataClosure) { - currentExampleGroup.hooks.appendBefore(closure) - } -#endif - - internal func afterEach(_ closure: @escaping AfterExampleClosure) { - guard currentExampleMetadata == nil else { - raiseError("'afterEach' cannot be used inside '\(currentPhase)', 'afterEach' may only be used inside 'context' or 'describe'. ") - } - currentExampleGroup.hooks.appendAfter(closure) - } - -#if _runtime(_ObjC) - @objc(afterEachWithMetadata:) - internal func afterEach(closure: @escaping AfterExampleWithMetadataClosure) { - currentExampleGroup.hooks.appendAfter(closure) - } -#else - internal func afterEach(closure: @escaping AfterExampleWithMetadataClosure) { - currentExampleGroup.hooks.appendAfter(closure) - } -#endif - - internal func it(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { - if beforesCurrentlyExecuting { - raiseError("'it' cannot be used inside 'beforeEach', 'it' may only be used inside 'context' or 'describe'. ") - } - if aftersCurrentlyExecuting { - raiseError("'it' cannot be used inside 'afterEach', 'it' may only be used inside 'context' or 'describe'. ") - } - guard currentExampleMetadata == nil else { - raiseError("'it' cannot be used inside 'it', 'it' may only be used inside 'context' or 'describe'. ") - } - let callsite = Callsite(file: file, line: line) - let example = Example(description: description, callsite: callsite, flags: flags, closure: closure) - currentExampleGroup.appendExample(example) - } - - internal func fit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { - var focusedFlags = flags - focusedFlags[Filter.focused] = true - self.it(description, flags: focusedFlags, file: file, line: line, closure: closure) - } - - internal func xit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { - var pendingFlags = flags - pendingFlags[Filter.pending] = true - self.it(description, flags: pendingFlags, file: file, line: line, closure: closure) - } - - internal func itBehavesLike(_ name: String, sharedExampleContext: @escaping SharedExampleContext, flags: FilterFlags, file: String, line: UInt) { - guard currentExampleMetadata == nil else { - raiseError("'itBehavesLike' cannot be used inside '\(currentPhase)', 'itBehavesLike' may only be used inside 'context' or 'describe'. ") - } - let callsite = Callsite(file: file, line: line) - let closure = World.sharedWorld.sharedExample(name) - - let group = ExampleGroup(description: name, flags: flags) - currentExampleGroup.appendExampleGroup(group) - performWithCurrentExampleGroup(group) { - closure(sharedExampleContext) - } - - group.walkDownExamples { (example: Example) in - example.isSharedExample = true - example.callsite = callsite - } - } - - internal func fitBehavesLike(_ name: String, sharedExampleContext: @escaping SharedExampleContext, flags: FilterFlags, file: String, line: UInt) { - var focusedFlags = flags - focusedFlags[Filter.focused] = true - self.itBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: focusedFlags, file: file, line: line) - } - -#if _runtime(_ObjC) - @objc(itWithDescription:flags:file:line:closure:) - private func objc_it(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { - it(description, flags: flags, file: file, line: line, closure: closure) - } - - @objc(fitWithDescription:flags:file:line:closure:) - private func objc_fit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { - fit(description, flags: flags, file: file, line: line, closure: closure) - } - - @objc(xitWithDescription:flags:file:line:closure:) - private func objc_xit(_ description: String, flags: FilterFlags, file: String, line: UInt, closure: @escaping () -> Void) { - xit(description, flags: flags, file: file, line: line, closure: closure) - } - - @objc(itBehavesLikeSharedExampleNamed:sharedExampleContext:flags:file:line:) - private func objc_itBehavesLike(_ name: String, sharedExampleContext: @escaping SharedExampleContext, flags: FilterFlags, file: String, line: UInt) { - itBehavesLike(name, sharedExampleContext: sharedExampleContext, flags: flags, file: file, line: line) - } -#endif - - internal func pending(_ description: String, closure: () -> Void) { - print("Pending: \(description)") - } - - private var currentPhase: String { - if beforesCurrentlyExecuting { - return "beforeEach" - } else if aftersCurrentlyExecuting { - return "afterEach" - } - - return "it" - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/ErrorUtility.swift b/Carthage/Checkouts/Quick/Sources/Quick/ErrorUtility.swift deleted file mode 100644 index 8405a81..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/ErrorUtility.swift +++ /dev/null @@ -1,10 +0,0 @@ -import Foundation - -internal func raiseError(_ message: String) -> Never { -#if _runtime(_ObjC) - NSException(name: .internalInconsistencyException, reason: message, userInfo: nil).raise() -#endif - - // This won't be reached when ObjC is available and the exception above is raisd - fatalError(message) -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Example.swift b/Carthage/Checkouts/Quick/Sources/Quick/Example.swift deleted file mode 100644 index 56b3303..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Example.swift +++ /dev/null @@ -1,113 +0,0 @@ -import Foundation - -private var numberOfExamplesRun = 0 - -/** - Examples, defined with the `it` function, use assertions to - demonstrate how code should behave. These are like "tests" in XCTest. -*/ -final public class Example: NSObject { - /** - A boolean indicating whether the example is a shared example; - i.e.: whether it is an example defined with `itBehavesLike`. - */ - public var isSharedExample = false - - /** - The site at which the example is defined. - This must be set correctly in order for Xcode to highlight - the correct line in red when reporting a failure. - */ - public var callsite: Callsite - - weak internal var group: ExampleGroup? - - private let internalDescription: String - private let closure: () -> Void - private let flags: FilterFlags - - internal init(description: String, callsite: Callsite, flags: FilterFlags, closure: @escaping () -> Void) { - self.internalDescription = description - self.closure = closure - self.callsite = callsite - self.flags = flags - } - - public override var description: String { - return internalDescription - } - - /** - The example name. A name is a concatenation of the name of - the example group the example belongs to, followed by the - description of the example itself. - - The example name is used to generate a test method selector - to be displayed in Xcode's test navigator. - */ - public var name: String { - guard let groupName = group?.name else { return description } - return "\(groupName), \(description)" - } - - /** - Executes the example closure, as well as all before and after - closures defined in the its surrounding example groups. - */ - public func run() { - let world = World.sharedWorld - - if numberOfExamplesRun == 0 { - world.suiteHooks.executeBefores() - } - - let exampleMetadata = ExampleMetadata(example: self, exampleIndex: numberOfExamplesRun) - world.currentExampleMetadata = exampleMetadata - - world.exampleHooks.executeBefores(exampleMetadata) - group!.phase = .beforesExecuting - for before in group!.befores { - before(exampleMetadata) - } - group!.phase = .beforesFinished - - closure() - - group!.phase = .aftersExecuting - for after in group!.afters { - after(exampleMetadata) - } - group!.phase = .aftersFinished - world.exampleHooks.executeAfters(exampleMetadata) - - numberOfExamplesRun += 1 - - if !world.isRunningAdditionalSuites && numberOfExamplesRun >= world.includedExampleCount { - world.suiteHooks.executeAfters() - } - } - - /** - Evaluates the filter flags set on this example and on the example groups - this example belongs to. Flags set on the example are trumped by flags on - the example group it belongs to. Flags on inner example groups are trumped - by flags on outer example groups. - */ - internal var filterFlags: FilterFlags { - var aggregateFlags = flags - for (key, value) in group!.filterFlags { - aggregateFlags[key] = value - } - return aggregateFlags - } -} - -extension Example { - /** - Returns a boolean indicating whether two Example objects are equal. - If two examples are defined at the exact same callsite, they must be equal. - */ - @nonobjc public static func == (lhs: Example, rhs: Example) -> Bool { - return lhs.callsite == rhs.callsite - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift b/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift deleted file mode 100644 index ca38356..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/ExampleGroup.swift +++ /dev/null @@ -1,103 +0,0 @@ -import Foundation - -/** - Example groups are logical groupings of examples, defined with - the `describe` and `context` functions. Example groups can share - setup and teardown code. -*/ -final public class ExampleGroup: NSObject { - weak internal var parent: ExampleGroup? - internal let hooks = ExampleHooks() - - internal var phase: HooksPhase = .nothingExecuted - - private let internalDescription: String - private let flags: FilterFlags - private let isInternalRootExampleGroup: Bool - private var childGroups = [ExampleGroup]() - private var childExamples = [Example]() - - internal init(description: String, flags: FilterFlags, isInternalRootExampleGroup: Bool = false) { - self.internalDescription = description - self.flags = flags - self.isInternalRootExampleGroup = isInternalRootExampleGroup - } - - public override var description: String { - return internalDescription - } - - /** - Returns a list of examples that belong to this example group, - or to any of its descendant example groups. - */ - public var examples: [Example] { - var examples = childExamples - for group in childGroups { - examples.append(contentsOf: group.examples) - } - return examples - } - - internal var name: String? { - if let parent = parent { - guard let name = parent.name else { return description } - return "\(name), \(description)" - } else { - return isInternalRootExampleGroup ? nil : description - } - } - - internal var filterFlags: FilterFlags { - var aggregateFlags = flags - walkUp { group in - for (key, value) in group.flags { - aggregateFlags[key] = value - } - } - return aggregateFlags - } - - internal var befores: [BeforeExampleWithMetadataClosure] { - var closures = Array(hooks.befores.reversed()) - walkUp { group in - closures.append(contentsOf: Array(group.hooks.befores.reversed())) - } - return Array(closures.reversed()) - } - - internal var afters: [AfterExampleWithMetadataClosure] { - var closures = hooks.afters - walkUp { group in - closures.append(contentsOf: group.hooks.afters) - } - return closures - } - - internal func walkDownExamples(_ callback: (_ example: Example) -> Void) { - for example in childExamples { - callback(example) - } - for group in childGroups { - group.walkDownExamples(callback) - } - } - - internal func appendExampleGroup(_ group: ExampleGroup) { - group.parent = self - childGroups.append(group) - } - - internal func appendExample(_ example: Example) { - example.group = self - childExamples.append(example) - } - - private func walkUp(_ callback: (_ group: ExampleGroup) -> Void) { - var group = self - while let parent = group.parent { - callback(parent) - group = parent - } - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/ExampleMetadata.swift b/Carthage/Checkouts/Quick/Sources/Quick/ExampleMetadata.swift deleted file mode 100644 index e7510f7..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/ExampleMetadata.swift +++ /dev/null @@ -1,24 +0,0 @@ -import Foundation - -/** - A class that encapsulates information about an example, - including the index at which the example was executed, as - well as the example itself. -*/ -final public class ExampleMetadata: NSObject { - /** - The example for which this metadata was collected. - */ - public let example: Example - - /** - The index at which this example was executed in the - test suite. - */ - public let exampleIndex: Int - - internal init(example: Example, exampleIndex: Int) { - self.example = example - self.exampleIndex = exampleIndex - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Filter.swift b/Carthage/Checkouts/Quick/Sources/Quick/Filter.swift deleted file mode 100644 index d452efe..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Filter.swift +++ /dev/null @@ -1,31 +0,0 @@ -import Foundation - -/** - A mapping of string keys to booleans that can be used to - filter examples or example groups. For example, a "focused" - example would have the flags [Focused: true]. -*/ -public typealias FilterFlags = [String: Bool] - -/** - A namespace for filter flag keys, defined primarily to make the - keys available in Objective-C. -*/ -final public class Filter: NSObject { - /** - Example and example groups with [Focused: true] are included in test runs, - excluding all other examples without this flag. Use this to only run one or - two tests that you're currently focusing on. - */ - public class var focused: String { - return "focused" - } - - /** - Example and example groups with [Pending: true] are excluded from test runs. - Use this to temporarily suspend examples that you know do not pass yet. - */ - public class var pending: String { - return "pending" - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift deleted file mode 100644 index 9c7d310..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/Closures.swift +++ /dev/null @@ -1,35 +0,0 @@ -// MARK: Example Hooks - -/** - A closure executed before an example is run. -*/ -public typealias BeforeExampleClosure = () -> Void - -/** - A closure executed before an example is run. The closure is given example metadata, - which contains information about the example that is about to be run. -*/ -public typealias BeforeExampleWithMetadataClosure = (_ exampleMetadata: ExampleMetadata) -> Void - -/** - A closure executed after an example is run. -*/ -public typealias AfterExampleClosure = BeforeExampleClosure - -/** - A closure executed after an example is run. The closure is given example metadata, - which contains information about the example that has just finished running. -*/ -public typealias AfterExampleWithMetadataClosure = BeforeExampleWithMetadataClosure - -// MARK: Suite Hooks - -/** - A closure executed before any examples are run. -*/ -public typealias BeforeSuiteClosure = () -> Void - -/** - A closure executed after all examples have finished running. -*/ -public typealias AfterSuiteClosure = BeforeSuiteClosure diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift deleted file mode 100644 index 449cbfc..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/ExampleHooks.swift +++ /dev/null @@ -1,42 +0,0 @@ -/** - A container for closures to be executed before and after each example. -*/ -final internal class ExampleHooks { - internal var befores: [BeforeExampleWithMetadataClosure] = [] - internal var afters: [AfterExampleWithMetadataClosure] = [] - internal var phase: HooksPhase = .nothingExecuted - - internal func appendBefore(_ closure: @escaping BeforeExampleWithMetadataClosure) { - befores.append(closure) - } - - internal func appendBefore(_ closure: @escaping BeforeExampleClosure) { - befores.append { (_: ExampleMetadata) in closure() } - } - - internal func appendAfter(_ closure: @escaping AfterExampleWithMetadataClosure) { - afters.append(closure) - } - - internal func appendAfter(_ closure: @escaping AfterExampleClosure) { - afters.append { (_: ExampleMetadata) in closure() } - } - - internal func executeBefores(_ exampleMetadata: ExampleMetadata) { - phase = .beforesExecuting - for before in befores { - before(exampleMetadata) - } - - phase = .beforesFinished - } - - internal func executeAfters(_ exampleMetadata: ExampleMetadata) { - phase = .aftersExecuting - for after in afters { - after(exampleMetadata) - } - - phase = .aftersFinished - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/HooksPhase.swift b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/HooksPhase.swift deleted file mode 100644 index 2440158..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/HooksPhase.swift +++ /dev/null @@ -1,11 +0,0 @@ -/** - A description of the execution cycle of the current example with - respect to the hooks of that example. - */ -internal enum HooksPhase { - case nothingExecuted - case beforesExecuting - case beforesFinished - case aftersExecuting - case aftersFinished -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/SuiteHooks.swift b/Carthage/Checkouts/Quick/Sources/Quick/Hooks/SuiteHooks.swift deleted file mode 100644 index b39292b..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Hooks/SuiteHooks.swift +++ /dev/null @@ -1,32 +0,0 @@ -/** - A container for closures to be executed before and after all examples. -*/ -final internal class SuiteHooks { - internal var befores: [BeforeSuiteClosure] = [] - internal var afters: [AfterSuiteClosure] = [] - internal var phase: HooksPhase = .nothingExecuted - - internal func appendBefore(_ closure: @escaping BeforeSuiteClosure) { - befores.append(closure) - } - - internal func appendAfter(_ closure: @escaping AfterSuiteClosure) { - afters.append(closure) - } - - internal func executeBefores() { - phase = .beforesExecuting - for before in befores { - before() - } - phase = .beforesFinished - } - - internal func executeAfters() { - phase = .aftersExecuting - for after in afters { - after() - } - phase = .aftersFinished - } -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/Info.plist b/Carthage/Checkouts/Quick/Sources/Quick/Info.plist deleted file mode 100644 index 9667430..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSHumanReadableCopyright - Copyright © 2014 - present, Quick Team. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift b/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift deleted file mode 100644 index 994dd72..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/NSBundle+CurrentTestBundle.swift +++ /dev/null @@ -1,25 +0,0 @@ -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) - -import Foundation - -extension Bundle { - - /** - Locates the first bundle with a '.xctest' file extension. - */ - internal static var currentTestBundle: Bundle? { - return allBundles.first { $0.bundlePath.hasSuffix(".xctest") } - } - - /** - Return the module name of the bundle. - Uses the bundle filename and transform it to match Xcode's transformation. - Module name has to be a valid "C99 extended identifier". - */ - internal var moduleName: String { - let fileName = bundleURL.fileName as NSString - return fileName.c99ExtendedIdentifier - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift b/Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift deleted file mode 100644 index 4514863..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/NSString+C99ExtendedIdentifier.swift +++ /dev/null @@ -1,33 +0,0 @@ -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) -import Foundation - -public extension NSString { - - private static var invalidCharacters: CharacterSet = { - var invalidCharacters = CharacterSet() - - let invalidCharacterSets: [CharacterSet] = [ - .whitespacesAndNewlines, - .illegalCharacters, - .controlCharacters, - .punctuationCharacters, - .nonBaseCharacters, - .symbols, - ] - - for invalidSet in invalidCharacterSets { - invalidCharacters.formUnion(invalidSet) - } - - return invalidCharacters - }() - - @objc(qck_c99ExtendedIdentifier) - var c99ExtendedIdentifier: String { - let validComponents = components(separatedBy: NSString.invalidCharacters) - let result = validComponents.joined(separator: "_") - - return result.isEmpty ? "_" : result - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift deleted file mode 100644 index eb9aba5..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickMain.swift +++ /dev/null @@ -1,38 +0,0 @@ -import XCTest - -// NOTE: This file is not intended to be included in the Xcode project or CocoaPods. -// It is picked up by the Swift Package Manager during its build process. - -#if SWIFT_PACKAGE && os(Linux) - -/// When using Quick with swift-corelibs-xctest, automatic discovery of specs and -/// configurations is not available. Instead, you should create a standalone -/// executable and call this function from its main.swift file. This will execute -/// the specs and then terminate the process with an exit code of 0 if the tests -/// passed, or 1 if there were any failures. -/// -/// Quick is known to work with the DEVELOPMENT-SNAPSHOT-2016-02-08-a Swift toolchain. -/// -/// - parameter specs: An array of QuickSpec subclasses to run -/// - parameter configurations: An array QuickConfiguration subclasses for setting up -// global suite configuration (optional) -/// - parameter testCases: An array of XCTestCase test cases, just as would be passed -/// info `XCTMain` if you were using swift-corelibs-xctest directly. -/// This allows for mixing Quick specs and XCTestCase tests in one run. -public func QCKMain(_ specs: [QuickSpec.Type], - configurations: [QuickConfiguration.Type] = [], - testCases: [XCTestCaseEntry] = []) -> Never { - let world = World.sharedWorld - - // Perform all configurations (ensures that shared examples have been discovered) - world.configure { configuration in - for configurationClass in configurations { - configurationClass.configure(configuration) - } - } - world.finalizeConfiguration() - - XCTMain(specs.flatMap { testCase($0.allTests) } + testCases) -} - -#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift deleted file mode 100644 index d49e859..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickSelectedTestSuiteBuilder.swift +++ /dev/null @@ -1,74 +0,0 @@ -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) -import Foundation - -/** - Responsible for building a "Selected tests" suite. This corresponds to a single - spec, and all its examples. - */ -internal class QuickSelectedTestSuiteBuilder: QuickTestSuiteBuilder { - - /** - The test spec class to run. - */ - let testCaseClass: AnyClass! - - /** - For Objective-C classes, returns the class name. For Swift classes without, - an explicit Objective-C name, returns a module-namespaced class name - (e.g., "FooTests.FooSpec"). - */ - var testSuiteClassName: String { - return NSStringFromClass(testCaseClass) - } - - /** - Given a test case name: - - FooSpec/testFoo - - Optionally constructs a test suite builder for the named test case class - in the running test bundle. - - If no test bundle can be found, or the test case class can't be found, - initialization fails and returns `nil`. - */ - init?(forTestCaseWithName name: String) { - guard let testCaseClass = testCaseClassForTestCaseWithName(name) else { - self.testCaseClass = nil - return nil - } - - self.testCaseClass = testCaseClass - } - - /** - Returns a `QuickTestSuite` that runs the associated test case class. - */ - func buildTestSuite() -> QuickTestSuite { - return QuickTestSuite(forTestCaseClass: testCaseClass) - } - -} - -/** - Searches `Bundle.allBundles()` for an xctest bundle, then looks up the named - test case class in that bundle. - - Returns `nil` if a bundle or test case class cannot be found. - */ -private func testCaseClassForTestCaseWithName(_ name: String) -> AnyClass? { - func extractClassName(_ name: String) -> String? { - return name.components(separatedBy: "/").first - } - - guard let className = extractClassName(name) else { return nil } - guard let bundle = Bundle.currentTestBundle else { return nil } - - if let testCaseClass = bundle.classNamed(className) { return testCaseClass } - - let moduleName = bundle.moduleName - - return NSClassFromString("\(moduleName).\(className)") -} - -#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift deleted file mode 100644 index 5682a78..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickSpec.swift +++ /dev/null @@ -1,122 +0,0 @@ -import XCTest - -// NOTE: This file is not intended to be included in the Xcode project or CocoaPods. -// It is picked up by the Swift Package Manager during its build process. - -#if SWIFT_PACKAGE - -#if _runtime(_ObjC) -import QuickSpecBase - -public typealias QuickSpecBase = _QuickSpecBase -#else -public typealias QuickSpecBase = XCTestCase -#endif - -open class QuickSpec: QuickSpecBase { - open func spec() {} - -#if !_runtime(_ObjC) - public required init() { - super.init(name: "", testClosure: { _ in }) - } - public required init(name: String, testClosure: @escaping (XCTestCase) throws -> Swift.Void) { - super.init(name: name, testClosure: testClosure) - } -#else - public required override init() { - super.init() - } - - /// This method is used as a hook for the following two purposes - /// - /// 1. Performing all configurations - /// 2. Gathering examples for each spec classes - /// - /// On Linux, those are done in `LinuxMain.swift` and `Quick.QCKMain`. But - /// SwiftPM on macOS does not have the mechanism (test cases are automatically - /// discovered powered by Objective-C runtime), so we needed the alternative - /// way. - override open class func defaultTestSuite() -> XCTestSuite { - let world = World.sharedWorld - - if !world.isConfigurationFinalized { - // Perform all configurations (ensures that shared examples have been discovered) - world.configure { configuration in - qck_enumerateSubclasses(QuickConfiguration.self) { configurationClass in - configurationClass.configure(configuration) - } - } - world.finalizeConfiguration() - } - - // Let's gather examples for each spec classes. This has the same effect - // as listing spec classes in `LinuxMain.swift` on Linux. - _ = allTests - - return super.defaultTestSuite() - } - - override open class func _qck_testMethodSelectors() -> [_QuickSelectorWrapper] { - let examples = World.sharedWorld.examples(self) - - var selectorNames = Set() - return examples.map { example in - let selector = addInstanceMethod(for: example, classSelectorNames: &selectorNames) - return _QuickSelectorWrapper(selector: selector) - } - } - - private static func addInstanceMethod(for example: Example, classSelectorNames selectorNames : inout Set) -> Selector { - let block: @convention(block) (QuickSpec) -> Void = { _ in - example.run() - } - let implementation = imp_implementationWithBlock(block as Any) - - let originalName = example.name - var selectorName = originalName - var i: UInt = 2 - - while selectorNames.contains(selectorName) { - selectorName = String(format: "%@_%tu", originalName, i) - i += 1 - } - - selectorNames.insert(selectorName) - - let selector = NSSelectorFromString(selectorName) - class_addMethod(self, selector, implementation, "v@:") - - return selector - } -#endif - - static var allTestsCache = [String: [(String, (XCTestCase) -> () throws -> Void)]]() - - public class var allTests: [(String, (XCTestCase) -> () throws -> Void)] { - if let cached = allTestsCache[String(describing: self)] { - return cached - } - - gatherExamplesIfNeeded() - - let examples = World.sharedWorld.examples(self) - let result = examples.map { example -> (String, (XCTestCase) -> () throws -> Void) in - return (example.name, { _ in { example.run() } }) - } - allTestsCache[String(describing: self)] = result - return result - } - - internal static func gatherExamplesIfNeeded() { - let world = World.sharedWorld - let rootExampleGroup = world.rootExampleGroupForSpecClass(self) - if rootExampleGroup.examples.isEmpty { - world.currentExampleGroup = rootExampleGroup - self.init().spec() - world.currentExampleGroup = nil - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/QuickTestSuite.swift b/Carthage/Checkouts/Quick/Sources/Quick/QuickTestSuite.swift deleted file mode 100644 index 0cb5187..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/QuickTestSuite.swift +++ /dev/null @@ -1,52 +0,0 @@ -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) - -import XCTest - -/** - This protocol defines the role of an object that builds test suites. - */ -internal protocol QuickTestSuiteBuilder { - - /** - Construct a `QuickTestSuite` instance with the appropriate test cases added as tests. - - Subsequent calls to this method should return equivalent test suites. - */ - func buildTestSuite() -> QuickTestSuite - -} - -/** - A base class for a class cluster of Quick test suites, that should correctly - build dynamic test suites for XCTest to execute. - */ -public class QuickTestSuite: XCTestSuite { - - private static var builtTestSuites: Set = Set() - - /** - Construct a test suite for a specific, selected subset of test cases (rather - than the default, which as all test cases). - - If this method is called multiple times for the same test case class, e.g.. - - FooSpec/testFoo - FooSpec/testBar - - It is expected that the first call should return a valid test suite, and - all subsequent calls should return `nil`. - */ - public static func selectedTestSuite(forTestCaseWithName name: String) -> QuickTestSuite? { - guard let builder = QuickSelectedTestSuiteBuilder(forTestCaseWithName: name) else { return nil } - - if builtTestSuites.contains(builder.testSuiteClassName) { - return nil - } else { - builtTestSuites.insert(builder.testSuiteClassName) - return builder.buildTestSuite() - } - } - -} - -#endif diff --git a/Carthage/Checkouts/Quick/Sources/Quick/URL+FileName.swift b/Carthage/Checkouts/Quick/Sources/Quick/URL+FileName.swift deleted file mode 100644 index 23c4781..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/URL+FileName.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Foundation - -extension URL { - - /** - Returns the path file name without file extension. - */ - var fileName: String { - return self.deletingPathExtension().lastPathComponent - } - -} diff --git a/Carthage/Checkouts/Quick/Sources/Quick/World.swift b/Carthage/Checkouts/Quick/Sources/Quick/World.swift deleted file mode 100644 index fb5ec25..0000000 --- a/Carthage/Checkouts/Quick/Sources/Quick/World.swift +++ /dev/null @@ -1,233 +0,0 @@ -import Foundation - -/** - A closure that, when evaluated, returns a dictionary of key-value - pairs that can be accessed from within a group of shared examples. -*/ -public typealias SharedExampleContext = () -> [String: Any] - -/** - A closure that is used to define a group of shared examples. This - closure may contain any number of example and example groups. -*/ -public typealias SharedExampleClosure = (@escaping SharedExampleContext) -> Void - -/** - A collection of state Quick builds up in order to work its magic. - World is primarily responsible for maintaining a mapping of QuickSpec - classes to root example groups for those classes. - - It also maintains a mapping of shared example names to shared - example closures. - - You may configure how Quick behaves by calling the -[World configure:] - method from within an overridden +[QuickConfiguration configure:] method. -*/ -final internal class World: NSObject { - /** - The example group that is currently being run. - The DSL requires that this group is correctly set in order to build a - correct hierarchy of example groups and their examples. - */ - internal var currentExampleGroup: ExampleGroup! - - /** - The example metadata of the test that is currently being run. - This is useful for using the Quick test metadata (like its name) at - runtime. - */ - - internal var currentExampleMetadata: ExampleMetadata? - - /** - A flag that indicates whether additional test suites are being run - within this test suite. This is only true within the context of Quick - functional tests. - */ -#if _runtime(_ObjC) - // Convention of generating Objective-C selector has been changed on Swift 3 - @objc(isRunningAdditionalSuites) - internal var isRunningAdditionalSuites = false -#else - internal var isRunningAdditionalSuites = false -#endif - - private var specs: [String: ExampleGroup] = [:] - private var sharedExamples: [String: SharedExampleClosure] = [:] - private let configuration = Configuration() - - internal private(set) var isConfigurationFinalized = false - - internal var exampleHooks: ExampleHooks {return configuration.exampleHooks } - internal var suiteHooks: SuiteHooks { return configuration.suiteHooks } - - // MARK: Singleton Constructor - - private override init() {} - static let sharedWorld = World() - - // MARK: Public Interface - - /** - Exposes the World's Configuration object within the scope of the closure - so that it may be configured. This method must not be called outside of - an overridden +[QuickConfiguration configure:] method. - - - parameter closure: A closure that takes a Configuration object that can - be mutated to change Quick's behavior. - */ - internal func configure(_ closure: QuickConfigurer) { - assert(!isConfigurationFinalized, - "Quick cannot be configured outside of a +[QuickConfiguration configure:] method. You should not call -[World configure:] directly. Instead, subclass QuickConfiguration and override the +[QuickConfiguration configure:] method.") - closure(configuration) - } - - /** - Finalizes the World's configuration. - Any subsequent calls to World.configure() will raise. - */ - internal func finalizeConfiguration() { - isConfigurationFinalized = true - } - - /** - Returns an internally constructed root example group for the given - QuickSpec class. - - A root example group with the description "root example group" is lazily - initialized for each QuickSpec class. This root example group wraps the - top level of a -[QuickSpec spec] method--it's thanks to this group that - users can define beforeEach and it closures at the top level, like so: - - override func spec() { - // These belong to the root example group - beforeEach {} - it("is at the top level") {} - } - - - parameter cls: The QuickSpec class for which to retrieve the root example group. - - returns: The root example group for the class. - */ - internal func rootExampleGroupForSpecClass(_ cls: AnyClass) -> ExampleGroup { - let name = String(describing: cls) - - if let group = specs[name] { - return group - } else { - let group = ExampleGroup( - description: "root example group", - flags: [:], - isInternalRootExampleGroup: true - ) - specs[name] = group - return group - } - } - - /** - Returns all examples that should be run for a given spec class. - There are two filtering passes that occur when determining which examples should be run. - That is, these examples are the ones that are included by inclusion filters, and are - not excluded by exclusion filters. - - - parameter specClass: The QuickSpec subclass for which examples are to be returned. - - returns: A list of examples to be run as test invocations. - */ - internal func examples(_ specClass: AnyClass) -> [Example] { - // 1. Grab all included examples. - let included = includedExamples - // 2. Grab the intersection of (a) examples for this spec, and (b) included examples. - let spec = rootExampleGroupForSpecClass(specClass).examples.filter { included.contains($0) } - // 3. Remove all excluded examples. - return spec.filter { example in - !self.configuration.exclusionFilters.reduce(false) { $0 || $1(example) } - } - } - -#if _runtime(_ObjC) - @objc(examplesForSpecClass:) - private func objc_examples(_ specClass: AnyClass) -> [Example] { - return examples(specClass) - } -#endif - - // MARK: Internal - - internal func registerSharedExample(_ name: String, closure: @escaping SharedExampleClosure) { - raiseIfSharedExampleAlreadyRegistered(name) - sharedExamples[name] = closure - } - - internal func sharedExample(_ name: String) -> SharedExampleClosure { - raiseIfSharedExampleNotRegistered(name) - return sharedExamples[name]! - } - - internal var includedExampleCount: Int { - return includedExamples.count - } - - internal var beforesCurrentlyExecuting: Bool { - let suiteBeforesExecuting = suiteHooks.phase == .beforesExecuting - let exampleBeforesExecuting = exampleHooks.phase == .beforesExecuting - var groupBeforesExecuting = false - if let runningExampleGroup = currentExampleMetadata?.example.group { - groupBeforesExecuting = runningExampleGroup.phase == .beforesExecuting - } - - return suiteBeforesExecuting || exampleBeforesExecuting || groupBeforesExecuting - } - - internal var aftersCurrentlyExecuting: Bool { - let suiteAftersExecuting = suiteHooks.phase == .aftersExecuting - let exampleAftersExecuting = exampleHooks.phase == .aftersExecuting - var groupAftersExecuting = false - if let runningExampleGroup = currentExampleMetadata?.example.group { - groupAftersExecuting = runningExampleGroup.phase == .aftersExecuting - } - - return suiteAftersExecuting || exampleAftersExecuting || groupAftersExecuting - } - - internal func performWithCurrentExampleGroup(_ group: ExampleGroup, closure: () -> Void) { - let previousExampleGroup = currentExampleGroup - currentExampleGroup = group - - closure() - - currentExampleGroup = previousExampleGroup - } - - private var allExamples: [Example] { - var all: [Example] = [] - for (_, group) in specs { - group.walkDownExamples { all.append($0) } - } - return all - } - - private var includedExamples: [Example] { - let all = allExamples - let included = all.filter { example in - return self.configuration.inclusionFilters.reduce(false) { $0 || $1(example) } - } - - if included.isEmpty && configuration.runAllWhenEverythingFiltered { - return all - } else { - return included - } - } - - private func raiseIfSharedExampleAlreadyRegistered(_ name: String) { - if sharedExamples[name] != nil { - raiseError("A shared example named '\(name)' has already been registered.") - } - } - - private func raiseIfSharedExampleNotRegistered(_ name: String) { - if sharedExamples[name] == nil { - raiseError("No shared example named '\(name)' has been registered. Registered shared examples: '\(Array(sharedExamples.keys))'") - } - } -} diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.h deleted file mode 100644 index 5646199..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.h +++ /dev/null @@ -1,30 +0,0 @@ -#import - -@class Configuration; - -/** - Subclass QuickConfiguration and override the +[QuickConfiguration configure:] - method in order to configure how Quick behaves when running specs, or to define - shared examples that are used across spec files. - */ -@interface QuickConfiguration : NSObject - -/** - This method is executed on each subclass of this class before Quick runs - any examples. You may override this method on as many subclasses as you like, but - there is no guarantee as to the order in which these methods are executed. - - You can override this method in order to: - - 1. Configure how Quick behaves, by modifying properties on the Configuration object. - Setting the same properties in several methods has undefined behavior. - - 2. Define shared examples using `sharedExamples`. - - @param configuration A mutable object that is used to configure how Quick behaves on - a framework level. For details on all the options, see the - documentation in Configuration.swift. - */ -+ (void)configure:(Configuration *)configuration; - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.m b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.m deleted file mode 100644 index 937b818..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Configuration/QuickConfiguration.m +++ /dev/null @@ -1,83 +0,0 @@ -#import "QuickConfiguration.h" -#import "World.h" -#import - -typedef void (^QCKClassEnumerationBlock)(Class klass); - -/** - Finds all direct subclasses of the given class and passes them to the block provided. - The classes are iterated over in the order that objc_getClassList returns them. - - @param klass The base class to find subclasses of. - @param block A block that takes a Class. This block will be executed once for each subclass of klass. - */ -void qck_enumerateSubclasses(Class klass, QCKClassEnumerationBlock block) { - Class *classes = NULL; - int classesCount = objc_getClassList(NULL, 0); - - if (classesCount > 0) { - classes = (Class *)calloc(sizeof(Class), classesCount); - classesCount = objc_getClassList(classes, classesCount); - - Class subclass, superclass; - for(int i = 0; i < classesCount; i++) { - subclass = classes[i]; - superclass = class_getSuperclass(subclass); - if (superclass == klass && block) { - block(subclass); - } - } - - free(classes); - } -} - -@implementation QuickConfiguration - -#pragma mark - Object Lifecycle - -/** - QuickConfiguration is not meant to be instantiated; it merely provides a hook - for users to configure how Quick behaves. Raise an exception if an instance of - QuickConfiguration is created. - */ -- (instancetype)init { - NSString *className = NSStringFromClass([self class]); - NSString *selectorName = NSStringFromSelector(@selector(configure:)); - [NSException raise:NSInternalInconsistencyException - format:@"%@ is not meant to be instantiated; " - @"subclass %@ and override %@ to configure Quick.", - className, className, selectorName]; - return nil; -} - -#pragma mark - NSObject Overrides - -/** - Hook into when QuickConfiguration is initialized in the runtime in order to - call +[QuickConfiguration configure:] on each of its subclasses. - */ -+ (void)initialize { - // Only enumerate over the subclasses of QuickConfiguration, not any of its subclasses. - if ([self class] == [QuickConfiguration class]) { - - // Only enumerate over subclasses once, even if +[QuickConfiguration initialize] - // were to be called several times. This is necessary because +[QuickSpec initialize] - // manually calls +[QuickConfiguration initialize]. - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - qck_enumerateSubclasses([QuickConfiguration class], ^(__unsafe_unretained Class klass) { - [[World sharedWorld] configure:^(Configuration *configuration) { - [klass configure:configuration]; - }]; - }); - [[World sharedWorld] finalizeConfiguration]; - }); - } -} - -#pragma mark - Public Interface - -+ (void)configure:(Configuration *)configuration { } - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.h deleted file mode 100644 index c5f3152..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.h +++ /dev/null @@ -1,234 +0,0 @@ -#import - -@class ExampleMetadata; - -/** - Provides a hook for Quick to be configured before any examples are run. - Within this scope, override the +[QuickConfiguration configure:] method - to set properties on a configuration object to customize Quick behavior. - For details, see the documentation for Configuraiton.swift. - - @param name The name of the configuration class. Like any Objective-C - class name, this must be unique to the current runtime - environment. - */ -#define QuickConfigurationBegin(name) \ - @interface name : QuickConfiguration; @end \ - @implementation name \ - - -/** - Marks the end of a Quick configuration. - Make sure you put this after `QuickConfigurationBegin`. - */ -#define QuickConfigurationEnd \ - @end \ - - -/** - Defines a new QuickSpec. Define examples and example groups within the space - between this and `QuickSpecEnd`. - - @param name The name of the spec class. Like any Objective-C class name, this - must be unique to the current runtime environment. - */ -#define QuickSpecBegin(name) \ - @interface name : QuickSpec; @end \ - @implementation name \ - - (void)spec { \ - - -/** - Marks the end of a QuickSpec. Make sure you put this after `QuickSpecBegin`. - */ -#define QuickSpecEnd \ - } \ - @end \ - -typedef NSDictionary *(^QCKDSLSharedExampleContext)(void); -typedef void (^QCKDSLSharedExampleBlock)(QCKDSLSharedExampleContext); -typedef void (^QCKDSLEmptyBlock)(void); -typedef void (^QCKDSLExampleMetadataBlock)(ExampleMetadata *exampleMetadata); - -#define QUICK_EXPORT FOUNDATION_EXPORT - -QUICK_EXPORT void qck_beforeSuite(QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_afterSuite(QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_sharedExamples(NSString *name, QCKDSLSharedExampleBlock closure); -QUICK_EXPORT void qck_describe(NSString *description, QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_context(NSString *description, QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_beforeEach(QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_beforeEachWithMetadata(QCKDSLExampleMetadataBlock closure); -QUICK_EXPORT void qck_afterEach(QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_afterEachWithMetadata(QCKDSLExampleMetadataBlock closure); -QUICK_EXPORT void qck_pending(NSString *description, QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_xdescribe(NSString *description, QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_xcontext(NSString *description, QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_fdescribe(NSString *description, QCKDSLEmptyBlock closure); -QUICK_EXPORT void qck_fcontext(NSString *description, QCKDSLEmptyBlock closure); - -#ifndef QUICK_DISABLE_SHORT_SYNTAX -/** - Defines a closure to be run prior to any examples in the test suite. - You may define an unlimited number of these closures, but there is no - guarantee as to the order in which they're run. - - If the test suite crashes before the first example is run, this closure - will not be executed. - - @param closure The closure to be run prior to any examples in the test suite. - */ -static inline void beforeSuite(QCKDSLEmptyBlock closure) { - qck_beforeSuite(closure); -} - - -/** - Defines a closure to be run after all of the examples in the test suite. - You may define an unlimited number of these closures, but there is no - guarantee as to the order in which they're run. - - If the test suite crashes before all examples are run, this closure - will not be executed. - - @param closure The closure to be run after all of the examples in the test suite. - */ -static inline void afterSuite(QCKDSLEmptyBlock closure) { - qck_afterSuite(closure); -} - -/** - Defines a group of shared examples. These examples can be re-used in several locations - by using the `itBehavesLike` function. - - @param name The name of the shared example group. This must be unique across all shared example - groups defined in a test suite. - @param closure A closure containing the examples. This behaves just like an example group defined - using `describe` or `context`--the closure may contain any number of `beforeEach` - and `afterEach` closures, as well as any number of examples (defined using `it`). - */ -static inline void sharedExamples(NSString *name, QCKDSLSharedExampleBlock closure) { - qck_sharedExamples(name, closure); -} - -/** - Defines an example group. Example groups are logical groupings of examples. - Example groups can share setup and teardown code. - - @param description An arbitrary string describing the example group. - @param closure A closure that can contain other examples. - */ -static inline void describe(NSString *description, QCKDSLEmptyBlock closure) { - qck_describe(description, closure); -} - -/** - Defines an example group. Equivalent to `describe`. - */ -static inline void context(NSString *description, QCKDSLEmptyBlock closure) { - qck_context(description, closure); -} - -/** - Defines a closure to be run prior to each example in the current example - group. This closure is not run for pending or otherwise disabled examples. - An example group may contain an unlimited number of beforeEach. They'll be - run in the order they're defined, but you shouldn't rely on that behavior. - - @param closure The closure to be run prior to each example. - */ -static inline void beforeEach(QCKDSLEmptyBlock closure) { - qck_beforeEach(closure); -} - -/** - Identical to QCKDSL.beforeEach, except the closure is provided with - metadata on the example that the closure is being run prior to. - */ -static inline void beforeEachWithMetadata(QCKDSLExampleMetadataBlock closure) { - qck_beforeEachWithMetadata(closure); -} - -/** - Defines a closure to be run after each example in the current example - group. This closure is not run for pending or otherwise disabled examples. - An example group may contain an unlimited number of afterEach. They'll be - run in the order they're defined, but you shouldn't rely on that behavior. - - @param closure The closure to be run after each example. - */ -static inline void afterEach(QCKDSLEmptyBlock closure) { - qck_afterEach(closure); -} - -/** - Identical to QCKDSL.afterEach, except the closure is provided with - metadata on the example that the closure is being run after. - */ -static inline void afterEachWithMetadata(QCKDSLExampleMetadataBlock closure) { - qck_afterEachWithMetadata(closure); -} - -/** - Defines an example or example group that should not be executed. Use `pending` to temporarily disable - examples or groups that should not be run yet. - - @param description An arbitrary string describing the example or example group. - @param closure A closure that will not be evaluated. - */ -static inline void pending(NSString *description, QCKDSLEmptyBlock closure) { - qck_pending(description, closure); -} - -/** - Use this to quickly mark a `describe` block as pending. - This disables all examples within the block. - */ -static inline void xdescribe(NSString *description, QCKDSLEmptyBlock closure) { - qck_xdescribe(description, closure); -} - -/** - Use this to quickly mark a `context` block as pending. - This disables all examples within the block. - */ -static inline void xcontext(NSString *description, QCKDSLEmptyBlock closure) { - qck_xcontext(description, closure); -} - -/** - Use this to quickly focus a `describe` block, focusing the examples in the block. - If any examples in the test suite are focused, only those examples are executed. - This trumps any explicitly focused or unfocused examples within the block--they are all treated as focused. - */ -static inline void fdescribe(NSString *description, QCKDSLEmptyBlock closure) { - qck_fdescribe(description, closure); -} - -/** - Use this to quickly focus a `context` block. Equivalent to `fdescribe`. - */ -static inline void fcontext(NSString *description, QCKDSLEmptyBlock closure) { - qck_fcontext(description, closure); -} - -#define it qck_it -#define xit qck_xit -#define fit qck_fit -#define itBehavesLike qck_itBehavesLike -#define xitBehavesLike qck_xitBehavesLike -#define fitBehavesLike qck_fitBehavesLike -#endif - -#define qck_it qck_it_builder(@{}, @(__FILE__), __LINE__) -#define qck_xit qck_it_builder(@{Filter.pending: @YES}, @(__FILE__), __LINE__) -#define qck_fit qck_it_builder(@{Filter.focused: @YES}, @(__FILE__), __LINE__) -#define qck_itBehavesLike qck_itBehavesLike_builder(@{}, @(__FILE__), __LINE__) -#define qck_xitBehavesLike qck_itBehavesLike_builder(@{Filter.pending: @YES}, @(__FILE__), __LINE__) -#define qck_fitBehavesLike qck_itBehavesLike_builder(@{Filter.focused: @YES}, @(__FILE__), __LINE__) - -typedef void (^QCKItBlock)(NSString *description, QCKDSLEmptyBlock closure); -typedef void (^QCKItBehavesLikeBlock)(NSString *description, QCKDSLSharedExampleContext context); - -QUICK_EXPORT QCKItBlock qck_it_builder(NSDictionary *flags, NSString *file, NSUInteger line); -QUICK_EXPORT QCKItBehavesLikeBlock qck_itBehavesLike_builder(NSDictionary *flags, NSString *file, NSUInteger line); diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.m b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.m deleted file mode 100644 index 10e8a3d..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/QCKDSL.m +++ /dev/null @@ -1,79 +0,0 @@ -#import "QCKDSL.h" -#import "World.h" -#import "World+DSL.h" - -void qck_beforeSuite(QCKDSLEmptyBlock closure) { - [[World sharedWorld] beforeSuite:closure]; -} - -void qck_afterSuite(QCKDSLEmptyBlock closure) { - [[World sharedWorld] afterSuite:closure]; -} - -void qck_sharedExamples(NSString *name, QCKDSLSharedExampleBlock closure) { - [[World sharedWorld] sharedExamples:name closure:closure]; -} - -void qck_describe(NSString *description, QCKDSLEmptyBlock closure) { - [[World sharedWorld] describe:description flags:@{} closure:closure]; -} - -void qck_context(NSString *description, QCKDSLEmptyBlock closure) { - qck_describe(description, closure); -} - -void qck_beforeEach(QCKDSLEmptyBlock closure) { - [[World sharedWorld] beforeEach:closure]; -} - -void qck_beforeEachWithMetadata(QCKDSLExampleMetadataBlock closure) { - [[World sharedWorld] beforeEachWithMetadata:closure]; -} - -void qck_afterEach(QCKDSLEmptyBlock closure) { - [[World sharedWorld] afterEach:closure]; -} - -void qck_afterEachWithMetadata(QCKDSLExampleMetadataBlock closure) { - [[World sharedWorld] afterEachWithMetadata:closure]; -} - -QCKItBlock qck_it_builder(NSDictionary *flags, NSString *file, NSUInteger line) { - return ^(NSString *description, QCKDSLEmptyBlock closure) { - [[World sharedWorld] itWithDescription:description - flags:flags - file:file - line:line - closure:closure]; - }; -} - -QCKItBehavesLikeBlock qck_itBehavesLike_builder(NSDictionary *flags, NSString *file, NSUInteger line) { - return ^(NSString *name, QCKDSLSharedExampleContext context) { - [[World sharedWorld] itBehavesLikeSharedExampleNamed:name - sharedExampleContext:context - flags:flags - file:file - line:line]; - }; -} - -void qck_pending(NSString *description, QCKDSLEmptyBlock closure) { - [[World sharedWorld] pending:description closure:closure]; -} - -void qck_xdescribe(NSString *description, QCKDSLEmptyBlock closure) { - [[World sharedWorld] xdescribe:description flags:@{} closure:closure]; -} - -void qck_xcontext(NSString *description, QCKDSLEmptyBlock closure) { - qck_xdescribe(description, closure); -} - -void qck_fdescribe(NSString *description, QCKDSLEmptyBlock closure) { - [[World sharedWorld] fdescribe:description flags:@{} closure:closure]; -} - -void qck_fcontext(NSString *description, QCKDSLEmptyBlock closure) { - qck_fdescribe(description, closure); -} diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/World+DSL.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/World+DSL.h deleted file mode 100644 index a3b8524..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/DSL/World+DSL.h +++ /dev/null @@ -1,20 +0,0 @@ -#import - -@interface World (SWIFT_EXTENSION(Quick)) -- (void)beforeSuite:(void (^ __nonnull)(void))closure; -- (void)afterSuite:(void (^ __nonnull)(void))closure; -- (void)sharedExamples:(NSString * __nonnull)name closure:(void (^ __nonnull)(NSDictionary * __nonnull (^ __nonnull)(void)))closure; -- (void)describe:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags closure:(void (^ __nonnull)(void))closure; -- (void)context:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags closure:(void (^ __nonnull)(void))closure; -- (void)fdescribe:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags closure:(void (^ __nonnull)(void))closure; -- (void)xdescribe:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags closure:(void (^ __nonnull)(void))closure; -- (void)beforeEach:(void (^ __nonnull)(void))closure; -- (void)beforeEachWithMetadata:(void (^ __nonnull)(ExampleMetadata * __nonnull))closure; -- (void)afterEach:(void (^ __nonnull)(void))closure; -- (void)afterEachWithMetadata:(void (^ __nonnull)(ExampleMetadata * __nonnull))closure; -- (void)itWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line closure:(void (^ __nonnull)(void))closure; -- (void)fitWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line closure:(void (^ __nonnull)(void))closure; -- (void)xitWithDescription:(NSString * __nonnull)description flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line closure:(void (^ __nonnull)(void))closure; -- (void)itBehavesLikeSharedExampleNamed:(NSString * __nonnull)name sharedExampleContext:(NSDictionary * __nonnull (^ __nonnull)(void))sharedExampleContext flags:(NSDictionary * __nonnull)flags file:(NSString * __nonnull)file line:(NSUInteger)line; -- (void)pending:(NSString * __nonnull)description closure:(void (^ __nonnull)(void))closure; -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.h deleted file mode 100644 index 2da524e..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.h +++ /dev/null @@ -1,17 +0,0 @@ -#import - -/** - QuickSpec converts example names into test methods. - Those test methods need valid selector names, which means no whitespace, - control characters, etc. This category gives NSString objects an easy way - to replace those illegal characters with underscores. - */ -@interface NSString (QCKSelectorName) - -/** - Returns a string with underscores in place of all characters that cannot - be included in a selector (SEL) name. - */ -@property (nonatomic, readonly) NSString *qck_selectorName; - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.m b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.m deleted file mode 100644 index d374be6..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/NSString+QCKSelectorName.m +++ /dev/null @@ -1,37 +0,0 @@ -#import "NSString+QCKSelectorName.h" - -@implementation NSString (QCKSelectorName) - -- (NSString *)qck_selectorName { - static NSMutableCharacterSet *invalidCharacters = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - invalidCharacters = [NSMutableCharacterSet new]; - - NSCharacterSet *whitespaceCharacterSet = [NSCharacterSet whitespaceCharacterSet]; - NSCharacterSet *newlineCharacterSet = [NSCharacterSet newlineCharacterSet]; - NSCharacterSet *illegalCharacterSet = [NSCharacterSet illegalCharacterSet]; - NSCharacterSet *controlCharacterSet = [NSCharacterSet controlCharacterSet]; - NSCharacterSet *punctuationCharacterSet = [NSCharacterSet punctuationCharacterSet]; - NSCharacterSet *nonBaseCharacterSet = [NSCharacterSet nonBaseCharacterSet]; - NSCharacterSet *symbolCharacterSet = [NSCharacterSet symbolCharacterSet]; - - [invalidCharacters formUnionWithCharacterSet:whitespaceCharacterSet]; - [invalidCharacters formUnionWithCharacterSet:newlineCharacterSet]; - [invalidCharacters formUnionWithCharacterSet:illegalCharacterSet]; - [invalidCharacters formUnionWithCharacterSet:controlCharacterSet]; - [invalidCharacters formUnionWithCharacterSet:punctuationCharacterSet]; - [invalidCharacters formUnionWithCharacterSet:nonBaseCharacterSet]; - [invalidCharacters formUnionWithCharacterSet:symbolCharacterSet]; - }); - - NSArray *validComponents = [self componentsSeparatedByCharactersInSet:invalidCharacters]; - - NSString *result = [validComponents componentsJoinedByString:@"_"]; - - return ([result length] == 0 - ? @"_" - : result); -} - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Quick.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Quick.h deleted file mode 100644 index 87dad10..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/Quick.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -//! Project version number for Quick. -FOUNDATION_EXPORT double QuickVersionNumber; - -//! Project version string for Quick. -FOUNDATION_EXPORT const unsigned char QuickVersionString[]; - -#import "QuickSpec.h" -#import "QCKDSL.h" -#import "QuickConfiguration.h" diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.h deleted file mode 100644 index 105a97e..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.h +++ /dev/null @@ -1,50 +0,0 @@ -#import - -/** - QuickSpec is a base class all specs written in Quick inherit from. - They need to inherit from QuickSpec, a subclass of XCTestCase, in - order to be discovered by the XCTest framework. - - XCTest automatically compiles a list of XCTestCase subclasses included - in the test target. It iterates over each class in that list, and creates - a new instance of that class for each test method. It then creates an - "invocation" to execute that test method. The invocation is an instance of - NSInvocation, which represents a single message send in Objective-C. - The invocation is set on the XCTestCase instance, and the test is run. - - Most of the code in QuickSpec is dedicated to hooking into XCTest events. - First, when the spec is first loaded and before it is sent any messages, - the +[NSObject initialize] method is called. QuickSpec overrides this method - to call +[QuickSpec spec]. This builds the example group stacks and - registers them with Quick.World, a global register of examples. - - Then, XCTest queries QuickSpec for a list of test methods. Normally, XCTest - automatically finds all methods whose selectors begin with the string "test". - However, QuickSpec overrides this default behavior by implementing the - +[XCTestCase testInvocations] method. This method iterates over each example - registered in Quick.World, defines a new method for that example, and - returns an invocation to call that method to XCTest. Those invocations are - the tests that are run by XCTest. Their selector names are displayed in - the Xcode test navigation bar. - */ -@interface QuickSpec : XCTestCase - -/** - Override this method in your spec to define a set of example groups - and examples. - - @code - override func spec() { - describe("winter") { - it("is coming") { - // ... - } - } - } - @endcode - - See DSL.swift for more information on what syntax is available. - */ -- (void)spec; - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m deleted file mode 100644 index 4891679..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/QuickSpec.m +++ /dev/null @@ -1,141 +0,0 @@ -#import "QuickSpec.h" -#import "QuickConfiguration.h" -#import "World.h" -#import - -static QuickSpec *currentSpec = nil; - -@interface QuickSpec () -@property (nonatomic, strong) Example *example; -@end - -@implementation QuickSpec - -#pragma mark - XCTestCase Overrides - -/** - The runtime sends initialize to each class in a program just before the class, or any class - that inherits from it, is sent its first message from within the program. QuickSpec hooks into - this event to compile the example groups for this spec subclass. - - If an exception occurs when compiling the examples, report it to the user. Chances are they - included an expectation outside of a "it", "describe", or "context" block. - */ -+ (void)initialize { - [QuickConfiguration initialize]; - - World *world = [World sharedWorld]; - [world performWithCurrentExampleGroup:[world rootExampleGroupForSpecClass:self] closure:^{ - QuickSpec *spec = [self new]; - - @try { - [spec spec]; - } - @catch (NSException *exception) { - [NSException raise:NSInternalInconsistencyException - format:@"An exception occurred when building Quick's example groups.\n" - @"Some possible reasons this might happen include:\n\n" - @"- An 'expect(...).to' expectation was evaluated outside of " - @"an 'it', 'context', or 'describe' block\n" - @"- 'sharedExamples' was called twice with the same name\n" - @"- 'itBehavesLike' was called with a name that is not registered as a shared example\n\n" - @"Here's the original exception: '%@', reason: '%@', userInfo: '%@'", - exception.name, exception.reason, exception.userInfo]; - } - [self testInvocations]; - }]; -} - -/** - Invocations for each test method in the test case. QuickSpec overrides this method to define a - new method for each example defined in +[QuickSpec spec]. - - @return An array of invocations that execute the newly defined example methods. - */ -+ (NSArray *)testInvocations { - NSArray *examples = [[World sharedWorld] examplesForSpecClass:[self class]]; - NSMutableArray *invocations = [NSMutableArray arrayWithCapacity:[examples count]]; - - NSMutableSet *selectorNames = [NSMutableSet set]; - - for (Example *example in examples) { - SEL selector = [self addInstanceMethodForExample:example classSelectorNames:selectorNames]; - - NSMethodSignature *signature = [self instanceMethodSignatureForSelector:selector]; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; - invocation.selector = selector; - - [invocations addObject:invocation]; - } - - return invocations; -} - -#pragma mark - Public Interface - -- (void)spec { } - -#pragma mark - Internal Methods - -/** - QuickSpec uses this method to dynamically define a new instance method for the - given example. The instance method runs the example, catching any exceptions. - The exceptions are then reported as test failures. - - In order to report the correct file and line number, examples must raise exceptions - containing following keys in their userInfo: - - - "SenTestFilenameKey": A String representing the file name - - "SenTestLineNumberKey": An Int representing the line number - - These keys used to be used by SenTestingKit, and are still used by some testing tools - in the wild. See: https://github.com/Quick/Quick/pull/41 - - @return The selector of the newly defined instance method. - */ -+ (SEL)addInstanceMethodForExample:(Example *)example classSelectorNames:(NSMutableSet *)selectorNames { - IMP implementation = imp_implementationWithBlock(^(QuickSpec *self){ - self.example = example; - currentSpec = self; - [example run]; - }); - - const char *types = [[NSString stringWithFormat:@"%s%s%s", @encode(void), @encode(id), @encode(SEL)] UTF8String]; - - NSString *originalName = example.name.qck_c99ExtendedIdentifier; - NSString *selectorName = originalName; - NSUInteger i = 2; - - while ([selectorNames containsObject:selectorName]) { - selectorName = [NSString stringWithFormat:@"%@_%tu", originalName, i++]; - } - - [selectorNames addObject:selectorName]; - - SEL selector = NSSelectorFromString(selectorName); - class_addMethod(self, selector, implementation, types); - - return selector; -} - -/** - This method is used to record failures, whether they represent example - expectations that were not met, or exceptions raised during test setup - and teardown. By default, the failure will be reported as an - XCTest failure, and the example will be highlighted in Xcode. - */ -- (void)recordFailureWithDescription:(NSString *)description - inFile:(NSString *)filePath - atLine:(NSUInteger)lineNumber - expected:(BOOL)expected { - if (self.example.isSharedExample) { - filePath = self.example.callsite.file; - lineNumber = self.example.callsite.line; - } - [currentSpec.testRun recordFailureWithDescription:description - inFile:filePath - atLine:lineNumber - expected:expected]; -} - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/World.h b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/World.h deleted file mode 100644 index e638cf6..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/World.h +++ /dev/null @@ -1,18 +0,0 @@ -#import - -@class ExampleGroup; -@class ExampleMetadata; - -SWIFT_CLASS("_TtC5Quick5World") -@interface World - -@property (nonatomic) ExampleGroup * __nullable currentExampleGroup; -@property (nonatomic) ExampleMetadata * __nullable currentExampleMetadata; -@property (nonatomic) BOOL isRunningAdditionalSuites; -+ (World * __nonnull)sharedWorld; -- (void)configure:(void (^ __nonnull)(Configuration * __nonnull))closure; -- (void)finalizeConfiguration; -- (ExampleGroup * __nonnull)rootExampleGroupForSpecClass:(Class __nonnull)cls; -- (NSArray * __nonnull)examplesForSpecClass:(Class __nonnull)specClass; -- (void)performWithCurrentExampleGroup:(ExampleGroup * __nonnull)group closure:(void (^ __nonnull)(void))closure; -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m b/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m deleted file mode 100644 index e49939e..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m +++ /dev/null @@ -1,40 +0,0 @@ -#import -#import -#import - -@interface XCTestSuite (QuickTestSuiteBuilder) -@end - -@implementation XCTestSuite (QuickTestSuiteBuilder) - -/** - In order to ensure we can correctly build dynamic test suites, we need to - replace some of the default test suite constructors. - */ -+ (void)load { - Method testCaseWithName = class_getClassMethod(self, @selector(testSuiteForTestCaseWithName:)); - Method hooked_testCaseWithName = class_getClassMethod(self, @selector(qck_hooked_testSuiteForTestCaseWithName:)); - method_exchangeImplementations(testCaseWithName, hooked_testCaseWithName); -} - -/** - The `+testSuiteForTestCaseWithName:` method is called when a specific test case - class is run from the Xcode test navigator. If the built test suite is `nil`, - Xcode will not run any tests for that test case. - - Given if the following test case class is run from the Xcode test navigator: - - FooSpec - testFoo - testBar - - XCTest will invoke this once per test case, with test case names following this format: - - FooSpec/testFoo - FooSpec/testBar - */ -+ (nullable instancetype)qck_hooked_testSuiteForTestCaseWithName:(nonnull NSString *)name { - return [QuickTestSuite selectedTestSuiteForTestCaseWithName:name]; -} - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m b/Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m deleted file mode 100644 index 10b6f7e..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickSpecBase/QuickSpecBase.m +++ /dev/null @@ -1,55 +0,0 @@ -#import "QuickSpecBase.h" - -#pragma mark - _QuickSelectorWrapper - -@interface _QuickSelectorWrapper () -@property(nonatomic, assign) SEL selector; -@end - -@implementation _QuickSelectorWrapper - -- (instancetype)initWithSelector:(SEL)selector { - self = [super init]; - _selector = selector; - return self; -} - -@end - - -#pragma mark - _QuickSpecBase - -@implementation _QuickSpecBase - -- (instancetype)init { - self = [super initWithInvocation: nil]; - return self; -} - -/** - Invocations for each test method in the test case. QuickSpec overrides this method to define a - new method for each example defined in +[QuickSpec spec]. - - @return An array of invocations that execute the newly defined example methods. - */ -+ (NSArray *)testInvocations { - NSArray<_QuickSelectorWrapper *> *wrappers = [self _qck_testMethodSelectors]; - NSMutableArray *invocations = [NSMutableArray arrayWithCapacity:wrappers.count]; - - for (_QuickSelectorWrapper *wrapper in wrappers) { - SEL selector = wrapper.selector; - NSMethodSignature *signature = [self instanceMethodSignatureForSelector:selector]; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; - invocation.selector = selector; - - [invocations addObject:invocation]; - } - - return invocations; -} - -+ (NSArray<_QuickSelectorWrapper *> *)_qck_testMethodSelectors { - return @[]; -} - -@end diff --git a/Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h b/Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h deleted file mode 100644 index 69e96cc..0000000 --- a/Carthage/Checkouts/Quick/Sources/QuickSpecBase/include/QuickSpecBase.h +++ /dev/null @@ -1,11 +0,0 @@ -@import Foundation; -@import XCTest; - -@interface _QuickSelectorWrapper : NSObject -- (instancetype)initWithSelector:(SEL)selector; -@end - -@interface _QuickSpecBase : XCTestCase -+ (NSArray<_QuickSelectorWrapper *> *)_qck_testMethodSelectors; -- (instancetype)init NS_DESIGNATED_INITIALIZER; -@end diff --git a/Carthage/Checkouts/Quick/Tests/LinuxMain.swift b/Carthage/Checkouts/Quick/Tests/LinuxMain.swift deleted file mode 100644 index 2a67c4a..0000000 --- a/Carthage/Checkouts/Quick/Tests/LinuxMain.swift +++ /dev/null @@ -1,45 +0,0 @@ -import XCTest -import Quick - -@testable import QuickTests - -Quick.QCKMain([ - FunctionalTests_AfterEachSpec.self, - AfterSuiteTests.self, - FunctionalTests_BeforeEachSpec.self, - FunctionalTests_BeforeSuite_BeforeSuiteSpec.self, - FunctionalTests_BeforeSuite_Spec.self, - FunctionalTests_ItSpec.self, - FunctionalTests_PendingSpec.self, - FunctionalTests_SharedExamples_BeforeEachSpec.self, - FunctionalTests_SharedExamples_Spec.self, - FunctionalTests_SharedExamples_ContextSpec.self, - Configuration_AfterEachSpec.self, - Configuration_BeforeEachSpec.self, - FunctionalTests_CrossReferencingSpecA.self, - FunctionalTests_CrossReferencingSpecB.self, - _FunctionalTests_FocusedSpec_Focused.self, - _FunctionalTests_FocusedSpec_Unfocused.self -], -configurations: [ - FunctionalTests_SharedExamples_BeforeEachTests_SharedExamples.self, - FunctionalTests_SharedExamplesTests_SharedExamples.self, - FunctionalTests_Configuration_AfterEach.self, - FunctionalTests_Configuration_BeforeEach.self, - FunctionalTests_FocusedSpec_SharedExamplesConfiguration.self -], -testCases: [ - testCase(AfterEachTests.allTests), - testCase(BeforeEachTests.allTests), - testCase(BeforeSuiteTests.allTests), - // testCase(DescribeTests.allTests), - testCase(ItTests.allTests), - testCase(PendingTests.allTests), - testCase(SharedExamples_BeforeEachTests.allTests), - testCase(SharedExamplesTests.allTests), - testCase(Configuration_AfterEachTests.allTests), - testCase(Configuration_BeforeEachTests.allTests), - testCase(FocusedTests.allTests), - testCase(FunctionalTests_CrossReferencingSpecA.allTests), - testCase(FunctionalTests_CrossReferencingSpecB.allTests) -]) diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m deleted file mode 100644 index cd3522d..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m +++ /dev/null @@ -1,32 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -static BOOL afterSuiteFirstTestExecuted = NO; -static BOOL afterSuiteTestsWasExecuted = NO; - -@interface AfterSuiteTests_ObjC : QuickSpec - -@end - -@implementation AfterSuiteTests_ObjC - -- (void)spec { - it(@"is executed before afterSuite", ^{ - expect(@(afterSuiteTestsWasExecuted)).to(beFalsy()); - }); - - afterSuite(^{ - afterSuiteTestsWasExecuted = YES; - }); -} - -+ (void)tearDown { - if (afterSuiteFirstTestExecuted) { - assert(afterSuiteTestsWasExecuted); - } else { - afterSuiteFirstTestExecuted = true; - } -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests.swift deleted file mode 100644 index ea4fc3e..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests.swift +++ /dev/null @@ -1,26 +0,0 @@ -import XCTest -import Quick -import Nimble - -var afterSuiteFirstTestExecuted = false -var afterSuiteTestsWasExecuted = false - -class AfterSuiteTests: QuickSpec { - override func spec() { - afterSuite { - afterSuiteTestsWasExecuted = true - } - - it("is executed before afterSuite") { - expect(afterSuiteTestsWasExecuted).to(beFalsy()) - } - } - - override class func tearDown() { - if afterSuiteFirstTestExecuted { - assert(afterSuiteTestsWasExecuted, "afterSuiteTestsWasExecuted needs to be true") - } else { - afterSuiteFirstTestExecuted = true - } - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/Info.plist b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/Info.plist deleted file mode 100644 index ba72822..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickAfterSuiteTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m deleted file mode 100644 index 5069f2b..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m +++ /dev/null @@ -1,56 +0,0 @@ -@import Quick; -@import Nimble; -@import XCTest; - -#import "QCKSpecRunner.h" - -QuickConfigurationBegin(FunctionalTests_SharedExamplesConfiguration_ObjC) - -+ (void)configure:(Configuration *)configuration { - sharedExamples(@"two passing shared examples (Objective-C)", ^(QCKDSLSharedExampleContext exampleContext) { - it(@"has an example that passes (4)", ^{}); - it(@"has another example that passes (5)", ^{}); - }); -} - -QuickConfigurationEnd - -QuickSpecBegin(FunctionalTests_FocusedSpec_Focused_ObjC) - -it(@"has an unfocused example that fails, but is never run", ^{ XCTFail(); }); -fit(@"has a focused example that passes (1)", ^{}); - -fdescribe(@"a focused example group", ^{ - it(@"has an example that is not focused, but will be run, and passes (2)", ^{}); - fit(@"has a focused example that passes (3)", ^{}); -}); - -fitBehavesLike(@"two passing shared examples (Objective-C)", ^NSDictionary *{ return @{}; }); - -QuickSpecEnd - -QuickSpecBegin(FunctionalTests_FocusedSpec_Unfocused_ObjC) - -it(@"has an unfocused example thay fails, but is never run", ^{ XCTFail(); }); - -describe(@"an unfocused example group that is never run", ^{ - beforeEach(^{ [NSException raise:NSInternalInconsistencyException format:@""]; }); - it(@"has an example that fails, but is never run", ^{ XCTFail(); }); -}); - -QuickSpecEnd - -@interface FocusedTests_ObjC: XCTestCase -@end - -@implementation FocusedTests_ObjC - -- (void)testOnlyFocusedExamplesAreExecuted { - XCTestRun *result = qck_runSpecs(@[ - [FunctionalTests_FocusedSpec_Focused_ObjC class], - [FunctionalTests_FocusedSpec_Unfocused_ObjC class] - ]); - XCTAssertEqual(result.executionCount, 5); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift deleted file mode 100644 index 777629f..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/FocusedTests.swift +++ /dev/null @@ -1,59 +0,0 @@ -import Quick -import Nimble -import XCTest - -class FunctionalTests_FocusedSpec_SharedExamplesConfiguration: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - sharedExamples("two passing shared examples") { - it("has an example that passes (4)") {} - it("has another example that passes (5)") {} - } - } -} - -// The following `QuickSpec`s will be run in a same test suite with other specs -// on SwiftPM. We must avoid that the focused flags below affect other specs, so -// the examples of the two specs must be gathered lastly. That is the reason why -// the two specs have underscore prefix (and are listed at the bottom of `QCKMain`s -// `specs` array). - -class _FunctionalTests_FocusedSpec_Focused: QuickSpec { - override func spec() { - it("has an unfocused example that fails, but is never run") { fail() } - fit("has a focused example that passes (1)") {} - - fdescribe("a focused example group") { - it("has an example that is not focused, but will be run, and passes (2)") {} - fit("has a focused example that passes (3)") {} - } - - fitBehavesLike("two passing shared examples") - } -} - -class _FunctionalTests_FocusedSpec_Unfocused: QuickSpec { - override func spec() { - it("has an unfocused example that fails, but is never run") { fail() } - - describe("an unfocused example group that is never run") { - beforeEach { assert(false) } - it("has an example that fails, but is never run") { fail() } - } - } -} - -final class FocusedTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (FocusedTests) -> () throws -> Void)] { - return [ - ("testOnlyFocusedExamplesAreExecuted", testOnlyFocusedExamplesAreExecuted) - ] - } - - func testOnlyFocusedExamplesAreExecuted() { - let result = qck_runSpecs([ - _FunctionalTests_FocusedSpec_Focused.self, - _FunctionalTests_FocusedSpec_Unfocused.self - ]) - XCTAssertEqual(result?.executionCount, 5 as UInt) - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/Info.plist b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/Info.plist deleted file mode 100644 index ba72822..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickFocusedTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/SpecRunner.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/SpecRunner.swift deleted file mode 100644 index 66dec1b..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/SpecRunner.swift +++ /dev/null @@ -1,30 +0,0 @@ -@testable import Quick -import Nimble - -@discardableResult -public func qck_runSpec(_ specClass: QuickSpec.Type) -> TestRun? { - return qck_runSpecs([specClass]) -} - -@discardableResult -public func qck_runSpecs(_ specClasses: [QuickSpec.Type]) -> TestRun? { - Quick.World.sharedWorld.isRunningAdditionalSuites = true - - var executionCount: UInt = 0 - var hadUnexpectedFailure = false - - let fails = gatherFailingExpectations(silently: true) { - for specClass in specClasses { - for (_, test) in specClass.allTests { - do { - try test(specClass.init())() - } catch { - hadUnexpectedFailure = true - } - executionCount += 1 - } - } - } - - return TestRun(executionCount: executionCount, hasSucceeded: fails.isEmpty && !hadUnexpectedFailure) -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/TestRun.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/TestRun.swift deleted file mode 100644 index 3ef0d6c..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/TestRun.swift +++ /dev/null @@ -1,9 +0,0 @@ -public struct TestRun { - public var executionCount: UInt - public var hasSucceeded: Bool - - public init(executionCount: UInt, hasSucceeded: Bool) { - self.executionCount = executionCount - self.hasSucceeded = hasSucceeded - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift deleted file mode 100644 index 43dc05f..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTestHelpers/XCTestCaseProvider.swift +++ /dev/null @@ -1,52 +0,0 @@ -import Foundation -import XCTest - -// XCTestCaseProvider should be adopted by all XCTestCase subclasses. It provides a -// mechanism for us to fail tests in Xcode which haven't been included in the `allTests` -// list for swift-corelibs-xctest which is unable to dynamically discover tests. Note -// that only `static var allTests` needs to be explicitly implemented, as `allTestNames` -// has a default implementation provided by a protocol extension. - -// Implementation note: This is broken down into two separate protocols because we need a -// protocol with no Self references to which we can cast XCTestCase instances in a non-generic context. - -public protocol XCTestCaseProviderStatic { - // This should be explicitly implemented by XCTestCase subclasses - static var allTests: [(String, (Self) -> () throws -> Void)] { get } -} - -public protocol XCTestCaseNameProvider { - // This does not need to be explicitly implemented because of the protocol extension below - var allTestNames: [String] { get } -} - -public protocol XCTestCaseProvider: XCTestCaseProviderStatic, XCTestCaseNameProvider {} - -public extension XCTestCaseProvider where Self: XCTestCaseProviderStatic { - var allTestNames: [String] { - return type(of: self).allTests.map { name, _ in - return name - } - } -} - -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) - - extension XCTestCase { - override open func tearDown() { - if let provider = self as? XCTestCaseNameProvider { - provider.assertContainsTest(invocation!.selector.description) - } - - super.tearDown() - } - } - - extension XCTestCaseNameProvider { - fileprivate func assertContainsTest(_ name: String) { - let contains = self.allTestNames.contains(name) - XCTAssert(contains, "Test '\(name)' is missing from the allTests array") - } - } - -#endif diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Fixtures/FunctionalTests_SharedExamplesTests_SharedExamples.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Fixtures/FunctionalTests_SharedExamplesTests_SharedExamples.swift deleted file mode 100644 index e5eed68..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Fixtures/FunctionalTests_SharedExamplesTests_SharedExamples.swift +++ /dev/null @@ -1,20 +0,0 @@ -import Foundation -import Quick -import Nimble - -class FunctionalTests_SharedExamplesTests_SharedExamples: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - sharedExamples("a group of three shared examples") { - it("passes once") { expect(true).to(beTruthy()) } - it("passes twice") { expect(true).to(beTruthy()) } - it("passes three times") { expect(true).to(beTruthy()) } - } - - sharedExamples("shared examples that take a context") { (sharedExampleContext: @escaping SharedExampleContext) in - it("is passed the correct parameters via the context") { - let callsite = sharedExampleContext()["callsite"] as? String - expect(callsite).to(equal("SharedExamplesSpec")) - } - } - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift deleted file mode 100644 index 2879a4b..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/AfterEachTests.swift +++ /dev/null @@ -1,93 +0,0 @@ -import XCTest -import Quick -import Nimble - -private enum AfterEachType { - case OuterOne - case OuterTwo - case OuterThree - case InnerOne - case InnerTwo - case NoExamples -} - -private var afterEachOrder = [AfterEachType]() - -class FunctionalTests_AfterEachSpec: QuickSpec { - override func spec() { - describe("afterEach ordering") { - afterEach { afterEachOrder.append(AfterEachType.OuterOne) } - afterEach { afterEachOrder.append(AfterEachType.OuterTwo) } - afterEach { afterEachOrder.append(AfterEachType.OuterThree) } - - it("executes the outer afterEach closures once, but not before this closure [1]") { - // No examples have been run, so no afterEach will have been run either. - // The list should be empty. - expect(afterEachOrder).to(beEmpty()) - } - - it("executes the outer afterEach closures a second time, but not before this closure [2]") { - // The afterEach for the previous example should have been run. - // The list should contain the afterEach for that example, executed from top to bottom. - expect(afterEachOrder).to(equal([AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree])) - } - - context("when there are nested afterEach") { - afterEach { afterEachOrder.append(AfterEachType.InnerOne) } - afterEach { afterEachOrder.append(AfterEachType.InnerTwo) } - - it("executes the outer and inner afterEach closures, but not before this closure [3]") { - // The afterEach for the previous two examples should have been run. - // The list should contain the afterEach for those example, executed from top to bottom. - expect(afterEachOrder).to(equal([ - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree, - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree - ])) - } - } - - context("when there are nested afterEach without examples") { - afterEach { afterEachOrder.append(AfterEachType.NoExamples) } - } - } -#if _runtime(_ObjC) && !SWIFT_PACKAGE - describe("error handling when misusing ordering") { - it("should throw an exception when including afterEach in it block") { - expect { - afterEach { } - }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName.internalInconsistencyException)) - expect(exception.reason).to(equal("'afterEach' cannot be used inside 'it', 'afterEach' may only be used inside 'context' or 'describe'. ")) - }) - } - } -#endif - } -} - -final class AfterEachTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (AfterEachTests) -> () throws -> Void)] { - return [ - ("testAfterEachIsExecutedInTheCorrectOrder", testAfterEachIsExecutedInTheCorrectOrder) - ] - } - - func testAfterEachIsExecutedInTheCorrectOrder() { - afterEachOrder = [] - - qck_runSpec(FunctionalTests_AfterEachSpec.self) - let expectedOrder = [ - // [1] The outer afterEach closures are executed from top to bottom. - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree, - // [2] The outer afterEach closures are executed from top to bottom. - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree, - // [3] The inner afterEach closures are executed from top to bottom, - // then the outer afterEach closures are executed from top to bottom. - AfterEachType.InnerOne, AfterEachType.InnerTwo, - AfterEachType.OuterOne, AfterEachType.OuterTwo, AfterEachType.OuterThree - ] - XCTAssertEqual(afterEachOrder, expectedOrder) - - afterEachOrder = [] - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift deleted file mode 100644 index a770b5f..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeEachTests.swift +++ /dev/null @@ -1,76 +0,0 @@ -import XCTest -import Quick -import Nimble - -private enum BeforeEachType { - case OuterOne - case OuterTwo - case InnerOne - case InnerTwo - case InnerThree - case NoExamples -} - -private var beforeEachOrder = [BeforeEachType]() - -class FunctionalTests_BeforeEachSpec: QuickSpec { - override func spec() { - - describe("beforeEach ordering") { - beforeEach { beforeEachOrder.append(BeforeEachType.OuterOne) } - beforeEach { beforeEachOrder.append(BeforeEachType.OuterTwo) } - - it("executes the outer beforeEach closures once [1]") {} - it("executes the outer beforeEach closures a second time [2]") {} - - context("when there are nested beforeEach") { - beforeEach { beforeEachOrder.append(BeforeEachType.InnerOne) } - beforeEach { beforeEachOrder.append(BeforeEachType.InnerTwo) } - beforeEach { beforeEachOrder.append(BeforeEachType.InnerThree) } - - it("executes the outer and inner beforeEach closures [3]") {} - } - - context("when there are nested beforeEach without examples") { - beforeEach { beforeEachOrder.append(BeforeEachType.NoExamples) } - } - } -#if _runtime(_ObjC) && !SWIFT_PACKAGE - describe("error handling when misusing ordering") { - it("should throw an exception when including beforeEach in it block") { - expect { - beforeEach { } - }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName.internalInconsistencyException)) - expect(exception.reason).to(equal("'beforeEach' cannot be used inside 'it', 'beforeEach' may only be used inside 'context' or 'describe'. ")) - }) - } - } -#endif - } -} - -final class BeforeEachTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeforeEachTests) -> () throws -> Void)] { - return [ - ("testBeforeEachIsExecutedInTheCorrectOrder", testBeforeEachIsExecutedInTheCorrectOrder) - ] - } - - func testBeforeEachIsExecutedInTheCorrectOrder() { - beforeEachOrder = [] - - qck_runSpec(FunctionalTests_BeforeEachSpec.self) - let expectedOrder = [ - // [1] The outer beforeEach closures are executed from top to bottom. - BeforeEachType.OuterOne, BeforeEachType.OuterTwo, - // [2] The outer beforeEach closures are executed from top to bottom. - BeforeEachType.OuterOne, BeforeEachType.OuterTwo, - // [3] The outer beforeEach closures are executed from top to bottom, - // then the inner beforeEach closures are executed from top to bottom. - BeforeEachType.OuterOne, BeforeEachType.OuterTwo, - BeforeEachType.InnerOne, BeforeEachType.InnerTwo, BeforeEachType.InnerThree - ] - XCTAssertEqual(beforeEachOrder, expectedOrder) - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift deleted file mode 100644 index df39126..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BeforeSuiteTests.swift +++ /dev/null @@ -1,39 +0,0 @@ -import XCTest -import Quick -import Nimble - -var beforeSuiteWasExecuted = false - -class FunctionalTests_BeforeSuite_BeforeSuiteSpec: QuickSpec { - override func spec() { - beforeSuite { - beforeSuiteWasExecuted = true - } - } -} - -class FunctionalTests_BeforeSuite_Spec: QuickSpec { - override func spec() { - it("is executed after beforeSuite") { - expect(beforeSuiteWasExecuted).to(beTruthy()) - } - } -} - -final class BeforeSuiteTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeforeSuiteTests) -> () throws -> Void)] { - return [ - ("testBeforeSuiteIsExecutedBeforeAnyExamples", testBeforeSuiteIsExecutedBeforeAnyExamples) - ] - } - - func testBeforeSuiteIsExecutedBeforeAnyExamples() { - // Execute the spec with an assertion before the one with a beforeSuite - let result = qck_runSpecs([ - FunctionalTests_BeforeSuite_Spec.self, - FunctionalTests_BeforeSuite_BeforeSuiteSpec.self - ]) - - XCTAssert(result!.hasSucceeded) - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift deleted file mode 100644 index 4f99689..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/BundleModuleNameTests.swift +++ /dev/null @@ -1,30 +0,0 @@ -#if !SWIFT_PACKAGE - -import XCTest -@testable import Quick -import Nimble - -class BundleModuleNameSpecs: QuickSpec { - override func spec() { - describe("Bundle module name") { - it("should repalce invalid characters with underscores") { - let bundle = Bundle.currentTestBundle - let moduleName = bundle?.moduleName - expect(moduleName?.contains("Quick_")).to(beTrue()) - } - - it("should be the correct module name to be able to retreive classes") { - guard let bundle = Bundle.currentTestBundle else { - XCTFail("test bundle not found") - return - } - - let moduleName = bundle.moduleName - let className: AnyClass? = NSClassFromString("\(moduleName).BundleModuleNameSpecs") - expect(className).to(be(BundleModuleNameSpecs.self)) - } - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEach.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEach.swift deleted file mode 100644 index c3f6717..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEach.swift +++ /dev/null @@ -1,11 +0,0 @@ -import Quick - -public var FunctionalTests_Configuration_AfterEachWasExecuted = false - -class FunctionalTests_Configuration_AfterEach: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - configuration.afterEach { - FunctionalTests_Configuration_AfterEachWasExecuted = true - } - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift deleted file mode 100644 index d7c2105..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/AfterEach/Configuration+AfterEachTests.swift +++ /dev/null @@ -1,31 +0,0 @@ -import XCTest -import Quick -import Nimble - -class Configuration_AfterEachSpec: QuickSpec { - override func spec() { - beforeEach { - FunctionalTests_Configuration_AfterEachWasExecuted = false - } - it("is executed before the configuration afterEach") { - expect(FunctionalTests_Configuration_AfterEachWasExecuted).to(beFalsy()) - } - } -} - -final class Configuration_AfterEachTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (Configuration_AfterEachTests) -> () throws -> Void)] { - return [ - ("testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted", testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted) - ] - } - - func testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted() { - FunctionalTests_Configuration_AfterEachWasExecuted = false - - qck_runSpec(Configuration_BeforeEachSpec.self) - XCTAssert(FunctionalTests_Configuration_AfterEachWasExecuted) - - FunctionalTests_Configuration_AfterEachWasExecuted = false - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEach.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEach.swift deleted file mode 100644 index 228ab98..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEach.swift +++ /dev/null @@ -1,11 +0,0 @@ -import Quick - -public var FunctionalTests_Configuration_BeforeEachWasExecuted = false - -class FunctionalTests_Configuration_BeforeEach: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - configuration.beforeEach { - FunctionalTests_Configuration_BeforeEachWasExecuted = true - } - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift deleted file mode 100644 index ddf1509..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/Configuration/BeforeEach/Configuration+BeforeEachTests.swift +++ /dev/null @@ -1,28 +0,0 @@ -import XCTest -import Quick -import Nimble - -class Configuration_BeforeEachSpec: QuickSpec { - override func spec() { - it("is executed after the configuration beforeEach") { - expect(FunctionalTests_Configuration_BeforeEachWasExecuted).to(beTruthy()) - } - } -} - -final class Configuration_BeforeEachTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (Configuration_BeforeEachTests) -> () throws -> Void)] { - return [ - ("testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted", testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted) - ] - } - - func testExampleIsRunAfterTheConfigurationBeforeEachIsExecuted() { - FunctionalTests_Configuration_BeforeEachWasExecuted = false - - qck_runSpec(Configuration_BeforeEachSpec.self) - XCTAssert(FunctionalTests_Configuration_BeforeEachWasExecuted) - - FunctionalTests_Configuration_BeforeEachWasExecuted = false - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ContextTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ContextTests.swift deleted file mode 100644 index c626478..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ContextTests.swift +++ /dev/null @@ -1,20 +0,0 @@ -import XCTest -import Quick -import Nimble - -#if _runtime(_ObjC) && !SWIFT_PACKAGE -class QuickContextTests: QuickSpec { - override func spec() { - describe("Context") { - it("should throw an exception if used in an it block") { - expect { - context("A nested context that should throw") { } - }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName.internalInconsistencyException)) - expect(exception.reason).to(equal("'context' cannot be used inside 'it', 'context' may only be used inside 'context' or 'describe'. ")) - }) - } - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/CrossReferencingSpecs.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/CrossReferencingSpecs.swift deleted file mode 100644 index 56d1eb4..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/CrossReferencingSpecs.swift +++ /dev/null @@ -1,19 +0,0 @@ -import Quick -import Nimble - -// This is a functional test ensuring that no crash occurs when a spec class -// references another spec class during its spec setup. - -class FunctionalTests_CrossReferencingSpecA: QuickSpec { - override func spec() { - let _ = FunctionalTests_CrossReferencingSpecB() - it("does not crash") {} - } -} - -class FunctionalTests_CrossReferencingSpecB: QuickSpec { - override func spec() { - let _ = FunctionalTests_CrossReferencingSpecA() - it("does not crash") {} - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift deleted file mode 100644 index 875cf4e..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/DescribeTests.swift +++ /dev/null @@ -1,34 +0,0 @@ -import XCTest -import Nimble -import Quick - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -final class DescribeTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (DescribeTests) -> () throws -> Void)] { - return [ - ("testDescribeThrowsIfUsedOutsideOfQuickSpec", testDescribeThrowsIfUsedOutsideOfQuickSpec) - ] - } - - func testDescribeThrowsIfUsedOutsideOfQuickSpec() { - expect { describe("this should throw an exception", {}) }.to(raiseException()) - } -} - -class QuickDescribeTests: QuickSpec { - override func spec() { - describe("Describe") { - it("should throw an exception if used in an it block") { - expect { - describe("A nested describe that should throw") { } - }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName.internalInconsistencyException)) - expect(exception.reason).to(equal("'describe' cannot be used inside 'it', 'describe' may only be used inside 'context' or 'describe'. ")) - }) - } - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift deleted file mode 100644 index 0973dc8..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ItTests.swift +++ /dev/null @@ -1,127 +0,0 @@ -import XCTest -@testable import Quick -import Nimble - -class FunctionalTests_ItSpec: QuickSpec { - override func spec() { - var exampleMetadata: ExampleMetadata? - beforeEach { metadata in exampleMetadata = metadata } - - it("") { - expect(exampleMetadata!.example.name).to(equal("")) - } - - it("has a description with セレクター名に使えない文字が入っている 👊💥") { - let name = "has a description with セレクター名に使えない文字が入っている 👊💥" - expect(exampleMetadata!.example.name).to(equal(name)) - } - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - - describe("when an example has a unique name") { - it("has a unique name") {} - - it("doesn't add multiple selectors for it") { - let allSelectors = [String]( - FunctionalTests_ItSpec.allSelectors() - .filter { $0.hasPrefix("when_an_example_has_a_unique_name__") }) - .sorted(by: <) - - expect(allSelectors) == [ - "when_an_example_has_a_unique_name__doesn_t_add_multiple_selectors_for_it", - "when_an_example_has_a_unique_name__has_a_unique_name" - ] - } - } - - describe("when two examples have the exact name") { - it("has exactly the same name") {} - it("has exactly the same name") {} - - it("makes a unique name for each of the above") { - let allSelectors = [String]( - FunctionalTests_ItSpec.allSelectors() - .filter { $0.hasPrefix("when_two_examples_have_the_exact_name__") }) - .sorted(by: <) - - expect(allSelectors) == [ - "when_two_examples_have_the_exact_name__has_exactly_the_same_name", - "when_two_examples_have_the_exact_name__has_exactly_the_same_name_2", - "when_two_examples_have_the_exact_name__makes_a_unique_name_for_each_of_the_above" - ] - } - - } - - describe("error handling when misusing ordering") { - it("an it") { - expect { - it("will throw an error when it is nested in another it") { } - }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName.internalInconsistencyException)) - expect(exception.reason).to(equal("'it' cannot be used inside 'it', 'it' may only be used inside 'context' or 'describe'. ")) - }) - } - - describe("behavior with an 'it' inside a 'beforeEach'") { - var exception: NSException? - - beforeEach { - let capture = NMBExceptionCapture(handler: ({ e in - exception = e - }), finally: nil) - - capture.tryBlock { - it("a rogue 'it' inside a 'beforeEach'") { } - return - } - } - - it("should have thrown an exception with the correct error message") { - expect(exception).toNot(beNil()) - expect(exception!.reason).to(equal("'it' cannot be used inside 'beforeEach', 'it' may only be used inside 'context' or 'describe'. ")) - } - } - - describe("behavior with an 'it' inside an 'afterEach'") { - var exception: NSException? - - afterEach { - let capture = NMBExceptionCapture(handler: ({ e in - exception = e - expect(exception).toNot(beNil()) - expect(exception!.reason).to(equal("'it' cannot be used inside 'afterEach', 'it' may only be used inside 'context' or 'describe'. ")) - }), finally: nil) - - capture.tryBlock { - it("a rogue 'it' inside an 'afterEach'") { } - return - } - } - - it("should throw an exception with the correct message after this 'it' block executes") { } - } - } -#endif - } -} - -final class ItTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ItTests) -> () throws -> Void)] { - return [ - ("testAllExamplesAreExecuted", testAllExamplesAreExecuted) - ] - } - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - func testAllExamplesAreExecuted() { - let result = qck_runSpec(FunctionalTests_ItSpec.self) - XCTAssertEqual(result?.executionCount, 10 as UInt) - } -#else - func testAllExamplesAreExecuted() { - let result = qck_runSpec(FunctionalTests_ItSpec.self) - XCTAssertEqual(result?.executionCount, 2 as UInt) - } -#endif -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/AfterEachTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/AfterEachTests+ObjC.m deleted file mode 100644 index 4216a86..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/AfterEachTests+ObjC.m +++ /dev/null @@ -1,81 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" - -typedef NS_ENUM(NSUInteger, AfterEachType) { - OuterOne, - OuterTwo, - OuterThree, - InnerOne, - InnerTwo, - NoExamples, -}; - -static NSMutableArray *afterEachOrder; - -QuickSpecBegin(FunctionalTests_AfterEachSpec_ObjC) - -afterEach(^{ [afterEachOrder addObject:@(OuterOne)]; }); -afterEach(^{ [afterEachOrder addObject:@(OuterTwo)]; }); -afterEach(^{ [afterEachOrder addObject:@(OuterThree)]; }); - -it(@"executes the outer afterEach closures once, but not before this closure [1]", ^{ - expect(afterEachOrder).to(equal(@[])); -}); - -it(@"executes the outer afterEach closures a second time, but not before this closure [2]", ^{ - expect(afterEachOrder).to(equal(@[@(OuterOne), @(OuterTwo), @(OuterThree)])); -}); - -context(@"when there are nested afterEach", ^{ - afterEach(^{ [afterEachOrder addObject:@(InnerOne)]; }); - afterEach(^{ [afterEachOrder addObject:@(InnerTwo)]; }); - - it(@"executes the outer and inner afterEach closures, but not before this closure [3]", ^{ - // The afterEach for the previous two examples should have been run. - // The list should contain the afterEach for those example, executed from top to bottom. - expect(afterEachOrder).to(equal(@[ - @(OuterOne), @(OuterTwo), @(OuterThree), - @(OuterOne), @(OuterTwo), @(OuterThree), - ])); - }); -}); - -context(@"when there are nested afterEach without examples", ^{ - afterEach(^{ [afterEachOrder addObject:@(NoExamples)]; }); -}); - -QuickSpecEnd - -@interface AfterEachTests_ObjC : XCTestCase; @end - -@implementation AfterEachTests_ObjC - -- (void)setUp { - [super setUp]; - afterEachOrder = [NSMutableArray array]; -} - -- (void)tearDown { - afterEachOrder = [NSMutableArray array]; - [super tearDown]; -} - -- (void)testAfterEachIsExecutedInTheCorrectOrder { - qck_runSpec([FunctionalTests_AfterEachSpec_ObjC class]); - NSArray *expectedOrder = @[ - // [1] The outer afterEach closures are executed from top to bottom. - @(OuterOne), @(OuterTwo), @(OuterThree), - // [2] The outer afterEach closures are executed from top to bottom. - @(OuterOne), @(OuterTwo), @(OuterThree), - // [3] The outer afterEach closures are executed from top to bottom, - // then the outer afterEach closures are executed from top to bottom. - @(InnerOne), @(InnerTwo), @(OuterOne), @(OuterTwo), @(OuterThree), - ]; - - XCTAssertEqualObjects(afterEachOrder, expectedOrder); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeEachTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeEachTests+ObjC.m deleted file mode 100644 index c7a5897..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeEachTests+ObjC.m +++ /dev/null @@ -1,68 +0,0 @@ -@import XCTest; -@import Quick; - -#import "QCKSpecRunner.h" - -typedef NS_ENUM(NSUInteger, BeforeEachType) { - OuterOne, - OuterTwo, - InnerOne, - InnerTwo, - InnerThree, - NoExamples, -}; - -static NSMutableArray *beforeEachOrder; - -QuickSpecBegin(FunctionalTests_BeforeEachSpec_ObjC) - -beforeEach(^{ [beforeEachOrder addObject:@(OuterOne)]; }); -beforeEach(^{ [beforeEachOrder addObject:@(OuterTwo)]; }); - -it(@"executes the outer beforeEach closures once [1]", ^{}); -it(@"executes the outer beforeEach closures a second time [2]", ^{}); - -context(@"when there are nested beforeEach", ^{ - beforeEach(^{ [beforeEachOrder addObject:@(InnerOne)]; }); - beforeEach(^{ [beforeEachOrder addObject:@(InnerTwo)]; }); - beforeEach(^{ [beforeEachOrder addObject:@(InnerThree)]; }); - - it(@"executes the outer and inner beforeEach closures [3]", ^{}); -}); - -context(@"when there are nested beforeEach without examples", ^{ - beforeEach(^{ [beforeEachOrder addObject:@(NoExamples)]; }); -}); - -QuickSpecEnd - -@interface BeforeEachTests_ObjC : XCTestCase; @end - -@implementation BeforeEachTests_ObjC - -- (void)setUp { - beforeEachOrder = [NSMutableArray array]; - [super setUp]; -} - -- (void)tearDown { - beforeEachOrder = [NSMutableArray array]; - [super tearDown]; -} - -- (void)testBeforeEachIsExecutedInTheCorrectOrder { - qck_runSpec([FunctionalTests_BeforeEachSpec_ObjC class]); - NSArray *expectedOrder = @[ - // [1] The outer beforeEach closures are executed from top to bottom. - @(OuterOne), @(OuterTwo), - // [2] The outer beforeEach closures are executed from top to bottom. - @(OuterOne), @(OuterTwo), - // [3] The outer beforeEach closures are executed from top to bottom, - // then the inner beforeEach closures are executed from top to bottom. - @(OuterOne), @(OuterTwo), @(InnerOne), @(InnerTwo), @(InnerThree), - ]; - - XCTAssertEqualObjects(beforeEachOrder, expectedOrder); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeSuiteTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeSuiteTests+ObjC.m deleted file mode 100644 index ce7efc9..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/BeforeSuiteTests+ObjC.m +++ /dev/null @@ -1,39 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" - -static BOOL beforeSuiteWasExecuted = NO; - -QuickSpecBegin(FunctionalTests_BeforeSuite_BeforeSuiteSpec_ObjC) - -beforeSuite(^{ - beforeSuiteWasExecuted = YES; -}); - -QuickSpecEnd - -QuickSpecBegin(FunctionalTests_BeforeSuite_Spec_ObjC) - -it(@"is executed after beforeSuite", ^{ - expect(@(beforeSuiteWasExecuted)).to(beTruthy()); -}); - -QuickSpecEnd - -@interface BeforeSuiteTests_ObjC : XCTestCase; @end - -@implementation BeforeSuiteTests_ObjC - -- (void)testBeforeSuiteIsExecutedBeforeAnyExamples { - // Execute the spec with an assertion before the one with a beforeSuite - NSArray *specs = @[ - [FunctionalTests_BeforeSuite_Spec_ObjC class], - [FunctionalTests_BeforeSuite_BeforeSuiteSpec_ObjC class] - ]; - XCTestRun *result = qck_runSpecs(specs); - XCTAssert(result.hasSucceeded); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureTests+ObjC.m deleted file mode 100644 index dc786e8..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureTests+ObjC.m +++ /dev/null @@ -1,61 +0,0 @@ -@import XCTest; - -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" - -static BOOL isRunningFunctionalTests = NO; - -#pragma mark - Spec - -QuickSpecBegin(FunctionalTests_FailureSpec_ObjC) - -describe(@"a group of failing examples", ^{ - it(@"passes", ^{ - expect(@YES).to(beTruthy()); - }); - - it(@"fails (but only when running the functional tests)", ^{ - expect(@(isRunningFunctionalTests)).to(beFalsy()); - }); - - it(@"fails again (but only when running the functional tests)", ^{ - expect(@(isRunningFunctionalTests)).to(beFalsy()); - }); -}); - -QuickSpecEnd - -#pragma mark - Tests - -@interface FailureTests_ObjC : XCTestCase; @end - -@implementation FailureTests_ObjC - -- (void)setUp { - [super setUp]; - isRunningFunctionalTests = YES; -} - -- (void)tearDown { - isRunningFunctionalTests = NO; - [super tearDown]; -} - -- (void)testFailureSpecHasSucceededIsFalse { - XCTestRun *result = qck_runSpec([FunctionalTests_FailureSpec_ObjC class]); - XCTAssertFalse(result.hasSucceeded); -} - -- (void)testFailureSpecExecutedAllExamples { - XCTestRun *result = qck_runSpec([FunctionalTests_FailureSpec_ObjC class]); - XCTAssertEqual(result.executionCount, 3); -} - -- (void)testFailureSpecFailureCountIsEqualToTheNumberOfFailingExamples { - XCTestRun *result = qck_runSpec([FunctionalTests_FailureSpec_ObjC class]); - XCTAssertEqual(result.failureCount, 2); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureUsingXCTAssertTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureUsingXCTAssertTests+ObjC.m deleted file mode 100644 index 1f05853..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/FailureUsingXCTAssertTests+ObjC.m +++ /dev/null @@ -1,55 +0,0 @@ -@import XCTest; -@import Quick; - -#import "QCKSpecRunner.h" - -static BOOL isRunningFunctionalTests = NO; - -QuickSpecBegin(FunctionalTests_FailureUsingXCTAssertSpec_ObjC) - -it(@"fails using an XCTAssert (but only when running the functional tests)", ^{ - XCTAssertFalse(isRunningFunctionalTests); -}); - -it(@"fails again using an XCTAssert (but only when running the functional tests)", ^{ - XCTAssertFalse(isRunningFunctionalTests); -}); - -it(@"succeeds using an XCTAssert", ^{ - XCTAssertTrue(YES); -}); - -QuickSpecEnd - -#pragma mark - Tests - -@interface FailureUsingXCTAssertTests_ObjC : XCTestCase; @end - -@implementation FailureUsingXCTAssertTests_ObjC - -- (void)setUp { - [super setUp]; - isRunningFunctionalTests = YES; -} - -- (void)tearDown { - isRunningFunctionalTests = NO; - [super tearDown]; -} - -- (void)testFailureUsingXCTAssertSpecHasSucceededIsFalse { - XCTestRun *result = qck_runSpec([FunctionalTests_FailureUsingXCTAssertSpec_ObjC class]); - XCTAssertFalse(result.hasSucceeded); -} - -- (void)testFailureUsingXCTAssertSpecExecutedAllExamples { - XCTestRun *result = qck_runSpec([FunctionalTests_FailureUsingXCTAssertSpec_ObjC class]); - XCTAssertEqual(result.executionCount, 3); -} - -- (void)testFailureUsingXCTAssertSpecFailureCountIsEqualToTheNumberOfFailingExamples { - XCTestRun *result = qck_runSpec([FunctionalTests_FailureUsingXCTAssertSpec_ObjC class]); - XCTAssertEqual(result.failureCount, 2); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/ItTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/ItTests+ObjC.m deleted file mode 100644 index 39e0b7d..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/ItTests+ObjC.m +++ /dev/null @@ -1,42 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" -#import "QuickSpec+QuickSpec_MethodList.h" - -QuickSpecBegin(FunctionalTests_ItSpec_ObjC) - -__block ExampleMetadata *exampleMetadata = nil; -beforeEachWithMetadata(^(ExampleMetadata *metadata) { - exampleMetadata = metadata; -}); - -it(@" ", ^{ - expect(exampleMetadata.example.name).to(equal(@" ")); -}); - -it(@"has a description with セレクター名に使えない文字が入っている 👊💥", ^{ - NSString *name = @"has a description with セレクター名に使えない文字が入っている 👊💥"; - expect(exampleMetadata.example.name).to(equal(name)); -}); - -it(@"is a test with a unique name", ^{ - NSSet *allSelectors = [FunctionalTests_ItSpec_ObjC allSelectors]; - - expect(allSelectors).to(contain(@"is_a_test_with_a_unique_name")); - expect(allSelectors).toNot(contain(@"is_a_test_with_a_unique_name_2")); -}); - -QuickSpecEnd - -@interface ItTests_ObjC : XCTestCase; @end - -@implementation ItTests_ObjC - -- (void)testAllExamplesAreExecuted { - XCTestRun *result = qck_runSpec([FunctionalTests_ItSpec_ObjC class]); - XCTAssertEqual(result.executionCount, 3); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/PendingTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/PendingTests+ObjC.m deleted file mode 100644 index 970175f..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/PendingTests+ObjC.m +++ /dev/null @@ -1,60 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" - -static NSUInteger oneExampleBeforeEachExecutedCount = 0; -static NSUInteger onlyPendingExamplesBeforeEachExecutedCount = 0; - -QuickSpecBegin(FunctionalTests_PendingSpec_ObjC) - -pending(@"an example that will not run", ^{ - expect(@YES).to(beFalsy()); -}); - -describe(@"a describe block containing only one enabled example", ^{ - beforeEach(^{ oneExampleBeforeEachExecutedCount += 1; }); - it(@"an example that will run", ^{}); - pending(@"an example that will not run", ^{}); -}); - -describe(@"a describe block containing only pending examples", ^{ - beforeEach(^{ onlyPendingExamplesBeforeEachExecutedCount += 1; }); - pending(@"an example that will not run", ^{}); -}); - -QuickSpecEnd - -@interface PendingTests_ObjC : XCTestCase; @end - -@implementation PendingTests_ObjC - -- (void)setUp { - [super setUp]; - oneExampleBeforeEachExecutedCount = 0; - onlyPendingExamplesBeforeEachExecutedCount = 0; -} - -- (void)tearDown { - oneExampleBeforeEachExecutedCount = 0; - onlyPendingExamplesBeforeEachExecutedCount = 0; - [super tearDown]; -} - -- (void)testAnOtherwiseFailingExampleWhenMarkedPendingDoesNotCauseTheSuiteToFail { - XCTestRun *result = qck_runSpec([FunctionalTests_PendingSpec_ObjC class]); - XCTAssert(result.hasSucceeded); -} - -- (void)testBeforeEachOnlyRunForEnabledExamples { - qck_runSpec([FunctionalTests_PendingSpec_ObjC class]); - XCTAssertEqual(oneExampleBeforeEachExecutedCount, 1); -} - -- (void)testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples { - qck_runSpec([FunctionalTests_PendingSpec_ObjC class]); - XCTAssertEqual(onlyPendingExamplesBeforeEachExecutedCount, 0); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamples+BeforeEachTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamples+BeforeEachTests+ObjC.m deleted file mode 100644 index cdbf259..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamples+BeforeEachTests+ObjC.m +++ /dev/null @@ -1,59 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" - -static NSUInteger specBeforeEachExecutedCount = 0; -static NSUInteger sharedExamplesBeforeEachExecutedCount = 0; - -QuickConfigurationBegin(FunctionalTests_SharedExamples_BeforeEachTests_SharedExamples_ObjC) - -+ (void)configure:(Configuration *)configuration { - sharedExamples(@"a group of three shared examples with a beforeEach in Obj-C", - ^(QCKDSLSharedExampleContext context) { - beforeEach(^{ sharedExamplesBeforeEachExecutedCount += 1; }); - it(@"passes once", ^{}); - it(@"passes twice", ^{}); - it(@"passes three times", ^{}); - }); -} - -QuickConfigurationEnd - -QuickSpecBegin(FunctionalTests_SharedExamples_BeforeEachSpec_ObjC) - -beforeEach(^{ specBeforeEachExecutedCount += 1; }); -it(@"executes the spec beforeEach once", ^{}); -itBehavesLike(@"a group of three shared examples with a beforeEach in Obj-C", - ^NSDictionary*{ return @{}; }); - -QuickSpecEnd - -@interface SharedExamples_BeforeEachTests_ObjC : XCTestCase; @end - -@implementation SharedExamples_BeforeEachTests_ObjC - -- (void)setUp { - [super setUp]; - specBeforeEachExecutedCount = 0; - sharedExamplesBeforeEachExecutedCount = 0; -} - -- (void)tearDown { - specBeforeEachExecutedCount = 0; - sharedExamplesBeforeEachExecutedCount = 0; - [super tearDown]; -} - -- (void)testBeforeEachOutsideOfSharedExamplesExecutedOnceBeforeEachExample { - qck_runSpec([FunctionalTests_SharedExamples_BeforeEachSpec_ObjC class]); - XCTAssertEqual(specBeforeEachExecutedCount, 4); -} - -- (void)testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample { - qck_runSpec([FunctionalTests_SharedExamples_BeforeEachSpec_ObjC class]); - XCTAssertEqual(sharedExamplesBeforeEachExecutedCount, 3); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamplesTests+ObjC.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamplesTests+ObjC.m deleted file mode 100644 index 7fcb8b1..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/ObjC/SharedExamplesTests+ObjC.m +++ /dev/null @@ -1,65 +0,0 @@ -@import XCTest; -@import Quick; -@import Nimble; - -#import "QCKSpecRunner.h" - -QuickSpecBegin(FunctionalTests_SharedExamples_Spec_ObjC) - -itBehavesLike(@"a group of three shared examples", ^NSDictionary*{ return @{}; }); - -QuickSpecEnd - -QuickSpecBegin(FunctionalTests_SharedExamples_ContextSpec_ObjC) - -itBehavesLike(@"shared examples that take a context", ^NSDictionary *{ - return @{ @"callsite": @"SharedExamplesSpec" }; -}); - -QuickSpecEnd - -QuickSpecBegin(FunctionalTests_SharedExamples_SameContextSpec_ObjC) - -__block NSInteger counter = 0; - -afterEach(^{ - counter++; -}); - -sharedExamples(@"gets called with a different context from within the same spec file", ^(QCKDSLSharedExampleContext exampleContext) { - - it(@"tracks correctly", ^{ - NSString *payload = exampleContext()[@"payload"]; - BOOL expected = [payload isEqualToString:[NSString stringWithFormat:@"%ld", (long)counter]]; - expect(@(expected)).to(beTrue()); - }); - -}); - -itBehavesLike(@"gets called with a different context from within the same spec file", ^{ - return @{ @"payload" : @"0" }; -}); - -itBehavesLike(@"gets called with a different context from within the same spec file", ^{ - return @{ @"payload" : @"1" }; -}); - -QuickSpecEnd - - -@interface SharedExamplesTests_ObjC : XCTestCase; @end - -@implementation SharedExamplesTests_ObjC - -- (void)testAGroupOfThreeSharedExamplesExecutesThreeExamples { - XCTestRun *result = qck_runSpec([FunctionalTests_SharedExamples_Spec_ObjC class]); - XCTAssert(result.hasSucceeded); - XCTAssertEqual(result.executionCount, 3); -} - -- (void)testSharedExamplesWithContextPassContextToExamples { - XCTestRun *result = qck_runSpec([FunctionalTests_SharedExamples_ContextSpec_ObjC class]); - XCTAssert(result.hasSucceeded); -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift deleted file mode 100644 index e9951b5..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/PendingTests.swift +++ /dev/null @@ -1,54 +0,0 @@ -import XCTest -import Quick -import Nimble - -var oneExampleBeforeEachExecutedCount = 0 -var onlyPendingExamplesBeforeEachExecutedCount = 0 - -class FunctionalTests_PendingSpec: QuickSpec { - override func spec() { - xit("an example that will not run") { - expect(true).to(beFalsy()) - } - - describe("a describe block containing only one enabled example") { - beforeEach { oneExampleBeforeEachExecutedCount += 1 } - it("an example that will run") {} - pending("an example that will not run") {} - } - - describe("a describe block containing only pending examples") { - beforeEach { onlyPendingExamplesBeforeEachExecutedCount += 1 } - pending("an example that will not run") {} - } - } -} - -final class PendingTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (PendingTests) -> () throws -> Void)] { - return [ - ("testAnOtherwiseFailingExampleWhenMarkedPendingDoesNotCauseTheSuiteToFail", testAnOtherwiseFailingExampleWhenMarkedPendingDoesNotCauseTheSuiteToFail), - ("testBeforeEachOnlyRunForEnabledExamples", testBeforeEachOnlyRunForEnabledExamples), - ("testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples", testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples) - ] - } - - func testAnOtherwiseFailingExampleWhenMarkedPendingDoesNotCauseTheSuiteToFail() { - let result = qck_runSpec(FunctionalTests_PendingSpec.self) - XCTAssertTrue(result!.hasSucceeded) - } - - func testBeforeEachOnlyRunForEnabledExamples() { - oneExampleBeforeEachExecutedCount = 0 - - qck_runSpec(FunctionalTests_PendingSpec.self) - XCTAssertEqual(oneExampleBeforeEachExecutedCount, 1) - } - - func testBeforeEachDoesNotRunForContextsWithOnlyPendingExamples() { - onlyPendingExamplesBeforeEachExecutedCount = 0 - - qck_runSpec(FunctionalTests_PendingSpec.self) - XCTAssertEqual(onlyPendingExamplesBeforeEachExecutedCount, 0) - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift deleted file mode 100644 index 2b0fd77..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamples+BeforeEachTests.swift +++ /dev/null @@ -1,48 +0,0 @@ -import XCTest -import Quick -import Nimble - -var specBeforeEachExecutedCount = 0 -var sharedExamplesBeforeEachExecutedCount = 0 - -class FunctionalTests_SharedExamples_BeforeEachTests_SharedExamples: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - sharedExamples("a group of three shared examples with a beforeEach") { - beforeEach { sharedExamplesBeforeEachExecutedCount += 1 } - it("passes once") {} - it("passes twice") {} - it("passes three times") {} - } - } -} - -class FunctionalTests_SharedExamples_BeforeEachSpec: QuickSpec { - override func spec() { - beforeEach { specBeforeEachExecutedCount += 1 } - it("executes the spec beforeEach once") {} - itBehavesLike("a group of three shared examples with a beforeEach") - } -} - -final class SharedExamples_BeforeEachTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (SharedExamples_BeforeEachTests) -> () throws -> Void)] { - return [ - ("testBeforeEachOutsideOfSharedExamplesExecutedOnceBeforeEachExample", testBeforeEachOutsideOfSharedExamplesExecutedOnceBeforeEachExample), - ("testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample", testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample) - ] - } - - func testBeforeEachOutsideOfSharedExamplesExecutedOnceBeforeEachExample() { - specBeforeEachExecutedCount = 0 - - qck_runSpec(FunctionalTests_SharedExamples_BeforeEachSpec.self) - XCTAssertEqual(specBeforeEachExecutedCount, 4) - } - - func testBeforeEachInSharedExamplesExecutedOnceBeforeEachSharedExample() { - sharedExamplesBeforeEachExecutedCount = 0 - - qck_runSpec(FunctionalTests_SharedExamples_BeforeEachSpec.self) - XCTAssertEqual(sharedExamplesBeforeEachExecutedCount, 3) - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift deleted file mode 100644 index d296601..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/FunctionalTests/SharedExamplesTests.swift +++ /dev/null @@ -1,54 +0,0 @@ -import Foundation -import XCTest -import Quick -import Nimble - -class FunctionalTests_SharedExamples_Spec: QuickSpec { - override func spec() { - itBehavesLike("a group of three shared examples") - } -} - -class FunctionalTests_SharedExamples_ContextSpec: QuickSpec { - override func spec() { - itBehavesLike("shared examples that take a context") { ["callsite": "SharedExamplesSpec"] } - } -} - -#if _runtime(_ObjC) && !SWIFT_PACKAGE -class FunctionalTests_SharedExamples_ErrorSpec: QuickSpec { - override func spec() { - describe("error handling when misusing ordering") { - it("should throw an exception when including itBehavesLike in it block") { - expect { - itBehavesLike("a group of three shared examples") - }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName.internalInconsistencyException)) - expect(exception.reason).to(equal("'itBehavesLike' cannot be used inside 'it', 'itBehavesLike' may only be used inside 'context' or 'describe'. ")) - }) - } - } - } -} -#endif - -// Shared examples are defined in QuickTests/Fixtures -final class SharedExamplesTests: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (SharedExamplesTests) -> () throws -> Void)] { - return [ - ("testAGroupOfThreeSharedExamplesExecutesThreeExamples", testAGroupOfThreeSharedExamplesExecutesThreeExamples), - ("testSharedExamplesWithContextPassContextToExamples", testSharedExamplesWithContextPassContextToExamples) - ] - } - - func testAGroupOfThreeSharedExamplesExecutesThreeExamples() { - let result = qck_runSpec(FunctionalTests_SharedExamples_Spec.self) - XCTAssert(result!.hasSucceeded) - XCTAssertEqual(result!.executionCount, 3 as UInt) - } - - func testSharedExamplesWithContextPassContextToExamples() { - let result = qck_runSpec(FunctionalTests_SharedExamples_ContextSpec.self) - XCTAssert(result!.hasSucceeded) - } -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.h b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.h deleted file mode 100644 index 183118e..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.h +++ /dev/null @@ -1,22 +0,0 @@ -@import XCTest; - -/** - Runs an XCTestSuite instance containing only the given XCTestCase subclass. - Use this to run QuickSpec subclasses from within a set of unit tests. - - Due to implicit dependencies in _XCTFailureHandler, this function raises an - exception when used in Swift to run a failing test case. - - @param specClass The class of the spec to be run. - @return An XCTestRun instance that contains information such as the number of failures, etc. - */ -extern XCTestRun * _Nullable qck_runSpec(Class _Nonnull specClass); - -/** - Runs an XCTestSuite instance containing the given XCTestCase subclasses, in the order provided. - See the documentation for `qck_runSpec` for more details. - - @param specClasses An array of QuickSpec classes, in the order they should be run. - @return An XCTestRun instance that contains information such as the number of failures, etc. - */ -extern XCTestRun * _Nullable qck_runSpecs(NSArray * _Nonnull specClasses); diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.m deleted file mode 100644 index a2aa78c..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QCKSpecRunner.m +++ /dev/null @@ -1,33 +0,0 @@ -@import Quick; - -#import "QCKSpecRunner.h" -#import "XCTestObservationCenter+QCKSuspendObservation.h" -#import "World.h" - -@interface XCTest (Redeclaration) -- (XCTestRun *)run; -@end - -XCTestRun * _Nullable qck_runSuite(XCTestSuite * _Nonnull suite) { - [World sharedWorld].isRunningAdditionalSuites = YES; - - __block XCTestRun *result = nil; - [[XCTestObservationCenter sharedTestObservationCenter] qck_suspendObservationForBlock:^{ - [suite runTest]; - result = suite.testRun; - }]; - return result; -} - -XCTestRun *qck_runSpec(Class specClass) { - return qck_runSuite([XCTestSuite testSuiteForTestCaseClass:specClass]); -} - -XCTestRun * _Nullable qck_runSpecs(NSArray * _Nonnull specClasses) { - XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"MySpecs"]; - for (Class specClass in specClasses) { - [suite addTest:[XCTestSuite testSuiteForTestCaseClass:specClass]]; - } - - return qck_runSuite(suite); -} diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.h b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.h deleted file mode 100644 index 99e20f8..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface QuickSpec (QuickSpec_MethodList) - -+ (NSSet *)allSelectors; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.m deleted file mode 100644 index c648bd1..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickSpec+QuickSpec_MethodList.m +++ /dev/null @@ -1,31 +0,0 @@ -#import "QuickSpec+QuickSpec_MethodList.h" -#import - - -@implementation QuickSpec (QuickSpec_MethodList) - -/** - * This method will instantiate an instance of the class on which it is called, - * returning a list of selector names for it. - * - * @warning Only intended to be used in test assertions! - * - * @return a set of NSStrings representing the list of selectors it contains - */ -+ (NSSet *)allSelectors { - QuickSpec *specInstance = [[[self class] alloc] init]; - NSMutableSet *allSelectors = [NSMutableSet set]; - - unsigned int methodCount = 0; - Method *mlist = class_copyMethodList(object_getClass(specInstance), &methodCount); - - for(unsigned int i = 0; i < methodCount; i++) { - SEL selector = method_getName(mlist[i]); - [allSelectors addObject:NSStringFromSelector(selector)]; - } - - free(mlist); - return [allSelectors copy]; -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h deleted file mode 100644 index 301c5d5..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/QuickTestsBridgingHeader.h +++ /dev/null @@ -1,2 +0,0 @@ -#import "QCKSpecRunner.h" -#import "QuickSpec+QuickSpec_MethodList.h" diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.h b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.h deleted file mode 100644 index d69f808..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.h +++ /dev/null @@ -1,20 +0,0 @@ -#import - -/** - Add the ability to temporarily disable internal XCTest execution observation in - order to run isolated XCTestSuite instances while the QuickTests test suite is running. - */ -@interface XCTestObservationCenter (QCKSuspendObservation) - -/** - Suspends test suite observation for XCTest-provided observers for the duration that - the block is executing. Any test suites that are executed within the block do not - generate any log output. Failures are still reported. - - Use this method to run XCTestSuite objects while another XCTestSuite is running. - Without this method, tests fail with the message: "Timed out waiting for IDE - barrier message to complete" or "Unexpected TestSuiteDidStart". - */ -- (void)qck_suspendObservationForBlock:(void (^)(void))block; - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.m deleted file mode 100644 index 1a32e10..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Helpers/XCTestObservationCenter+QCKSuspendObservation.m +++ /dev/null @@ -1,54 +0,0 @@ -@import XCTest; -#import - -@interface XCTestObservationCenter (Redeclaration) -- (id)observers; -- (void)removeTestObserver:(id)testObserver; -@end - -@implementation XCTestObservationCenter (QCKSuspendObservation) - -/// This allows us to only suspend observation for observers by provided by Apple -/// as a part of the XCTest framework. In particular it is important that we not -/// suspend the observer added by Nimble, otherwise it is unable to properly -/// report assertion failures. -static BOOL (^isFromApple)(id) = ^BOOL(id observer){ - return [[NSBundle bundleForClass:[observer class]].bundleIdentifier containsString:@"com.apple.dt.XCTest"]; -}; - -- (void)qck_suspendObservationForBlock:(void (^)(void))block { - id originalObservers = [[self observers] copy]; - NSMutableArray *suspendedObservers = [NSMutableArray new]; - - for (id observer in originalObservers) { - if (isFromApple(observer)) { - [suspendedObservers addObject:observer]; - - if ([self respondsToSelector:@selector(removeTestObserver:)]) { - [self removeTestObserver:observer]; - } - else if ([[self observers] respondsToSelector:@selector(removeObject:)]) { - [[self observers] removeObject:observer]; - } - else { - NSAssert(NO, @"unexpected type: unable to remove observers: %@", originalObservers); - } - } - } - - @try { - block(); - } - @finally { - for (id observer in suspendedObservers) { - if ([[self observers] respondsToSelector:@selector(addObject:)]) { - [[self observers] addObject:observer]; - } - else if ([self respondsToSelector:@selector(addTestObserver:)]) { - [self addTestObserver:observer]; - } - } - } -} - -@end diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Info.plist b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Info.plist deleted file mode 100644 index 6d32c15..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/QuickConfigurationTests.m b/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/QuickConfigurationTests.m deleted file mode 100644 index ace4577..0000000 --- a/Carthage/Checkouts/Quick/Tests/QuickTests/QuickTests/QuickConfigurationTests.m +++ /dev/null @@ -1,12 +0,0 @@ -#import -#import - -@interface QuickConfigurationTests : XCTestCase; @end - -@implementation QuickConfigurationTests - -- (void)testInitThrows { - XCTAssertThrowsSpecificNamed([QuickConfiguration new], NSException, NSInternalInconsistencyException); -} - -@end diff --git a/Carthage/Checkouts/Quick/script/release b/Carthage/Checkouts/Quick/script/release deleted file mode 100755 index 26409c4..0000000 --- a/Carthage/Checkouts/Quick/script/release +++ /dev/null @@ -1,182 +0,0 @@ -#!/usr/bin/env sh -REMOTE_BRANCH=master -POD_NAME=Quick -PODSPEC=Quick.podspec - -POD=${COCOAPODS:-pod} - -function help { - echo "Usage: release VERSION RELEASE_NOTES [-f]" - echo - echo "VERSION should be the version to release, should not include the 'v' prefix" - echo "RELEASE_NOTES should be a file that lists all the release notes for this version" - echo " if file does not exist, creates a git-style commit with a diff as a comment" - echo - echo "FLAGS" - echo " -f Forces override of tag" - echo - echo " Example: ./release 1.0.0-rc.2 ./release-notes.txt" - echo - echo "HINT: use 'git diff ...HEAD' to build the release notes" - echo - exit 2 -} - -function die { - echo "[ERROR] $@" - echo - exit 1 -} - -if [ $# -lt 2 ]; then - help -fi - -VERSION=$1 -RELEASE_NOTES=$2 -FORCE_TAG=$3 - -VERSION_TAG="v$VERSION" - -echo "-> Verifying Local Directory for Release" - -if [ -z "`which $POD`" ]; then - die "Cocoapods is required to produce a release. Aborting." -fi -echo " > Cocoapods is installed" - -echo " > Is this a reasonable tag?" - -echo $VERSION_TAG | grep -q "^vv" -if [ $? -eq 0 ]; then - die "This tag ($VERSION) is an incorrect format. You should remove the 'v' prefix." -fi - -echo $VERSION_TAG | grep -q -E "^v\d+\.\d+\.\d+(-\w+(\.\d)?)?\$" -if [ $? -ne 0 ]; then - die "This tag ($VERSION) is an incorrect format. It should be in 'v{MAJOR}.{MINOR}.{PATCH}(-{PRERELEASE_NAME}.{PRERELEASE_VERSION})' form." -fi - -echo " > Is this version ($VERSION) unique?" -git describe --exact-match "$VERSION_TAG" > /dev/null 2>&1 -if [ $? -eq 0 ]; then - if [ -z "$FORCE_TAG" ]; then - die "This tag ($VERSION) already exists. Aborting. Append '-f' to override" - else - echo " > NO, but force was specified." - fi -else - echo " > Yes, tag is unique" -fi - -if [ ! -f "$RELEASE_NOTES" ]; then - echo " > Failed to find $RELEASE_NOTES. Prompting editor" - RELEASE_NOTES=.release-changes - LATEST_TAG=`git for-each-ref refs/tags --sort=-refname --format="%(refname:short)" | grep -E "^v\d+\.\d+\.\d+(-\w+(\.\d)?)?\$" | ruby -e 'puts STDIN.read.split("\n").sort { |a,b| Gem::Version.new(a.gsub(/^v/, "")) <=> Gem::Version.new(b.gsub(/^v/, "")) }.last'` - echo " > Latest tag ${LATEST_TAG}" - echo "${POD_NAME} v$VERSION" > $RELEASE_NOTES - echo "================" >> $RELEASE_NOTES - echo >> $RELEASE_NOTES - echo "# Changelog from ${LATEST_TAG}..HEAD" >> $RELEASE_NOTES - git log ${LATEST_TAG}..HEAD | sed -e 's/^/# /' >> $RELEASE_NOTES - $EDITOR $RELEASE_NOTES - diff -q $RELEASE_NOTES ${RELEASE_NOTES}.backup > /dev/null 2>&1 - STATUS=$? - rm ${RELEASE_NOTES}.backup - if [ $STATUS -eq 0 ]; then - rm $RELEASE_NOTES - die "No changes in release notes file. Aborting." - fi -fi -echo " > Release notes: $RELEASE_NOTES" - -if [ ! -f "$PODSPEC" ]; then - die "Cannot find podspec: $PODSPEC. Aborting." -fi -echo " > Podspec exists" - -git config --get user.signingkey > /dev/null || { - echo "[ERROR] No PGP found to sign tag. Aborting." - echo - echo " Creating a release requires signing the tag for security purposes. This allows users to verify the git cloned tree is from a trusted source." - echo " From a security perspective, it is not considered safe to trust the commits (including Author & Signed-off fields). It is easy for any" - echo " intermediate between you and the end-users to modify the git repository." - echo - echo " While not all users may choose to verify the PGP key for tagged releases. It is a good measure to ensure 'this is an official release'" - echo " from the official maintainers." - echo - echo " If you're creating your PGP key for the first time, use RSA with at least 4096 bits." - echo - echo "Related resources:" - echo " - Configuring your system for PGP: https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work" - echo " - Why: http://programmers.stackexchange.com/questions/212192/what-are-the-advantages-and-disadvantages-of-cryptographically-signing-commits-a" - echo - exit 2 -} -echo " > Found PGP key for git" - -# Verify cocoapods trunk ownership -pod trunk me | grep -q "$POD_NAME" || die "You do not have access to pod repository $POD_NAME. Aborting." -echo " > Verified ownership to $POD_NAME pod" - - -echo "--- Releasing version $VERSION (tag: $VERSION_TAG)..." - -function restore_podspec { - if [ -f "${PODSPEC}.backup" ]; then - mv -f ${PODSPEC}{.backup,} - fi -} - -echo "-> Ensuring no differences to origin/$REMOTE_BRANCH" -git fetch origin || die "Failed to fetch origin" -git diff --quiet HEAD "origin/$REMOTE_BRANCH" || die "HEAD is not aligned to origin/$REMOTE_BRANCH. Cannot update version safely" - -echo "-> Setting podspec version" -cat "$PODSPEC" | grep 's.version' | grep -q "\"$VERSION\"" -SET_PODSPEC_VERSION=$? -if [ $SET_PODSPEC_VERSION -eq 0 ]; then - echo " > Podspec already set to $VERSION. Skipping." -else - sed -i.backup "s/s.version *= *\".*\"/s.version = \"$VERSION\"/g" "$PODSPEC" || { - restore_podspec - die "Failed to update version in podspec" - } - - git add ${PODSPEC} || { restore_podspec; die "Failed to add ${PODSPEC} to INDEX"; } - git commit -m "Bumping version to $VERSION" || { restore_podspec; die "Failed to push updated version: $VERSION"; } -fi - -if [ -z "$FORCE_TAG" ]; then - echo "-> Tagging version" - git tag -s "$VERSION_TAG" -F "$RELEASE_NOTES" || die "Failed to tag version" - echo "-> Pushing tag to origin" - git push origin "$VERSION_TAG" || die "Failed to push tag '$VERSION_TAG' to origin" -else - echo "-> Tagging version (force)" - git tag -f -s "$VERSION_TAG" -F "$RELEASE_NOTES" || die "Failed to tag version" - echo "-> Pushing tag to origin (force)" - git push origin "$VERSION_TAG" -f || die "Failed to push tag '$VERSION_TAG' to origin" -fi - -if [ $SET_PODSPEC_VERSION -ne 0 ]; then - rm $RELEASE_NOTES - git push origin "$REMOTE_BRANCH" || die "Failed to push to origin" - echo " > Pushed version to origin" -fi - -echo -echo "Pushing to pod trunk..." - -$POD trunk push "$PODSPEC" - -echo -echo "================ Finalizing the Release ================" -echo -echo " - Opening GitHub to mark this as a release..." -echo " - Paste the contents of $RELEASE_NOTES into the release notes. Tweak for Github styling." -echo " - Announce!" - -open "https://github.com/Quick/Quick/releases/new?tag=$VERSION_TAG" - -rm ${PODSPEC}.backup diff --git a/Carthage/Checkouts/Quick/script/travis-install-linux b/Carthage/Checkouts/Quick/script/travis-install-linux deleted file mode 100755 index 279cd88..0000000 --- a/Carthage/Checkouts/Quick/script/travis-install-linux +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -e - -# See: https://github.com/kylef/swiftenv/wiki/Travis-CI -curl -sL https://gist.github.com/kylef/5c0475ff02b7c7671d2a/raw/621ef9b29bbb852fdfd2e10ed147b321d792c1e4/swiftenv-install.sh | bash diff --git a/Carthage/Checkouts/Quick/script/travis-install-macos b/Carthage/Checkouts/Quick/script/travis-install-macos deleted file mode 100755 index 64edf92..0000000 --- a/Carthage/Checkouts/Quick/script/travis-install-macos +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -set -e - -git submodule update --init --recursive diff --git a/Carthage/Checkouts/Quick/script/travis-script-linux b/Carthage/Checkouts/Quick/script/travis-script-linux deleted file mode 100755 index 7a6558d..0000000 --- a/Carthage/Checkouts/Quick/script/travis-script-linux +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh - -. ~/.swiftenv/init -rake test:swiftpm diff --git a/Carthage/Checkouts/Quick/script/travis-script-macos b/Carthage/Checkouts/Quick/script/travis-script-macos deleted file mode 100755 index ac60f1c..0000000 --- a/Carthage/Checkouts/Quick/script/travis-script-macos +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh - -if [ "$PODSPEC" ]; then - TASK="podspec:lint" -else - TASK="test:$PLATFORM" -fi - -echo "Executing rake task: $TASK" -rake "$TASK" diff --git a/Carthage/Checkouts/ReSwift/.gitignore b/Carthage/Checkouts/ReSwift/.gitignore deleted file mode 100644 index 6180475..0000000 --- a/Carthage/Checkouts/ReSwift/.gitignore +++ /dev/null @@ -1,64 +0,0 @@ -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -.DS_Store - -## Build generated -build/ -DerivedData - -## Various settings -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata - -## Other -*.xccheckout -*.moved-aside -*.xcuserstate -*.xcscmblueprint - -## Obj-C/Swift specific -*.hmap -*.ipa - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -.build/ - -# While ReSwift has no dependencies we are still using CocoaPods, but only -# to ensure developers use the same binary version of SwiftLint. Since -# this is just a development dependency it is ok to ignore it, and rely on -# developers to generate it when required. -Pods/ - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md - -fastlane/report.xml -fastlane/screenshots -Carthage - -# Generated documentation -Docs/tmp -Docs/output diff --git a/Carthage/Checkouts/ReSwift/.hound.yml b/Carthage/Checkouts/ReSwift/.hound.yml deleted file mode 100644 index 65fa0c8..0000000 --- a/Carthage/Checkouts/ReSwift/.hound.yml +++ /dev/null @@ -1,3 +0,0 @@ -swift: - enabled: true - config_file: .swiftlint.yml diff --git a/Carthage/Checkouts/ReSwift/.jazzy.json b/Carthage/Checkouts/ReSwift/.jazzy.json deleted file mode 100644 index c9a97fe..0000000 --- a/Carthage/Checkouts/ReSwift/.jazzy.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "xcodebuild_arguments": ["-project", "ReSwift.xcodeproj", "-scheme", "ReSwift-macOS"], - "swift_version": "2.2", - "author": "ReSwift", - "author_url": "https://github.com/ReSwift/ReSwift", - "module": "ReSwift", - "readme": "Docs/tmp/compile/README.md", - "theme": "Docs/jazzy-theme/", - - "documentation": "Docs/tmp/docs/*.md", - "abstract": "Docs/tmp/api/*.md", - - "custom_categories": [{ - "name": "Documentation", - "children": [ - "About ReSwift", - "Why ReSwift", - "Getting Started Guide", - "Installation", - "Checking out Source Code", - "Demo", - "Extensions", - "Example Projects", - "Contributing", - "Credits", - "Get in touch", - "Changelog", - "License" - ] - }, { - "name": "Stores", - "children": [ - "Store", - "StoreType", - "StoreSubscriber", - "AnyStoreSubscriber" - ] - }, { - "name": "State", - "children": [ - "StateType" - ] - }, { - "name": "Actions", - "children": [ - "Action", - "StandardAction", - "StandardActionConvertible", - "ReSwiftInit" - ] - }, { - "name": "Reducers", - "children": [ - "Reducer", - "AnyReducer", - "CombinedReducer" - ] - }, { - "name": "Utilities", - "children": [ - "Coding" - ] - }], - - "string-replacements": { - "Docs/img": "img", - "http://reswift.github.io/ReSwift/master/getting-started-guide.html": "getting-started-guide.html", - "#contributing": "contributing.html" - } -} diff --git a/Carthage/Checkouts/ReSwift/.scripts/doc-preprocessor b/Carthage/Checkouts/ReSwift/.scripts/doc-preprocessor deleted file mode 100755 index 82efe02..0000000 --- a/Carthage/Checkouts/ReSwift/.scripts/doc-preprocessor +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env ruby - -require 'json' - -def parseOptions(paired_args) - options = {args: []} - index = 0 - while(index < ARGV.length) - arg = ARGV[index] - - paired_key = paired_args[arg] - if paired_key - if index >= ARGV.length - 1 - puts "Unable to find a value for the arg: '" + arg + "'" - exit 1 - end - options[paired_key] = ARGV[index+1] - index += 1 - elsif /--.+/ =~ arg - puts "unknown option: " + arg - else - options[:args].push arg - end - index += 1 - end - options -end - -def requireArgs(args, count) - if args.length != count - puts "usage: docgen [input] [output] [...options]" - exit 1 - end -end - -def splitSections(content) - result = {} - current = '' - content.split("\n").each do |line| - if /^#( | \w).*/ =~ line - current = line.sub(/^#/, '').strip - # current = line - result[current] = result[current] || "" - else - result[current] += "\n" + line - end - end - - result.keys.each do |key| - result[key] = result[key].strip - end - result -end - -paired_args = { - '--section' => :section, - '--title' => :title, - '--transforms' => :transforms -} -options = parseOptions paired_args - -requireArgs options[:args], 2 -file_in = options[:args][0] -file_out = options[:args][1] - -input = IO.read(file_in) - -result = '' - -# ----- - -if options[:section] - sections = splitSections input - section_name = options[:section] - if sections[section_name] - result = sections[section_name] - else - puts "Unable to find section: '" + section_name + "'" - exit 1 - end -else - result = input -end - - -if options[:title] - result = "# #{options[:title]}\n\n" + result -end - -# ----- - -jazzy_conf = JSON.parse IO.read '.jazzy.json' - -if jazzy_conf['string-replacements'] - transforms = jazzy_conf['string-replacements'] - transforms.each_pair do |key, value| - result = result.sub key, value - end -end - -version = `cat ReSwift.podspec| grep "version " | cut -d '"' -f 2`.strip -if version - result = result.sub '{{version}}', version -end - -# ----- - -if result == '' - puts "Not writing output as result is empty" - exit 1 -end - -IO.write(file_out, result) - -puts "[Processed]: #{file_out}" diff --git a/Carthage/Checkouts/ReSwift/.scripts/generate-docs b/Carthage/Checkouts/ReSwift/.scripts/generate-docs deleted file mode 100755 index ae18064..0000000 --- a/Carthage/Checkouts/ReSwift/.scripts/generate-docs +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -# ----- Check for dependencies - -JAZZY=$(which jazzy) -if [ $? != 0 ]; then - echo -e "Jazzy is required to generate documentation. Install it with:\n" - echo -e " gem install jazzy\n" - exit -fi -echo "Using jazzy: $JAZZY" - - -# ----- Commandline options - -if [ "$BRANCH" == "" ]; then - BRANCH=$([ "$1" == "" ] && echo "master" || echo "$1") -fi - -if [ "$OUTPUT_PATH" == "" ]; then - OUTPUT_PATH=$([ "$2" == "" ] && echo "Docs/output/$BRANCH" || echo "$2") -fi - - -# ----- Configuration - -ORGANISATION=ReSwift -NAME=ReSwift -TMP=Docs/tmp -GITHUB=https://github.com/$ORGANISATION/$NAME -URL=http://$ORGANISATION.github.io/$NAME - -PREPROC=.scripts/doc-preprocessor - -# ----- Setup and generate docs - -# Clean $TMP folder -if [ -d "$TMP" ]; then rm -rf "$TMP"; fi -mkdir -p $TMP/{compile,docs,api} - -cp Docs/*.md $TMP/api/ - -# Split the README into sections -$PREPROC README.md "$TMP/docs/About ReSwift.md" --section "About ReSwift" --title "About ReSwift" -$PREPROC README.md "$TMP/docs/Why ReSwift.md" --section "Why ReSwift?" --title "Why ReSwift?" -$PREPROC README.md "$TMP/docs/Installation.md" --section "Installation" --title "Installation" -$PREPROC README.md "$TMP/docs/Checking out Source Code.md" --section "Checking out Source Code" --title "Checking out Source Code" -$PREPROC README.md "$TMP/docs/Demo.md" --section "Demo" --title "Demo" -$PREPROC README.md "$TMP/docs/Extensions.md" --section "Extensions" --title "Extensions" -$PREPROC README.md "$TMP/docs/Example Projects.md" --section "Example Projects" --title "Example Projects" -$PREPROC README.md "$TMP/docs/Credits.md" --section "Credits" --title "Credits" -$PREPROC README.md "$TMP/docs/Get in touch.md" --section "Get in touch" --title "Get in touch" -$PREPROC README.md "$TMP/compile/intro.md" --section "Introduction" - -# Copy remaining root docs -$PREPROC CONTRIBUTING.md "$TMP/docs/Contributing.md" -$PREPROC CHANGELOG.md "$TMP/docs/Changelog.md" --title "Changelog" -$PREPROC LICENSE.md "$TMP/docs/License.md" --title "License" - -# Copy over the Getting started guide -$PREPROC "Docs/Getting Started Guide.md" "$TMP/docs/Getting Started Guide.md" - -# Create the documentation landing page by combining: -# -# - Docs/templates/heading.md -# - README.md#introduction -# - Docs/templates/toc.md -# -cat Docs/templates/heading.md $TMP/compile/intro.md Docs/templates/toc.md > $TMP/compile/readme-raw.md -$PREPROC "$TMP/compile/readme-raw.md" "$TMP/compile/README.md" -cp $TMP/compile/README.md $TMP/api/Documentation.md - -# Compile our Docs/tmp + generate API docs using jazzy -jazzy \ - --config .jazzy.json \ - --clean \ - --output "$OUTPUT_PATH" \ - --module-version "$BRANCH" \ - --dash_url "$URL/$BRANCH/docsets/$NAME.xml" \ - --root-url "$URL/$BRANCH/" \ - --github_url "$GITHUB" \ - --github-file-prefix "$GITHUB/tree/$BRANCH" - -cp Docs/img/* $OUTPUT_PATH/img/ diff --git a/Carthage/Checkouts/ReSwift/.scripts/update-gh-pages b/Carthage/Checkouts/ReSwift/.scripts/update-gh-pages deleted file mode 100755 index 8682c77..0000000 --- a/Carthage/Checkouts/ReSwift/.scripts/update-gh-pages +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# ----- Early exit check - -if [ "$TRAVIS_BRANCH" != "" ]; then - # Exit if we are running inside travis but not on the iOS scheme - if [ "$SCHEME" != "iOS" ]; then - echo " <== Early exit - SCHEME='$SCHEME'" - exit 0 - fi -fi - - -# ----- Configuration - -ORGANISATION=ReSwift -NAME=ReSwift -BRANCH=$([ "$TRAVIS_BRANCH" == "" ] && echo "master" || echo "$TRAVIS_BRANCH") -SHA=`git rev-parse --verify HEAD --short` -REPO=`git config remote.origin.url` - -TMP=Docs/tmp -CHECKOUT_PATH=Docs/output -OUTPUT_PATH=$CHECKOUT_PATH/$BRANCH - - -# ----- Clone the GitHub pages repo if required - -echo " ==> Updating documentation for '$BRANCH' branch" - -if [ -d "$CHECKOUT_PATH" ]; then - echo " ==> Update: gh-pages -> $CHECKOUT_PATH" - git -C "$CHECKOUT_PATH" pull origin gh-pages -else - echo " ==> Checkout: gh-pages -> $CHECKOUT_PATH" - git clone --branch gh-pages "$REPO" "$CHECKOUT_PATH" -fi - -if [ "$TRAVIS_BRANCH" != "" ]; then - echo " ==> Install: jazzy" - gem install --no-rdoc --no-ri jazzy -fi - -echo " ==> Generate documentation" -.scripts/generate-docs "$BRANCH" "$OUTPUT_PATH" - -# ----- Travis Documentation updater - -# Exit if not running from travis -if [ "$TRAVIS_BRANCH" == "" ]; then exit; fi -if [ "$SCHEME" != "iOS" ]; then exit; fi - -pushd "$CHECKOUT_PATH" - - git config user.name "Travis CI" - git config user.email "$COMMIT_AUTHOR_EMAIL" - - # Exit if there are no changes to the documentation - echo " ==> Check for documentation changes" - CHANGE_SET=$(git status -s) - if [ "$CHANGE_SET" == "" ]; then - echo " <== No changes to the output on this push; exiting." - exit 0 - fi - - # Exit if only the docset archive has changed (it always changes) - if [ "$CHANGE_SET" == " M $BRANCH/docsets/$NAME.tgz" ]; then - echo " <== Only the docset archive changed on this push; exiting." - exit 0 - fi - - echo " ==> Stage changes" - git add -A "$BRANCH" - - echo " ==> Commit changes" - git commit -m "[$BRANCH $SHA] Regenerate documentation" - - echo " ==> Push changes -> '$REPO'" - git push -q "https://$GITHUB_PAGES_TOKEN@github.com/$ORGANISATION/$NAME.git" gh-pages - - echo " <== All done 👊" -popd diff --git a/Carthage/Checkouts/ReSwift/.swiftlint.yml b/Carthage/Checkouts/ReSwift/.swiftlint.yml deleted file mode 100644 index 6516f6e..0000000 --- a/Carthage/Checkouts/ReSwift/.swiftlint.yml +++ /dev/null @@ -1,7 +0,0 @@ -excluded: # paths to ignore during linting. overridden by `included`. - - Carthage - - Pods - -disabled_rules: # rule identifiers to exclude from running - - force_cast - - opening_brace diff --git a/Carthage/Checkouts/ReSwift/.travis.yml b/Carthage/Checkouts/ReSwift/.travis.yml deleted file mode 100644 index bae4908..0000000 --- a/Carthage/Checkouts/ReSwift/.travis.yml +++ /dev/null @@ -1,60 +0,0 @@ -language: objective-c - -branches: - except: - - gh-pages - -install: - - gem install xcpretty - -env: - global: - - LC_CTYPE=en_US.UTF-8 - - LANG=en_US.UTF-8 - - FRAMEWORK_NAME="ReSwift" - - UPDATE_DOCS="false" - -matrix: - include: - - osx_image: xcode8.2 - env: SCHEME="macOS" SDK="macosx10.12" DESTINATION="arch=x86_64" - - osx_image: xcode8.2 - env: SCHEME="iOS" SDK="iphonesimulator10.2" DESTINATION="OS=10.1,name=iPhone 6S Plus" - - osx_image: xcode8.2 - env: SCHEME="tvOS" SDK="appletvsimulator10.1" DESTINATION="OS=10.1,name=Apple TV 1080p" - -script: - - set -o pipefail - - xcodebuild -version - - xcodebuild -showsdks - - xcodebuild - -project "$FRAMEWORK_NAME.xcodeproj" - -scheme "$FRAMEWORK_NAME-$SCHEME" - -sdk "$SDK" - -destination "$DESTINATION" - -configuration Debug - ONLY_ACTIVE_ARCH=YES - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES - GCC_GENERATE_TEST_COVERAGE_FILES=YES - test - -after_success: - - bash <(curl -s https://codecov.io/bash) -J ReSwift - - test $TRAVIS_PULL_REQUEST == "false" && - test $TRAVIS_BRANCH == "master" && - test $UPDATE_DOCS == "true" && - .scripts/update-gh-pages - -before_deploy: - - carthage build --no-skip-current - - carthage archive $FRAMEWORK_NAME - -deploy: - provider: releases - api_key: - secure: S5BWCiwX80EWjF5043d1EVPw59qpuVTI1ytPejEE9bFomVDj0kCYIqodlUmKRorutNr+t2UD5CwTyqs5qHaAuseAm0P6SrOp1GaP9m6Jb/surII4nMICx+TzFP8xdCwC+C74CUDuCLeyM++kxIZEwJOp/QF9iP3iaF54ed+4IlycVEGxJ4LQQRBaQ3X+u6L/bSCgL/HuRzs0W1QXYovbFzCvEQmYlSQi00x5BGHtk3Rj4zU320pmcE1Ne0dGsmITN0oA2qSborVFPo1CnjRGKAJD8TJZRmxmKygFOQpsD4px/IRswDJRle5cGjvZ+MLnvDBis5siTGOf3W1z/HxTomqCIeAGt4O5CfJP9NP9HjaV9ATFb2NSpZPNaVle4IhfSl2O7NuQyhh19UKz9xgZ9QknkddZBPQ4yEINHAEzqVDKHjCvZZH4pxjN6AcbaKPYBoL042FmS87HAmq32AcOVBM0eXhMUzucahYTw1+XS77ZkOrXdx2jXX1hyjZ7tooYYm3SHJxHJKufnv5/rfShTM70+4vVhLePYGt/FnduacPdNtIehit7v6Dj+xsTs5igWMx/0Bb6ccaRr2ZQGs0dq536x0zrQVrvkrW9HcOY1uohFqujLGjJ/i6U1aMBf+iPRDTHlVmqiYjVSRC1mhatGOVHv+UuA1dSPkK9F91Lxbs= - file: "$FRAMEWORK_NAME.framework.zip" - skip_cleanup: true - on: - repo: ReSwift/ReSwift - tags: true diff --git a/Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint b/Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint deleted file mode 100755 index 9a78fbb..0000000 --- a/Carthage/Checkouts/ReSwift/BuildPhases/run-swiftlint +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -swiftlint="$SRCROOT/Pods/SwiftLint/swiftlint" - -if [ -f "$swiftlint" ]; then - "$swiftlint" -else - echo 'warning: Cannot find SwiftLint in the expected location. If you are developing ReSwift please install it via `pod install`. If you are building ReSwift as a dependency of your project feel free to ignore this.' -fi diff --git a/Carthage/Checkouts/ReSwift/CHANGELOG.md b/Carthage/Checkouts/ReSwift/CHANGELOG.md deleted file mode 100644 index 6a99b46..0000000 --- a/Carthage/Checkouts/ReSwift/CHANGELOG.md +++ /dev/null @@ -1,172 +0,0 @@ -# 4.0.0 - -*Work in Progress* - -**Breaking API Changes:** - -- Introduced a new Subscription API (#203) - @Ben-G, @mjarvis, @DivineDominion - - - The subscription API provides basic operators, such as `skipRepeats` (skip calls to `newState` unless state value changed) and `select` (sub-select a state). - - - This is a breaking API change that requires migrating existing subscriptions that sub-select a portion of a store's state: - - - Subselecting state in 3.0.0: - - ```swift - store.subscribe(subscriber) { ($0.testValue, $0.otherState?.name) } - ``` - - Subselecting state in 4.0.0: - - ```swift - store.subscribe(subscriber) { - $0.select { - ($0.testValue, $0.otherState?.name) - } - } - ``` - - - For any store state that is `Equatable` or any sub-selected state that is `Equatable`, `skipRepeats` will be used by default. - - - For states/substates that are not `Equatable`, `skipRepeats` can be implemented via a closure: - - ```swift - store.subscribe(subscriber) { - $0.select { - $0.testValue - }.skipRepeats { - return $0 == $1 - } - } - ``` - -- Reducer type has been removed in favor of reducer function (#177) - Ben-G - - - Here's an example of a new app reducer, for details see the README: - - ```swift - func counterReducer(action: Action, state: AppState?) -> AppState { - var state = state ?? AppState() - - switch action { - case _ as CounterActionIncrease: - state.counter += 1 - case _ as CounterActionDecrease: - state.counter -= 1 - default: - break - } - - return state - } - ``` - -- `dispatch` functions now return `Void` instead of `Any` (#187) - @Qata - - - The return type has been removed without any replacement, since the core team did not find any use cases of it. A common usage of the return type in redux is returning a promise that is fullfilled when a dispatched action is processed. While it's generally discouraged to disrupt the unidirectional data flow using this mechanism we do provide a `dispatch` overload that takes a `callback` argument and serves this purpose. - -- Make `dispatch` argument in middleware non-optional (#225) - @dimazen, @mjarvis, @Ben-G - -- `Middleware` now has a generic type parameter that is used for the `getState` method and matches the Store's `State` type. This allows accessing the state in middleware code without type casting (#226) - @mjarvis - - -**Other:** - -- Extend `StoreType` with substate selector subscription (#192) - @mjarvis -- Add `DispatchingStoreType` protocol for testing (#197) - @mjarvis -- Installation guide for Swift Package Manager - @thomaspaulmann -- Update documentation to reflect breaking API changes - @mjarvis -- Clarify error message on concurrent usage of ReSwift - @langford - -# 3.0.0 - -*Released: 11/12/2016* - -**Breaking API Changes:** -- Dropped support for Swift 2.2 and lower (#157) - @Ben-G - -**API Changes:** -- Mark `Store` as `open`, this reverts a previously accidental breaking API Change (#157) - @Ben-G - -**Other**: -- Update to Swift 3.0.1 - @Cristiam, @Ben-G -- Documentation changes - @vkotovv - -# 2.1.0 - -*Released: 09/15/2016* - -**Other**: - -- Swift 3 preview compatibility, maintaining Swift 2 naming - (#126) - @agentk -- Xcode 8 GM Swift 3 Updates (#149) - @tkersey -- Migrate Quick/Nimble testing to XCTest - (#127) - @agentk -- Automatically build docs via Travis CI (#128) - @agentk -- Documentation Updates & Fixes- @mikekavouras, @ColinEberhardt - -# 2.0.0 - -*Released: 06/27/2016* - -**Breaking API Changes**: - -- Significant Improvements to Serialization Code for `StandardAction` (relevant for recording tools) - @okla - -**Other**: - -- Swift 2.3 Updates - @agentk -- Documentation Updates & Fixes - @okla, @gregpardo, @tomj, @askielboe, @mitsuse, @esttorhe, @RyanCCollins, @thomaspaulmann, @jlampa - - -# 1.0.0 - -*Released: 03/19/2016* - -**API Changes:** -- Remove callback arguments on synchronous dispatch methods - @Ben-G - -**Other:** - -- Move all documentation source into `Docs`, except `Readme`, `Changelog` and `License` - @agentk -- Replace duplicated documentation with an enhanced `generate_docs.sh` build script - @agentk -- Set CocoaPods documentation URL - (#56) @agentk -- Update documentation for 1.0 release - @Ben-G - -# 0.2.5 - -*Released: 02/20/2016* - -**API Changes:** - -- Subscribers can now sub-select a state when they subscribe to the store (#61) - @Ben-G -- Rename initially dispatched Action to `ReSwiftInit` - @vfn - -**Fixes:** - -- Fix retain cycle caused by middleware (issue: #66) - @Ben-G -- Store now holds weak references to subscribers to avoid unexpected memory managegement behavior (issue: #62) - @vfn -- Documentation Fixes - @victorpimentel, @vfn, @juggernate, @raheelahmad - -**Other:** - -- We now have a [hosted documentation for ReSwift](http://reswift.github.io/ReSwift/master/) - @agentk -- Refactored subscribers into a explicit `Subscription` typealias - @DivineDominion -- Refactored `dispatch` for `AsyncActionCreator` to avoid duplicate code - @sendyhalim - -# 0.2.4 - -*Released: 01/23/2016* - -**API Changes:** - -- Pass typed store reference into `ActionCreator`. `ActionCreator` can now access `Store`s state without the need for typecasts - @Ben-G -- `Store` can now be initialized with an empty state, allowing reducers to hydrate the store - @Ben-G - -**Bugfixes** - -- Break retain cycle when using middelware - @sendyhalim - -**Other:** - -- Update Documentation to reflect renaming to ReSwift - @agentk -- Documentation fixes - @orta and @sendyhalim -- Refactoring - @dcvz and @sendyhalim diff --git a/Carthage/Checkouts/ReSwift/CONTRIBUTING.md b/Carthage/Checkouts/ReSwift/CONTRIBUTING.md deleted file mode 100644 index 432ff32..0000000 --- a/Carthage/Checkouts/ReSwift/CONTRIBUTING.md +++ /dev/null @@ -1,122 +0,0 @@ -# Contributing to ReSwift - -Some design decisions for the core of ReSwift are still up in the air (see [issues](https://github.com/ReSwift/ReSwift/issues)), there's lots of useful documentation that can be written and a ton of extensions and tools are waiting to be built on top of ReSwift. - -Pull requests are welcome on the [`master`](https://github.com/ReSwift/ReSwift) branch. - -We know making you first pull request can be scary. If you have trouble with any of the contribution rules, **still make the Pull Request**. We are here to help. - -We personally think the best way to get started contributing to this library is by using it in one of your projects! - -## Swift style guide - -We follow the [Ray Wenderlich Style Guide](https://github.com/raywenderlich/swift-style-guide) very closely with the following exception: - -- Use the Xcode default of 4 spaces for indentation. - -## SwiftLint - -[SwiftLint](https://github.com/realm/SwiftLint) runs automatically on all pull requests via [houndci.com](https://houndci.com/). If you have SwiftLint installed, you will receive the same warnings in Xcode at build time, that hound will check for on pull requests. - -Function body lengths in tests will often cause a SwiftLint warning. These can be handled on a per case bases by prefixing the function with: - -```swift -// swiftlint:disable function_body_length -func someFunctionThatShouldHaveAReallyLongBody() {} -``` - -Common violations to look out for are trailing white and valid docs. - -## Tests - -All code going into master requires testing. We keep code coverage at 100% to ensure the best possibility that all edge cases are tested for. It's good practice to test for any variations that can cause nil to be returned. - -Tests are run in [Travis CI](https://travis-ci.org/ReSwift/ReSwift) automatically on all pull requests, branches and tags. These are the same tests that run in Xcode at development time. - -## Comments - -- **Readable code should be preferred over commented code.** - - Comments in code are used to document non-obvious use cases. For example, when the use of a piece of code looks unnecessary, and naming alone does not convey why it is required. - -- **Comments need to be updated or removed if the code changes.** - - If a comment is included, it is just as important as code and has the same technical debt weight. The only thing worse than a unneeded comment is a comment that is not maintained. - -## Code documentation - -Code documentation is different from comments. Please be liberal with code docs. - -When writing code docs, remember they are: - -- Displayed to a user in Xcode quick help -- Used to generate API documentation -- API documentation also generates Dash docsets - -In particular paying attention to: - -- Keeping docs current -- Documenting all parameters and return types (SwiftLint helps with warning when they are not valid) -- Stating common issues that a user may run into - -See [NSHipster Swift Documentation](http://nshipster.com/swift-documentation/) for a good reference on writing documentation in Swift. - -## Generating documentation - -The documentation at `reswift.github.io/ReSwift` is generated from by combining the markdown documentation files with generated documentation using [jazzy](https://github.com/realm/jazzy). - -The markdown files used to generated documentation are: - -- README.md -- CONTRIBUTING.md -- CHANGELOG.md -- LICENSE.md -- Docs/ - - Getting Started Guide.md - - templates/ - - heading.md - - toc.md - -Along with the Documentation sections, API sections also support extra documentation found in: - -- Docs/ - - Actions.md - - Reducers.md - - State.md - - Stores.md - - Utilities.md - -Each of the markdown files are processed by the `generate_docs.sh` script and saved into `Docs/tmp/` ready for jazzy to generate the final documentation. - -The processing of each file can include: - -- Extracting a single section (ie, for splitting up README.md) -- Adding a title -- Replacing \{\{version\}\} with the current version -- Ad-hoc string replacements (found in .jazzy.json under "string-replacements") - -A forked version of Jazzy is currently used to support individual markdown sections and injecting markdown into API section headers. It can be installed from [https://github.com/agentk/jazzy/](https://github.com/agentk/jazzy/tree/integrated-markdown). - -The documentation is hosted by GitHub pages under the [ReSwift gh-pages](https://github.com/ReSwift/ReSwift/tree/gh-pages) branch. The `build.sh` script in the `gh-pages` branch, installs / updates jazzy, checks out the latest master branch of ReSwift, and calls the `generated_docs.sh` script to generate docs into the master folder. Docs changes can then be committed and pushed to the `gh-pages` branch. - -The custom jazzy theme is located in: `Docs/jazzy-theme`. - -Changes to `generate_docs.sh` will generally only be needed when sections / files are added or removed. - -### Documentation TL;DR - -To generate docs locally: - -```bash -./generate_docs.sh # -> Output to doc_output -``` - -To update the GitHub pages documentation: - -```bash -git clone https://github.com/ReSwift/ReSwift.git --branch gh-pages ReSwift-gh-pages -cd ReSwift-gh-pages -./build.sh -# Documentation is ready to be committed. -``` - diff --git a/Carthage/Checkouts/ReSwift/Cartfile.resolved b/Carthage/Checkouts/ReSwift/Cartfile.resolved deleted file mode 100644 index e69de29..0000000 diff --git a/Carthage/Checkouts/ReSwift/Docs/Actions.md b/Carthage/Checkouts/ReSwift/Docs/Actions.md deleted file mode 100644 index 435c8d2..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/Actions.md +++ /dev/null @@ -1,9 +0,0 @@ -Actions are used to express intended state changes. Actions don't contain functions, instead they provide information about the intended state change, e.g. which user should be deleted. - -In your ReSwift app you will define actions for every possible state change that can happen. - -Reducers handle these actions and implement state changes based on the information they provide. - -All actions in ReSwift conform to the `Action` protocol, which currently is just a marker protocol. - -You can either provide custom types as actions, or you can use the built in `StandardAction`. diff --git a/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md b/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md deleted file mode 100644 index ea9cabc..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/Getting Started Guide.md +++ /dev/null @@ -1,270 +0,0 @@ -# Getting Started with ReSwift - -ReSwift provides the infrastructure for `Store`s, `Action`s and `Reducer`s to enable a unidirectional data flow as shown below. - -![](img/reswift_detail.png) - -The following steps will describe how to set up the individual components for your ReSwift app. - -# State - -The application state is defined in a single data structure which should be a struct. This struct can have other structs as members, that allows you to add different sub-states as your app grows. - -The state struct should store your entire application state, that includes the UI state, the navigation state and the state of your model layer. - -Here's an example of a state struct as defined in the [Counter Example](https://github.com/ReSwift/CounterExample-Navigation-TimeTravel): - -```swift -struct AppState: StateType { - var counter: Int = 0 - var navigationState = NavigationState() -} -``` - -There are multiple things to note: - -1. Your app state struct needs to conform to the `StateType` protocol, currently this is just a marker protocol. -2. If you are including `ReSwiftRouter` in your project, your app state needs to contain a property of type `NavigationState`. This is the sub-state the router will use to store the current route. - -## Derived State - -Note that you don't need to store derived state inside of your app state. E.g. instead of storing a `UIImage` you should store a image URL that can be used to fetch the image from a cache or via a download. The app state should store all the information that uniquely identifies the current state and allows it to be reconstructed, but none that can be easily derived. - -# Actions - -Actions are used to express intended state changes. Actions don't contain functions, instead they provide information about the intended state change, e.g. which user should be deleted. - -In your ReSwift app you will define actions for every possible state change that can happen. - -Reducers handle these actions and implement state changes based on the information the actions provide. - -All actions in ReSwift conform to the `Action` protocol, which currently is just a marker protocol. - -You can either provide custom types as actions, or you can use the built in `StandardAction`. - -The `StandardAction` has the following structure: - -```swift -struct StandardAction: Action { - // identifies the action - let type: String - // provides information that is relevant to processing this action - // e.g. details about which post should be favorited - let payload: [String : AnyObject]? - // this flag is used for serialization when working with ReSwift Recorder - let isTypedAction: Bool -} -``` -**For most applications it is recommended to create your own types for actions instead of using `StandardAction`, as this allows you to take advantage of Swift's type system**. - -To provide your own action, simply create a type that conforms to the `Action` protocol: - -```swift -struct LikePostAction: Action { - let post: Post - let userLikingPost: User -} -``` - -The advantage of using a `StandardAction` is that it can be serialized; this is required for using the features provided by [ReSwift Recorder](https://github.com/ReSwift/ReSwift-Recorder); such as persisting the application state between app launches. - -If you want to use custom types for actions, but still want to be able to make use of the features provided by ReSwift Recorder, you can implement the `StandardActionConvertible` protocol. This will allow ReSwift to convert your typed actions to standard actions that can then be serialized. - -Once ReSwift Recorder's implementation is further along, you will find detailed information on all of this in its documentation. - -# Reducers - -Reducers are the only place in which you should modify application state! Reducers take the current application state and an action and return the new transformed application state. We recommend to provide many small reducers that each handle a subset of your application state. - -You can do this implementing a top-level reducer that conforms to the `Reducer` protocol. This reducer will then call individual functions for each different part of the app state. - -Here's an example in which we construct a new state, by calling sub-reducers with different sub-states: - -```swift -func appReducer(action: Action, state: State?) -> State { - return State( - navigationState: navigationReducer(action, state: state?.navigationState), - authenticationState: authenticationReducer(state?.authenticationState, action: action), - repositories: repositoriesReducer(state?.repositories, action: action), - bookmarks: bookmarksReducer(state?.bookmarks, action: action) - ) -} -``` -The `Reducer` typealias is a method that takes an `Action` and an `State?` and returns a `State`. Typically reducers will be responsible for initializing the application state. When they receive `nil` as the current state, they should return the initial default value for their portion of the state. In the example above the `appReducer` delegates all calls to other reducer functions. E.g. the `authenticationReducer` is responsible for providing the `authenticationState`. - -Here's what the `authenticationReducer` function that is called from the `appReducer` looks like: - -```swift -func authenticationReducer(state: AuthenticationState?, action: Action) -> AuthenticationState { - var state = state ?? initialAuthenticationState() - - switch action { - case _ as SwiftFlowInit: - break - case let action as SetOAuthURL: - state.oAuthURL = action.oAuthUrl - case let action as UpdateLoggedInState: - state.loggedInState = action.loggedInState - default: - break - } - - return state -} -``` -You can see that the `authenticationReducer` function is a free function. You can define it with any arbitrary method signature, but we recommend that it matches the `Reducer` typealias (current state and action in, new state out). - -This sub-reducer first checks if the state provided is `nil`. If that's the case, it sets the state to the initial default state. Next, the reducer switches over the provided `action` and checks its type. Depending on the type of action, this reducer will updated the state differently. This specific reducer is very simple, each action only triggers a single property of the state to update. - -Once the state update is complete, the reducer function returns the new state. - -After the `appReducer` has called all of the sub-reducer functions, we have a new application state. `ReSwift` will take care of publishing this new state to all subscribers. - -# Store Subscribers - -Store subscribers are types that are interested in receiving state updates from a store. Whenever the store updates its state it will notify all subscribers by calling the `newState` method on them. Subscribers need to conform to the `StoreSubscriber` protocol: - -```swift -protocol StoreSubscriber { - func newState(state: StoreSubscriberStateType) -} -``` - -Most of your `StoreSubscriber`s will be in the view layer and update their representation whenever they receive a new state. - -## Example With Filtered Subscriptions - -Ideally most of our subscribers should only be interested in a very small portion of the overall app state. `ReSwift` provides a way to subselect the relevant state for a particular subscriber at the point of subscription. Here's an example of subscribing, filtering and unsubscribing as used within a view controller: - -```swift -override func viewWillAppear(animated: Bool) { - super.viewWillAppear(animated) - - // subscribe when VC appears - // we are only interested in repository substate, filter it out of the overall state - store.subscribe(self) { subcription in - subcription.select { state in state.repositories } - } -} - -override func viewWillDisappear(animated: Bool) { - super.viewWillDisappear(animated) - // unsubscribe when VC disappears - store.unsubscribe(self) -} - -// The `state` argument needs to match the selected substate -func newState(state: Response<[Repository]>?) { - if case let .Success(repositories) = state { - dataSource?.array = repositories - tableView.reloadData() - } -} -``` -In the example above we only select a single property from the overall application state: a network `Response` with a list of repositories. - -When selecting a substate as part of calling the `subscribe` method, you need to make sure that the argument of the `newState` method has the same type as whatever you return from the state subselection in the `subscribe` method. - -When subscribing within a ViewController you will typically update the view from within the `newState` method. - -# Beyond the Basics - -## Asynchronous Operations - -Conceptually asynchronous operations can simply be treated as state updates that occur at a later point in time. Here's a simple example of how to tie an asynchronous network request to `ReSwift` state update: - -```swift -func fetchGitHubRepositories(state: State, store: Store) -> Action? { - guard case let .LoggedIn(configuration) = state.authenticationState.loggedInState else { return nil } - - Octokit(configuration).repositories { response in - dispatch_async(dispatch_get_main_queue()) { - store.dispatch(SetRepostories(repositories: response)) - } - } - - return nil -} -``` - -In this example we're using the `Octokit` library to perform a network request that fetches a users repositories. Within the callback block of the method we dispatch a state update that injects the received repositories into the app state. This will trigger all receivers to be informed about the new state. - -Note that the callback block from the network request arrives on a background thread, therefore we're using `dispatch_async(dispatch_get_main_queue())` to perform the state update on the main thread. `ReSwift` will call reducers and subscribers on whatever thread you have dispatched an action from. We recommend to always dispatch from the main thread, but `ReSwift` does not enforce this recommendation. ReSwift *will* enforce that all Dispatches, Store Subscribes and Store Unsubscribes are on the same thread or serial Grand Central Dispatch queue. Therefore the main dispatch queue works, however the global dispatch queue, being concurrent, will fail. - -In many cases your asynchronous tasks will consist of two separate steps: - -1. Update UI to show a loading indicator -2. Refresh the UI once data arrived - -You can extend the example above, by dispatching a separate action, as soon as the network request starts. The goal of that action is to trigger the UI to update & show a loading indicator. - -```swift -func fetchGitHubRepositories(state: State, store: Store) -> Action? { - guard case let .LoggedIn(configuration) = state.authenticationState.loggedInState else { return nil } - - Octokit(configuration).repositories { response in - dispatch_async(dispatch_get_main_queue()) { - store.dispatch(SetRepostories(repositories: .Repositories(response))) - } - } - - return SetRepositories(repositories: .Loading) -} -``` - -In the example above, we're using an `enum` to represent the different states of a single state slice that depends on a network request (e.g. loading, result available, network request failed). There are many different ways to model states of a network request but it will mostly involve using multiple dispatched actions at different stages of your network requests. - -## Action Creators - -An important aspect of adopting `ReSwift` is an improved separation of concerns. Specifically, your view layer should mostly be concerned with adopting its representation to match a new app state and for triggering `Action`s upon user interactions. - -The triggering of actions should always be as simple as possible, we want to avoid any sort of complicated business logic in the view. However, in some cases it can be complicated to decide whether an action should be dispatched or not. Instead of checking the necessary state directly in the view or view controller, you can use `ActionCreator`s to perform a conditional dispatch. - -Just like an `Action` a `ActionCreator` function can be dispatched to the store. An `ActionCreator` takes the current application state, and a reference to a store and might or might not return an `Action`. - -An `ActionCreator` has the following type signature: -```swift -typealias ActionCreator = (state: State, store: StoreType) -> Action? -``` - -A very simple example of an `ActionCreator` might be: -```swift -func doubleValueIfSmall(state: TestAppState, store: Store) -> Action? { - if state.testValue < 5 { - return SetValueAction(state.testValue! * 2) - } else { - return nil - } -} -``` - -## Middleware - -ReSwift supports middleware in the same way as Redux does, [you can read this great documentation on Redux middleware to get started](http://redux.js.org/docs/advanced/Middleware.html). Middleware allows developers to provide extensions that wrap the `dispatch` function. - -Let's take a look at a quick example that shows how ReSwift supports Redux style middleware. - -The simplest example of a middleware, is one that prints all actions to the console. Here's how you can implement it: - -```swift -let loggingMiddleware: Middleware = { dispatch, getState in - return { next in - return { action in - // perform middleware logic - print(action) - - // call next middleware - return next(action) - } - } -} -``` -The generic in middleware refers to the return type in `getState`, and needs to be compatible with the `State` associated type in your `Store`. - -You can define which middleware you would like to use when creating your store: - -```swift -Store(reducer: reducer, appState: TestStringAppState(), - middleware: [loggingMiddleware, secondMiddleware]) -``` -The actions will pass through the middleware in the order in which they are arranged in the array passed to the store initializer, however ideally middleware should not make any assumptions about when exactly it is called. diff --git a/Carthage/Checkouts/ReSwift/Docs/Reducers.md b/Carthage/Checkouts/ReSwift/Docs/Reducers.md deleted file mode 100644 index a8ba6ca..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/Reducers.md +++ /dev/null @@ -1 +0,0 @@ -This is the only place where you should modify application state! Reducers, just as `StoreSubscribers` can define the particular slice of the app state that they are interested in by changing the type in their `handleAction` method. Here's an example of a part of a reducer in an app built with ReSwift: diff --git a/Carthage/Checkouts/ReSwift/Docs/State.md b/Carthage/Checkouts/ReSwift/Docs/State.md deleted file mode 100644 index b3a71c8..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/State.md +++ /dev/null @@ -1,17 +0,0 @@ -The application state is defined in a single data structure which should be a `struct`. This `struct` can have other `struct`s as members, that allows you to add different sub-states as your app grows. - -The state `struct` should store your entire application state, that includes the UI state, the navigation state and the state of your model layer. - -Here's an example of a state `struct` as defined in the [Counter Example](https://github.com/ReSwift/CounterExample): - -```swift -struct AppState: StateType, HasNavigationState { - var counter: Int = 0 - var navigationState = NavigationState() -} -``` - -There are multiple things to note: - -1. Your app state `struct` needs to conform to the `StateType` protocol, currently this is just a marker protocol, but we will likely add requirements (such as the ability to [serialize the state](https://github.com/ReSwift/ReSwift/issues/3)) before v1.0. -2. If you are including `SwiftRouter` in your project, your app state needs to conform to the `HasNavigationState` protocol. This means you need to add a property called `navigationState` to your state `struct`. This is the sub-state the router will use to store the current route. diff --git a/Carthage/Checkouts/ReSwift/Docs/Stores.md b/Carthage/Checkouts/ReSwift/Docs/Stores.md deleted file mode 100644 index f7d273f..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/Stores.md +++ /dev/null @@ -1,9 +0,0 @@ -Store subscribers are types that are interested in receiving state updates from a store. Whenever the store updates its state it will notify all subscribers by calling the `newState` method on them. Subscribers need to conform to the `StoreSubscriber` protocol: - -```swift -protocol StoreSubscriber { - func newState(state: StoreSubscriberStateType) -} -``` - -Most of your `StoreSubscriber`s will be in the view layer and update their representation whenever they receive a new state. diff --git a/Carthage/Checkouts/ReSwift/Docs/Utilities.md b/Carthage/Checkouts/ReSwift/Docs/Utilities.md deleted file mode 100644 index e69de29..0000000 diff --git a/Carthage/Checkouts/ReSwift/Docs/img/reswift_concept.graffle b/Carthage/Checkouts/ReSwift/Docs/img/reswift_concept.graffle deleted file mode 100644 index 46d5fc8da41be8f9ce5eed28902ef9eb37a68eea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2815 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¨X59hqjJrgKHbzP8FuHL<)ZD|z#{G`wd_ZwK&-rnw|SpBd=SESPQ-YD)Rw4b!sFZX>l2hQiphGTAGJ?NKPHYj1aHs~k6@Qr57aD+RYR25c3`eH+y z3ZY9SIL;##MSQP_4yYTM{&dhIyS^^UMj3lM%5a?RVSA(uoYAP=M`g(^b)r2HvL_u9 z+m5XC=o40ImGym3j&~__NLN-9la{xiah|QIYZW!g%WR}RvV*%eKqNU4x2hQ4bQU*w z`JY$UX}+ei%KsG%o;`d#n5i)^vQIQ_CDwgXetYS*gTOMr`yZaN!7Lmo+V%PFhsJIW zVU~yGPE%|ee=ivLPgF#hwCP4sdOo4=4DE!u9Jr!fLZdpLhnX9?7%%=7yflnvYo-}( zh|G_*)?#r^RC}c!vEGw=!%vBvxuhX5jWDg7e@)RJFg2`(Z|`}yug&SP1x_faU0AP* zUQKa0Bb_YwpU2L{9bQ}fvr5{B12!3&rAlLdLT4>_% z_;ySp_ZE5Qt(CyFM$yco;g{0WU_DwklQ|UinnQ)zZ)?;^{Aq?ET-?s8NZCVKV9WSb z==^+T(OJZL8Afdhq)?;9_R6O!AV+P@R$?x$klk-hKM zbHE%BS8$Ti?_+TC2Px4!fBFf>#pW!@OOiTBJQU|tZ-O-L_2tt5uHMLuti*w^!>N85 z75Du(C6qr;9qL1BGE9BDY1(Xw{)r~=uUUdIKE?z8^QV#yXMePC{@Z?NQV$ z_-PUQNGoPmj~9Qx58`}_Y5*(VmQI`Z`n(viUP@vF@~bNNgW5rTHylciLUZaCJRjzp zII|c+{X9A(IDD?Tge5i1Q}&*S0s@u;ososdpk+;FdgxX`lz4hBVR*Mh>itd zYDCO3_X#S^-0se~svzT1QzBFPJQLt#x2cLH_VzJ7%#hT|KRdG}9q>m*_UNsm*ay(5 zYy49!hm=(!0-GgCFoz$mmUG|+X9Kw~xd^`grlaH6V`XydKbUgY)3S$$MJGlPaU=6F zI+Ml?uA165L{b*aGZW=&-vbWUDAF~~SSEO))em%0D3r&Sn+K-E*RKUICy>W|qxn1a zFiFT+`{SaQr!}DgkVjQiB@5OI$Q&6c`-5pV7QKJCF%eZUL<0MhttXX8yVyT7 zbCmSM@vNO-9f`htwIH0VFhADp8EN8?#0w0ra*fIR{2%xXUb7c*uE=ELL>&6~E5h{L`7;y%r`S7RIt72j^H(fQK`MyjnF6h(Sk)&u8k>gCi--n?+MAr++ z4x+g2u8HnyA5X1|^Te~oxmNmF@BJH>@PXhxH|tN|)%uGQ-?e-ITV6UUQTt~|tuLC}SfwGlQ(A_CR6T1nzhs}++F^?P zx;jInty|6ZJUP+cR%<0Awc&v-9RXr(X+BuqTUK2(S0{QI3q%1o_b7t8nDNSw`t!VO zCRb(bf9r3HX(BYi3=dY3)nGD^@eZ#qBcF)Bk45#3dowTIPTWOjq#mt&62HA2?H!Eg z0!dMRcWZspe6gdHsdkxGWbuxn_iL`rUHlCMzl+=}IB9T@pnNOsuqWzsEQz4=?AK*Q zVL6+~ZOn(w!Lgja8z*-h&qJX|cun<0&1hymd?RIoF1p&wvRrg`f?!!?sx!=zBofa0 z22F}=df|go!ars0N6pQE6e^ZSW@WIBkvI`|9g1S#-P|A%_*W!q~rGST!^ee-n$1LO9{k z?NB+@SCb4aP$~9c9}X(wuKs>9PGQ+)v(mrO0I70c?@Fd{2!b%w$vaph)fn?1ih4e)SzHcxXJpv|Lq4i|lWemXZf^V37kwlC5N zxOTpjON@;q?Y#96*3`84O|;7Cv0{p0d7h-t@}bp(f(37uPnDc9Glc{Z=k_x5E0jqp z>aX|0@^u#FntamE*USxLy5nCi8u~i6*fe=sRTq4l&f(#5RO#GbMjmydU`J3a#2VAI z4q+@6vj7AqLiAJrA|4ij1;Hcr15qqGPu2tdm0w1~Z@qO1`2E%I{|)?rHxBW;wIa=5 z+r3l!Q7B@z;KdO14=##6vRRPf^Bs=pPBT1AFUPY^DX;dkcFgG9mm2L{uE^|Ym`Rt3 z&iyC1aPIT%*zQ<>Lx>upQRDISbdWWmaYX&6=d;&*_kzLKT|S~T>}H9mFO2*LW`k$4V4MOq~uhWN2Uit5}`L=Pm2;~Db49NLNcXkE;Ho!3Ep^%u$WnTJYy zAZ@xA`tt9-a&mf;(%dE#xuRXUV34J;C?eq-=ylqdyq9oBI;$o=;VhY6uTOAvBz-ux zHEJW4*_B7jo$v^+(fP{+@|dX>IS{zF0>j&b&tO=EqPu!0_p)g3c9N`%WLAlb=2^=T zKOAj2q7kyc&n1<|JKRl}X!KfUGtD_rG}sxd8EjCgH^OBb)r7t7N}J%bE711_0m;pGw5dAJgK5iZW~{cIDn7kjV%X++O)Cs~_l@A-nGW_I5S- z37wGNLod-m(Y)wSUn#NrB*V!V^P@ZA`oAS!7=0| z^7du?y^I#vmz4wN3P;p+NH$}@Y52af!`h73 z;wUT1Zo8>U+3-9fSF$nA!&}<@2JAMRc}XfQLiw`XGSGB;PO!3DLp?e?cCRWizQaHI z*PsAS{P-OH+KG+w>IihW8CGYYsl~r1>6JLLJ1yau38!zUdi}{&A2Jy`U%afe2UpH;f;_zJr0Kd{_;!dFUa2_xnRCJlq%^$7eya)W#2h z``{t;PPnzgZ2n(<=Z7zkhZ#yMdRt}sSFIn?=510kdmH^pVx6%akj1vTnLd7w)j&lB z^Q8COf3oUe&&XL_2!7F?+V#zj$5F#Rn$N#471=%QB>`3vsceuX$z{ z_u+<<52~AdN{QFEOBBMxa7yLxh#xY^B|R3oWu1_PkG}xzv=8G_)|hFTRD@8bJus8} z_ew`@G5U+IN0x*BUK~3Ph{s#=P6M?*XCcbL0>)-l=azeTa$fY=2%3O4y`(l zIw2`Dk^Hp+4LrVKQGmW@A$D4DhKogmBcR7oq;lU|UGdK=Hoa7K>{YV*hPXm_v!Ub{ zovP}`uf^E>Oz<3vWH~d0G{=}s*PaqI$7Hf4g@1ri@UeB5`armpip(mLzQ20qS%DHG z@}`2&zw(0;8*jSkWQGPATeQtC;bs^-LVlQ~lZxPkkYfAWMh9~Ik571Ew1!XR(P$2% z7xFqTu^ugv{QmvBC`|o3=TsAZ>w`baELeL-EGN*^Ek*wHqOZ)SB($;-r#Goy|4dhT zi7}NEC43{HDM!Hv?L^tp?z`!sIb7^x5izmTWow~Ks+PNO{GvLVufef<{t=xA{V?qO zVfPQmF&DbEmz?YM%0IhMoearJLL?oFa2Hu`Rjt9?-F+_g4Xt8FDNsCX&T9*a#Y58^ zv4y+dw5QJwZ1~M2MgKije@97-?na(}*;bA_j&<`#F<{$fNcm6NSGkcqk~zt_2(~*e{m|w?#GsZ? z5IBc=;?OcSYJfy|s8cqrl5{ay-Ph>Hp;V(%Uf6JWi}0=+0YEg@P5=3JQmt+1{$x}A z3y!>^T3{aUgT zC3_5#P;6ec7i9Eqczx0)vE{-#A9&vmeHhDQCs`O3Ej*yvgx*HY(VtYpt>fGpPG6sp zz6oBR5I~=lODJ}VzQkb(^b2pVjKK2W`g9O7;}5F#vE>os;k*tEWd153ph94sz#Z}b z>yGYW(pE^a;^x00QhMJUo*_-(9I2+K+aJl=)bO=~v4E)hQ`M55N2r_kTaP0IYf)P* z70>(C()R7#k50qWiz3OP**Z)H0%AB5VnnYB6}EDR#k;aq+)hs6pi~3NdSF@0Uq9IF zj`^VK);wI#DQsi1PV-`h^a3=6+H&g#6!{1|X8iGzOoa!jzS_dyN(>t<2p#cvQhG3T z8&Ta|nKJ3fU4pGI-N2ma&VX7P))z=lAqN)Ae6x#8i)ZVm1s_ZOVqHe9dA-9CUwLmvpz6W_{DMJ%K+xax$v;67$oK7M#c!)AX9d>N z=$qH@e{i3EZ};F<#8o-$^a0~EJ40bdSrJPIdp!*j`O@&?Yso*#qcG)kEslQ|5hc|e zVlQ9S`hag^whHaN8&*{~f8^EoOn^Vm0A-Q0BffOPI~jlb9pl+!>SgIH!xC$xvz}c4Fd3y@) zLD5u(&kkng$hA_M)Jb)gs-&=te> z_w($gDFrdG-ZG|$T48qI3Aw(>E+Wh#e***Lm&%9N)er0a8BO^xmVTG0iY03Gb%jVZ z=7S+}qB+yc#{%>{AY2oH{xQI5AcH%{mGxs%K{5>O|IQW&1f-bz8bPKiEwd%MO>o_K zQAQ$4t{8xH(+zBM_B!b{jN|s2CF<)vdm}LUAd%lD3efO={fwqpH!|>9%Ljp`mnT}4 z`zS{ee5u0 zrF-0*XDU&rZHLsG#}7o@4mv3%4x@T>sbc1XdG_{1C}nNly!z@ry{lc z){4*1053<91C@Hif;-oDFHa66$ah|TUcGLfK&)>)F^$oN7?U`wn!ME`B{~>~K>LXv z`zy4njZK+rB;l*kV<{xBoMw4$rmK0U*xl!tG@=f^=po-0{A9d7y&-TE@=FL^Dv>Or zytC}J3Uli#V=eg7ikRv<+b?qp0{eb%ncuJcHF#g*7sTGsy{KfP)Q8#7S3It5Zqx1Q z(FH%Fgm0}zO6G1VI|pL$be_|;V10AKebr%VaNMWfiX(XwwTfyNjF_>5zbG#CvgZuY zHwXJB$vx>yZCQ^z*YjX5Os+OQ+f-O#@bw9DaP578uvsl6?nWHNNgx3$2o3WSV;?oH z_j6;PDrI`e%{i0Q;Kckjq(G;#D{~T1dJwQn&T$ z5r^|%S2e1JTZ{grNU!_9)T{R~eUKuv7=U3Qm8&M*K>cE2*iLT_|KLQ7>0}|eYIVD{ ztR`D>PKZZznx$b&m1X`bk}IQynY~4&QjZ* zglVe)vYRkbnMU?XksJ4w`$8a*WDDg-F9R|uYx75)hI0zDq=QUJ%!N(i%dh72VNDMs zFt$v|aG+cQvs?KiRA3y>?mhb%!|T-Hu_BQ3#V>ms7k;|#k452wsDns&At)T-GXElo zLZQen#{NnCY3Vb;?yI-(jTT4L^nOgbg@w|hM;n|^(&BR?u{X_Wl@l)WvHgW!yRp8N z$2idPt+<%JFcyhG)y|E-+N#0eLRPFm_2)9 ztu-^1)pe04mvg6eOEb4?`!l;-rom|yTvXp~*LoFg-P5KX=csJ2^%tCu)Q;k7&u54> z*E&8Q&*aIiG*t(y@r#~j?DHk7jPfwb39Aq;4SeRDzO@*Qn_TKe%YY)H-@)2TzK$^O zyWZS#b3Gk$uV>H^+&1sOSMD*Xqc;Ey6c-jE==M@-*~@@W>pV1Ghj?y$ zn3+GoC`R)Q115KL+y{OaiC}k@!;=IL5FFI_OPBA@^6#^>U;n_X`R$D1Q+5^`CL%L2 zcsH|>5xB$YtGL%1nk|%@+OkxwZD{1^MM70CHj1;beM6)4jG+rhqzP=KPdzA47W*oj z83Ut`p7IPjvqvhWNruq`{)`K@;Y}B)2-|MHnDCtL=4;(Zt>nT~FW96)-3yo!_HtQw zFXj4j_TE)~sJfNs=7VE0Eb7lQ-x9jelef6r&1|`N;l|$O9d!@o6GmM(IR8>1vkZ`f zX=v|M{#Kp@QK1+!`BmW_Xjy=^q1JSo2y>Uwpq=!7<~Rcgp-nG3OFn4R=#(ibFVBGR zHD972p$VxOI4Ei<@m;iS2waf&cGTbxX2gQu#ee(#tha2-Z>x{f;n-ztwO{etdxw1^?uKd=eUZ`Ix=Qa z+NfQ=ANXubvenXUo0rAbo~&Yacm;Q)g}s1hFEDQY4t7uR9s6-WS2)7Ru&{CK=mbvhnGt_FuIO{s^=aTFMWzSZaUq{P^U_$yu>D9c~r`boI8d9d19_ba~i`2k(|X`{X)3ZvWg0V>M$ zyho@W<{^bM!|Y}$ShNJR|+~- z;YPEb&yZ}nG_K(KZtOX_O*qV9rb~rz_le-WVP@UiN&3HOlSM9+O)?b?CJP|-0K$$C zUYW)QzPae!!%D<<(g5w$I29K>ZPpj0t*jGcT$Lk}zmC)IE%!s6)=cNzR{i*s`0dSf z2SQe5u!1~dD_l)E-F~?6 zL?t`ivd-llr3Q#KbQj)l7j=8&Y!)#zFEI-g$OuA*J5JOBHr9?#`U8A<9=Bdm9;E8* zIc{)1oS-(@S!JR3d51UkHq^duCqwfis6J^zTOe(7|SjMaXS8Tjky z$S!fC>^*%2o(gnCo^0x9rhGIvaVca;-o!=ElJfU*YvHi%w}>RU&I_#(P>`37yLdJC ze|0Id9DK12YhOz*81K*P*;#;HB}tZ|S%urRNR|?hzV7e@jmcQ7kNgSL%qZ~LEE*r1 z5u2Y4|0n|J2+BjtMyFX?6BCp6_Hufb5yk)gV^;WMm!6x=nPs204<9Tvzr`m86FY_~ z%h@?NBmuLs%}Y;rw>(ec_{PmHYtjcM^~?^YG%L%>lI@=Fj>o@vJ`0}YfPGA12PI%7 zEGg+e@4ppqmlC^*UZ`MSx{rse+4+TOt5ETA%^DN_ERN`Qea=jX5iRZY`tf3&@#9+; zhFrL~FRzunLyBErMK%-dPExcW9H&XvU#gbb{1y-PDGJ;TaY`RSkQ8zkq+5vT_E_Wm zo@~J|)p0Sp2;LJmBTj4K7iD?8{;E>5`IRubjPLjRi{VqUkT04KyH~zVPE<{gZ=fy2 zL%8q0n90p?O@5nl>^Mzhyxx(%KP_l3MhX)<#n>~*!zx3&ISM&T(9sg}9|apUH2+wM zs9z!(#0#r-$=R`VGRtNEFHPnfK2_S~zPSeg*%6AYO#*uP12#rQm>-!-CjNDbMBlIQ zKb{_jE7iGqKEVP2?uv@cAF84d$nYP4F|MX)$+Wls1I1*_YmkY9LSE{S>lWelO975V8&)!g3K>Cp|1V*E{s)hD z5LeC42NUk}(T>M^rPCT=LPaCnSkGtiTWD#!Ey0VdW;bVTJgyq*aa7;?>p71IO%nR+ zE8RRK+Sx^zP2jZ==QZ)R+sEv$!*RCweNJ*#Y5v!n$N>pzV2M^Y;cwCZIVSYkSBY%0 zFieIt@y_O-WCyX_yJt-6+)saCj)@JlPW)S+yfoEox-VFbhb>if?l`mo8cWB3{=a`& zBiGrB)nkXeINXnQxZ;lfk$msN)y2iY*{JxDh_!`K8c_0|iJGE!DhXoEKc*yYmrXX` zUN(9S_)dH!Uy)l9-i0==pkTbZ$X&QUy%t}jQ<{Edb99-~dRp;9(~O8v-$gCO{PlMW zjI*CbxTihhbDM*(kcU3AFa0=|ze``)fWPk651&3PwMm%%;-vINQz5%_3Lp_OmB1*Di9$R@JP&9D*zs3A>?9SUdx334Iuqx+??7 z-O5_UZh&vWdQutL`p2O;_-|*{^pdqdT>C=zfBo8e<7Dl(z-qJ+*T|MwwV9$$D^5N& zKtYN%bcvATeLB=pZ-{cvWISs`DgKPCa>tEuHx|R9X{}ro0=hSQc-d(9gEM6+j-Jwy(xcir{DD=N6wfBly8Zk4tq#?m8H zm5|*{u`c4+?8wQIL|FyL9ChJj@Est6zH?R`;^p2=AQ*D)`C&LkNLx z6&F@N#){&sq+Ra-{7yK52;jVHS9&R?wq`a*^@x7mU{X<1`dH!Ds`v5vh?eF|9>KVN z=NXXYf(+1xK1(Dro8=&Kf+m-b`W=o4Jj$0hFEuM;QpF6knVlPdSnKULF&Qds<1O_l zApDg~ok1a44v>MO34JT8tiK961Q>#BQ#O30HgYuA+)7Gx%;eq-A?SZ%TD6x8EV}si zdT7q(=Y`7YdHl^r6BFXbb&={&Y~yfxXhn6q;~vTNREOWx4(k+Oe}GtESm18==wLOR z{q^7$*5KS?izdgHFFG;b2h;l0c1ZUZ$7LGlKM))LV%f>|ZcZHzx~75oaWWKN-?@}- zK>pOz{c-C-1fY@K@F>z(qy3W`Gk8GiQnP^I1JUD6H~vln=DIX2`s#h%L`uwBD%q%d;}5HCcBvM!GUlkr>Xb~F zq}A^Qb(Iz1UxHvoA}+}(g*;>$To!iIA!Ww$|4Eq!8feZw{2q zwn8Dq-b3~|D6TorIU*Q!A7nNj{EY;KCJ#Wr?^UEWc7zlLo-d5HOa;CuZ#IKm(OzGB z+OA(SMHMJbBZ+_J7^!Tw&m}8-@1$C{lTcJ(*g~~it!*K__Kjf|(2QnQ( zmC`Umdc7w;!+?{6ltfM__j`J`ZgekI=J6c3oOGW|^^4KGVB&D zrMLG5MVZt)Rx(=WHPNYL`|I#!PlhlAd$H9eW)n+iroS#-nPKQQ2h7JtfS&rueD z;}YdWD5o!qy=@$-ayiV8VwHGy%w4jRgnLY8=|XR_m2IsDP7$v!;wuwIgDo4`^huMh zmhS6Xjs(S81=t(s+a(;nN}5oKh?ZP*<(wBAM_&9ojLeOS2;((?9L%K;E*u%NJi}hw zLh&!5TbBG>q-CJT51l3AC`o@R+V5tg8e7V!ZbmG&Oew`Bayu^WV{A5>8KV^xr;I0P zD<4x4PU}0)pg$8Y85qWJ{MD>C)3v-#$-xvx39C+))GVI^7K${jMn{DN)$Q>fgtpz6U-$t|)-SYUJm;a`3 z5xeFM2@fj}SW4kx&$Vpvwzq%g`}O&kR#``Qzseio3wDA_Mhpsx#vRLs|?z(Y=ZDu85cdE zj+Alm1zILOMlfL%6MRFTSQ-$ig+Lo~e}HMf+`ODPOT;}D*nUdeMq3E$ zqal5CY<0sRGoTR-EpIDBQ>gD1mQ5qTiQV#|HvnURrO)1-cSzGca z-a5#_L#1yL^mqc8MxNztdA;#J{g{ z*xTNALk-ZcNtEDB&Fc04Tfj&N(S%;H^rBSjDr- z`SQrSV{iL0S#`q;(0#9tN(GNovm<-9HpbTVRk!uUhJF>Mf^XjHHL>zsg57wZ}Z$B>L z9B^Emrz0{OXM|JqK=LAY>NZoN(hR3a+jBAT5GCup!@wx!gl<|`JeUQy$UQvd2Jv(- z(M!XT$mO~=S152aLsiC;e$=rv-W;v6&RO4YT%3O0q_KBEleh95Gnnewq8qZA-IZ0a z3%(456dt=mXkpO2;w2hyq!F>5>`@nOv9KQgA>XG`K$Q$x;G9bPS0#tRq?iVSC=4Vu zLQ#&~)(-Vc<}tU3|De2u;i2Ojztk)a&VIluJ~NUd2)F}C{ikOH3%EFAJWMYNbv=%g z0lpmRZu2Iw+;5Y*?p^XDlZ2HSw-I^IIWqS+&zX16@0i6I>@>Z$;A*-tGE(W907t1bC^S*2!pXNWptM^n zy#x1rX!R zf-_yX$Nz6=?o7eq+Vf;?uOb);)}&~Q!|-zM(2zGT-p{ctAO;K<&7>}w%1 zbbNDLT}7w+x^rS<(3%h)+#o}{Vto!At{k7A-xq1?oI^9N18Na4nrFg_-_cF^@clQT zRd>oGyVk7x0-^OL_0I>3akN?I4QnTgtYNttdn0bh4Q-3Qo$_T6?GfbsEBI)Pn!w?n z`kH_&4*H6fj=N38MxUm{9~>S@A=FmX+hi&Ej~h#d2gv6(j&!FHx2l7=2l0cCzkgyh zt3qmJ9KD}I!}-XS20jEypZ=6n>$iPyOK-i0Q(CWRym-elxlyu|N95v^YIL-lfW%js zrg}u-wh?>Q>Z&b@1rq%v(|V(xROWK%0YN{1x&A%+UF)vOne{;ryOxiNc&XH#1}<`b z-l_4IvKA0Aqu-;+f|KQ#evqkxc5do_UhPKtRI4D7=l&HPg$+u;D00)KIJvS%fO)o! zr-xg?s5X#Y1lF8C9ed|D?9L>-Ycog4gwI90=OA|5h3xOx)0la3}bk^q(X(1FC8@fQ6K8=&EOs;L^uTC z-9{}+7G?=jeS^(Y1NWzMeO10}rg60W%y{Ey%XA(~ca(urnec)Kn%A&fS5*J}2AMm~in|O&+!@14KjbMc;-$l&`usGI2C!jlCDLV3{iPk^kq46Tvs- z^!_`bJuAkCCl9MYJxfewX-mtr#n@Y8DQt5>`kTN2yj!A^tuvk7h*3pFg@=o4dFq8+ zt3g(TpupAs3?1b<7&=}Z#wF!XH`3>b^hVZ6KHgDIXE= zQjj{-mfo1_2ht#OtpsO1X|33QxnvLnmJTBEJCr`YZ!K=@HJLB=8ugHc`ytbCtRT{f z^EaW>Os7sh+5EZs<@^L4phH&%^w@wffsNv7BNpaRl&#UC>%L3e-~f5^*ZZ+o(@1^i zicrso+;}$6(;DLe-;Pn*{scPyNyYm~SADjpf%XQ>S=^4rBB6jvZ4Hk{gwv%yWNXnk0A;Q z#k$e-ibF$%^(h6a9Nv&r29QvVNa~nP0T1})i2~JON1g;{N_>qIC+k1zL?;puzLhpF zIQ^m3^T9Y=teE>~>|@-EKbyu~^7V4It0tf9#RK{rPBj!MysH9gOF5$4ll@zbZoGz( zcl%d>Nt@qtB(6{?tnpZLKHK$B0wg zN4H2-nIGP>8aS^}rCBd-#yPQz}zBJnZ@2bz7ZO;?^98er- z32bxDwP@X0z1gOoF_x1~6d>jODg*!dH4HtlQK?GeE499hc>O-h151>OB#})J89SKe z;Zjc-j;0p5L14B%sONbKMy5Bs^5-f6NXqW?TN<=GPFVXG6W}ZR|W%e*x&tBEa9$2e!%GMtRbvN z1upzryMZh44T|vR9}6wh2-alpF2}-HH?D4hM+iyKlWptmW(aJfB*MLXSm!9;To@;H z--v%vcl-0~3pq|G+7;=*XC2~manO4Ijq2W7EAQRECPOAa5F0>$#ID}*{U=hOHXqb( zsXG=}G!=(x8-@~xY{>p;$|&rHVrE3)9MVp)CcAklO7 zgd%A3gH|3k_2f!TcKm0l)emdtFU&S_hd~KHDq|-b3Fz0>(N*&H#X$X;{BX9G8ei8>=eq+* zrgK&tfUvH$Mnh`YaO8X2P;jwL)L2^Ef3l6K91hmFL!bY15B8^+ayeDI@+YS3N_XOG zM6yTeFhNVbWz76acZ1;~p}3in44e#t&<>uYkqO0+k6NlsSsThV8aG;eJSlPVEM+4{ zo>SdANcdzT?C{5}k=|0WCR_}|E3fKg5DWOmD{oCvqAW)u3#}cr+szj?_9u#TOohxu z##wV>;qW!4DlJ_5Hs(#I+D@^#n$B5Oqh7yW2X3#r>>V7WhK0d;6J)8s5MgxS#ts{x zgR#VO)DYm~Lzyabadb>hOCxMFtshv_uMxaX@_SK8XKpQYNvQnV$@QdXhE8oxow5H` zLsA^xd@_@`f`nk0Dm5DB&E_+tHXok!mKy31Esn916}XRLV+v^o&Y-H`b7Qjhzb7(lpbEn=x5$QPF$r!WaJSm0!=0=GpKs z9SKK8aWa(PsncaqKTuK+TpcZO23+nZMj&Ag?))rbpp0)}A+_L3zp$Czh=;MpJZzxx zts+N^29BLs8ng#Cu^H5SOWd(5yvWpEPk$86Dw1~i6Z?LF>E`x$`po`L(jDTh$aJ;)dlPJ)a;0&jKxmUv;$Xe2;E zid84HKnDXDjadLbpG`FV>x7mp#Itay+@z^V6(9xIVV&E;)v3-vSoK9`vU z^e{HR@cXIxvA3zStD?wnZFsq%hly>Rmpsl4WkA}Iu%XTOPg7P;&s0Am>B7lDz2QpO z%D{iMd^E~}ht%-)Z%4<113;sxetNTve~m+o2OyzUIRxYZfx1pQGS-v1BG~F^5;-&v zCfTaxEp$+ZRcrl8gY+a(2373Ot&<&jM zu71fdPBb)G9$@3W=Ay&QbWTz+TzFhjmfNuvvfaBsSBga5P$z>OO8!0^zhV~PCs%>= zBUw^jp4!_h>$|wvw^>6mJ>$(Vj<5R(9VgT{48IYkN0iZ#y1lYejWYPR#cV62*4Ss( zrpA3umMLC-FWsmmEr6CQ3t6A)jc7k3_V$$cM@m@l$LI4@8rQwPEy02-b31o=2(<=5 zX)gdHrP7908>=gvY4boi<|oGktvArFTzUeC?@2mNO0^|soSw`A46_2L8_0z=>yHCb zgYcv~Q?%4m3_}l}?M#2l{w_h=*y&Q8>_I3{P*8?X$e58xL-IV9 z;LK6BVJL5HM*3ub>~zGz{+l>%y8SZ{>bA47);xT24rU^od@_Lm-RZuQ|mI_RG#`$ z&S3XqlS@o94o=r4_Pwme(i+4HzE#Itor9VJ3|BS_sr5&viOB)+uGa3#GBUkafzkjUsA&EJ&ti& zMu-Hs2Ao%}LWOzl8K%3RH5RDw1wDQjxnToDvSH8Yu>0k~BsxTg0O^0J!>`H>qPWkz zaMj|7_&*|lI-uDd#W`mC2L){+hE?OAjgXS*Zo5Ti6cuiM4(2ssfgW%xkxvDy<+dwR z9v=MQ8-W|gRYsZ0M}%Oik|S~gprl7beWdk$BwvlSg7!3ath{uPylry#SI2k1!hx-# zSbZGpv?i^TMy)KZCXzFB<2`%TwU8@qy@c$V(Lkx2ymgwd42s#Z3veUq14or-9+%|s2|D=V(*6~Xdbu2F=ESU#~P zukrAlSGVlE8C)kvkC8d~F-u!E zc{U+%?Hj2OscRY;I5$zAxkS;LVL{tn>l!vK&8Jqj(FYpr?1lP33*wD{N%@4F&;^Ht z*?)hvbTpOi;^LwU(Q#$CsgMl4z=>NKq>#B@?TJ}3K)Y*vL?^MELLVn;aw(GVs|dAW%-S=CI`1e3CTAm9JsaO(K**)Ebx9qt#$xYNo9htpI-kV26u zaWg|HO6Lky+68rig4*638#gvqCBhfhYlRmzfspd&jjPFBa*HaY&zI`2`3Vb|z3+?M8SxH=dPTZF1U`NEtl8@a(T6lpmAyO5A!EIlS-pc8Qj9iI zDNs$I5U;$idj34p##B#x%4Cc>;{Mrei>rPv#7F*;Ig_$PgVv;tvLKZz>fP%UX4i4H z;E6`{8%>QS=f#&LG3aG3LZ!B>$ud+L(iR4hKgRc-P0Mj1oLcqd9K{`z<75CTEk1Z= zdEfmRnx%)!MhXp-(|O~X2y`hJcTA--;9j4;ZnFAj8b3h)6P2jH_LF$NX|JNidbY-9U#`d> z&TkCtCt?rH@^ajXzgm| zNw>7Eq?8qH`SyT2MTm=CZe8gGhaoEJ0(1lkk!SoDX;OLzRAZ{VJl)P@p-p7fUOl@IMf<%HXB?=PH{nv}wnwQ>f`@aa1sqPER%8|4jK9suT@Yyih#x8!Y zxs`&NSjttV2{-4a^uCuAB`UX5@;cY3$Yb%lQ{FK>Ncwg;Dh8tVmADjnygNGuE^GGT zh*h2P`5sV*;YPm-@P(RnEGA}BP*A9TKt08s`id@N&WHo^q22BWtwEJ}n9<%{(^hV> z^IU_F0fMCc)HcwxaNIhY-M*g(Zd%m5941ZL=7m^gTx9@*A(%~(ftzscLE#1p7*P|k zEvgO&#otjPt}joYlnFIbFmx#^UEqO&Ds(l)rMyLRU@t`=(MQ+r*GvBs9so!KK>zym z>Hkx`0`%|8Sql>FBn69j5j7=a_R$XCRa6MSTyBIQl6whx6iecZn;V`Qd#fDd z5R=-vI>^sH-e>X8ud3Gar>&!IEoouOSUEeO@83%^b~j_*7}m=l?L-f*shtn0QR?mK zm{5t5zn;ujy%|G$KUsL|;=S>3V3j_UW1=P>q+&cNfFs9CRO?fiM3iggX?s+Om#Pu` z+)u;^In?hJkJsK*IpmbQAl~3&m3->sYwsiAl0B8i5I=hIKR3QcJ!wEvGS7e6tWa_HLz!T1vY5%urbvwBa&|xRxwx^P(a~9dUMl$-M%ojbc6eftM z9c}09y;CcYjQ+G88pTb*VFYSQbN?--Rix?!_BDtxkd@wEvxJvk0-43xf9-3+IDiS3d&VuHS(L} zG+@xe5e;1RXSc?e#}GdHFL}>^S-B`9r!US?h1N8XIKE;@iADE53J5LkIz7lb%>%6E z8+CnybG-O0cMy&eD}OA?TWB3O8C+EtIzacvr=L4G1i0{?5_EehBox`o3+P~EVQL&s zQ9%?1$sKtUKa&*pe8gEvuRq)7T;nsfdMF9^F%z?0H+ zEWQi0aMN&R+gmI1k4#a-1KhF@Vy6E@9zOLYw4hG}>g^>zns~Sz4eg6*)AYdxT@HL% z6iG!RP6>IKY;LbUEuD%a_Jb`?FDf0=l?3>Na*TDOmEr|Cb9|~8CnI6-d*bAyUicfL z#Cv0$eirbN_vD2drpoA5q6Fho9L`gTdY7;`;vUK{l%{cWFSDU}ITt62PcqOr9T?M? zuU{w9$*n)!9{DP2h(qG8*!$0vINP*c+Aeg1US{PuI!zF5-5sqpIlv8-tHM(U01BVd zw)%P<)04M){V#}2*4HO*G!nKmu)_x^_0yKu2a+q|8KO;dczEZ^U%!(gjFsrCHppMg zl2c<<(D|e^rM+3OG}{Xt>wu-@5{2jDM}g-7?+C53jnxmGhF|Jzw@BpQvX5P32#U5s z`2HdUK$yJr&&nD%VEOwQJIp{9W{^1qCI?e{N#=7_RARU~~9)ApYt^q?2gFoWv- z`mU~(BFCL@BmP8he@HbR=$Uw@8UvG8aq!`jt}6kJb_AAyRs^UGf@$Itl(09Z%|hCq zS{GY`kKLAs0LF0Ib`&(q{vy=zU4OQ9qOvMH~$<)1RZg78{BPgQh{h% zdq)Ka40r!wqQ2vT!pvn?tHIG1B}nO2H@$-wN`AILJGmj+;`WY5N#Iov_7ipYM&bt! z@h~mEXu!+=WJ2aHILBC1Zu^hUd_Q&CQ)McldbIs#5{w*jQNkNtKOJABr%dUV#_-+8 z2*H=6{F-;1cRX@RMu^cSDS|JIivRFc6o(lD{=8ZzQ%5h9M&mg(HV zc1%cn#YsdZmEJ}Ctlyy>?^aBD{QdpKcviF`#(Y`HM~niY5vym030pA%4wFeQ4h+%U zo`vAggeyvS%Aa43kU|z5=O!4;B?d&GuoZjZrA|@Wso8_CH&%WU^_xpg&*7OIHE5;` zIoQ9pVdVNzbgY4}(hZC{k-~afv^mf5LvD78ym6J1=}0s60%bEZ_gu- z<}xej&X_>Sk}#+C9{#|A$3b9F;cRNNABi5kPL3xlQDAg4kkVBrW6pyt(L0uB2?wE! zl|4%qI2Of2-)U?!gfLnHYYmDhO2jhnGXFFQ>e}$xyY#HmK^IA?+r$iwh~Pnq5JbSd z;bTQB0{>?iQYMtN(WBK7%KP`tR7QnGpKzPQOf}{ zJS9asA9chx9?UPIqM~eotEe8seA9w2N(woBL^G&xnE655!jdW7I{foZzTVzKkk`i2 z?e3IY!FOv^N@iwx$-dv7LcaveDdKE*0EGteRUZ4p0Gdk!~19l zu0QHBfFE=VQr8u=n%H|4xNX!rw0~RG-kuA8^DV)e#)cF{sKAA$cbJ-Q{@Oc8UBI;_ z6j;|=+8vJ=9}^3cl0UQDd|y(On*?A|!kS3*Le`vxhssr^=NJO>%WSd7WTVV*ILt)w z)RhTFU!0=IyHAM^oeFk^+&R9jYVN zyQdX%lDSxYwc`sEX<05#8hI^Mno-_5JB`tN^q^q)Q=YQH%(6;{G`=#2iGxEsy+ik) z+>l?5vgzEN--w}jhP_=nrYK%H>k;jx$B7rLg?Dc+d0e>5Or?;C4ZipunO@J11~UR{ zyW_N<8^rXjjhvFFwM5H&O^jpE4$_T8Rz`+RNK06{KHD04(#Au_4q9+VVW8VwVem5G z@n4?YAHHY4K~@IA(v1xRyU^}o&0wj^cy3fe6*~Whq9zF#Yazyq0$e^Gw^H43i%RjY zf*8reT(HPwH(a+bvt#^gl>fR8HR$IH^YiK7UY=_gPd0jr?0}G8E8NocEwffIX;`ig z$NZ2HPU?X9H&V~EMovs$Vc)4{sgHE?T>U-%KN=V3*)UXa1`582IitK~DSIvnpY6ez zlj^3T?$X}$f~nWM%}{{zTa!l=!Oi6g|19qpZP1Ofb~pi;@wxyIw)Y9AIj{*{@fGT zo1cw6wj%;we2c}`KbA=)`ocmOXy-f)T0NnB$;16_Japn@#xy7>O7e4XA5|cjB*fqQ3)80t-V%5d zPkJ!^reBXzP{MH!D|WLpzq=Ng=o?{BZR)&}d#p}qjB>W<3aI=2EM$r9MnyVbj=MlMO+ z%1_cc$*72^SpT~?!dw+QR1Yd)XnBv3M2xPa&UE#r*C4cy_S_5@s1OE_`9H50HZZXc zaNqxrwM#IFZW#zB#O7^@V;3!hLgoi&PGCkPOC@W$k6I4i5;4)R)c9J>ZXTXm>J?3j z)1pW_+i&7LT-f(ifi!EqQKO<#V<$Pot_6dMRTFQ!Tqsk!Pia^&M37QT(9F-Aph0wq z!|-Dg<73B;|9;~>b(jGRW{4^YY%5b020D7b=cwq`X;>iSC_dEF9pmJoD1()LVx z7)=QoHjs%iS;6G+vk^zrI_{PYEU@M(LOn_V(a+4B8pIn0bEDZhUESr6r@MW*5O;z) zPmgsan^HIKJ$5k{`e$mKiwSxAmFYdp1Ovl+`kYsM{w{;AE>bpDR#xqtwO8BO6UmYP zYhM_F&{Kp$&G}CyFfQAfax-Jq4KuQO#}{8H3TjKpJ}r7SX+=@QBAJnx(QLOwYQ*@g zUUZrOoYTX8-X75`c5ahJT2L-su0LKU#yNT0@2^4$8&u#e6b_x3idr9JC7Z10fSSvl zqU^+PArX}k_-j)ooz_c5%^I+vflO|>udE%FRV8f*x2-N5>EwYyW@Sv+TCu45gD^Ox z)2S`LD9iF~K#z%H+(<_Ohg19O z0%f#Jb`jR&?She~;I=&LMQlD5Tzh=(c(IrxuuMXtkS@PDDin7+Q(4|WUSL(Oy@xmt z*n)xPdv2A1zJAnwiUI-Z#y^9h`N~f$6QjWY#=?NfLCGv<;(kf)$gUg&@}3+7Fk%SZ ziBJ2)6-l`VBQINDRLjI_g9*Fq^-+r411cN;?Es8UXKP5!^54yNgE%-^t@v| z(>Y6cu%Ts;F{JKoJ(~@D{@pj9{Tc4YMc%2ZZ?65s^4%2`90t{vkuj_rK2g`Rv zazh3Hr1=CLThR>wb`yE5enUwY9S67^OPbK&sl@~0+E9r;G4T_<4mhbqsA15Q5(~~` z9f_zObUYL5DW;fPBEyHY8)e!JP)Zh0q>ryr*bP%MA_2f!i2 zOy6Hc*8fvk(bAfK!^PKZAb5FH9#-*5EWVsY#H6O<1MkpFTo1-Y+7?_B#k>G`8u=HE zmk>|&g@pGPLVQjP0dxk{_Ozi$0<5fhQv>1GE3K@)@`162^7|U2=uE3;+GTjt);5<3 zWic}F%BLsdU4pVpJ{1a*hqMngpk$d&=%{2$1U)%0`+%zcO?q+ltbzf&tW-qM9Iq|1ITW-yfb6CGi%SSj zfj}D+v}~w5g0 z<4zYUOJkAs$8l04fP6LBl6}4Frz=WQr}*oQHN=m|ThqQfTfKPu4n|N!|AX9~ z)UHS4h+IBv7nFZHLQ(7}hFx8XzJx<9#`rgz4bkYtI~EjRA?Zwc2w7^V_?u3Azyw|X z#f^=6mj`oO#>jM-JcwV(UCIOe{Z9#Zw3x%w0n|+rrl!MbmZvd|wcjHF_DzJNvoaTK zVqB;o&`-0$k1eg0V)r;*o&2BRJ+1hRg7crk1)xeaLrKgywm5W@;j6ndb@h7zsd( z(k+XQmg!BFcsr>NcsM(&cHvFkFUl057pA-#DeW;QfnCY9&zZ;jDaJCLeP>O~{JDxG z%;nyggfCtP*rFwo8^QeQ_LA3jWPK^!&-d$1AaFMPX)I)1eNl0Lvl{$D4rWve5Y4lh zG*1kOTT?EXQX?*Zz5ji(cIcZs&*qPjVZlcWBh=kOu|_~Qc7N|IA^J144(wUibDKK= zDJ_wO&b$Qbx|bxd6f#{mnASu;4qOKp&$I+(e*($DYXp&s+5@G5%6^L{YT;ij)=gzpm})6Vnx#>T-!uQE@a z*i^yPEp^{d2KBh_`oj@4GGyJ4!S{20%F#EvPisoBaeS;pH1TSZhLfhJy-JJQ@9vIQ=%ZSkMN~KmvI>aY(GA-H1@_* z*Py%U=Smx@9|aAQkRwOwc1V1?>&(J6a#(w5^gtf*|0sE>B5v#vi@6T>aJxM45~r_~jiAVnrpVDvg`C zNrmEGK>OpmLWX-dS3X+9J-9!e#PC0dqI@z|6oco#XoUL$1`a&;PDW1Wg9Ats0qy)t zvzsqGc$?pIN%$~F;6wey7cWW;RN#XmmXUU;RdhFq;67hx7zw~0^>j-oc>JEv! zUdjEGhM^Z~0O&p;uWj|*s;*l+Ym0z@mhV{tqlKBK3czZb6f6)mJTTr@P*~U_isVN* z_W1D#AxsR=90uPG44>LlI2x8Bo41DhitvANi_$3?Aa1vi0-CU+ABK&X{$u44rlsr_ zZGer6nc=-~JtUYIukxHy_48B@b|s!1)mQ*je|` z_kYSs6dHB;{488lqBR@hQFt4{a>DJ6u3TXdSGf$*JV5YxJG99WdrV&JcJfh+Doxyw z!@lPS0>TSqHe=${DMEeZueae>+Iw#iJ(y=1tF>jAQj5v1JRocnyCUU|U$FLM(au?L zSB30Y`aPkZ!KdpAav!CyqkRi;wquAmePl3^Uwi{{lcF4qN8A?Z(2nL2=)nfWa?!A} zid1tvM$v+AJ6KsMh#Fj9;)KqJ`AJcs3&D}t?B%z#>!Co^W%^*+aCU?jKl4QMIsO&9 z1Lqtd~#APu{n0Qri2Qf_RA-ll>tZ182 zg|&ElqI>yiGJX9An;MaH`31Sn?ymMILrJ-$(Pd1Cc#l;T)4n_=oI%kq8Du6<7X)?+ ztR>yS&kpiZMEdBd0>9isLYSvigkB)%3@rB46cgj;QKMSe$JOUZCP_D7yJ5TdIcSvLt89~PDlK_dTCUXLrh2o?22H71xbclp|a8q^~NQ}Ytocg*}n=5mOt-MNZ< zxCCG^{4?2OW7VR`7fTMk`4 zb8wGDE(H6}EF0)U3i@Te{F26`crg?Dx$t(SM84I%r=OFgStQ1hJR%UR|CBi!aWG3S zH-eE2LjHb}fej*_vA~WRhVrYR6gsH$8DjLSgSSotrG!RIXeY?%Em%@hv`R1)-eRhI z?&W>bg$-&M&BJo^kGJ+j()r!z2GV^PJ`5m`($rBod{2~UhmT58IqNqv`B^t^uOQi) z6g7{B2AuLd9=PC&gXT5r&3{v8_xye1ai=RVc5BXpEOCP3(b~~rrkW>qfS>0lORZI< zhy+1K>vw3ZxmaXfG(742+EBBj_L-KvwRgcb0hA#F)RE?4krZhn%iwMNq$k)50T+1Y z#$VQQT!S#!B&GRC7^)p?mc7d0rJFx%3HeQBqU2{V0UlEu0n_h6p^_u?i{m7$c3Rxk z#l=TSH9;gVXRb^0Zy9Lr1GEuh!h*H<{|qDzF9Aagae=?lm(dDA{x5Xiq(LPrUz@suJWL35!5efdc>@5A|b0$gh@{?uQI(~1;Ku-!`t6? z;Eo)j4xu&KVjxaUiV%9!E+S$JJDRct{{2xj_{R=(Bu`CWAv&g;X358R9Pe9;KAaAs z&8%SniB^T;Ui^pfjFQ4X)74q8VCw$&hJEg7!|U0Y;AbuxM|e5vL{gh3wIhl~a#}K( zTU29c5FhxO;o+Y5P)wCWTO;t=ki(Tv!k~_ZeM0r_i`N(b^?lu6+P>$>3l$#PeZ~ze zg09Ek+VxJ7tXNM@KPW4Avi2Ai*GMiTB9XSoibz}2ZV(Dp$k$Zj0QEMWpc{P&ecF<8 z`JSB!Tfp7;fadi~qE6cP!{437dAQnYOxKv^ZXihsGZcq6N6RnNE}8Jsxe@jSB%gX4 znrmyP@WSHR2DU}fWtrKhEBWA1{RQ9%a7*Ols8Rsk7b+^@AdQZZkx@=K^ZY=wbCmsH zCH^uNS+%&0_#2t&UzzaBpZmSR#}l zzrZ;8o_qJAY~$a#|2wpOBlY{DWXx;6k*|m`__49A&O-w9j70Aq-Tk@9g2f&+GyWgP zZUZa@?pD?j=l^^5?@8gcJVIP}9I!Eu>)taEYRHM<97fxZgs5K<7V#Qav)I)Bm{a<= z563@86RLT%(qcqW_vEu6V&YXLSB;uObdwy#@*N{5grX4*f!61#%>+7EE6Qm0cxc&h zy(cf%wBzYz#_6@OM# z`T z!T)yWwc?cqZptH$2u5p}H?{=+Mw`TX6dW0RaO@uH06e%+ob%qu6dx;ya?=E-O-ek> z8mVsR4>Gi@u#{d`SB-l1Lc+Q7O;esGj?TG6I2X!4VNwDQZyLR`S3+~O#cO!ufIM>c z;KNS#o>&L9ML_JC?5k-Q6+7L{_lK{e?Kjf2hnNkaXXEkb5IZ26)g|7HcCC z=~`=XRR2JtK&1chLjlOBEk?X1F|IQksr5`Gy z$A5KXb|3k$MR6)<^S%3tIt!Vij~Dd()wsd6#L80&0rhS#tO^t4J%yBu>_S;|lQg!#IqG+9jmo`>rIE$FU6f5Z?=^fvw6Z-l9PdWJ=NFN6a z2j@HAbPTD?TmhluhYucW*e=GZ@F(GOd(Do^ke0yvmYoRkht2efz}*ZRq~$WPYZe%U zNu1@(cj5aAuOgkNO6w>;J`~Okj(+#6R#~=nU4T)D1c>o^8IRf&=v5Wa(*1+uLx#vy z)_Oj5EvY^s77)!x26y5K2DEA!3dJ5A4y@s;$yOjV{?ie7qm`4?MsqTG`a4I&W)&Fq z&hV2ac_;n&TOaiOM#|-V%U`eoq&py$NtDoRc(|s_kT!?@o6v!9gUii8_!%Da*t~ZW z#orfxHpk^;C9g&U!DO`+RVj;J!Qoo-pt#-HIUzZ2KVnUHsB&iQ{b=K%2BbX|rO%$W zbueLXEUjfvcC$2Ve%NTuzp3N&bPVdMoYvgFjfkptXc~EY7|a?c$w&D{AUym2=;A@+z_qpzP}Bsy!>UGBb=n@}fS*AewI<&}kcMUit+Vg-4z&+ZbM zPalfrdt2LK)lmt%csBi|OwHNkVqU$ZnUTfZdg%!4k*xKH_wu>5rkzVVb)B6iryZAS zZTF|&tpQB7i1qR67f4vy>X|-F1N~3Y2LPHaS`P=H@9Yhj1m!8;yky+qyHi0aN`Mq0 zMtE|?74* zU8{Fw{#?OthrZ*TDP*k}b=ubN{EHQ-+o4S(bk3YIFaIa7u%v^tCg5i-yPC%p*sA zScbp&ww3-=JW(UG4jj{83=n#&1!w!=pDhRRVT6(H>2G*1U;;l;EYPb8Tz^6;M?HGY}zNuh>d8zeIzZUm1 z@RaE7+aoJuVO@;we{(u$y5E9`7{|Z~l$%mm8 zx}c{4#;2`LXU@deZ6is_p4+Bb30n8#G52|T)1?YieKD_{)RtM=eqW^nb5=fLl1IdE+-{JA0NuclO$-pSEJ-yfo zv=KVj5_D;TkHQMw#fMIog`U^Q0|I==I&JSq?`MjU19UjIEYwZCE%MrzL=T}I z7oYf`8QtI(53c>0^$~x;F>(s4#V_G*mlH=jQ_ovjJly3@+^)44`3R}K+>CVPJjNU; zHks!=#h+!ztzkon{33d{42^D`rmwj%n6(X^SPNjMDY^^9G^|GK%vDzvzR zF|mY28s+?9QzZA^&0}mIAC>vUhsBLs@AD8T`vZg(JXZY70sqb~k#KidxLV$4p%M`c zz5v_G6j6sc(dH`dns2n)O06ew`kdE!30DWHn7s1&YPQEMh#J$NjuaWqjXz9kl_(hn zw;Z%kH%vNjZsphegWj^X^9LXwV^`rBu?m&I&xd0!63MKJ6czM{<+{o})6F|Q6j+@Z zFSoh7_S>7(*6XY=5_s@Dt#04z-ZN&5Xs1-$<30aI8C)SJF{CE@GU|9;NE~-hh%#e( zkh?w_JikrA*XR&ao$?BH;0p zrjvQOg_=_NZmzaVW#p2dWf#>`E1X}+arFx<+evyxs7zMus&_pBShs5eja4yzru0ub zAQx=y)}r#U&7w!B7froNqM`vci`otR9t^?18qtoS6r1J15v}8c*tn5J-4sWp?p>_i z7Dwv#3??^+qvWXfg`r{C>#>Hm*ZfhJ?8IjdHmwnQKkTMRXqB%{(qS1*K5fJoQaFl! z_4@6@1`=NW)MtWyO8I~aeyq+P!b!K*e8`moNO!AV>n|%}iJkzoo%FLNBe_I!gGGHD zk0M+~e;N0DmCb>GChZgEOZTM58Q*A}X$`z|DXmVLXIY5zC7ci}eJi^pf@6f6s3N zEtv>GEkA8;`@HX;1KmK&RzXrh52t$}6$Ec;w?8hKpH_A)Xg#Qz(aSpD*l(XiUJFl8 zYh@u+Jz$i=JW1Na>l5_C>lV`mw~v;gC_^J&dp_Yv#E&0*xk5YBc-R%Nxz)yluk|sM z1LEVX7x%C!{G>Bq>%4H~VlqzNYfha&R4`BXnwTOkZEbATN!dD==1Z zn6g(S`W!0>Qbj9(y3}3>wGD~9JNHkpAk?|CW?ViNeTy&@B{6G87^?GTz(vFb%fZ7c zX4^jT^`X7@c#g0h05koVkBDm#T%tR{MId6cs`|O@ZQzGIbQbu04^4>kr{7RmpW@>e zj^=G26Negh_)`+&1M>*DxPM1IYXn^AGY9E zK7INWLg{i09HttQZRkA7vd}(3YN00E)wdc&e_Q#YE6Uu;08P`zTj!7if0W$RSL#h@ zw$F(wke%t8@EI@twB#4ctFqhnT> zW6aF|yb}6IEy8@cCvfCQrbE0RhSB*WRl)j4Vo1*??zqWHWf#@Ppuhku4gZxeYE{7d zREjQRQo-3P&mU5>p6L9v*V$k$8D*LwB!2ozKeOslO^mg!eV0M^#$Gh@%Ou0M*yP$J zX_FlAX>1?v$?S4i^UEc5mrc`BT-h)mDIqsc-G_5#pPMTaeg6UU8vDRW(`N#CxC|bI zx4AF&Xzge|ysasfc#f7Of|ts6S$1p*2WQ>rDM?+%^rA#M>DQOV;6Hai9d$#16kM78 zamfxIv{dWpDm8z)Lk>%1K73KES zPdkI1NHfJ%#(Ql^Og>tulL?%zN@r20HM!j)sOR-IaJ%Lq0to$OORp=a?B4S6HGPaZ z{`qMl<~}|9AUj>#FwN@_H1c$U(WI^gN)+T{xG@G^=6rnIjbB^|R*BYt6}Jc|ZpcCQ zS$Z9Ex;*sy;?+OVmNIx$#(WFGE5$&*Hszm70Ne#!T=RIF(GSUaA1;~{eko;o?Zdq` zt4i>YN*S<6|Dc<!ljlk;D^tcbbywU zEdluK_PN&ovGOeC*OYNVx67(2+LXBQtoU#!^02!CG`8Oa`Xv6C_;61G#^YS|T{a}6 z994GGS42|vvSnr(OPfg96WJSgd5Pd(7brm$;E^P9^IL7Pemno_3LAy)L4;$fF}F=F zl|8Gref)v6tv4ps%*!Uu_}RuRA@K3InznPE*Fi-3gYggr^*@sRf2Tq4YOMwlqi<0k^ERcXx%2_uwBBchxB8OMJZM4 z$xx!ydqEw;)!CCSUB$6pN9;nO19{|Gb z6^XG+aJJuR+a@?SZHHtH!_EJPe4&Mhtoovc?!MvS7c1t z4iHh82;firW~AM$&fW>ORx93<&czWHy=FKQ>f)f8K1fU7*tSeeg0YJ@{&zJqr1IOp z(ej2j>>d3ZkGQwd^8I;`2}eOFJ|BRsTDD@LQi3H&zAgCs{q4IhLZKKg4DZIGy<`?* zk$t<$iCvWP9Y#Vu?U_rTST0zFwp;VQAnb2rAYEtJaHhlsTwOzZaRQWc0~YPuZo3@a zei)pkPz3&g_gNg{O!iQ%Hnf$W57y5&>QNF-8Bwy4PxIfnt3`r7T>aV`sWExkn`i>* zX1D)s_8eTfv)KMoD0R(3U|pLh%gUG>HAqQ$O_@ zTdmLPbEJHZ%R?HqZ%oInXl;CR8;6ccVWm!LyK7to4JYpY(kB{ex;s`X%iXxSQt9Wf z*ESkEn)meAmbfp%tF+z^yWepQ3*PbJ#P&qe1&I_Oh5xaPLam{-M2f9sm@e%>V4HHN z?F42b{n^-!npM_-Igo#bEjgThqS(#4L{x<8BE9E{d%v7v5{>|=$_o)t{eU`zPg`Go zDA5Im0I$u5B9!n5wfhsSH1+@1S z4?moQuo^DIDK8~H)=VGzHN8iJw~7Ua--;I#AqfrfC!pf!9Ap-HoKz=CpF~-~46?44 zL7ny~1@hHoA=8bXfGq`qM9@@sr_q(4g@owrH;5-Y`GL0gI$*PlzE0sUJuN=C9>Wx$ zvi|>xFqr`%L9UoRYB${N|0`7zcrD*d{1?ixxCmVNyj40Qvw(wKE&l%R@>C;pIAsk3 z)EvG9+C?R476X0XPW-@2<5zlzEN!PI-7L;NmzRh>;0xI?DNi%k>-CYmjx*&3r;~XN zuOoe`hzKge)e#S+k7r9ikOfKOBFoD-^Ki_Ir>#mb-c`mrlrhA;b3g?Dzip8q66 zU=7x-fh29v66!R+v$f(z3YSR0y`Pi+mMS^Txwj@sl4^+{5I$CN_5%zf)e+!hPXsh+(F~x|M8L_G@LFJDz5H`ufpBpNXwL8qf#1!XfL(%lL-5a$ICo z_Ahy`ahp++u5)BNXFV?J``a;KNTn>PRE+a)j~ZGcFd$?_e1WBW9-{JiY$MLree2gv zQjF*?EF@H#On7P&+5zT)K2$YMCW8F82%s5L{)`ZdTgg9x7g1)(0$mp|v^aNY>Y8(o1rqa+!mDEL*| z6va0))Fx{9PNd@HBlaU6lF+(@zkI&lrpbOU(7^oD#{lA@6#$ROEngV=_ak#9B+}W8 ztzXINGViM*LLv>UgC(W}MnlXwDH9yE7~dk2Ff$oxpf-&bP!r8m1)7G#za!JzsdmrY z$$N&KG`J0lzaXb zfn764kjuPo9kJ&#uX4|K8e-6e?pIs^2gp2CPTNUJ8+&sz9ZgNI6EzrmXiuG=Mi8Mx zXRwCsz$bjq3*h@tlbn+)Yr(quwK;BL%^%AiV0nQ$BT1aFU4b*5+cTT7@6UgT3XF%< zn)dmnOs)^Y_+KkFGV`FzUVKJCO_FIC<89yq7_qqP3JhHUsb#KK*Uc!2z_b0hdK=qw zK^LSVS*%9$PL3d$xk@ga*^}Sc^zl#+)nRI(`{}w@>3%DU3pY8uC_!Z#fV?vV| z>Fm@A?CkCL-4lO20C`5n$^Tu`VJ30)g{>xD{H{p+MUr_>b`N+mTd+6rYB=H5CguD| z;KNWLrE#-#>ShIuV*Sr2|LaP#xgEh=+Pnt{Q`3645Cr2V2&_N6?l#8J0DkoKnetmB znDGHj)Y$^>$^yynFwsm8Wx=iQ_QYn^I{m!rY;gqk^U}H>b_&$W^1#0PHh`9d>F-cp zsHc!?`7O{Zaww;=qg&TBqZ9LgE&kT2GWQ8nZ(SGxgbKgJ*?_7zC;&&rQzvzHc=#eo zpiqpBHe)G-^7jn82`ce$_Tc@MaD!aq%jZwtLe}SgFM&ew3$D6}G*3nn;&Ph8RBx3P z1x9axZ~)f2P^*)(ogF$vka&OYu2WwYe^UpDp1?2IZV1sbIG?vBzwq2&YG)?$C2(073jLYNjCoWi>QP8)z9Tj zNI!L#TyBxml-bw$J>XQZO}ae`+K;GHkDm6Uplwr+DqUA4USr`T)f&4}3yfTloh#nd z!)DE&ETh#eH7}*nXYK{3Iu!z!mwMnteokBnblo`l%vEwG8S1<@Z2gn52dp*ge3)l@ z)+Nemz39{vd#ZP^{+ZZz2o`0kR5PlgaA=Mjt_3&sI%zco>adIZrQ2&HQ>TVaUWpeL zzjfM0kKYq`SPo2UdG1ZQivqQm8%L#aCR!`+jr#0$=h-SX2P)QpcN(Q~U%@W;-1`Sv z{}5Eog=oBY)4Q+`gfnN}2870R$t?|k>B5*h8NS>93PwOl?$f>tikx#k24QXxOL zTK=V4bi~a1g+mHhWtCQTQJU2<_>t=w$_15ex?%*Zo&>sK6LkT1zw)rHgw~1l^Q1rg zg$081-#0{smnf%=MwvZqp@;D=&@_%z0@5SX%glx0znQidA)9~FM}fC$%C)h}b^Av= zWevn2E&C|m4tPhE`*STZ{%&C*>D-s?9b|ps?3W8cEl^u@>bUq(w<~yyOCoT}rdx$( zy+tV_XeD%A_!R%pvii};g~<5;uQs#K>bjKUf?X-{+P-h_$kz?e98=n?XMki$uqH{c zbRCW7tGk=#0Up`DlJfnhl9^`Pvk|~&<@9f-83{MPH=-@c?8 z%e^1Ea_3J;E&gAYEf+yztT(CbQ1XrWC$9btuecIz1D~Xp*ryklCAj0Y$j@AAB%kGu zqTI~{kw?k@bSdhKPgaWgzfqx=JpNE}79#`tx_+wH0p+nkk4=!^>R4A3cVx z)2b8YsT|XyIJ--`g>msH^lM2jLzSFxMqD@zwTP=w=6Fo36rlY-o0!#PN*ftr zCoN!w8lUYQrCgiqr-J>bUieNMeas&o*;`B*~R$J(Rg`;`)W39L}`^lqgU@$vicE%1)3YD&GhkrqS+)HJd* z9a^?%T1X1Ie)4K~C5510UFG6On0fA#g1t}*<#U}%UF0z+AQ~3HT|EQeen-ZCsqE6l zMx%LucjvLC8~E0SMpDY1vkNayq~{J897_8e*f8gh;#X2pbW5v>p4t~W)z(=$EM& z!=^%a*d8^SMo?SpQf@kLC`2l-l3w?ohbG0sIbu728l@s+1Qsn*P3p^a_dR77JDp;$ zK91{1iIze4*U_0Cd%aO&B^YS)^TJ1F>nQEb=pww{l-pqBP?iQ@1m99Wf>r{AA7}K% zwH4oboBaQMk?leEAVK`Er>KzXQDD-N7)1AA4vTJA63ebk@yAPx5YlJo^&oARv+kq1 z-dAT%Hj0en+#V4_j1&tAF#-mHIn8Jmo);Y;U4CMW-4|PpJ6-q9W3nW24n^Y6$bk&Y zEvGsy`(zx6H4YV=zqGzahFM9WD=9cnHqwe8^SK&yeW)>hqS%YrmZDkZGZkXtYcl9$ zDkA>ebZ9Ry8YR^D)P|gl2}xrg;c7_DO()sIM<3NlZi+i=pr2hjmr}Iz@%`?XtWK5+ z_GDRK7hvubMO1>|jB0Y^g?k$3H6WNpgz1Q+_0zcON5_xze+HDWus`7b(l^``dfd%& zPQ?MAhxWQH&&v(jKiscBgKe`QR_heU9Pw%oB17M-xp&j~erPC3dn^l9E!Fc|<3u{a z^N3Mx9sHOwGSl$QSxj(^!JU0P##R7~{9T__!P4@mRr;T{18F!|k!Ti?(0m^5{uP#GLs_2SR~3yrVSB6FAJ$7=F`$|3 zu0(I8zsPYtnk{vr!eMcjzuZTWW|;`}3RhASrO~xu|FSm%0uj!10K8S7xIyIpZ$U;X zYrc|~E&c!Xyf!>SslU|0SWq0+5$j};ztRz0J#X#ai$n6)zrNB_h>g7~UdFT}Op!rt zh%ZnoPeoyxekJ3bdnX>hk2{?vc25bLY+2_5NXYfH?#FfUL>p1}@Q1tL9Oxj|Dr4Yv zS}o21a-4zeM!Ix-hQ`sjHj3cSsfvUSN}*{M3jX6%>Su^#+rjRT_RkFMg%)}7N*dkz zrs|QmqhfAsYOsDm1x^MbsC^93`UktzRC821Y(7bywr*cYxX8X9dX|blUR{3uajPe| zrY_ev(~SzmFr=9tgNhd zzT4VLpNwcVif0U0q7+T8gGTG)2OVISd6dImr7MouM({Pi4DV59Uf>g~*YiGC)GvhX zmsiL3OKA3<2$O#N5JztuGMB?P?luHjQO^AFGDp}8g#`L{)k6Q>j(#k)19L#>#XUCV z=QWmA-!g1qPBY+2ELwiXa`cnzLqCocJ%a5-Slr(=^-lh;QeA!68-( zu7rRhRHShu=yL;{Yl`NMW*loqyL-%xw!40ew!^6UX0h%}JEND>h#_88j(q6hU`SK- zV@*SV48F`jn~tb{5u1gv_QJ8F`!a+ph5bxJ`DE&$JMVzJmIJy#4Xf$6z73Sttud`~ z$B%UmaM>;Z*akA)u>pDNRl1h7n{>mD!2X7`#z|uu3ISQ9!QUe;LHL(%hmBH}jcaI7 zu{|QbQ&8CN6hwH9ns|x7e!cj+Rz=k?*Jnh@XQTI}lE((C7?Yi-o+xb}DS~JX4?iU3 z1sjN&*<5p#lZ3pOEe|Wnw<@2xMqPIh{Yn#mXzOkb&zlt~TAz<>Yt?qhc$+k%(HoRv zT4K`TOTjoBXURXz+V!eV?s;jUi*do!uXa(UYJsX|D_@^Srz-?g z>I=i8LTEYJ=03+Pz-DR8lY(GWfJ7cYIg($cD-xnP#LFjpAegShc17g2YaLfkQEY$r zB+NI}>+XugiVgoVls-{Nu_`|CB#vE=&4b~WgJ)lTyK|ZI=IT%)CkF?I?WhZ5_ja>Ic7hBu`t_3 z<}6=xl2U$SRRLKt{oJ3g-DYFPVShej#w_Y7E0{m>DcuaD{H83MHSx9ZRydqf+A}$8 zXT{xbYWfL5uWHn*(IxR@#)|F3;CHXce_MHf>*>%kCJsK7ckADC#=)!gTS&2RbTjVg zz72f3Cq%l_wo`L8#Yh_|wjSAP#&db`s$0KMkjz5iz2`~`xcNJ99-vZL@ z{-kA0cpWzB^5i{}%L@7|&=>ns81ff60=l|qADUs7F{@svRos#7t7FC}qsTq)(qY8w z=16Q^5Ysdk`g$JV_9S^n4Vgmo0BXB*B;I+wqcYW)n((g2&G3e+DnZTll_INjqk_C~ zn{7K`gvOV_cslIGywYywLoXJ;YgA7iF&X9+3HRP*M+&QS6j2w7lOK7#7ltzh|C{{b z<<0StvL*762*v-xk$_5t1E1_L$g{)q4L;-T>y->D0MOkOiJ*~mFa@E9kY@gS)ob5z$-sTgoO+VA- zDv5_H!T0ZAy@8^HoR*8CI_XNZ0AL*MA-ABrPBR5QMeRS)>xR<7&Le6QFu3%;9)adZ z%)43H_|_m6?-to(zwBuQ^VF64wKKj_PMakA9;@S{rCjNR+ncoVmN$SXJf`+Sjr>GDb+G`2fdG><#3 zSJPuve@wFt!X!EZw@KT+phBM4W!?3fYZEAcDor>-mx(C@K>e-GNF5N%*Kk|{H6eed57HqgeYkVqi~ zg#7q9i@z|RRM3@F^-&);Tsjl;3>a!>0{|L|3sbWR`>TxUjDEhuVl>>Wz2Y-mjVu{_ znnnT0O{1?-xzw}sB4S7U`4Rx<7TzhB5u(ns489OvqT`{sb(a;K!E387vCYVgJWBnc z82Z_mx&^|>aSAFQrxbFLS-WcvL~jz_%a(0%x? zzh-FD#%<$_K`}J=Uch8MH&iqy-@3cD4&(*G##P-Q(-xwdY#I!0FYNL3#*a$U}fFQR_5rJ11}p^aW_ zoqRvELFi?JT~8hu=dy~BI%aO)JF_V;^cSTV8ovCy()4fwqKZ&}W#=$Zy(&BhZg^10 z!kvnPS}J}r^6mtadtVDaeX@~wUObrO%D&0Zzki`p$r z+Mwv4Lj%>*wA1xcaj2OAs-1=f;;riKI8$lbLS+rYYt)0=cl7{wr7eh16_87n__(Y) zEC%fUo0o?OmY=WfQ6wmOUGe%8EVjgUUsf19b=>`v41fwyEnlx!`i52LZz$M6Q;`9R zflvv4lt5QDI_+`X{Rq#KO?Z<~{n-?^^CYp?k!1Jb7`ODq`$`QZQ2~}a5{f9nVsFbi z_aj_84IN)J;Jut)7^PUhvV+CdJ{VVb&q;}ERm!waM(Z^saOCt_`x!cQKf1zpxCF)y zbrOWHkS~p{{AD=Hca6|T$4P5WPVgih=>f&MwxXI)R?Bgc=h5w_RxVh~rS$ zs@<3FzC2xg@f_V)u zj$s;>xgPIj7D5-SaqA@FGDr6>(=8NeZgo@{+N7!}N9XLwhIa51Q4*sjMlQ*~>O`rX z39mZ{wg_86PBLKyKN=Y>wosK@vQs|0 zZm#o1xHW{uabzS+DFC{o!v%@Hk@w?g^GLNypJq&92bD(gOs6C`;#@wG23RNSsdl^p zZUpx)H12xFjL|W`qvk`Kvk#=r!NXR@tY0|JbE;k}LZocHpqAzFefEK`_tQTY2uLYC zBN7r#pQ!%Vdj=m$1@%&Wu|)xww(=u$S1yd}I6utM35Llir5-HpgvmycC+BzRpzp5=2}?$L zr(^{`Nw#e_%kNwaHJ3j`2g*4vHt6~K%`tc@tuD?C!vx4pe^APgktT;g&GHr!%`( zc$9M_@=1e}?OR4>0@zVnA0$V-|E;nCO@#c!-S<+}jb85+*-2C%i)ajV)R=K5uwGC@ zix}jnOM*bQl{1VoGP<@Fp&flxH4^inlhmQ1cj*6v%w~9@>xSDARNs>#veSBu81^#` zOjz|B##ryN(G!dt;r=Zk7en`gcpp*y-R1Z(tghvOn8T2;@UKBq@HZy$svibLkAFMo z;W(S8QN1pnf$gmQzho`&$238=sh{-$S3A-ziFB=Xz{e}x&Ghez@lOIBw7abBLTfCH z1i-2!f+d70W- z);jn{w;9OstEd2wA({1%62E32`#*RHe(TiW@szI(5DR>IK%d_e!)94vI@tNIL{4`? z^2aMakemJWU#raQfTU6%*|$iT%bdSGs#bzyRi2(GEzQwTRnS4$pUnHU*iaLF^+UZL ze(P?mitTlF`8DjbhZl*}h$fYETU|(*6g`b_p^fJgZ|ZPbx0}uHR1U`ko9u2W9(ycs zS>m*OEN1!lCFBN+{wMYFmhQ(F44u5&HIqb*0P8N>IzK`R8 z<3t)vy3Pm9M&q12Oee+Ig4jt+TeY3KtR3r6x_7ar7BXN449v|V>(Bi-5Irv^beQ9c zw*>kX$bObV>3+618RVm=cN&uRd}nO4pt#^JDVnjH9j z^CN6DZJlAtuh(Z3fn>+CHXznqHV`P>)Bg7NyO-N_CIQ!jfIIqgSC`~s+hzR9$NNw5 zoPqeS1uo|3NmLjQPF^Oo8(y#GZ&`2@Iu(OVS{=sFWrj#qtX=XM0Ab^+1-j0`Z*TTx z$d+1CC>R7s-R^3<^K?*Sz&z0jQd z5*d^cG$t=Db8kD$Bat%#0DCf5rAd*?ar2VcLk?jljCE|fVw7RMuv1@BL|QUN}Qh8CtQg&+q@Fp{eXag0Z^D# zYLa8gzhl_>y#GZDn+W$}(@uD0{i^=`3t`j6{`OLLy+BFqj~*lQH9id`8tCQ>zi4%} z4#GS>6776hw@uy??bcb1l=c|cwgZ`TNk&%BFXhPl?oh0EXgv*me|lu$6~Bx|hMqWg zf+o9NRB5JYhopsyf>vGnry$+k+n-o|!A`xN%J5gG(z>6{7a;wCk0v^d#j~nTR&_V>m)ltP4Un~(S1en}l?AhYTzrUqY-?P51{M;PK2c*d)> zd)xH<=anbunc}eK<-!%&!Qp-a=;`Fv<9;*w_ILQ6$o(7GULa7D-W~JuO&#htrq(Wp z`C94U>(}}}qvp)4M2Ei*`^=9aX!FNZu+k@L+%Dsls!~naHCeJWnw8Hx^;5Acc9_8s zkDZR!m%9O}pZj@}!e<>4{uUOa&AQ(dDaR}+LG!o}S; zAvT3x>Hk?dL=~Wxwxas2&>6+g$16*6w0pL5=5+Go3Rbs)c^HecwN8sdOl9@~Yh3(* zI$;iy$9aAO_YuR9Bc9jjCfK8)f6G-a1dER1{%9ET&pb4lS>h%i#0y{ zVK>H&*S)cP(=sseJ>L(l(is|(T=TE0sk^hF85QK(dDR`|;c zIfR7Fc=ya3Wg)>Tn^_Y#kzlg7a(F+4mIN7oqI%?9t_5dPD%PeJwqq@jxk_rJj>RY_ zy90p)agY?zEcu#O{kK-SHO;HpyN;RywOr2wa@eXsw|ez%YUPe;wMe~n_ZFWTWyfI) zSE_ix`W$ow)McP19Pkx?RIq7ZFX&J0y+k2fhVLeFB}8ya%p|e|Y=ZOAtXx&uy}CnN z@#6OB!g)m5)UE4H%bQ_dF4K~lH6xFl#i71N+ATIS*ZPMErZr~j2ea;?)DY#JqxDwh zloKC=`VLhwXo3Kc5w7U$Y_$bCMJTcKBl2o>&$ztTGKA_a70|0hH~p2+tMody5ZX=y zjZ2D0WHa-`v~pHn7d9xHm|cZ5?zBybn&f#^Cz`FY_Tx!TO{8`2tN5HaaHilq4LW!{ zt}Tpa@|HWKw3+J~3w+p5I}!er0?~kI%gN1J`)RITbFn$a3wjFLl}{+ev~R`LCQ$X{ z1&b?4dv`4@h)g%h#X=nB!u_m*)dG7mTxM9p7TB8KnNgZGAK9B3ex!`Z$O$;+q1&2c%N$X%m06Q5of)M2W2{Q)R zKKPcm1(>=IKN=`2ot92TZ&xf^B0MJrpJTl`q*FOf$eT$zHjsnimb(J{K1Vd%0Sr%z z|1NJHdg`Hm-nLS%#F~DEmYN?w#76h5)#Jxfj*UW3#e)}k&kJI5=9^Y!*ujk7cG zX3SEn`2UD)f;jjjm3()aTtkfl$c7jc0il$OE7wUvX_1ENqk3$=T1z;15n&eR3b zO95E~j=Me*9rJ2pZd#4?!eDA%h_+~$&M_wjEFxA@V9Jtn>Dt<}a_AprXL$?Oz8Cr_DREL$PS&^RM{W z#0C4ls-wu;%A+MU9l2c{7Sp0pL=&5a64wW?Cl=^;cZ+np2NqN)rqRVBYPKBVrJ!bS z!sdJ_fO|bJaU)+0GDXXmr74nR zv2%hDk^xdDLfWltiCS9?F@}^-mtfmqQiw^b-LFy!+^i2jL6TM7$JSgJNNf$Z0ShcF z8<_8<*2jN9h|amE_*7bX8_3-#7D}0uGs1B1E)`ANvzf5hsWzhL#9!E=>77P+?0^wq z7b55Ji1WTz=I;;>eq8RRd(cdO9=pZ%tb1_jCFkP0Ku=Ea8xG}> zh)?3Wm6Obu?chwZ@8E1Zzb6TxdwL zDQa=p{wXTuk9?jY2xN+0-qC!fz!{IevLgSosrdi5 zqY(jMp=<^%p;G??o&*puUubyn;J!h~aWApBHLuL(4Uy88&$PzXmMQ#(pQs?e-Fb$PW< zY~qSyCe+6%MIGOdn$8G!|9Ik>3p(WdSz5trEhE0`%6bmJ@JYmNPIa|+AY_w!@iug@ zUevX9oqa;k%(wfIzt6wnZOKCEXx3#iUv6H>t@iD}$}9 zH|9J&x%`OrJw9hyY-g~kPvk%O6EuGC;_l1k^46oaH9cjwPX|~7@+A}Zu@Fv!)^`y% zCx`XS2S)`{pKMO7J&;OK;hV%jIK!!^Q)xLkl_bF0+7R$U40!3H8o?(vf)Y^365Wvm z4yoeY<$n3M?CLp|%8#D?)QItxtNMSR$N}Spp%R3-?>$NMzG!}rPTcj2Ag9+WU$`hv ztmm)D?ycxIkoZ#SIacgY((EFkiQL44Z6#MctM@YVc&%tp{qE2w*?NwYF8rO0ekfTM z9^B9uc{}n4Z1o}hboN*i#+sd%JI;EH>!4I!J8+3t>YC*>#GenP@^-DWpY$P)HMDLw zc3#|>nQFE<37tU0mYO(_vA!^p(PhE3DnT?&-xF_WBair; z=!J;dw;E9D(1-7Gc~O2JjF*>N=tw1b%mc6^)v_&ny_)A%$ApD(C2ry+t?>FVKtvxX zUsYPtvXg|~h82t4{o*ZYsZ?F%Kf=d799{jV^c6#pbv&x_1Dg*i8F(GNxK?`Y+9!C% z#~8lp8Zq+rik834P0CCYrtX6U)CPa2!YG4-f&v-7)BN`mX)_>T!fCuIK;uIQK(NcV z@`=GWM7=aPnB|LLD{Js7#_o6xe%#&L-mtCj|Ed9)LgP$x0#&lO`IFtr)!j^ zxPu9SG1DfbqO(Ya>(BX;uE>f2FY=hiRzJGgt0PAi?Y(I-?1$^ai;zPOtr;LXe|o$} zl+-6{x-kUCh9Y_Zao^C&`Et%x|N9J*v%Hh`vzNhIk#GTg1gC#YgZ|h%I$}|DZwK6c zHq3l~_+qBBTa5~~h@410Ut%$Hc>UhvWLwMN{nQxnK-69$s3ecfVk+Jy_&}#Ylk@zw z1n^qSxP=$^k4TSb5Wz>(N3^rIU08x=mT_9QRU%CPJx8cy58&_ULu?9|K>hPzwW8sQ zg8}ItW`?69Je0KrfV7Z3O)5E4kdLO_(1f}M`}8|Ol|545Wg zN-`&`qr9@Fv)6GX%#C$oWpQpHyM$jfiLAq=2nU&w0Hx%a)LPs{&)Ln*O}%I9wv~!V zF10X1N*G{TbKK|;4+T+w=>3c`jJ$-s@c9TSlooQY6$950LCJ&u5(iBfYYkGqDkbI%`Oj^o8^djT*7A74PG5o8Rl)b z2fUe<|JKxmyl}GH+c)eUwf!GT0LUGeaMR1lzBVuU1^jm*D~REfRhWe|-jLY^_1WkB_u06UTYkFBeYYx>>(G(!Xd5u{_JASfLJrXbxY9V#U)C2X`HA>Gm) zD%~|O=o*bQQlk+V9sWKT-+S-xUjEr$Y-|tDbDneFr`{(zTVVN6Ui&06EIEUpz}(PW z;Oju)P;yP9$J271-vUF_bt4}JQjrFFMntdb%a1`U zwifTY@y3L^nQ(NCs0)lal6kQ)WTCb|%HmkyN24CO&Y!1Rzt$RZ<7d2hYgoGhqq)AT zYT86vD_Ows-D7|~NaYN?i}Pn=EJ(2=zob06(G$A<+hx6n0JSP$;{^%H3oMh7YYXYc zy)wf0${Z-f?k&fSFQ{egNYYo2;0#UI0LBj4#hrfPQ9!{*&Zu+SgUPGsfr9*rh9^c< zuAJq@LfSPQdK!`2AXo+LO_9+f}GnJ?ULcph%ELpMU0OyHTmQjTukr?Kq zE>}Cs50>e>P^p}V$vpL#F{ezDt3Zs-e4!T*tVHE zaFF57#zw4!$6-RcZT{6xxMD1+ZFjJYXW~Z2*0I z(pe;3UqnltoWrf7N>HC(o>C zFG8G|Zy9QJ5MM}x%^*yTlR;+VC5DUx>~#*~dBoH)`0cpTh7@$+rx| zoQo^u#-%KWh!4Z#!kdGul_pjT7+)~*^<+=;6Q@!>Z6FD5A=Jp+qhIp6oyZ>%jR1Oz z@R`d;VjLT~7uH0umS1D+kS}>YeG09yogh1%JFX?)^6OHmqB^zQN$FYcf{Ct{o)~8` z$jOF7Es^zgwEh&K?IR^Q-)`w)Lc zK^vhO*I`(aXFrrR5obzTAcb{|VW$1;B7a4b1*2ajsEa4}7)0_eNA#_^!FxXZ;+O(}n}= z^%4~wAMGzB&jAyr9s**Vsv-#Rya@DDZyO*-b0~8YY)`o<8HKAtG>*3XpzPjM0rSSj z2!lazn_zgLVvcpIOX7G#!X zl(Jpn4vzqu89p5`l}ts$CIh>gs__ks{cTzgfR0;2tg(W`m{r{bzO}DrqH)5?OEl4w z?b(pa{pG!5ULGLmDG_NlqWFYBw@}CPpjjFhHontHpT^~C4Kr3u z=P!B3Z>b85EH^OtI&?$GG10sAU!kTg(D78+B*c}NQ;pMx=MDjJI$qc9Vj|q61*Q}y-^`n z&T@-;prD18J?1%Ikx%-VWWL=O9J)y^FH)O#L&6U%_NLEEkDbfNb>c~@)p@~QRhPOecPrk!S%HZ7rqFZx`H?cao=B_Jmf4arr zdYffpy58A;vz=Z3jT2W$zonM80y@0Kkom^6OVahj(X|WgQ;D|Q&kZko-lrQ=00Q+c z7{e}p{7HVkiP#};oJaE+_e5p$lSFIvJx{VyGBlBHhAFK7{>2-WYoRSiY%2>b|H=wp z+2D29n6cI$xl|zW#ejY`YsCzBFx?H>7_iMQEQ#M(>U_D>Zlt2muCO+e{>5D=oY0LG zdt)Tr!^=X~+M|}sq;S1-Z~@n-^wM)RS~ATpf=jdZp;Wb6m$Ud2P~is-vx9Gwl4}ec z)*cbbSnO6`iToS$?t94)xJ=jDObymNJxcw+r<$OqF8}fDu-PzlllHOBr#fZ2@D~&j z92GBb^sWRfn{k}huR$?bIrrMmkcM?&562{Fw)(@?n`$_r(>b7bYaGD^-$8MhSe;^f z;Rh!GGt28~=Lig#s?T*lRgW?PRaJqw&;I+&%Fs{pE@tEo1SDp%*`^`hj~PlB7_WoN zH0^wBBc?C5dX_$wEXVX;FJ$LRgBDQ~tLCcte)AE*GWW-@d`Pz-@0%HS!{(+Z%-mj0Sz5H8-yH^I`5B}^mz&-@{TF02~hkr7( z{Gk~B(s&^p(i->fzc8!BNCE~W4@$ZgH+ej5jv0=|8ZALi8{bum!zt1rbeYy1AFWor zn8#DNe)NK>{2>E@_Ugfbf?kWa`m61s>H%y&d-QZ~{Iv5cocx=9*$q@Gt7b9M_`oCr zIlSBl=FPf{`0)oanlW!4SkX_ixK^uZe!Qt_Jp_-KV7+-DKdhH)s>%gOyUx+p{?f~4 zHuuJP+6%I`cggjX*Ry>1Hk@@{(D66X?~0H@+oJ?${dC7F+SucwX&r$+B{ZT!Qa7s+ zLeJhw@1@NMG;Tl4Vg%;i5NfaPhOmqY8~of%fLAU=YuhnJ8*Pm1kpV1Ehss!4YI6CD znAvwfj(wQHUtijGNax+yX^;uTcg4!quVRZ;%-tB$R?Y1o-8Yqc8b~sbPZR9Siqv}V z`635FXSX-6f=s~oei=xQunn!$Dq^*F-&HginPGviQ3rY$3Z4a^_c9@AoVvhjsCG56FkZP)_o z+-G0p4FmPqsTPP5ksI~~Y-d8XU2BQeJzqu}Sq!F1=eVg@Q7?~ju&*U#6EICqk@%bJ znr8o)dfwq<0O@b@2Lc1%E^63IW(=r1hRW+Gko{B5hI?guaS63m#<8Pc7j&sN7uVv9 zBTc|1M!XV8K|+cS@5;yyUIcxMtYM=uJl%$ZJL1BEA<_gc;T>N03W0`J|?0fl?yLUncwi10&I@gPXY9xWE#hI2cO(6dB0!zSKL+JBWpSjz&6&)WOc z*zJ$vy9YJPd;z#0_#DZMM0M@Hf*-rH==_O>M5o#8Cj7g5M^_7lsJr{g!>rXywhLW} z(8`+B6%C`+@?J*4IF+xT!M^u(Xy~Xe9jRy}#Htq_iVAeRHCjc1sv`^K z?%U^!a)`6TZs@PS^SQSL_Zkly8ah-~AO*N9b@KdnU%mM?fD%(Fv#*@ zi@=uySnM-*WMxm%-*LaBBa_HLMjq_9hK?!G6WFjX;+cKg!?8<|gg9K@Z`j%(E%?Z+lcUk`VWcb#|l^EzTLR#I`5Iu287 zO{Wsu!#k2TlhY~@d8TK_7rV}RyNkPuk$1PtQ;#6+gUQ!JMFL}uA~RCf-627aCm|W3 z3?0K|`@7DubQ|bN=sW%sAzLx)P89!;*NgPcsRrFwl0qg8hwGXy2LRV&Vu>3)JCdp2 zuF@3=%NSJqR+}E*bM&_`23ifC$AMQX`Hs*1)(4E&DVT`VU-P*O2ya`s;t$3Tezvw` z0ypAO$Qx`K(|!5C3eOy~B!=SEak36LDj1b&uM)Wu4Sj3Wf;ZN5{W!M_Y~yguoM)!_tC_4!;|#McZ-{(ekJ3wnhNi? zW|&ke^g<%qp1t=Esg)thC|=!S1KE@DCqG9V*8>UzEm1qnf7N zeV#emr$nRBglNp0Q^6F>TWMu+B4%|*fliCKDgOtI3Fmpq(1eRB^qGJ7~1lx+vW&BQg zotugAwoj%UPfL?ZXb!ex@ncbv5OzWuwb}~OU~bNsio;#wi7J?`zJaV!Er0o=c<2Z7 znEcs}-1iScUQ|nVXi3W|95_Xv;Lvls&?kC~rQ7H0~8vt!k zvEdlqT0koiOI2}c=?=$+Oz`2^PK#8XV~4@R_Xi7IJRb{oK+5b`Xhf%roLtb=$SG5q zoMp^tRS#cZ4x^vb3&*ph9F{m?+?EUYeseX0JNw0h6BAUBmyhO{56z#Ctt#e@KT?t* zIv)Qqe#Vn5?Z2QCrP8(_3kuxYgJ>;>u#Ii>D zmkWT}W2nMIad^35h6Z?pA-gX1?pY4kph=^>3az%2xv3H-b)$PB36Hr#5~<|V{HTU_RSXqd z=Ma>eC6&$auzU;WR9UKey)(n@+FpAr(X2noqHgA5dl~{4Ov7ZrILO;_zBf>#s6ZLI z;~|%sN(!}KGfl#A0+PrNgdlvthsSTebz+~}2Q-UV5Ml|fd_Q|_dKS*T zkNBKU(5jq#XLUa7adTgVVEkZpqD}T2OI=>CvPRj{2(zzC(`7uTwwSFzsc|nE&O3L) zXX(ltXB;`Rn$~g(&U8n*jbS=%vo=jVWdcEv+VJ~$sFSh98STmb#kJ$Bven;t{r`0O zKaqk!nIh&GA$y=avTZAkh-5D5qPk(lOgGA*iX5M;-r^Z8iq5RsHdfb{izV7M;bMe{ z_s^QquG6gbv&+mXp^vVK>V8!>F3z5IQA%ur8OtUc@cYTA1qx>MWQ!Stp>25!wksaGJSz~WS4`812R z*K*X$LnB-{TgX~Ff<(Z=OLYz)mjW_tKO~ooI>kvUNXY20(p-^SY4UnePsqyvOd5+z zNYQy!_EVDa!3i!I@yUf5!|{0D|3-IvIE{ZV4a^?KxMAVde}C?+D&#g0kx>ENwo;Xf zWll1<`qy6 z)`18rC1`qO(x~X1Yn4aI@L?Jxloz#t#CO070ZahSW_Y9crBl=87X`@wbf4^rLKKnu0p+M!|Lju z1J``K@x**ocm2)k!|<6Sb(z#T3h78m;8P{+ghp z)!YZDYwHFg|I(=@1=O(xs_- zC4aW$L8Rn7d2cK6RquVfcM4DKVcr$#fdzjEbJV*)b+~X=DWlSqKZ&dRU|+J3yQ-Nv z%2#uzsI?03s4&(?$JuThu_$c-q1{adOGzlVtoEux^+PqKpD#5|QxZDWJM4xGgiR=+ zCVVU1MhC`X!K&RCE%XDYuHDPL_C!n1%jXkT`G2w?aAKK!oq`YF=TGg;W6wBk*dacw zj=CaqmW7|~y4=NPO~#Lq*Xp3Nj+d0vUw2jTZx|^&fQ>Y>E1f;g@aI-5JbG()5$dWC z99EUTm;Es;@H8tD+6P()dmsM#bjKf3qC&)-0O!CHhCNq%Ut$h%@iYv z=;m~;VWEe^e7^DD4{*3q^f=m!?dCr5Qxz8>Nc26PY#+;T7x1oP`8*xp;g&Xh&_^7= zS&m?+2Xnw~)OIl9$h zAC?e_U>m8w3J}bknK2!eE!O|Iam!)dAzsPZdO2-PduNr3uD72%n!b~GnX|(B&8&J# zOhRhRsx+8Se^7uR(lrEY>F~3OTaSv=mi96UMQP5P1;(V9=<}$NoffU+O0S_I5fh2~ zxw+}pNUi1SLzw2>{{1(269eLE)>U)2O9Od8S#NFRspG~-L^;|FCj|Y!=q&5)t1fv3 zL$ZV4FbePG78F=sr<;|Eis-bpv@DngXfB+V<8`{5VEgT3GQw|mzNvTvT89Kn_90{G zRgiP<+Il4S)?Q099xUx?v-kurO=tXX z)WLlc2&Z3GF`<9=0Rv5-xR^9?e2kBxyFbN#=IG#fTNiQgBD}=J^Il?nv6s^Fc@0?q zf_f$lFGW;#aYtCtbYShxCvu~$S6eTo-ZWo#*r_x z@><0g#q6|U^{;DW_Zb>NEafnaX<3U@HtY6Fc zjP+9z6>Pj7QpZ6p9}?KTuF)X&V`U(F|IBJf4=f%u!YsqSI4}t!i9!oU37|zenpQ)* z^EQ`#GZMd#F#B$1xjdq0A}$vT5V^ncwa$$~G4T5SEW~Lkc-nn2+^OxBPUldb5^DxB zsAjXm(>fyq^-2J%lY_6X#DeDKc&1pJuVE=(q>h7AIav+d5)NcpEC{!i=u4HuO9t#MCCEN(GFBxs?yf z+W8BhXdO4bDAhL15~qg$MB;&MC%SSfwnE@uf38P51r|s6!Zk2WST@UB{Oivdc8oYs zLJrZ7b-(J~6}EUM69m3)ll74m=3jCKG0cemY^V{qN66}S%(Q0Z5Ep$585=OBA!umI zB9^dvLsEcIPVAb~sFH#CELIvxW-ANNOb(_;(~9>dDAf>Wz7^Y%K6oe2#f|u5&moUq zqy0;#JxJEu*^5Ydt)IMkuG`nFKB_5Jc6*mej#ndl9$B@Lr{tKZePPoeC{m^J9&YxXg>*?@%X5aIy06{F=p=l60B7*qyY1C0ZZs*OoS`u!l z%iTzzuBZy1v}swQu5t^UE%UW z-2+Fdy=^|v59z5W{+l4iIT8mUwhA|lId+njL*n^&-ZLPV%7?sZVSG1Te?aK2Xo(JA zq>wIDDG1Ff*a9`LwzD5!wCwIwDt`XD@%=Z>0gSaZkPDF-4fgQ4 z(v2EaqQYe-GOxwRFy4mYEfcG@!F9?-z6F!_SCA4U(wGaVvhS7@DQgeFNoPny(^bo6`&^|IkCY;`oZ6{%21_ltK4 z*?eru2}b=B6$LUu_`uC5z?V~N`>nGwACi<|e&7sYtYjRVsHA8hl6S?m;0()M+D*@^ zXnGc;pCH?v?d0pnXAu`rq{D@7(vL;~>LY`(v@G#;9v7G291k7tLgpXw2c;4Q?m=I3EJnE?w(wg zX_fBmT#@b*5rUEKO&T#YZz3tG3-=~xB^g`1Gj+xsZfly`F&Duk{UGCYoe!VSnGU^N zl4TW3;DDuHTY{Myi77L3vX5^K#tuxr$34xTH6JpNSF*VSgnmXONaF^TN1jQGhO>rn ze#!Q@Cv1kZ_VI&Ii+uJ+ zKpddZ1*b@2m)^H1Cr$UK-Bzc!K}v;Jp6TL&GmfedR+SW%2e@Nm$^vy)HF)zM!w+EI zNs^aXUXz*VfIr#}usV3T93kon)P51mMh*@;y0@5`*R^o<3KDV?uk$3}R(r%5_OH(i zsj@{plFGvmtL!kW-$-70lO1!BW8i4^CXC~|$UBCpr9G4)vlf@8uZ+$@1xSJU19wEx zV6B}v^GEH`&U(x7?(X>N59+E)isNy_(H++0MC%>if&Rz!$Gfe%H-|Y9+NX^IX~#Rq zyIM1r-u)3uN3VQ59UK=>BI%o+YxP$zmgl+_!CDv7!XS#nK#aFk>3s6o@xDo1 zdP&o!HG}4mC$tzl=!;5`TM1l0zHd7QqiJzT;|5kvIOX=DuMY1 zqhfPcECr{>-^r0)`4L|yQC-j0=+e0&(fv2*x!XVHZZz3s_*a8tT^R?GKKaK?##!(` zu}6-R-ouH~SR$i(!{H}VOO%a6mNwTUe)na1xJQ|KtNGz#q!f?MSka(cclT4E`Y53a zxWL097!{p-SV1=!61Jv(#peClna=X11C_8*VUP@QH~Sy&F#L!o`e9~MXG@wR=Wf+Z zP@3SIuf~ux#OF1i%B!iwkvqrbZC)R|&ePo+cFz)7~>&*6iBHJ81CTILvLZ&v3c?LU8L< zvb`cOxZbm#w%a^UuNY~!R6u~168 zcLJsl{wjWpne1rihSd4XGMsja!}F7U|4`c!rn9C-Lnc}|WMm{RX6$F+hcQSub!V={ z1eikfrImO;-Iu!}9@NWST|0J%$}eOx zT(RW+c;8=8C?bo4byC#rU9_d%@LU4_b6cR(*lSIALxiIS{YDxWWi5Bq*d|kTSh2>k zl#YcYlzA_^R4a5kI=XW?JN{0RVLr>L?Alb7$y=q;D0I^(w@0V+Jh2P>UhAH|GH z<_O%@!1mith{#(#-f?>HX*RrxGQ6y+!jb4Tos!FRqx8EDc0XOu{(YV|WdYM>D%K@b z1UFkch7J+nm)symEjG)}n{zMG1)bz5c5wd|grzUZM#<6;cVa`b*M}ixrZ>!t+>{$>lUAG>$Jby#JBM{TK@zCxj ztiaFbJX%v?Bb7(z#;oSPXE}W_)YV!RGe^ieF~#mBekmQ;Xu`eLMyXiQEcn*Xz>VmU z5e;3tq3De?c@jOmhwc@mwhR}0EfJr}nKGI4Fk#mgZY_cIUW;TfJ_ab}4RSB zEY3?pRv&Dl##Zw9YVQM-a#U7?OZ6qlq68GT5p;^X;OX|1@IgA*BXA=(ul1C6A@JbU z#PA$+49W+8iPKGrIZ3%^#nKQTz277};jTtZM1=dLVuX4Iq`J-jI@YwmDZqfGE3W{3Ku^49s$~Fn1-54pb+;n=q*Up-=OwS#JetzN7nkIg-(XZ&v50lp zc5*55QT6i2=3Azmi5ZHU+@l*ru1!J)K4 z0ExfMy`3}+c+6?Y&YYQ#OM540U<*Xpy}=KKWVdZjUKp*JF&F1HOy+QXf2V-Tl|2$n zS{|C3;|2QU*z2XaSns2-6sn6y4h9Waqcv;M&l)gnQH4mmj~REet|;Hbq4V|N3USP5 z^ztIEl^+Sh$(=Mex1yd~Hg-mLB80Ag${xxKP z-=uhevZra%>qBne9R(xFB|aATwKo+UA;vjA2O`DVYk~ln#Hy%aW3Ntvul1G0Tw=09 zh&^?j@b%4eFKrbBN~0bxVkwLX0Wjqwef7b<9}d%K{2A?y)X?#I^pSh-i-ZS|5+jca z4{lXYHP0_Dd9F=skhHz_op1&@LF%7pX5;Oq;S4Ibq`W1)d(-k-I^6|Ir+Rfgc|cydy27Fl#Mat zkgmf_{?tU?`H*DIQ2JFkL`uwDYVoi8^{0lq4n8WgJU?QwBLBA5i`cn|hiiDN*_Qo%>Y+8+eYh zQBOVs#URl$PKNuQ3;tZ4U?ZC)C=XY0!y)Whm7MQLmfGj_K@gp{bf$Q;2}Q&{F~yoqV&#F z#8&<7J9YRZOW*z}M*EW{`TKy=&~p_}`?aY*SU{NpZ%BM;@9}*Cl>&t&FWFf{TXk~) zmXINFx&9}i6Y=3{gA1_7}mV!IIt=vW{t=4_>Zp6&ZmRCg`xw~dZi7WS?c#2EuoxAI?^?XF9y92}u zcT0~2#VyZ{1tXM@Qw~!G=c~d#T6g?)4aPZ6@(uD;`3~&Fl1#lBJ2pm@9!d*QEtP91 zIFE^T7>PS|2Sj$R8bXZQ_b!u<18{_Uykz(hOP)#D{8gmt4}0JhL7Y501Lu#$J#=G7hZvNS;65V!wsS;o$BdbnCOmi53bk z=cee(KI4KVm=}eOvxN2zsQSL!*0Q~;YNb4%qpSkjLrgXCGFufxekC4SutF*ddgj0J zG$jms7c{Y$5Q)kBlb?`uKJAOec4>H1Rfr`CYNcC3HG7}<4OEznj&DSMTo2?=3Bx0S zZiCPnv|tYln5sz+4(pkB4s!XOvyfv*-Rx2SC;xr!ziHP$$m;5W!x;$F@b2R;wf*5^ zcn8B-pm60d2?u>j?k^hPWW~`#=qKCL+s4Q>_Qxr$Kyvffh`Pxm`1<%w;t5!x%c=Kl z(9mq40G-9c=oO3Z88PlcQz6CbBPxp?O4fo+n4ewT(kI`$e9yU%VycB@KY=e`oQM*? zh#ip{Tq0tf(bP@Y2p~>t^^1oIndXYplZ_ZPc3UoqGVP_`+rO36fCE-cW!LWTwMBlO}=q8JW10rFB`eI;SJy|uw#DufgMl_HDzkXCB_7LE1aOG+9R6>z{s@xvteQ+5bCLrx553j$CYhJF2Ds_?v%Q$ys2x1+Li z#y5H;Tbl%(j6`8%69aN8(t-EmNrRrn-GUNIc)zEx`s4Z*XARrqkVDPV zoCKpDTOR~1st{#eve;Cfx+B&Z?!qj-5>>cXh>FhJcQt*q&PYCZ0 zefITUAGM5#OdqkdIAoL+3_L3;keTbQxWzCx&JB zXbAqby;qw`L6UiP``54h9s&Dnu^3r87|Z#(bX7qoC`ZC+sne6-e(>2-`sS0RY4uYy zp>P4i#MyIVjQ#Tx*oz}o+HSArg%gF18w17ZpZ&2#Sr|GI>p{%iJG@!2ex%Y%dg)qZ zngY_sev-Sx8H}?YN>aYp&!P}$ z0^NF>_bnNMw2`h`&y2?p_H~bp>L*2S{*tA?LgkXv`$df-c=s7H zoIfRbjO5eikI$|YpI8~3FIzV(#b}>nF9x6}IWo$RQ>$O2_h#NtH3-Pt6U}(vk?`Ei zM=zV|^Dr}UzLid9)?LKtvChGW_T314G(qm86f-&4k9{-ANoSI zp7H>s>2p%i5vtqD8Sc9c0;vuOAr6X&7M9na>rU9<8MQ&ELGg-9dx0J_(5HN@6*U7; z3>l2OUR~ASxA*Fa-z>?Cl%#TDp6(~Vg>0E5Sn62r+b!pMSzlw1EV(H9(iA^vt0lIm zOo{^bnrV=6e0xFdlCRyJ8(!N|h@L^AZk95AEc4m@X2|2SY5CLR{Za+qzUu|io;k{4 zGJ}Rdvx6p}Z{|YZ;W5KAI*3I3=E7Gl({KLAGJZ=ynHbjP+ZM6ye#NU58r@NsMz6l1 z$2`qfNm-FD2aTmj56Jq~NCI;b&?7HS7f~iDjX5jEAMP{2uZP+*K{GdSvx8tJ%6$XE zY0W6ozZ%*jgN@acm7AF5=S1$M_}AF% z-P8Ja%jOZA|_YVhDOQXwd^^0RQilqW{|>wm!~;6%W3rO@)vjg6 z;#l*dL2b`ptblq83JQ9_=?qfdkiPyE%xR^C1jU_^%k!PpB$A7zUis7XEjJV_%5r#m zx{L%7ORZxBsv_u3+eXffCN;T=&3G)0q01r3GUqqeKuFW%z{#Vgevf8AqYj-x#z-?G zBO=zlW-ZoP|3gFmJ|0zal1#Vf9}9nJPnU3L!0I3%Bq_4N^q6q8Or&c7id{9e^J^9A z5)}^YSayeJmygR*w~Ii~s>9swL6!IF3$e5y7o@|oR}bT$k!fZ&4qT5Bp4KrWbuZn* zV!VJC;cjq>9z-n5zN=%(mw-gRr(17A-S_m^^0Hq&G`@_h6Z)?s^D`zR$vo1uX`r}z zN!QU2)DD)3e965c95Dd-vcKvlDV*q$zcRkKxM(^0QBch(odNcg&1?C%AKkmOwRZN( zlgp_3`)+DFO5WbSu-Yd{=cGs)0o=qlIQpMq+j_H7X-JW@bcVUa%hfkJc@E(Y$|?J9 z!uHNqDt!YV)TcRaI;V8F5CfQ|9=YhoB>O&?#%?`afXjtIRrbp_k#kKd~e4FkQ!m@b0M{YLBLL z;v3Ik_*#E-n&g+YaXip>(?d1W0GHWoI~VCvtVVUtv?7Y+Pd-vx7VFR5T`OL*ktunn@N=ogWvU%D+-HhETtl0CM6^W0`=wzR z+j7hj-%TlkqAiicu}jIj{*#iZ-2S_j{X`{+vx(=2qG!R0*fVX$Kc6E9r+L#mDn?K* z;wMjQFFYy5bew-$h@#-erA)Ie>J!yrht2{$g=bZzQ;}9aEf=mcEhSTPQga)Zby4S? zb8X~W97`IE5vq1-a}Y=K2Gq9_^d`Civh~H5zD8n>wi4=2Klk(97bbYxIEDl~E9L0i zb9EN{-~aYN5*8M^-ckyRlr9ghm$UUDKGye0l-B<_LR73(^?Kgj*uVAgXt8jm zrorUw(A_9;<+8k(e%P?%P(P?a?W~5-&Vioctep%MynTw&x28+p>8R12?6H}v-KIQi z7oD7o+$!g;LeMw9b8eL^|EZagGxl+eb-iH(70hS)9%YSyFK_JIl^%#EKDpbtO=)h_ z?OK&+vf+~MN*jZ3f<*M-4~Ha`ySQ6x!Ous=(BE3y(L=p2FK7GWjZqqDr$)tXZAT4M z>AWNRkU&=l@41cgv42P3e=Vp>KA@fWrydpmwimd}ETLuGE7A@;<%kmi&wV)n%_b|! zEc(M%S5>fK+vxLi8qwCX)2?DG5eJ%{@23s4OGIr0Lxa*nnk^RJZsXpqDu%s&lRj?x zoKER(rM-il*U6l-oewNhNAhFGi0e$w#lf4J@grodJ#Xd3!AXSCrpK0fO^dOuDB+e) z&s$e+O6$lmH=W}m&KF1}umfYtJ1o&x9R`uv~DFOy<2WZfwxhSipN%194Kk7%f# ziZ-1zY~OSkLG>MNob*>qj^FR&TbJbWidZ@6fAX^dF;=d(1NSVlxjc0u908lW@__Yx zLGm2XZn^5$p~uFQB;;s~A|*^t`Yt9nMm-VgdVNQUr?dy2l+F>(qtCJ`)@yFpNU$l~ z?%!}dv541QKpfJe%+HbrS(s_(>KskqW=-axV31@0ZEhU2CyDew{2y8h>IP`3#+N2Iv(#LTa)RK6Je*ga6A|!rxwU1Gv=Fv-I|C!Y!OBm|ld)#s;(6dry=-lP2f}-|b*1Wz}SA#q>H1eBJicYdl!ZoL}JYXw0jQ1h1O%&=cHdm4z7k3-~|7)mLd zBH9nXmGbmmY}7QA?8G}Sh3_v5rH^}=8XY;{AK$T_J|~+S1a->E$tfZCLH&!Q zU#mO7%`N37p2$U!jH!MH2SJwqR=6)EF)>e1T$<#5iDCkj5v!WIWE2B&2#r+dfmh4= z&TfX#BL)HFqZCa4wNb86$A7s{lmCao>pLZI((gCNDV@Irsfe_>8i2S9phS&}`xHo1 zx{S8t>q1}mk0Zw9(9lR!pE1hO5W@XG_o4;Zi?gYLTUR&-N(mZySyBSF{kWewo|Tm& zY=g4~fCqDtBT%djp!S_0%pyB^KOiNn+!6E=$@HE-K095Is?K`u_gMipl~tyc$&ymQ zSxx)?WMSe|=1E%E4@h$&fDh79q;VaVeD<$GPyqHr^e^sD^+-ybWWCb(A8YCdGeV_q zMATlLj_)VUYciclm+q?sKg+q=Q^tJRcn0DjRl0#{=DP2MbsM3~6)urfmhA4us- zKW7kgDKtFum^+&#(?5j!POaHdVLDbluq#z9-Dw*s^=4S4UesubC5;%*nlPQY-Ul{} zyjU+JqjZ)$Bm1l4e__7g_haDX${;#`f1RBl{mtM3o-ef)FDMa4U=9aK>ltSF?1J@8#-_CPq&=IH`tQ;vv)Mq*;lCLLwwVeP{qZ3~b!0rXOhD zI*R_gA<>5QQ+iBioCHBgsl-4d+6npL70%DWuaYI4U%KkrzfqKeGsA2mja#N_9e5v@ zi|A>qGEOoBJR`v5Cdy%809h|vE!>0JPexq6N*XkhQ3HUzG`-Z!@K8vh@7 zZr&D<+zEQ)UoNiSEy@>o&ZJ|bKPvE6T#afw#3DjmxdjJ4mTusVc&(q6BY^nOp&c*# z;d}FuBZ@nX39cp1BS(wh>hiS;RO6vFdfJdkIh=LUS=myQnAxlSW9PISJ?&x}37)ZC zZ|S?fXDkJF5+Nq*&&JgaFL=jKWu&(q6rH)a5&YM;6gc(LZ+4*j2N zS|$X5K%1O2qhCIOiysu&=qD-9=Ia4v)o4eD2}AQmK3fMDNsN;rd`;cY+;z2O86|B7 zg-Drw0G3F3fLB*%_h&i7S$UPm(e{Z3mUg~Sk57Vyh;hdF!CuA;)h`+Ue+RuP0L1wU zs)J8|t;mlbtB<7gq>0j(IXB$q?GMNoG~BC?2G_c5c9UqDaC~-cTz#gaqht7LVq2BX zcnKQlZOF%`chAIG9i+dn`TEWO`}p5Nj^G&Zh}AuO&Q;I$%M1O5; zd@HC&;8Tfh$7D-TAhU!)Bmzy3Gz_iW|^qB zfAB+sF;u+~osZ(W-vowcq^GL_l$t*9y)Jeohkc+>rhwP;JK@^qKuS*HYJ@uzC*FWaR>xNyp)`xT@5e>xCaa1AsdUTr=S`e!T3USm}sorLl>zXPW5M3C>N z%Vo}vkL!$KV`G~iAA$yf)7QdTeTcqg%UE!Q+y7ejzfYb%0;HJh%O=a8FY@cB2*!}0 z2P!~cz~}w&yU$U(VhNx@OACvk5+K-qZyP9DzcU4RKQsB(zwOe0is`2|Lco!m?Ir#F zd7tLV5Ni++}5Ska|>w1bTLc)7)m0R8vJXX2&eH z6pjBoegNR6KHwwm?Im3QI(CNnP@MU}Mo(+&JCBfi?CI{z#U?G@pD`p}AHJixAT&9C z2w#6+(4B<4nmB<${P(Z^{g^XzfIXxerM>f46YA>ufso+aQm;03PuF!?^x^L^xX2^7 zz+mv&gk^>bFecF?iSokmtYq_v2+jXLk>AE%7Pu$^5sH6-wo4wAu2}*eH|IKT#2M(2 zk(4Bgs+O5=c1HCN5nce(9?hkgPDSgRemSK7UuF^s0MuIa`ElZ3nR$#w>M7?dDJrT5 zkGqPP5D^on*B*n$!Df-L0R}JhV1+}#`meyje_1{BYXB2a>JJM3RzUQ(RyQ^_2LF$+ zYmaMr|NkUJsF08rI&P(sRJyDpwe9y_bPnh2`}qCik=ov$&--=1JYVm(67^9HFh7TxGIsuXqTi(+sqS2b z@s5g*SAn(yF+Z^>?)K4}!rpBWx@MhZqFsDK@{ckY+F|{^12dET!OlTL-;(F@sv#x- z?`pVNR#pkxsOs4&*6Ty-3mHGM*iX5) zT#DB5=VX|tHG+#OZEiLYiTL#1L8%DW_S|hfC_b0+e!2YK{*oBE^GQ;1^D+MK!VN-r z;A2&_GemyAZOYnxL7X#x;@-xRk3tU3?Mb)S6 z+x2zD$h1X#op8E(h5)+icK)fnP!2TNc?ywGJx-H=GEc$5X{Jr3UepaO96d#;ZHO&p zfbUE;0i`de=bPJX8i>1U`bwxBJO3w;qZ8w1KW&M%rQue@Lng7pMwbFK#DTuVBMz`5)_Dvc06nxJ{sset9Xn zy)UeHVBNZP6mV&q61E|E7du6ic-kz8{wJ)G@>+u9mH>okn zDCEqe&51pkPlOXxK!BnR=63%O^hmB;Wp;v|-&^KJ%$1QMOD%bl&QXs3d?7LwT%^7W z3WkGsJi;J_2JYa{LG*iQ>rvBmqTQWo9*?))BMqoZ(yAqV9t&>( zPMmMq6MP#OOQd#{!M}{o4^unZ$!kzMCK z+I~9TSS(upvDMgs}oUm z1Lp@n#0D*RvETff38+=uZ9o2L!9=G>9dSzt6 z?Y}#M-kfOM00PN33VN7rZ3IdXF0-9^!2MNVWn>c$A@;Yr_*j2Gh22+-Tv<|_#H z4o^Oo)r#n)stqkBlyqW9BFjv<7-o*^)2eishfkfLce3F19F|l3yKeZY~Aw8Vr*RGMyB4U z6;*`01Ij;jdVwzUv~PVBxCmKypiq2=5JC9K9RYdK4B)v5X#-GUi~Pb|OLbuBG@6=K zp8xikUq11ZS@pX>`kWBP`tcXEwDdj+)+o{pMg|h&DeQE)ClP<&ZpH+(U zus$ZG>9vo$qcBkhFRq~qbdVvxc+pRip`Uk`_n8abE&91AS%2x@r2R6^)))Qzf4}|! z`tPg$=JD0V&<5nH|Lzd{W~(7<({IB0&+h)&(a{RYF@3SWmk)OPAK&?bXlF-!dBSEiAXKr| z?6(guJdeB&=vRow{gHV-q6_ynK_Gf7S5^OWfxTxEk-p>8ZJ~Rs zTq3tt%&u(^YK{yEKw1&mf7(bc&`|j5V%84>7je%tZ&?W3|K{Moet-hKp_lCRIwW*g z|9seO4&}?D#H}`?jIQk;) zr_+149^I4%v-^5EtVDEiYh>WC~L#~X|K&M0ADCR+nml8PQj|1_1N=T8EaQaVOE^3T)%`JQJk*zjFhAHT0yyJF)-{|8%DPpu+}FY=2KVlB`b+rawk>PENEli859 zlDw%0>zp?Hua$p%_4l|JkRswx#p9JVftkmDFzI7lE8Kx%N19u7 z2qoG-pKQ4v_-)4J5TU*->jdP~L=q$E30hrKV zc1+&9*dx)$)I4LiFv`{J1{^W?JjlBpPT zYAWji)$^&4&jKB3*aW1n{`&I5pXA*jc@R0v6tQv^=6&W(4`@o+K`c@hOwVuT^cTAS zUWa484cyj+DDkopUIEkrkxwt%`Bm`zOJ1rIE0E|=Ic2AAN%t2 zUwG@a*Cm=|I;%DR2N846g3qV?b#~1Uj^_@Fz<;T1{VE26?eyt^Pc!;_f0mssZ9w>K zQJ*mN^@8s2pwXW+k5k&$UUJS{{l~)-Wkk2XaF%ccEnQ?%{IFL-NlA&je@}7rM>TOd z3t}r3a{&nEn~<^qEvfj`3kp}G90!pN*m@1K6E zVB9FU3h}_ceW%tupylW1Q<^i(DT800QTjvV&7}S^z78>Yqvg{50ypv4^%X$mP1=f% z)dfPs@Kdc;O`u9)LT3&mQY85c;!|NVL(9-=oFFn-@Vpj7j+SEukpL zvyYcjQezqi2d}PZQdp0%9k#c(zv1cW8SsL2P{kI-OqMsrPg&v59cGF(+9Q}3@q8Yq zNrKxT5xzfp!<3#(_ETv6uD+c?42rMNZb_lQO)4qVbmoPqV&%#s>2jEfiHWtrcsi19 zf-&IvmX4KD8=ITYQcP`G4CKU|+(ge_fuMZ`A z-Ps~EXE*i^MYK>N_XuKVoTj<`yeu?Gi%2~(wuC_IS+p*TU@Oe!E~kwFNul=#22MvF zR1sl|wMc9^_+;nKoo8wjAQITL*MI#Fvtk`)$RFA=YWY*XD@sJS&xQ4O!9evN9!3Pm zj5yRYcsvtMg8c37iGk`SCtF5zqb~G=CpMLkf|}^+338jb7WOX_I?tm-mZ%C%wH-_9 zd-#(_J2s@FZ`ImCF3+}D*x86o)o7bCujBiJWzPgrr0T6A%qr@{OdK=*5T2^UkvuEPIn|F1XoWsnNShLeRT)X&vE@3_#2+x*t7Ac^xdz7^$r?S|X&JZJl%4g7|RHCY85bEfsTf&$xSXUebKQe}S z3l*KsXt8$+1vSKaV{M!LFE7wta|0xX{i+63o!=Z`FV0|AM`O3hMmdg1s*MPzrO=?c}fu zU3i#rAOwTtOo#Wk+xt#?EbY&O9-bEK23mV6I1sac6|r}Z@@vRXWB2>IWGD!J=!F?d zKRl`24j@}%IHy1ySk4oi%M{VyL6A-~CQO08f65DvKR9wM*p;4s{@f;EiY3Mr!0oiU zTF%YeZ*+)5|TetQK3eyz-%HV2*hldAcmYM?t9ge+=;j4%chd3oqdV1)2;R{NV zK`js7rV+JrUi#5v>(W8hauEiM2*}TZYedg5kAN<9z|pOcZERp5JAv4ij%2GC)w}h&3qG%E`;C zRu;Q<71fQ?l*U)+5U(#%a)YM{6;@Hgi!f%Y zU`|1UZ@Q{X=)hlB&yfTzaA>PNo*d&Y^3(E+s}#Ht}d&ryIS*l&$kU2P9lQ#%cY3NH65xM7Tgz!fRk&H>UwvwA}dK}zv5 z>gT$xSael7klUoPasSKaR>Ev4 zfHqS=4dfpy-X|g=zLYEg#Q?BYF6~>5zrVkp4T4rE=^uf7N2!pNDda1=BFwC z3uN|@kIww87gbyly|R(@f}nTjN0TTb8#g=RP6p*Q07thj<;_x?K=Zmr{~Jdy?AsEg zT4^K>)^7Ftl0R9L+Y0gwC+@nw*`E$vyxEpK-xi9HL=xhmH-Jx}04U%M)>u!9F?>}I z1S8g^U|762Cs1~MM4JUgm|}wFBmS6=v2Ml>csqFydSfOO9?|wh&|RlgpqEg_`ztBI zvM$Hf-XKIrD=RB^7|M*Ppcqv2FU7gv;vGX0s5#y-4QBzm(QcCM0XYnTIiLb^Tp2q&HqR z*R7DQYSd3#@Gp?{KH0+)6aGmRB_%LrrzGbo?6j8$F;v?)KX&-`RQ@_=wzMs6Bb&f=d+t@R#0n)rCon)6DJFHJqbWEa6&5lgu!JsfCuHkl( zuw*k=Qy`@IJvQ^9n`fe-df#h;(-X@!(ra&zgki?88mY6lo8(W3sn$x+!f3Zm59?3p zO}~c5QFXF)hoP8DT>r{q)#)uX(wiI^kGU(;8AHkiE)b%BZ?{hpP2AZD(gc1iX3tr3 z4ivYM>IT0172+qVWSc0Q|AU*z=_`L#uh)&{<}{Zm8QdkJn90o+2!J@ z&fm_3Q6KFC?KiRd%0G%eQ46o+UVr1zn^#(We394LK=QqSsTPY!sl}j^dZEZzcgmd; zR9T{rpbc#M)z^{_f7IU438A+!su`9WJjU*Q%^WJg zw<&6bZ({-!&>8<;L2SON$CfJn-mlieE~G7I8(cZR^)=2V-d=4g%PW28V`+R@gkLst zM9qso9N=Yz*i;yh7v}W9*t%EL4g`P_OvTz&kFOg?^ zHs7>ue7~mj7JBo}>QbZ_cV<Hc;L5PvIRIukDZp`2{2-V8YBl7jo8Nu9J=K05X?4h9#a>m-{5SoM&}^<(?AD@B z9C54+UG-Xq!$+KWxH-{|jQ#YSh$9>xvi_<)qE^`3l7S2J;uO^sKHN`z+u*f#7+XrX z(kdR8Y|A=KS5B>+Ms84a)Fzy+$)36%kLP0B(_E}-1N=y>E?%ToH+CJ}QIw)~_(;&m zH(jp4pA5&is!%ubu(6Z1am%OPz5ON>Kj3)}1b9l(f9?=i$ix`Ymu)whTQNhxz0K$1 ztX_mGe3p`CauC8eUfs~3u@|MikD%r^)_?I#msq1YM1{k=)vG!TO{nRzTQl|Y7H|qC zdnAc?UZi}+RC(++++9Z;YC*^?cLQ39!LePI}MJ!_F(_$gXa2;_tS+X)|zay)TKfB*h7y%_GW`_?uKk<#-r zB(blg;mLj9Jj{3OrPF0kF5y<*xbBAByybrN@ijxsCnuz8i^DG1m#ahq=-kJ2iL8nm69!}Du_>3e9rio%<1!|V5e zgH9dZu}V=~=iN(ZLWJp67|29?ZZ)OP7mYoi8PdEUmAVGg?e-J_X6K=Hz5V@Zv3mOl z$SV)}^mg^Lr%tY*Zoe>UNJ{ zAR2LW>*0xxcMo=FJ+Sc1PwT&%DDa_TNd31@P(GWA3{B>8Z` zv5@;Yo=PV%{qty5kpDK(iizvi1+kIzm< z;$z23Nbzg`YGFSi4PRrV6av>P)mCvE{E?(olCM+dy(SQo zm523`rBd;;Ejebc0gRZY`Z!&aqzT!rM+^p>j{Y|aN?Zb*sa*T+%=rkZXWJ=6T(wTH z6Tdl4KYWe6er#1$)d@pQ;(%VT4I!z6IqJKjLla{Y?(K@-L2Gw6-E4(dmRQ|W+FKIq zW^CEJa!6q;drxmvnwR+-nf#Cab@n6FgGKtTu`kzmbmMOwtTqsrBL<8f<{Y_A8nxXguWN&1aY+_7cD9terOrNr zs&ig2c|$6VzqdD9WojnBHS5DH$Adn3P~YHtz>8<=jGOwCVX2O`bH{Yt=O*Uj;_8}| z9}UxyD0Y~!l-G3@0E(u*iyD@r`x-|nATM1?e01zI(SYh{`!gu~Er!h<0q*&ntBAC~ zCZb)|r}wh~!tbja?Hj}Y`t|fxZIH@$#wV;pZerNalYK^}>$G0I&VHxtOnhs=(wA4! zc7HU|yQ+5TB&`Z|SBF(<$niOF?7@B8k*216%6Q&gN?%e=ijgs7_o3PGzTn!Yh*xQ? zpVvvffWcsqmwQ~xXhqDTVyv=r_q)6x@&u9uBKl z9dA~6;tYYtz^hJ;a`%u1*ocJ5+%Z^MbwWw9D22;4a)@V=qaYk(SH=vur_y^b@Nuf# z3W+(xC7Y_rl|iKTp-U2IL2k0OIZjDF3Fk`MuVP;g@HJ5hB09cH%z(*KGcltpjHbx?uEd>mj0QzrjA#!MB)|3e^9~U`0xuxxeJ|I z!`MQIt*z9|foa)rv6Qbi#HW?h8#^z!^_tS&WQ(d8Z^fK`N>9l!DoSIHiepkk;%9ty zH2e;-juCy&--l?m#Oiou29X8f>@ZB}NJ84UkYu-Eca&D5Hwlb%x)vx< zH!}P|g`D63F?x&FBeI*B69qRa!zsGi2-nWi+s2Tu+U^A#J3De~dm39u{=AeSdJ)=a zzIpR#jZuj_jAbyroWhQToK(0Q$pW-E=o<% zkFH_DW*N{eQlNnrR+cYl%?Ku#o&Y4RJWPJJA>>4^S8FaUL)CORp2YFN@9FXHliRU7 zbXyl^HptGVp*-_A06|0_Vka-BA1C^cNO%yK-~7jLY;f*{M?!S;34^&xgIL?COp6uY zEM7SXgCbUZ5aE5m=Z0np2#{MPsQV59r(`0}pQ$#%FvJL?;gMV#S6j~@BD;q*?OCHi zSHw2oBRS0(4NR`syH!%Fxwh`8EAx4F*~nwcFc-Dmln}cYQPdk#qeWcxY6i(}uhx%< z_n-VSiCCLdDs=zh0$5&o$vn8;Fhsn$Z)9d-fbuM1?y3%Ol$$qg+Jilu+;%<4_L+Hg zqZg+)%B7Rvs+W9QadA{UNv=0H)A&-j=oK@@#(L=f2`3iP5#EB9uiZBL;7rU+&wW{M za0Gf2lj&J@s)X zfCCa;JSZjjHSr8Qyh=^#$pt_*Hx=~emxMt{Zbffb<6{dXD*CIr;m2v;kK_&1wj3D2 zfbT!cOf!fBImwCB6PzmxV836@$E6`q*HLn$otziMei5m&M_~i0 z#>e$fiR361;dBUoy!ttvA*6l1N55Z)R@R6VSqwdC^%P}y0>)G#zR2!HB1*RH3b4B3 z89Kv#K#b*#m8tfC6lAFQcwn!TY1-P~+|zuO-APcW58m80-y*DFFCA&1snOXa13vqJ zo}T}3;CWwtsE6X?$75zWxasAMhNxPnE&V0@=kazeWujsSmTo_ilQd(>A;x>(DxsW& zf%6vZvzbj`3S?nIX8&`w(tSkt=m0(hN*N7b)%X;XkQYyiOs0YE&UdY=*Su9QH}m%N zxYr@}A0I=;U&L!qbgg3~8BBa!N9je-mGP!oL z!=C#QmM>pUSe4hkxfJO>YzfRyQ33s-)#R2>Z1-Bf-U;W-JE8zK97I-6Ym&CgF$I+kR68f8gTAUy=lsnLRaHz3v9~Za2kx%OJef{z-~)LbV<`5xpq!f zf!BbBUr^}8+LzU?rrot304>dI$qCRfH8YDK?l3A*4KJNPDCIZai;C?PAOhMyouAJP z6+}RN5d!9SPJl5hzQ3=nDoT@J;y-YXe!^Z>la$!gKx_FFy$GEmmCi`Yk%j!JWy`I9 zq45&nmSNwE1-_MnUJjX0aCfawRDE1_M!?X2Juwz!#{nvvy5=1bX=yZ;AP*)%!6mG4 z|N5h<3_XL1=Grd>PSn>;@p4+l!7go#a+1M1l_wQ9#R`Uv4B~)*@3-;#i1%RF!_PY1_hgzQxObklz$-3wiY)6%=+ey8+R9uQDs4Cm^C(6U*Od=w&m*3`{y1Q zPeCyVOoQz5B@9%HS&)1-jpWM9JG9kOu%W6&Ti2p~YzrFy>O6~`d zG+0`JPqp%m%2Flw>-rateY{W1eERh1q?NS7wU1X+n9?pA)BYQ%{thP2G^8Q*H8jHG zeZN2OoST_g?~zbFO)am0<@W5kVtJ+aYk0jinj7Q5-qux!I<88?Een z(E)W`sY<&+^LQ17s~_)gQhSb=^FErca>TB_^_1p+^0|tOAScafiSX$W$bO|@u&u&Qym6&19RJn2C7vRp=Z&}e942T@bjP+nzV+o0`(!|i-G@o? zJzl##CMDSz6Y;QxnAMVzGVlKXB|2nNpr5WquU`v#QD_gbBYo>VRuF1yUu|5;7HFrD zk&z=jft5yynkcYmOx<9#$M0wPK@2(s!Xv%zzAf3KL%R& zIBd(GFaxe9TP`#PEnJAQfDqk)h9CPWM4;Ndk`3l4cLYVtzl8d5^x}ry2?VRgKG3H> z8=2_i8=470_pZC|*I++5-P7gr6_9eZe*VyQFr93C67*lxz+Iut!*uMl&(Z%{z}HH^ z0@$D&=R;=c4fi22-GjBs_$P`93k+FJ!%Rwa&9#)MMCP=flVGtoRTd-*6_Bx$}w=-$Vxv6bTMQ1 zcOPYl&}M4{@M8-zd1w{M^vdD{5SoJ-`uNzaKEY6)S+YV`Q`KsVS51E8!N#6^@$5gP zS4fi2p}WPQ{0+{Qcny$;JPWy<5Dog2AS{RS=NKuwN-uXK3b{5i|5b;Zz_eMI^!f>G z>7}Dfx9`pYJ_s%4KFc#WlXue7c)j(s(Q@W^)8@ z&g9$`1UE9%dPws6%5uF&oKu}eH&8s6lS3T%>{n9*sYJo-pPat`JAcPj1HI1~Lh7#o zqPohqw?FI$yst+=a+`TADu7A;wx2mMK0Y1=A*+c_T6gX*Qk^3C1v?I3^myq*2=@vw z&3D_pc|-|E%64|DXGe8(FU$9EIL zdX~@FsFu76^E54rY|^x@NidkSXZTP~@(s^UmP5%&Vb<|C+#Pu%dUHICRG@x1?V2h{ zEM?j9))Z4&Z?BU`M8sv|aIVJ><|BEV9A9sVa+7N94xqMZY)9el4qd z9{UuYE24&Fx0AyT>@VL#wA>%%diV>U0d)R+x4zs8|i)E5?Tl0(w&S`*TjTIV;DiIwC1bEdQO{8auYGOnEmQ zRh?jFFu9AE;DV}TrS$isx4a_tlI0{{7Q2WZr<54MQt&KHz+3BTA3OjH#q`dMS>x4h z8dZJ0ytlgD2AB!VD(B+@*)`b}e{#uPqmsa;3_KqHC{+#g8d^aE%VlLI-bu!1nNS>a z!}@*8;pUa|!6!hY0_Z{dz=H=5Ji)OqYxToJ>%O>%lI^KJulke3k|tYQkAH_c|q*Jyx6w^B?hPw3{{PeWpMDn(w1?`}@@~n=Vu!5~1l{<&AcQRAIxHp#jmZ1af`cQOg5w6j30)cCgRP)rl@H}-8bJ2>Jr_rRRM@~`+BG0X0KW{YnF*aHlsZ{W;d3_;h%&+xF}PW!OW27RJc}}9j}7$s(4Vl%C&^8;Wxu=!IdQW zEv-p;Wi3Jz$s)d*c|1ZeU)n5t@cVGWjB==y21sQ?gyx$y0_5_L><=iIj`dcNG~XkE z5Rb%actCa^`AZb3%{GA~=tdiQT%Egq_raG5z0HPSvDY1&n4T`lv3%@s3-Kwh9>xzn z^YlHs6&b*Sx;eVw{ZU4ql{VnKY+g(Dr_8kn*@|L=Fl*i%W|iylyGy8(KK(<9dI4=$ z&OR1vq|&<;&o=D&Z*5DA`5d$p(xRK@Cj%=E3l24SvS(P_MMb-)&Zt-bn(CImxO`w| z-CKRkUOgA<&&j7qm&)-$10LENV{6f~rfqmlEH%p@8iM?eI}?(Y;HMWd>fuM!>ka@n zs9J8nv={15on1Q|5|)1ic~d*3);ErLpHQn5QI*PO*!7j)RxTvD#ZnK~T;L>7Zf~j9 zTGGM@S3~(@vv=D|k>Y%=m&LOu>zjAjT16Ody&kfxtyqM)J|SFP%VSXW%<6`L{7b^p z+rG)AtNH`j!6)WJ#5FSMhwMbj>%I;71w1hHP7OLEWmY(8zzrq&Ma+D;_r0anpQ&w0 zmp^W$Nq=F$F)_9~-lT4R!)+gN&@Dbi`VZC+w_cRtIQ^JWH9oGc?y(~se+o7&w%tA< z>0*5p=41CQ)MiMj8*JtvindoiYIt;1DI^|4xY{kbZ{PSNNg1UlV||6#%Hy(+VQ^=> z_ZZk&T3f~1UrS9XYbb0PNVdI=bFZ3%`S;rCYmU4dM~3$|1VC>Ox1)UDowI$e5l5Bx zR?{kWSh4hFmiuj^y9(^$n@Es(#Tx{%Q6Cc6Cwq$xA4o||hmU)?xotHyGksN^ z;D0>;?`)Ox`Tf-KP2Z6L_Fd1&J8bUuMutI5LgG<6a?t53EBuOGI-X{?`#E$L+&)l@ z3M$W8Rp4}6>Vt#?E7FY(+!dvRB#~-gy(Y3)>sI^o?2_5kGlWtUM@JtP!nm!j-ZYf; z?OWb~(g33|N*uv&=fop`a*KzVnWhfxvQ?y9?>><0*VO9HFwC#rt*W1+pq(Bcs}mRR zH`c-Y-cOn=Zv$iCPp58BTjSWJMT4?yCfAGZ_^8k6{0`sV0NFfhvdhfum658yZX5m7 znzA&;ZL20}-RTsXRq?P9XR@f=)#`q4095vv*03Md*hEr3iCc-$kF`BGcdN6|!>-hw zURV;(-ErL2_AV)M*D0JZxNii%m|z%13| z>hSrDP;Ree(i!H%$Ho8$p{Wr$=dxx=h@I3HP1b~eiRjI~wuh}D!OPqYUo={b@jPco zunF}>C3t-(bKHi~$<6t?7;YE+mGMf;H6Xq4;kdtVy1`L59=J$zH*H!;5uuJ;v1x8SrrYBW6u?*n~T!EaX7skx|uvDnfNE4 zhUeeJ)f)}Hm?h9$eSP30D`I2_7G>9ob+XGgs@d~_@gB_^)r`UUR_|(}qnK??DE>#+ z=E|?L5ivL=?hJ=l%;eJN^8Ck?9fQAOWW_F$!eq^Ob*LE*rI_D^SK;u#8t^Nb*~LiL z*=cp~_Om^x7~nZkuDEji3=j3>G2glq>){#=C77;cEcbnT9X;d!sc!XMaMash-Pw*~ zpLS~*e{{X5H$sn=O2th?Ff$V%6}XeL9UrcZSyOg1suEbNy$X_#}z6xUQVN{eEZrbnQ69`*jQp z&LILJv`yG}34Mm=>?ga~8j5)Wzu}G-Z-BsSTaQWLiSz&9e&o+Iv0o&y6H6eHl~0NM z3M@r+uFl{o!VgvEqVL50q-${AmfnT5fzNgr*TYq_w~riDyL~f&a}swW+1iG>mQ-B* ztm!e~`_p9A2z%-pjf(g>jz4n%9~Cf7LcPRIJ)DZfO-_I_IZD!a;Rt@nfoDsYi)258 z){&mWd)K*X0~mjV$Q@M*3tdh0CD$`O_=EM#>I62H>0!W;_kc|*owyIFAA-9d8d%3Z zhE}f`Z*bFrdn#J-!D^iGOzGbEa^Z8YjsKJ!SJ3ob%hYNKpVG-S55 ztuco`tUC0>XSW0!8lK8<8@5CBg)!Nxs6Un$BPnbdiHK7F@dTtEtqb8Wc3Bqs(r!!* z;(83$oz%^kJ3i(ILAwNz%Dl&51StQ=tP+YR;~_EK7NLo!qjf!U#!)Y(?bw;j8u_`X z{iAFQw*eM0sc=0En63{7b7ZY148J+cfg`P(U0)ez5EU><;GJAEPW-Etbh*ae zqCe{dFlotI12Qu{yF+TdZsd6MK&WiOFkgvY{-sQ+(RBJ(!SF)66_O8%N|^T0!8G z&o`S1~rQa{SXS?#p8PF`6+1uf+|u zD`820qIY{c=mbn&?<_;09`0k+6{GB;ip!DJ=kK>Gjt`*b?A(2Mh#Q;;=#H!WI6Lev z>`1B=!>ug~S4#J%N~CDv#^fjjK9iLyM(6VkW;3>I$3x}b%|`1L%-(wF*9MD?K8~ME z2*AZ&t8PW^&;z94usyq+dY>;DY$a{SoQTJL6sqo{uF#8<6LG~>__32Oo_49Gm>~N(-DxTqi(md+Q5+e}Zy2=^}bA_mg?6Tn& zzm2o4{Gd?3W_~wpj>bgzwa#N|HXR1xbc!@6vae>!2N_v2fiwn9oVBbSDn z>mZu)C+q?;yDj(adqOjVfab~|KT?180r4aq&Ph;wk7C|&ow}?VGV8cP^kv;ekLK!K zX$2?uXmsj!rt|7QmHK&9t&P3-^R%MhSlar$qQj=7wK?TSX;HvWYxs~x^}aD}e;vlL z`uM#yJ5D(hZbyFbT5cN?Z{WXA!YIIWwheHCQQk|8M8p^0d2bM(4&C)4d7iDOA^{#7^ZX@a?NOO3TEHRunMx48}<}2p;YtBfUzFm=V z`1Vko0qYE(F3*45Xu`dx086vu6epMzquOG=;?_O$@Y~3k+Xx)!^|S&n#`MyAUmZzX zaCA8?|^u1swX`hpS#N+T}M$a#$&sEC5f-IVzg4^ z+3yoh@R{;+=Qnrd=4o6s#O?X?wm{@tuLqldvEMJ>;UeilQSQIpk-$N@u|;^Le*Xl# z*MmupOY01KJx6VtW}_lqQx}R2<&mb5MeYbLqL{ zH@Np8tJI7#y=7n9P<#$bKW=kEEwp6$39>(-4R6^C{|-iYcJY|R&xfXB+{JoEkaB2m zs@jtf1kCRP@iSve@Za-ej`2~`V@nL*Qui`=T|F(@ zEaqVB0fjGr?KO!Qoaxv&AZA-3zR_~@-lx&dzMdh@t+yB2m*(%C{(dC)%a==c^KO6m z-0|13Z+{(2-lskNDn34}DJip*gh(()mb$iivVzu_pX1_FQ$LuJcrGn1`v^!v#*JyU zI^$6r1BO-64KBRQ?Q(P1zLM`Rw63>TBG2vAnteBrd8BpqVw)aEnqB#8_Cf5dv;lcT z=B1()kt3Pb4|t}!bg>rN#pwinR<%Bl6Xlj1=>1GDRiQeePz%dTJ3Ix>`}Oap<(;DF z{Z$WDb+Q`fq|ItatA1o0HNZb3{lU8VRl|9k_g76R!$pflCI9u0{l5*(V&StoN1%eTfry+C}G>OO=fwz*yhRk(w51ez7<5 z^4u1)_|K9j5Sjkd-Cr73v%jc^_{TEWm>^iBslpb>t2Em9H`2}`4?-M~7T)8K`js)K zRy!sA#VZ+_H!~<+7n@WX;GXnRNjc%gcdMR_ZqwEwnA5yRbOQ(Jj1%&Np4TJT5O1X2 zGh+XYe$Yq>q}%9t0B`PsF405h7BU9JJ#js(j@~7YA#jY@fzyX|HawYy+UY_J z%&U*UDQPR+jgJNErDv@Uucg&=j?!E?(kAE5cN+5tEoiMVwzp7IEPi!sPRA8jKL%=g z$bDN@{pEwMyk7A{>O zL!9cxW#{rThh%Ain1t-S<{ZzFF$zOuAvS( zRBGlInB6OOr_ii+#_u@0Zrc}XXSj2C%D?6Bhd5r^xmbi5b#-QoKtL0(impHSDWu9f ze*e9#nsSGk`x*M#QN!md)NxOgNUmqM?)(_4N2*hqM}jCOv_cq z(11#sE~YcocIG1Isl0E~6!x1sIJ7iR zsoDg=HXN=X+{2Z1eCr=CJDm=JVX|+ClEu;WLX|TjvtkgxLG|3?Fj)azE`1T(eI$pu zlJw<^k}mXPUD#?X9o?&|9ZdC|N?&=nueMbV3S8bVJp}0uyJ&`x zXO|u6d~zABlF!L+ZS5TC$tIP8fi16l7-^jQr_u+@vL@Sdd?~M?*JJfU*-x3iwp%uQ z_Kh4E@h;EItcu=jwX^7%TwPemv!*O)Ui%K!4~;xI6Yq)aOFAs}j!-43xXC2AQ3IdS zbTtvxHx8knM^;>X?QxE5em=V2)QbA>f%ZxZJO4J8uQbBzpzY(k*?Y#2bF`0$d!&*5 zcBDV*YqFBU{j*H;V_(#S-jkFpiE+fHJv!OCgn2|}tTQhA#>BF1Q1xxVJpD_*z<(>c zMRzVg9oyw?IZvcT=sVJ<(qBoQ#$+rmjUKf@BZ@z-Och&}L*H|@rJzdAuGl+^OR(eR zH@uK_^-Y3KG#Asv?RZ_*-c-{5M;1BiqznCTi>yyspSHbWH&cvfp4qaqz;0sJC^pK4x3y`jZjPdtcSya`tTVnQ^;PLb2Vgmy?kZ z^Fm{A;DJ)qn*N!OX}k{xq36C&4ES0rE^~FYlGeAy-HL;9yN$f(J|1Gkm!{=pw+)xa zl_*Yj-`1F2y}0f%?XoP(fO%BcbFkyoIeop@6;KbBvhc_#qo9s9g~XZ0Nc zY4>FXill6O=~R9R8}>fkR>^mZ84FgXBCnDiSZ}=3-kT(Dd)Z))Yv4o}LwwYH({mZm zc%P6@nua>GoC_G!>zV#^cx(A>?&_jzEgN2EWEW$X_ zokM89k~n?D*ET{B9j&wD-B4=T&NWO|gQ;!wW4NZ9P8wsSrTzpjPB#6~2M26|OQXMY z8S;Y4T;G;-uKH^vbEQG= zO6rI{$-Yt|h~W7q(oEzX(_H_;@x{wo^oirw++K>a-f3}dGcz-Hig;oj4-0XohKtbP z5}ZUr9j0*J**-KhOgi(%5OcYy`I=q9`~Ii2?p^2sqMl~KL8 z>E6Zuv(NB6IVx42Iey`NQE9<+qHl*g2gdK0p?x?7+o;ZM3*cl;cc=z@AduX|p1;;R zy9V>M+Z2=l;tF7M1M(fl`aCDi5&M)##HO;++ju`xTrZeO4B?LI&b;GJB=A*rk;Ade z8Pey6l6=FLv(BB{!?^sBi{(Gn+EaX1Yz!N3WmR*PMFF=0IA*2g5bsh~zGiwmS;3Lt z2RCu3FdpyY`743h5^sC6;qyks1dOI2&(WYB^wQaa(o?xN93F5B zi$oUj`)swo1bdSi7PwK<%iOpwdM+$rIC**k4^N2GM!3xRR@wM#7h=nbt8ue+svQIz z=P{%?fic$QrPt*3wNIR}Zbfz|%Xp3d^>@{-6&qJ;ExJLRttXeBH#b+mjZ`qSE6@KB zFU+N!un1IZFkyAOU!AuYDv5@B3=A!#;jQLP8#Qm7yu6eg-xW+)fAW*xR+Z-!wR_%- z8aK)~Q-@_owNMlS4NK=>rpx14?f8Hxy51nqmV;~K-VYfqiC>~P*Nr6ja1osE*o0i; zgqc!j;-o((g*bN_QOTMM!VZqLS(-53o?=7yHQ0xQ={wpnU3y`$I+t9T?3?Hh18;Us zn3_&ahb7E;ajKB~TNw`(IUmyuu7+Tsq%QVpCzp%Ehu}7rMVY0o@m-v_70(A*M~Jf0 zj>KGU>ps*#Xi``y94Hkd>>8>j7xNzLoqTW+O@{`vD_I6u7wreJ9PQPW7~83eJzu6(`;4# zYZA|EUlIh};z{?$`H;KCWe&#dOOa_w^E{hMH2nbK4v za%Nr&EMDg(v3KeyVsIiSc;|D!-8E+|MM|Uk@3>6<`J7MXq&i(#)$ok?>BCKE)*)fq zllV?ltRa-@|Lvl{SfRnKYPsu`8Z?%bLN?KN>B$_-c$nX)^nwt4yWzE>)8QeS#%S<4 z6@@3Ot|^`Uu2=br@fTGSTWib7l%GyyJL%)tc3lyV3Hf$&kBi&GoQpdiYju+cyzQ8b zgV&t1l&59!%(Q6+e)4YbW6nTPy%8vTb=lpkUR9PWUDI~a?_Q~q#eG|s8xo_gxCu>8 zD5lrZ6+tqoyeXkS>zZ2a*;G_l+=;F%7=s-|i239zn*)2pYA zQ9Nq@ZH}@k<5WP7g>S;@7=Mlx(aDZol~zgpdgNSLr}{__wypJSM;CG0N&gu833mWL zciM8SnW8YQi|6MzY3%W2LtIy$lE#-lL)FBfTH%~BnySG>S!-+g*Z3ZOIyZ-i@a&wL zN-C|ixQBGxWT)tt?OAzfd!?M+owR#v?`tv0{%cmn7f!zYf-iN7hd1BH-Xw1}zK=WQ zc!#!Kh)3PKWATYc5se+gmcWFecPL6O@mz{tNqGHQT5>qER(ieS^UY?g&W7W}=O_Ah zd@Z~bg1qeJ9?M=Q7orz(4m-_!c6jiXckO1`o3u34_sGh_Az@=H2nJIgM2B6lgcXbP z>Ya6<*J89>iZHxhnbBRSQ5mCqY^Ie)&IuHjJI0?`&dK19izl5y?0uA$eYX8I4muam zFK&CqZg%i8C&z$+hrYslq}BzETdTtov?DBcwwab69tN3E)-;vQUZ;z2apw)dkh(!6 zRUFl88iUH~vSrv944#`Pu|J~$pD~+lWm-cHbJeU`J8#kh+Bmdg6wUP(HPuSbl69

H37()e=mDYa|4Wkek{utIiP7 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 diff --git a/Carthage/Checkouts/ReSwift/Docs/img/reswift_detail.png b/Carthage/Checkouts/ReSwift/Docs/img/reswift_detail.png deleted file mode 100644 index 2a71210dc6d0c409c6631be1c48e4594f4923036..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175524 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 diff --git a/Carthage/Checkouts/ReSwift/Docs/img/timetravel.gif b/Carthage/Checkouts/ReSwift/Docs/img/timetravel.gif deleted file mode 100644 index 3e9916fa214cc56b7278c9ce7f6051adf2c0d189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738027 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%0D%7&E<~|8N;L;;E+fhgd})?i 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℞3hE=bLp!o*c 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ʱa@H|@v87sgs2i7KKLePnH{V`pct@jv!-^&9EF zauTwLge<3_ZcFm`6piD|l)WTG5(yDaKxT@NJCukF1tLWZPm!Z?p648)Xxvt6)Uz~; zNyuWQx`9ZFu-cY#_5iPlZA99(5&#ZV=?Aj691dpwV}oJ6?(w4_OagInW}&a|8lB_l zDX|OcL$U%s(I9y?_#+~4@h@{#QmnvwTYOvWN(rv<8Z6Ca8%!CWz7wXs2L|9BViYmp zC<;)<+o^xN8ZeH+%?mNaW7*LWC{*}xPS2v!wr2jr>+mG}{v>s*s%jl_sSzR*(ClWQ z>lo;jjxxvp;pN{4#STtZdi8 zr%7sD6{?7W*deJopH|aFKwMY{4`;!4GU4G$cp~XUq6p3qftlz6Zup)jLNrx(n?S=RpJ2RTU}K3_OL+;Uup|T#6&lA2O?cWYb_q&< zAL66ml48BBP{Y04IHbb3<_LhQ%tpn~V3A?4GoG6^vZ3)x#8w8}Lxk8Wf%%CLrA#=> z3)M|R#mP}!>@&SAM4SSZ#e{DJ%8#?Kvu--@U53=T@SMh=SH@;O+PHFIT&0*F&%StO z-IjvRjPGP*bZFh`mb9u<*mns!KCzS{a7}w5txP z@VKF4^vHgGiZZV&wI+^);4x8cElA?c`cg4!=1;x*In7S_2|AkpWMW^_9+tP+ z{1v|tZ-G6R**ws4XO+#AztY6R;#Ps!r5e3TSRs zAi5QZI3cP+RMzziF)Tk9ABmr(lxB&qge##dNU#8Qy_*v1WQXc&Muanv84P4Nt(8lH zg$rTJB(M|bk@HQh%V-4~_n}ghut%h&1t!|FEQB`;v=V__<%3i))i>;AqwgEw!@#si*uCo-^W$l9T9_>Vxi_ERjSu<@05lco&2lLn_@ z5Q$>Mn%4RlA7riw6|?N_hDkUR=-ohrZ^6r4>}4)Os0$mGHYnR#+k07=nE4E~LlhgY zFjS4A-d~L@KN6$TMw-)dLTfAjv4aL@Hhi-M22^;2nMGru9scmnpv}qsD+2G0a1B2z zVB37udxV{wzjtaxR_`;QHZ*+w($%zVpx$0hqX|uPL+xKI#ERkD&Tg3B?BwIDRZh~C zPlOcs;J0qVnk!GLqR_8) zTaSU8-+s{G^WfVOtv{rqjW?hvjEq1P>1L-g-458a5?JrS24h&cisFP`8` zFTfh?pQICCoFKjkqdnP{&>Kd2VZMAIeG-#3ACts_8TEr7S+E^UT!ttC6v1UgT&EJk zV|BQ)Y^RKI|HKbZ&SD%{h&l1Y6p`i;1!}L?&_B8QJh2Cq5LZ`N5)-FtgJv*sF%;M= zfQwZM`0M{-=7SwvQzEa zrx8aeo5@UECkq@P;g2hZRt)%4*0Pg%9q^V< zD1>4Ne;Jlxy)9C-0okQjE`fyN-^YnS=L6t|2S>`~1AFEnFP>@IF<~*cVU(o7W#TG3 z{HyP^k)7p+LFox$Vn2NT zO*q~B;-F>MA3XH)-=CJ>yC|gDr#`dyBEft6W-NSj8`wpRfFr-ahz~7F%}ikA2hCl&gON z_5Yey+UI8C+=N|exL+q!vpbyr)ZCe;&i{VrGh0_7yDU$=bOK+s5*#n>0&e~LPgU79 zTiQhe77{BVM-!(^H~h=cwaLIEyjl)Tt~|7pcF6tS!sK_vHpxN?OSM&WXqy-gMA;11 zc*RW+g9NM@$Jg7tXjW)KVo0LI=gbq{lh;Q z-_EDFZivit-+isj1KaEinVDX@71okphkeW+xT5v-!^p~X<*~m zxcb4V;1e-l|AzqSD)=7)q;u!jH~%jJq-+1b1voKQ`9B1Rc}VU5jR5JbT{peu;s1{S z8GjsMJ-d2h<^K>MYfmpSedW5fG(xqU*Ir&T+w=PJ{v|P{R}x?BUzj=mw6D_iX4dF{ zC-36oIEUoN4W3V*=l%A}{q^nZtG>!5{`;MO{tKz3=1%?iIkM+YANF;2%8Lu(*FS31 zF8cTI+*+rz#QnoRus#iQpU>W!da{Wj&NrLsqa84N)^~F6%yFDoN*+C=%IgoKvC=c| za|1S6$qLp^Y2-N4zAOF)eR*Y5y!g?sbPX7G~pj@`;hpOe?RH+VJ0% zT9^CNMU3vA(yi1K^9dyVTF;52(uP@xn`xSx^rFm5PkTz!dLzlAkPyolh2?DOuUnNo z-rC*cl<+vn81kR9e4RMs{=N1C6HzmXC73g|%o1fw3VEA(gxxFQvUg`KFIsjlb>N); z>Tp|;)maoA{-rcp%OaXIT4Y`^oFp(RoRfageR8$ia8Y1wU|`Ddo|UKf4vc9n6&y0| zw5==cTFxxCTNFornd8}*c8IhWsXDr&WN93b_ojHxUU0yO{~57ekF-ehQM9)4+CQw1 zp1}tN^a2Y(hZL$G(yxHx{K72YmW5%XP~!<Zsg9P>pCgZ?Z-C`x64N+VRQcjpUAZx!nmz}c>_)L{>zIz|V@Gy~P^wVR1s0w_!tnqy@%G}?vW zpeP%FZ7}&*T&TrS0SP8pDTt^_Nmghf^l0RVjJB=o?z$yGG-W-Aqvr_0Kre|#1XAe` zwISC?%r#)0EzrQW7V6g3bpy?|#rR2!qMnh{u0U4l*tbG+m0ZoMW*y z*wQ?Q$zy^WGMJLgZ-+YL}E3nt!$pwGw6uv%&&R3I!0YqeAY?@g4g; zRCvhmm(^W3`%$E^GT`)t%rZF@YWhnYhFlC7{7(jSrAo28g&abflvCYWZ*J*%Pvd|B zW+#$(GIC)^mP3IzL#j2;*7FssCAeX_B}`dp6B}u`j3LF&kgE3hNVUZ*j>ai=xoJ(H z=H%sWcgyYp(-=%qlCsb9++4XUA<%LM>$JY{I_LCQDcljoTXI$D-xMp=0;_v<4*V#@ z;UD87tBdq0xjb@SATAQ$TrYO!N1oAfEt~E;9{aw;seQ3ASIE(>5Q5ukzC(j@Wfnwd zjnJM^v{^qb-k-&@5Yn`^KV8$>?OZu#ZADsQ5gkNht?piH;X z>UjSxoS110Py>=xbos9NO`5PdiFP!tKfi|#$Gw(XEF{68&sLn)qk!M4nU(p~GRXIv zQXHVvudGsky+Q(OGmCi0_T=iee{;Z2?io(6Af zl4y0zkdTv1bM!m_Um+^U_u&Aa#N9}M!ZWQ6JbkS7wGkkS4PLy%)dh__8SU13UCKt; zhrRtRAQdfh3&0ko_E?}YH9cdc(CwyD?Pr@?Qmaz~pXBPv_x{GHUJHRD3KCdaBcTT+ zYZ_r>23hl78X3>c7e{RdrY_Z1N09?J4{*#Da30V5ZH}iGarOYI2KA*Xb4_X?a8_- zNR>ixGZuAU=p3?$0lz#mvE@${HuiG_ej&5haHE88lKvDLL+UXqlV9(8O@asFp%y*L zq@U$XG*JNVifF9MYHSdnZ5c*C`-1S+R6yC-K*+_9l_uU22!cA>hGs|}{P8*kvgnZL z2>EV3-72d!A*JV0oAYTp2DW;%z5hmEkqN7Sw{q#nY~NdQ_?!hPw$13JKQEmW>(wZRl_yRMyH$g^1P}{jDzY7bOH6+)QHD z)6b|O`;Ck5DG*cv1@0q;lXICcCv(VKb-<`TF-g;-A22auW!)*{wN_HOj86x8)L3@xt=8yYcl2-2Omzgfe&u-Z>{z$;&sr4UZTGK7KK^`007qhrj^$VL% z;ed1m5MH-twtAHU?X4#=&>Iq1)GDBAJdJ(^VZhYRx^tdgppO!L@HJt6B+f~IOONk_ zL^IOOhox5k>L5kBel{gOIsW!$J`g?#==k!)=kFR#F38M3qe9)>>fqGiF-;N)bie-z zLU^ybppIGOAm^9zZ3aoueNRnHd}(~$dC7qfs8#YuGHM@sm7&pax1ZTsV124YLuLEb z@=n#ceB#E_C;k=rOI5i2e@5Riih8n8^zy|c7_!6hTXp=&U8Bgid%^KP zMLQ^fgQCcz<9gj*9w-J6upGzZ^kgm)WH>C~Wznr-o~x4PA%NylZikR=-w)_8?T{4y zEmBw4;|HlFCcdMiYf-Nti*(>ieKv3lBXI>-yb?5g)9S^SZr-eq z2ekx6d*uKYzX*~l0$q?AVzA8H11aYopm8vG+XJE|m7vTcB1rV_T)jZl1accG0>O@c z+s5IGdAh)KeBIZ}j=>>hR=tSc#b>`Zkc$8f5Wj5#};yRHyTh&cED#V7tUraAdWx#e=>0QQ)Z@$xMg|huL z&GJ)4$jhRK7Nj8os!;@BDOU>bxk5Xl>wMG}5ks)f^L%It>@~cMLGF1)$A*!fym70D^hRDQqhM zJ3KT9VCGYJ-Yuz8eCd2tp$ZbfNfAY6>iOtz@M^?s#G}0Z%qcs3c!NF_i8auwk`Tn-&L5TNq1;Zow`f-QTP|&ZfuvaZb zuBotBX+;!aV?MjUhRXev#T)or=pcuqY6SZBU3T+~SHFuw7>^z13YE-Ld(F?=^lV=3v*Jg zT2#$Z(Zh-;Oo+uC=!)W7u{l#YWOEV3m;uXdhB`I#)F?`W0*tf#)HPc-Hcz_ zHieZEn&j5&<2u%JQA6Uor!?zMJ(Fil%T9X@*o|l-qr*e*w4%>Niagafgpu&-v_SBn zURXVt>zgPjbnl1yhI5Zaot{bukR2SFl4~o37>99PB~S+uhoIp4pkgrM)!S+~MncH) zQLZfuo`@=PY(Yg^Qk^D{bJO(>Ttf7OmyQ2;?F&%Acg`+aIP*s^U<2$;T^HQWoilv zyxcUJf0bT!J(FXujJ-1opar0p?fGCKVjTgoP6?;hK^@r;WUQYh&D`hYx|I;^;M|p6 z^76L3&(6rpiy_0Mf}y&57qR`XaE)UdZkIre1Ui8%cpE0Z_I9bkpZbJGTxzOGL>;7IJAf9liFgi? z$%d1jdr@G4VTH-L>)lh=AqgBCF=$CxjhKVz3EWkej*K;x zj{Yutekgt$4dsL9noBqvHna8mAz zLN4?oxVRZ~32)G%2r_6pHEQ}r%<{YFHc zn~Mv7E)!uvgZxMW&@?tt#9hPyt!I|_%6aN5f)SDFau6>N->g}8*$buLa<%T&^QZ~| z)Y4eQDe`yRkk2~&DHf)=usT@4G4DUK6ogD30g$=eb=3u-6l5p?LS#XMBoO4Vul6tp zr{L~btm7j-&I&`m*Xyw%xSVk=v`KAr?SL3|Korh3*&UvS5>B~Yy9HIf=D}i1<5mBj z6(q&7d^W5>U<3r=CqbcS^`TVCsP(wp)20wK6@td|vU3Z!%@sy5IW~lXkU3!6#?u%j zXM=r_DwPIvBo=TB!yAAT*MsPqWJ>? z&l%C-W`5SqK^6T$A!$+0jTGcBBk)WcTwiFWFQ^g7A4B)X?iQf-rNXe{i$-#2{Wwuy zxOly|D5CjRwl_bh|D2#1<}WTNX2X3^@Q#0JJ;U_t&M*&1KyW|g(5u%=2LNr_x(oYb z&@v7I;P?>=d;Xo@(c*r<=u2M?CukUQc*PfF7NpPTgHi0wQV#rJCr71itJ*~6q%jbN zv7n(C%v1Bn30zYF5o*^(W^#6~wlbiCqaiQ)R$wxUD?dq~$pW1d4==6Wn?!MRPye?G(y>f*Tx+s9 zk??eCaEbS8Pcq(|FboMC7E*uU7>>ed%WVd!uze_~J|0-l;CQ|Vl80pKCkt^4osm(%6@)Op8ByzMH&08O4QRh7 zY$|lzDKPjKsIl#gu99QY!7;U+y(|OF89K==JSzrtJFCD`fXE&@2CWl>ot|L_avZ`q zJLU=l1y#|r+fV4MS_6vQOVi-rtv4|_N0-421Vwuoec`te#}=+#e9FV2vQFRLDG}gN z-Dpxvu~2om4OxD|gfivRNF`%FVw0 zfFZCOOXa!001X95*cdx5G)xbF#)N7&7g=nQ1=&o}0P~^s1lSTWYl)x;;sc2i7uZmW z4vgpccS!S{FiN2E^g8TzCA_Xt*9p(x7zJC0hXqrsexB4>QKjRh6fVAq3m-O$|1uYU z2z5CGQan*_GsjL7vwT0f{k^%;b7W8=mDK zeow_K#i%@a!TGv!RkpZbyt^>j2lm>KeOOW$nEH697}+=uKj`ver@R0fcYB8*AYEL9 z%7XcKz?&3BvJiM*Z{8jD-q2&nhUOH5C~aI6@A*n@DoV)If0JdabK-cq7rpRrII=D~ zXP1KsUCa18Qg8r7VBd$zMZmsU7(vfgVj&g4$r^mB`1IW(9gnQZ@gL-Vp=Ibn`?M*m z0ii19&#SXI^E=glzO`*yyQ0Q5xXU2?d|=|gNf#zDrmxjSl@)l=(To%84*RO=$ zgd30EMsQV#F_bcMz{2!4w=}`y*C#r^Pj{7?x&HYO*6B9!?A+Qb zy_&I!%L{+Ld|X>hsBvXI&f#5YjX!jCWJTSPCC64w_*Ty+yqW$~`8KWm0(xU@#y_vw z$pijho`#A)_#IeCzY4cz%{mv*T97UpeECT{<{(lY-vJXb$> z=JRe67j2h&lB4{GRPY}9c9076<8mzujkb1J6q)Xwvk+L6P%VqCYjQ117N6^|EOqFd zvn+ESppwhoU*?i4JSRHHmA-%G$U?e?XYzi6(H^UV;dXnhs+OObGdLU-;c0zj&5F-f zM@{Sub(5}Ko!;!N`qU16^j%CFcF$H-z_)f^-T|^}P)O7io}AtxHsq{gYuGTl?;Q9b50I zpEtH1Sb*7;w{SG3f^?$fcqqEe%9y|q%jldzP$fgRG(o&@}#X{0`&*XP!LyFXi^%c zv%UTAnGy%7%3=CvrS$Bo^C;c-y(|!I!(wv~noL@No}tNDiG|^&b8UU$d6{hnk(wJX zciG--ICp=|F@x!LamV8&Xgi_!3PQ(8M8_v$90ZpAYPRIvovg<#CMBq;0)w5XCxSbF z3ol}!>4k`ND{^mdB45O4JWDQrLbFDQDcbuL=@;{ zzc96YeQ=0DuJ--<<;li}Kzhpl@T_}7qA!}g>818t51Y)6QkuON8}3X{XWJbreRqGp zi)3xDt2&wgBTy%)mble=F!RFW_f3|W%{|#(2etXt53RQ8u$>>0Xq#(CP0$$gf zThU|4q7wwnBK?Bd#g;~;G{obBRZB-5HZSg)13M4OZ5^yi*V&#wddl*0rwtY0%r%Ft zZB+oFa}7(Te`^M6P+*Yu6_)4YL5+ngohd9P@;omrhjiJ?Lk$l4Cx-$|3xLeU?Iql* zSi`S#x`5`u2#VwQTXMfZz4Fwp*>~@bix736t#WtbyTNBap-bjTh!v^NMNBF7nez{G z50V7G@VN7;j|_k*c~)QB^}Vldc3{;>bmrSSpSCrbRk%s~SM099P-#Ynd~`xt^HJ3W z$@`ql@iBh{1X!<^S+=1~Gq5|L({+W-mVz47cN9F|YO)QxUl~9gqPeB)wa_TldHw{W z?dddQpSeP*z#X;GT;E@B`oySzViy1)2|SBsdNhJs%cbACathNH=1mEJEK)QSug&{} zCDMet1e(##%l$shzi7MbR|D7Q3xJ$7&3%^1`(Q17{>A?p?{9vbSU7&9=V-y=R0ITZ ze~{<;neo6jHz|#9rP^{~oDHV35g#;C>YA;+N?X4nj6`hx>gL;+W(ja$?vV+V24U1} zBE?e!$W$h<9wmW94!_Y(P-^Wy^Aw^wPB;9LEVPcb&?B+{&73u;a?G+Ec8l3_F{nl@FJFnhdizcl%02FvIENI6X zC9G>fEN(u>So4I$U z@#{*x?%J~V5F{uS1p%p09t{B$7*#IRaVNSozlQ^$5{fll6qONx0`-@mNq&9vB>n4s z!#H(o!a(F^gQD+WG~{GBc@}kKZ{34EHh${~lw{rR}+Y)=p3Bt!?Z55D2;_BW)h@xTxZB9j+wo z#QTkLiKl(-(HXn(M{5Zl2% zYM-YaE{YO(!p5Y$i4=%ubyY7pU|9avh^yHVLDVV~-zrrtDf+QXiryH&v59tXzEgb` zcsNlQLLg&cil$DoZ-_>oLJ^t1Bk+((hQ1HXe4$#3rfkIPH#5ys0Ev5VhnHUR?IDob zL0Bi`Bt~26J>fQ!Egd6E{#uuJQI6PmGZM9yJ>R&$Kh|uVh76Ri%&l6ToxnsDkTl^let$}-CG=Y6yXfIqaZ17ZVahtfBjD}*}9jK)gas;yU!PmD+)_$ zqOFA?oFB5*p3~7XeA5@NdAJ4;u_62b?*y5ae8|Cw=O1?1Kkt+#Q|37zfOtRhh9B4athr$)cO4=|1i`{vK9Is%Ff$)^4tqFRvb$ zP9N&|niMX<)(M}6qB$BDAIO^_rtj(cxe(Jlh$$n+v|sUk-tc3)rfvtsa*j(@szgp5 zyflHjIDULm803(J3uv$ZwX8D4jUR}4M`skF%wPsdo6>S4r^ma^?IOIML}?mt)T=&> zo1@{IIWK287Nj@d?YWjS^r?gsR#b4jx$0UtpC&JurLAvv5Aq+9)eKt&wyzCl9h_A* zhRo>x>@TEC-bY#{`#(z#>!USJE1gyvmnSqt$JDlr2TWIMe3D0PX(Ahr8|D|wpM;%WnrZ&g zszlemGGg}rn~u#1f3()Dx_{l4+naiHrHE`8M90h7e`p4gnH*yxVQjIg+gk&oYs>BG zS<#+6wy|*KAS!TrF0!NJFm(~cFj`taQ-WC*aUrM7;yJ{O(EVYu2_MV3LeuO$d1m98 zEklz$=dk1!endz6qsIv`m*z|U%$4B#f#kG74rfvCyaf0DKP~Nujg~gfMrDqJo8P2D zwiHL2IAbv*9~*-V#6h~|Nloe4?zob(nFl`^xo??nKVzJ`$rP4~X9Ebn{7;W$`-GvG zX|UNkLg$&(QnW11*e2m9?3rm#W+7i-4^!2b2w?5U2A}@ znW%+oG^WK)3ib7(R&VUV{ajtR!Y*gLSf9f2C4!pOPnXwV@jK5|b}m-i6x+wSK@}0? zR4L9%1I-sM_Z+;?Tq+aYf45v?|39`lP|`A9N@mmpH{OQ~n$8IeJ;i|D(kgw}ngDHK zFid3N!|}E1#zJ8cV-cN8TV{ANmYlo|j-y zTxWu;6%Ab1ne(Nd$?H1570@~c znqei*BU}f!fL)K-ny86C_AADOY|T6^B#Zsk_P(M0pmrE|as_Yrq4BGeGEeOq4SS9O zQHtS9bxU zH&m@O;MruyL-v2&0WUM8=vs(hwTh>ykZ7mVS3lVLxB~XyY_~%hcfyQIOou%GP=-jo zFeY00qURzajQthWY(kY9*?(QKisw>x!CBqBD0_t*mj+-s8EBeyE!(q4W>U8C!3G6# zgqxl4#mNfPpgj|8=Xf_uj4*tcJQ~q9h{!nUDPo)3!|d{CPAK5R!SnxpQ?oiwI*ZsY zJy6Y5j_*A3^U;j3Ii9oV;>4D2GPTC()Imd!eCs4UA z$pK^^uFD{}lp%9vLIbd{mv*xEQ{OvU*e-(aYNs{c9uof=pjXQBBJ?0UmvZVA~&hiX|8^FmIN$+-itK3$YyA9uVtG9$QF1SNVnB(Xx z*e~#|GGEs4V4HEX)X28mmO5=e+&B9kx#NvLd&*;8hPCH-w(<CYvoC4Q@JBVD?2B;ag#Wm2cQce08|4TxJJ zvrUJP_)0f|%*;ea?eELCm0_AG^HVzzmY0F#DNHK8o&GA?WOOKCURw$&}`z8Cni+njy4hUTC} zSUV9c;33)yng;XhyT@$YaH&D9^ffhL;$Z+;z=@l7HrM^$Uc=Kq$@|Zs%Coh? zH-V?I`&)(kkd{Xky5V|Ap3GCp+ml`3=_B-C##?ejckipfq%h=CLZA+=XD{-X!Q0D* zh8|huR&x3mLO*?ds0X$K(7M&Od#Y0ZnUv(lg?P8S2si|*S+~hd)QK;l)E>Xi+^}T+ za}Gb)ttVje9nH>)_a!*Mdxq!VZ9xS|$)H7#>M9|6&R`tK(S_(@q&T9qjWV^Xl56<( zvh$3~#+2Xoz#Nqp8yO0F{H8hq@4yf5S=+2JA-EBPfnCqN8+ZJ7#dLwM_^RRB05YCS z#{bTWmlDc2gmkHak92if)**8#;_Oc{!Gkp4Z6Doj;MQ%Aw>STud2FQsTrZ&a-3Yq{ zpLobMtPHTEw3Ev^^(ohhbDpAj4lE3Kb`C&dq)6TmvPAuGwUhC)tt}lTyFHI@3%j(f zGf}v8U75@a|Cd@8=*ob)m&rV<16|!@RNzv55_IXz56`kdpB`CTinmW0&r=e3?Ny+U zU|$Dx-?ijNv(d;@c45<_qHK|hbu+T3Jf-u-ebnLfp4jR=N6Ysdes*&xEbP|1eRq!C zh?(!aWA4*!bF14auk^6H?7PJ=)QGI_gKP9H!O5VAvok$wwc=->hp9nDogFjjK7DuK zK`3HePC;{0bZ$G$Z#X&3{ znx-4(j|V1`Wq!femVJ1x%y8}(+ma!NZ$AQ-raj!`qF*)RnHH<1ZJT3cpfEf z|21kK6#&hLAy&f>b0vf(wg}vUIm(5%B}<<)q790)?pgUz7eyX*PDW{4Ru?24U9$Z0 zppJMYE&Py8)S2iT2RBC^b4u!-_n1!fKk!fap>^%|6D|k9KX>PCm|O1Te-(f2u_4*q zIYHYLa>VP%)-^{L=I>@FBUP)`h9&$KTUZG(CRer~y>fD$#|R~Q&N^e$srE(%8uXHx zlp{M5@2pNUxcXTy@%HY4E_%6F`}mz59}j!oHk#S7`Tnuxh}mB|YD4@^f5l&(Hu@TS zBYm>^s|#gg@bw+9xA=!wZQm!8O&_CL z?--Q3AW!Uh<2luDHI(p_aeg*@#=wtM<=`0V`Z5C(&^ugTsBN1nfncajq^AfU61Oa{ zJ5Na3id}xh>A~#dl+)h%?RJ#LaoCEX_w>)t)dr(;_*TFo|@x%Lqu4>>U}vmY;CyZ#)Q>cK|ZNs3(#gE!Hq z_x#)Di1nW*^t`1%*P=E75h}}JCQs7MTW-pe}s#J+i|RaMZ6twF$P_=?@NA$G~is|}S$ z$#7)#M?EOv)UKMemBrMT_1Ak+znkr!_^;D!zudXcJe!~NX>cEG7<2M+e!#10u)PCm znt#pO_UnJK(@x(VE~B- z33H~E_J&O!)F)xyqp5Xy!`#UH6B0*q4m zzU?-;HJD!NcQxszt4ivo-DEyISEO(JqcVGV(*Ji_s5iK#l6bXZ_w}0a`Z0?_v-G4Q zQs#qTM^NAlbX#sDb&FT9c;<6#xSv3ZW=bGhscaA{fixZPKzK69W+Q(>ef?+<{hm6V zND^DWupWf=NDbns4M15P5~S4W^eU0M0KSlMOFdXSTxO=0^ESD0K|*Yw|6D38)Qt-V znpJ%Nc|bk7yva-jymy+{E(vn0*RGHQ$d?vuDxg3gVZk&|tnz%T&mJ^q4W#!lcKCC> zVVQII7w%Ksnr{GbXHHEROw&6sKW6fYJ(?{%TxONVCIdb0ZF`o7 z0^J&pRIWj*xQF0_D28K%=jFVQT zt2ue|`|jl(-Sq!3_U7?W{el1QnSEu>SjRqt>@;=~X6$PuJ85iLl12z6X2v$Q8bXq4 ztf^EKrBaPGB%w{(29Zidsnkc@`QFF9k9&W=$Nl5}dHy=*k8{p@d%d2|a~Z7-p&~qx z^;8GlZ}tTAws&}>h^9BC^uq;SKV!5>kgiS&9l|<{vv<|$c*YfJ;tr0_Qu?X6Dx@A1 zbsYH7E!qe?D8L@C9#B(;pgWpVr9QV6)cBub7u$SLDFs*tts;oN`Yd>CiW9cU7K0{) z8)u64GQ=mi7U-ucnYC<{vvkQwfJWFzcedJCfkW5l!1Bh%El2(gxG8ghoaF+1%t0|{ z^;taXAIb*XBq7A-TWmY!Y&8~s?0`ux=~At@!R}kT0D!^1W?W=&I7+-;f@|wi>c9Pl z&{x;Q^ma(w*VL`6buSisusd1us~n-pjvk=MnVD~>-4fsi03@gUYM^}C;(}N%fpV`Z z(|6|MutESE3jj&XT4b>u>D8=%=-t?Ut5tYo4f+Mp|Fg*w8dA6q|5ItGq6B^BPIG$H z=NkJIoY^MJ(-lnwZ&v3SAnWqAXcY8LAt#^?Wvx=nK;@7I^no(;r6M{$CjCPG%iG$?oIM{ErAg2;SOyv6pT&ibz;2Vps`LF-u^vBY?z-T#ULXzkv%Az zz+SRHj%y#gB6ctxc2TJF7@BEso}PdrYhuW@Lek^Y?FiuYc>Q78jVs4TJ+%NHH`_vp zWDf(_jhz?(&(T=xoU<+AK{6K?PR^)l#kj8zRHF;2{TFuKO0gQsy7Ikh^yLKrE3i?> z?jt?{Pa1w;dn|na>puq=Uq|^Q(DdX$p7&?da6?=)Nlj{U%wCyVmQVJTdu6yxmw3%6 zc7EO4IvBWb%WL^d{Lwi$U_nl>~0HO&kmw5MPh)1Oc+WW8-G$zkz;jB z@65TnVyD$)+a%RGW&zFy8YPrnNJkz&x?PU^MA3#W_rUD*nMa1|(9?T&>yjCwOg6rE zI*xBYnFHjIU3xwmx^R^3!bi?re?iQRgg%gMr{oO_3PU z-&=fDAcn8QP6CpPWU&^HKV6Sd)r>tz3UN>fw#L5}hy0fqXZ!x4as@>SL}^vo0nK$1 z9`Uw(j`LuXdK*P*sb$q|R^E=idhfByG+j0;{7ZuBB!e!yUZ>IwIe%|P{`;JK^NifK zR`o3U3S1~}R|x;u6vnjE{4|rdh)>F@lSsz}lNxe2!cmHV!m<{AOtdC}$egXKW@^6J zdkHQUtvJ|#>gQw9V{tZ7=^dZrJJ7`U0`MB<#qhF00rAiTdZ*)O zmMW}7sQ$G{{cNxLTBMk}YV!_`EqAU;5!BpK-?v%4Q>O-pi`0ASGirm+8A!n?l!OzK zCuBf1@3Rnc2{V&N~F}%0no_{P!E=KFWlv1_Q5vSOFYH`K+%=cjx zN$R!|S}CPAK#qob4k(iOa^Z@7E3(RyM4g@q53J00PlU`BWe|3VslRQZO!-2j;#;Bp zvM|1%KcyETUIY+&8!(OKWZ61#e2?^B0j`lj**Ag3hl4uwzw-387J^@grdBh>kT<#2 zVyp94n0I&C!LvQ2Wh2E@x~$@i{AL!Nur8E$!XOrU=BqwGIQCs%*WSq@2l2)ZNvy*a zeKC9!A9cA}U*+oyP?-AU@nR*S@^pWrta zTQ$ywFMj{dGMJD_fGG64gx-U^_?1HoOLpa`D(CMX4)aFp{xH>eqCXgkYb9eYvcwnp z*n38Q>a~zY0L)u}?dO|Z7$Y%_m8n`=qOMw8nsrd`oBQwT$* zO(r4I8@?VRWT!5LZP)7Dm;9;ZHc0IpxmpHF4s&Ujnv6C(`*1di3PKv!KnN=J-;jmk6jLWuS;YLa$jWECRI5U*qr-~#VGqPTt+{mL>%8W#781%(Q>!oTwAm>) zX}Rp)xC{Q+%@ff*{yJShUtVGFov2ehTc?;CjvGpiQM(b7>L0W9kh|fbm`cAeCE5x( z94BT!?Lz|8p)|r}69E4&|`5}hJLJz`cNO=^3I9m#HSyRcP zT+8Qk-d#Lq?2co0J?kY?+h&mQ7?lLJ%2JQ=TLx;0ULgHP{VQFjzDHJBuDl_<{3xAR zFR0bN{5M=_gYZtqno-8>gLWo%u6 zrbDc*uuLc#k2mhzC3_j{Ck z0fb_BxSvqb`wzaNj_3<8#AjgezxW+OX~i!v@jBTt7VNDiQD&SJHp8l*aOPYPg6Sgz z!G^;%jnQ{%Ze7DZmq%<*3!A$cbF%B^hnhIEr;x;&%C>RRUOq7@9ZfUSdMiZkWuPtY zsPNqpH8)kp1hQRw;g-E1{-ypveQ8e;}NN8XNAsyK( zAm~&x_nh7{Jl%NtR%2P6_;=tHgI1eysPIMF%_B#O*dbk8e_r`*b~T8Wp|mU?uBY%} zi&qs)?YaHd}bbJMMzBf+= zCM!G}JRi7AuppUiTwSE$vPw36{^PuXMh@~f8ewG??gTfCc$%@iQ^GM?Ohb?45J zC-kFFcC!#uHG&ygx8LVY=c6Zrto_=0l~*axAB69V*sb=n?nYugj~?0|G^yqHT@$G` z5pr~DX6~8$>x*IzQ-w!g7XK65d{Nt%r#{_uboyQG%gg_!+pS-99({G|?yI~1UiDbN z9yt1X`0ndR|6Wg6zj=1_&C9!Q-u!zbz5C^i((B@ew_pCf{bH>=JM;FZwdU&GcR!B4 z+f04ib5uiX%oDVk3C|Vwym9qrl2h{Bs1dVG{WTiOqR!3iL+GsK**QXw$NMugsnrF) zDI^B~>b(JYXU$79=6Bzl4_Agpyq%8@TaXqm1Sx-z1|Uno0bl?3*WdWn)FHh$7D_i3 z%ib=k(I8c4KOVUE@woD*6B`QzK*9;Sc>T``9P-(3E-@l|%uCu#ntf6Cu4AJu^FftPG7oqoH#_1*Uq zZ!tGV^U|w(uKVRHfA|=-pawucy@fAsKt1>{RRP?e z|8=Vn`sp4#oq_P@!%NP6Ji|OdS#Z7 ze+IqrQ9FVAPB+%&+)a)*xFv`bd99mhfdr>v8tx>X&^Q zvvp9(DAlKnK7$Uq+9K#t>jeElg|dc+6hyW2GnPXXchd4vhr-d~(u%C81Lth(e{O7n zQWy8UIV=Z|p8WSsj-|QT3al+0KgYVA1z7wo*t%c~S^MO;P;lVjz{pRj&A9+C*4~kI zC!BTZw$4w_T6Zbz_lI$yH=;ZiwI-V$6dCAN?dYk$<05w@=6ov`d~N~102W0}B(X0~ za+CfIn0#Oq-XFh@2GZvUX94SDh**m7;Pv}-KMHX9! zBs-c+*kf?gxwXtFDY}!Ku1n?Sc#=flT#icec+hBk>=15hV42!V9vczzJ1t5@c_7)Iry#NLc0?(cCQiUsCQ*siOvg<1@ zUKtUkOt&;W_lcGwh7hxTE&PbP;|3}NXrbfJV38R?{$j8}jnh6#pBl7yw}o2-=7_Fv zj||S4of8>%8OEEBOdePNaB3*~*)SyrUt1|PTsX^kQx}t&^QbuoP3r+ST1iO2abYU{ z{>H|g6E=U>&r5|kt_u7K@=kmWu%m`XIk*LA=hXD>2)7f9HhnQ*_rUXaf%Rx_%1&!3 zJqk??SXC7b#mn}}C!h&E+7PpMpxYp zJ}{3aAAh%|Bselo336)aly@&yHnhzSL#TbjY4f2J)Fy^oMKw9(l`Bq*tJ#!69PKj& zs?9&wlFup}?x(Mjy+DRq;nK@%Q&#^*Sr-i8qgIcL{6R9U^M|}WOZgSuI(4z$UYkjE z)sEim%#*pYTc&O3jCIe;n5%DkYLl-w4<948udP}zcxHqc1oToe%IB_!)5ciRKnb*J2=B;}oM6{rlR&su3MLqLoWFX92%STH#Xo2U8! zt2S{nMTRQR;&EO|Yr~FTb%d#*z4{Rx0mOi1_&%jBJFtF_UHLAK_|hO8?;dQ&$#jPi zDuo7iq}1WA({XB=QZ5~t81(k^p}?UwPA4Orcf011x@N?=zXIpYoeR6_kJcbev({Bz zsq`Li=3XJmq&y_a4O8>7wwX&lMY4AZu4<_5bl{_QQ+pue9KF|c z0K#m4;<2r~|5(4nrGUFG&TC0!k|aQ8`LD9&aHU$-aImM8LxqF2yT0Ey>5 z)o^jtb)N6>Cy&EQ^b5+^rff9QK~r}oF^zoG$HI%MjRFPO6Z8w7?}~zCb~scg#)+$m z7=GxX1N5kH_avs813HvULH$t68CUJUr2{|?7W*8tt3#<~m|pKzTHIHDO(vp5rOsri?iJaKDP37n?mp923Y~h+k^a|9*$*R3OZRJ=eLJJ` z?H9e`KezN=`pW~%QDz+Nzy5-lmUwObnU^V?#M+-+0ciNa$T8>t_$ z;4w;#f`{)@-Ngd+pm1Kzc(Q4S-+_Z=9r;l&%%`^u$GZ8n-g`fJ%HWrmnb>=oVir0R z=qLH;b95d`L;I9+Dld=c82(ARLFDzT^wZ!57*XN4$Z7<+ zDc#8%hW-^BqC@4G)1uD+ZWiK_MD9p=dG+fCqHzc(XiKm!b=ZGkV7qmVS|G(5GzCn z3)n^;9B9bw8Jo;+C^KJHQS2Aig0^Kp-Y241ZIpp3ZF4TH;&GKmX}Hg^K66*SPCR%} z^Nf1MXppY*g#kod{Q9LErFT4a{3Z#7rwL>_6c1kk?!@|vRJZeT1KZ<$?zyp|lvXVtBVg}22e{W_b z6ZVq{du?oNwJi3SD)xfGnyOcOa1(}ok922<>oMF#u(qo2a04c6%R%@rkN{u^RR(l1hO4@lJJ$pY9ES&u!z0Jxv1wa^XvoNAMe5LDlV-USD+K3d zq%+lRp-qH>gT13k-8s2uQ;>F|UEG|CwrbP7L4_xY*lf!L_cnOlIJy+T{g;CL7AU*G zhsvfDPo3ZOLAF4P%ZYmsKRHyazn1elfH#-N-G?%*TR}cNskN}eE}kLW(M-s6c9g+z zuA9TYz9+=A!F~xd2bs7HAyS2TL^}uiapkybOL0501dAy_z2v=4^)>b{JW=ju~P zCp=CTA8_HB#+|UZZ~{@7C3f;qpG66N8C6LPr>+pbwINOca+}Ly{tUbbJ-5k3qb-h! zNUtnIF@LHUZ-#J}k62)ovkKGPy)nzx=qv`_=(lHcQk6#l=fg=}w*`;+r|N>`$>s|u z@C?+4d>_x*eUuqO?~M?e#A#W>eAO)~@z4C8%hsUHYnohZlPq}Kv`>n;@-BR=`Nv93 z>)mQJskg2!S+?N!vn_T?PBME}Ts2$npH!{UEy5hF29r^{|5mNdsS{0cwN(Y&AF@81 zz3DTSdv9}rFE6sbzT~WBocr(Px&901{tcho7zXfy6DTe7a~G1Bt8ynC3}xpS2vc&M zq+6YIe4T7jom?=?o{HmNkXN3TB#-dB)(F2?gzv2S??Q3y+x6Naa2vM4u%=$KsQ&AC zz1H8@Kc@9oBO<&K!B&UxgWULIxxq2M@jpP`>0;xVp2nYT1ScKBzo&AKha3Fjn*xfO zf-W|Nj5O_@w#zsr$#9d5_|z1wBME{0zda2AK!ddY@1BOx^yM>s1>$mUxoh6_1H~j` zv&J<8$^))~rRw^Wp}J$K)~<`8!v`5w5K$r|!TGv|XRcZDh!n~AgJ-Qx z2D0+eQ$J!S8r2H_7k$(vw{p?{E#*^c{ZLtqr=7#;=lrQ_%sFi4tM5^+w?eJ_yFdF2 zTyN~NzM&s0dv&He2UGsu3e*z{3XBaz>PwM6szPnwh7KutPiN)7MCJd})6nui`l#ET zpI@{^K0NDb_4D*}SMuk#kM7(&FuieTL;3%uzP$D0!+3-HxeaOcpP#3$N1h2_DyMxB zZhgM_M7bhi?Z@Ji|J&2BHTbw!_TTll3!gvlIh%by8}jbo^LN?szh(?JdiK{Y4u1B9 zFz5E&ep0SfFVgFOHBPI#@k(M<-JkX+?*tl5l4pylgMn3;9(0EtbrF1DU$Q;oX`c#o zmF&F@TEWe8R9Ic3Z2#O+?Olq#72A7ER>lND=Pk7~CMzioRbp_v<0h<^5-fLHN%|m$ z;nE-?_mt)hvcN(cB0)P1dnuZ{1)<^STIu*WP!3wwgQ`HhQ3GTYx--0q(AHh!mH@O! zn2!0PHf~e1S4UvoBiC`f9@dk5{A85|>G*aSLW`FM+qtPDzw5%U^mDZG=l@^EX@xyC zBmZNZeq@CEALI0qaWXVqmv!U${}1Ez*}bE-e{RbT%3Zng)a!od%n6<)?4=Ra4=1^F z`mDbGdU4;am7Hh2hiM*32jmYd8Qu-g>^|GtQKxgzDSWke>we_9%rFwXtM$!@(f?zd z{yc4@1LaO$Pp(6Iua3J|g{)4vntxdpc^dS8KJ^U{c^U#^F8_S4lXshE8x|vF_99Ah z%JF4qd)+O4R0!KDW|v4ch^2jlRfyu z8hn>970y%2efkJxss!8Uv}3BM|F%n(br_mUk(?|Us4%PvbLnvI8+ z5YId_mYN&R-gYRheYEzv=t-&fBHUHkQXyJzE1;0+8wQ%1Y~CARgkSh~%P#fKl{?eX zc=cOK*KO_0)sNRE9(8*4;%nFMvf}&OzoK3m;$GGKF-UINFPqy9p?wkZ|DhQP9 z9Cra$BLCCR;;dT=d^p0+a<1}t=IrT#fADhiXIc%r5EFa44^wRBFucT-Vih{x#Rfm^ zMNW7^rhk8ae=;{dLB23&ue=kuo2iwY=`ysq$+2(%WEyi8t`AvCOqte`@oL6_Xket0 zn?tM5yLIXH62}7k@r+4+Iut^(Z>dq!i&C~2RUuSXICRUwk3#8tP~qvkAa59DUxlaq z!+BbTqMce=#SWEorY;^*WOn*X6BGm7Dp_) zd?=|Tt_*y}K1dKjE(QVZN2fL=EW39VK)XtT*SGT6BsK;9*1AOJ~YL2@k^ z5cIIVlcLKsJ0&2>atQ6(z{^ojXOr!CY^+~jt9km0a1M*#2j$U0zSS&; z)kPlvsgsYIefLiuj)h{D^N7&hi!!6L_In0hQNFB#cy|dM{p>B=*)`T{n2Y+51Us ztHk@!NL95SIi0T~JNF^y*=tjyQ2(J4%;dXk4ExAuuZ-z|r^~$iDUY8{GV`Lx-{Ox4 zB6GfCvGC%TgD^=h#x<>l^elBMn1LV#4s{&$;5_WjFec(EY|rlDwi z(o+Vwy_RzJWvD&r6PR!LG+b=C;_5BQdcsjOE%NX|pY60O`>cEH9kVx|oUryC+nPnr zoI~0y(?0bOMC!{s)c+6l<(tTBZxbiO$HY&moH3n#^QY{bNPQ`ZdV>>fKzxt;nP<@_ z2mf=J-bI_bBHO44O>#0ZG2q3v($Oa15GG%jsI#`NBL4I?U{ZD{uB8&GM;Ze2+j11p z3>0$aHjQipI=+egRQ|J|nQRN*cZML?TZd32Dm157fKm?rTd+Qp#G%=LPVTw^Bo;~R z=fdoF29!U4NEC}%+kMxcn(1Wr1+gdBo_wWEY7EyX263^!_stPQR9u3${nsnY&~#a{ zKYE6$H8<}t(Tj>`R=G!TAR3Z5n>5lmfJE~l%G6$3Q4Ofr@{ZiO)%k(rWBC~@>#u%~ zm0RO{R1lVd-Z-zK*ap}3&ZHrg~?_ z3quurcK9cGt+4SjhS1)52x$h_#|*r$3Cxdkf|t!jhedrKq~&6X|Gaa$RWWYkAqz2C zNVfM0bwJKE4H2G?CFZ~l9aSWbEVc)^lA&@`P>h!YPYT6P0MMQS6r^B`Zq#!v4hrG^ zpR^p})y<}Y;%ab=g`XEj%hNNo*{p4S2rY6}G@6?c2zm)oaQYthGIv3=hH6XTu<+@i zSP>{LLhR{=J)M!#B7H8@)k1Sg_xS)dIFOV9+k z-i4i9vwI){Hj|I5L!2=KiT#bo+946wrki0zQY1Eq~${S=mNjP&JWU|JUrAJ@z@1a z<#DaZp_0+)6e`Nif*1XSusH-C^%hIf1ikpMR?T>*009<;YGJbBo5T=O8Ge|7_F+M$ znxG!brB>&&sg;M`%9bf}VX|}-l;Q_3D}f3iap%*^qbuxWvvB|{3DAn%4s;Yn_EW0+wfI3|nv6PO7d&%+Zr{$=Hh z_2@rRUSmA?*F)eG53F?sV`VY(-WshzGKU2||2TLVSCKjbv;cgtD~O2z)IGk~5QF0r ze#%S@Q*bM_FYp8w!hN3x4)M`k{)q`Herc1(n9LyREGLlISWV%+HHi}FOwnp3)G#i; zsJh6*5;PYax z*iep*0A5Tz>HqQQUnU_XkWW0Z_1(m|ca3RK!_#mGthB{nITn6Ya1K_+_>Xo}y$CGj zL!Um_hbU_pDL*Y1UH#@I3SU`_bcKZqm_6oToEA9AQ-iJ?)SW|x4ND(M5my7Tf;`2g0cnV%LjykTjN9QoOhvy~k20Bb8;Y2FTSdexbJe3CC{iB~3RCHU2i|6qW z;do<9P`O3SCtlvK-neG7{s5YY;A{gm=RIqHqfqME?Y|FB3vokClYH8q8Svy7coI|A zvN)Bz#A|V@K0ZEv2*(y*^wy|dP5vv;)=wrJ4*o{f6E7_3#M#TcTI zWU9%Mur1NPOyFASTe!bZ1BmxVEwq3;E`YzHa!J3=yEnzlGurXeAs)qNpunM7plk;p zk;?GP|9hoqmh$x(7=4NulQEKSZbtLJ>2ea9!Z* zxO~y`c0s-NH6c!L0km7b-4}ENN<)2@t_A`EPZo6!>}(sHO~T#@!hwiu?jT*rU~dM2 zoPAxJ8bIN#uHU)tdLUDL8%yoYgU3XK0S=;-)eC=dx_;gy7&cQ z)Dr>N(o9_YU`W*^8VMOaE}V)x>8X755a^3&%Yi0&9Xkzv(3M6q@aOkQkASQZXjdJ0 zL0bV~AcIH|b|`lhTPTP=&dRNSVfp;F=ON%u6E-A)s739?t%&us3t%&V6a!eX63vw; z_kf+jV7RNWVs##IwfOkG<-?es3&m~MVP)`=DyN-M{WV=+v$UM^T*ENuZX)6gY$s~w zH0q6ln8sSihC*kEtk?vwLt8hb^5i{CkHZUduIDHS7r>pi>rZZu3otuTSAYk^3u)e; zJK*#_?>pYE0)+N|B0M_|Yjs)15Z)7xKe(3NOOaKx0!{r4?$d53CVI(uxOYod!#I#FAIT`p3ACh2i%Xcx8M081R z2d(AqKzS(q14KS}56;GW=>qIi@T;BZa>mY*S3N^b+FLK-tUSOKUsQB)hmY_gGJFg- z4-aJ^(nb1{Hj`iKz_(&E>OQYY@4*8i`mE&v=n7((=QXphGL;&VKYslfGq52Griv22La0XRZ~wI^b=$95(mr{^b_11eZL> ze>AUtXQgp?^;yU-_sL(aw_qzJdw4rDb#dgkABoolOsEM|8q`DVFn%SN9c@DVIbyXJ2b$i_miOAwfj!@Q|KYD^R9;-F z$ZM*NnaB*h=H2bl9YH=TDf{vFH%+xjI1f8~;!>9vvCj%j>;OJ`SJY zl7$S^oiOOi?L8h9+N0C3@agn+udlO&OG?-h_uCc4-s94+Bxjfr;{|l(B{s>cY+Bk} zdUSSDdrn={lHB<~9e({8S6l-wv#9_(bqKT~qpM9CEl)mzQ!v3yxPt2o6TxdkevO2o z?+p+eTO4|y+5O-&xK#(xq`?&VUFek%UrPVB>m#rvbX+u1f)DZ4CU$C@)if9$7nmI6 zv*dKZ=Yx=cVlN2yD&Z6pSd!qp6yeB4xr7$fSfjzsW%QCJV00z{Ux$2<8Y=liQ_TRl zE;y^R)4TO1taw_<%NW}*PPaHKf%ik5Nb#EY1goFEUkC!jlVO3bAo2kiw&hKy>g=@~ z*MrMw*A9Ky$_$jga6r+wp4ok!C01hMTwefv#}iR^a5B5jpAP~-d!c8tZ7EG;z#^8q zK=&T=ft8t4k_E+^zHik~o(o6B4o_yl=|!k;f;)MnLmTKy1r2ymZrc1xZy?+d$ik;V)xQ1o)<*>!-F&Ajk?1csvYaAWDc&)`0x(^KWz;{~My+ zCGYFU&oF|CCa^*k|4bGC0TS5i+6H!Fj~L>p?cd=LLW(M&VY>^AJox*3vdI&|JFMCI zW`w)$&4ammKXlB#*yof(|GNV3`2l?UVQ0Jg;QM7=*y@+~fOXckAKR`j7JZh3%=`W( zh$XLfo_*D+ylRE~k@4ONxr-p{LlD!=SQ8RNAVeAapTV0}7TFa6#|i6H!Uu+Up~G)z zxOmo`)!(wbfIaiuoquL-1=ktW^>N}mhWHn60_+K4&71IrA-=#AFS2zg0+_n#O-Oks9(I3~{g`~H^OtCH2V)byv0UcDfAZJAJ=sPmxc`@V{Evcj@TTzR zH>TM3jr`E;wVw$S5=y^=6KpiM^q&PqR@5!>*x>2UD*Uy4?YZY79l5kce)=(r}pb_A*n z1F!KcwP-VT`C>{oxupNg(~z=uRpovubQ#m~+f&ZAl!S;~e<7~mlDWPeD-4``?@?pA z|83}yGfT-ViX>6)!W35PS(GX})~q(Nvao+arV zvt%BXINoH{_q_jCd}cjjDtkyavA^K4icR{Lk~618^|+gde|(b5zvcTU{Y1ppE2-5% z6e2`9aqSp4q=gp0GW4!sYCU!8F80p-{|2kmF4kbSB>NveuiSFae$;YZxmC+5k9^u2 z_?dX30i(J-mPSD-{-xC!>M7=wNT4{>f#P38#yQ}38LzpbjnaCydvurKgW~vIE_~d9 zSF;qXd@Kv1biAWbKB0w3lWp9%@SysD)QB4^`HF+l!zqbauDgCGp3G7nyydJ?DB|6m zYaX?~aK=Jj{=K`Uv>TbV?XK_84(k<@k7K|>g)w{Ekys}c;~!77HtCtuJrgu*DYy4^ zPKu{GeB8Enn(Xp0f7Y>UhwV=jUvFn=zb6H%()@nOE#;B@MN}pk2AS0jN9{clE(d@_H1v%YUl-9Q8YBB%zrHg-8D2AcY zTqwlie>!4{@xng6q0~;T73jVe)&QQW;dICCup295+VVlwfiU|Hm4uB6)w1kHKXg;v z6(avk8ZEx`QeybNM7;+ou@S|}{jpG0$p@qt_EK5P;YgLhWe74wPSs8vtMFH=-dWej zi3L4|-g3*0y77m5&e5KuXfDO?8v(KMRV5ca8O$iz|~o zO7dFA!*NPZ>H#cgQoI983XU$Pq)yD!faI7&mv?!Gnuh4vtlb_58fqnR7qc(>4wilE z+Q0TOyGo=x4QcHjsfxL|ab-*K{bT#ht|_S6p|0iNEuX!5DAJv!`u^7ClVI(3ZlnqxiTxTgh`cVozI zsS9q1IUTfj*n#CHE;qMx@ci$hJ#RO6KdKFrk1G)5t=<__(STFQf4J=z;AUr2j}>YU zX@8D9w|f+Zb}5Ar@$6i^6j23^3W9?yCC}+*p0S1FCR66m4yf9!&G_h?(#oBDwZl&2 z4;JDF;bhwTmgnf*i~%=9rmF|2)q5Lm53qn)((EmVPUWJN#s+E5-QZO z@(i0HcY8Z>ZGSel_}l=D+J`T-Ko@%yh4tt{I9+W2f9IuE&{FY$L5q3Pjv88o-8&59 z9F&?5WK9@5S9D6`fM*R}GsR^^ZMZe>d`td=&c4=<7fZBXDh^Urw>QS)leIV>WjHzz z@->PfD3E>4L_0^-OQigX-qbKlf1z2|Zu)N6fBjdSe%`8a(|sn~_8*lSw+I0=Eehhv zIzD`#=URl6O0Oay1S0HVlcKqxV*TxWf!%&i!sUIMsxtTVhI0Km4FT;dCAF!~Nw?eb z)KVaC4tNXUOcT@#9gWv_EbMBz06hJ~Q~-pROmU5J*>;zDBIIBi6QALhvT=R*{SJ)6 zi|Rq+)qVKr*7vf%_ZI+x7xYbUy)ek#UJt0VZ}^)!NJNATrOKA)7cf{*m3WtAvGuo) zh?irD_E*}wYeJWH*t^|e4VX-a3m)z7(#;L!>H!d3;Lt3Q#mkd;(F|fNq8dn+4qK(5 zgd<&~t?m@>`yHF6hM;bgDK_JQ)u?EK>w*c+q#yGuO{maGJ0vq$?P%F-D5jzsfmUOl zc3?0JxFiN8Ddz#|=4v)(b z7Q|6#e*a;LTB^ow5MdY_3d8xUi9C8F!uniK;>@285PGyDa!)vwR^u#ll$aw6D&J# zYT8-b_v5?MTm)y{OzY6sG(5}-W%!dki}ldygtV+RYY{^#~Y zlhekf#Dpnlz%K?Zd;DN}KTcK-H@s!^WMX{O&Fvqk0l)IB&-P4#RjMcS?{+sN{e5$P z^C%^rzwB6Uy9cAS1IIIc8VD{GH*v)m)r(YtOc>)v;W>o zVs;yf)?lmIXh*~s>n12-TYL52_ZopA_{3J2E?G=d92y86*W{b-(pZzd}bbSy}}=M`n4pTc!-b*P~^ z`i7!?M*9ma02i%m&J_c3KPUmMnB6Jd&PQL$mrSR z6tpB0P4-4hl7|WwIf7Y8pcL!#+=JjFju5RJgBD0$m-8ko*C|g6nk`~9E^;J5m;4r& z-FlAjHQ2T4!2%QNy^jM#jB7rZB@aN20wG^c6$*?X`xT2bb`Hl$TIUaOq+>aP8jep1 zOPfXMB!P<}50yxD70zM47l*J>ho7i;OYlbh6l@{sdK zUoICv!F@dtkXt7I%+$4i=Zi+~$WfPelgZBFarI{oc_5@+%7t>qi;Es3-aV)J%!J^` z$|H@TNiZ9s%fX=2woLA3Fo(Oe?z(mU3akZUn#XPTIL=_~GHP?pTZ6fP=YxIR^97z3 zcQ4WgCR7G?($-)Zbf3bt9BUC|X3J9pqo<;gl$gglSmd%dluH#u-aqZ@rp7U1<>qTS zona6Pv=s7UcM$(kT+nicLKqGEEO?h&dj?0Iv8zZ6mM?s&bm>_fZdZ@dGmW-gT!tHj zw+jh9)x|4eoVlStG^Wqrb%HTyD}W$D2s#IVGyP(lOyCy2{z?Ib<9;qAcfvSiyEKcM z2dK%}NnXauv~iBY0~##+Z!WTZzxbkoTt*uQmiP1w6)VkvNVoJXyI>i20!l!3_)%{7 zWwrrnYV%zM`izzzG2HJ&`mTaNjQMhZeqQO`<2sh}PIWJ%FK=}Qnldb}767-Nl`Cf%=X;_gjXIJX;J>GwQ5FSs&qn(G&A z`|4%Q7vKDr>3n`LzbW|Am+432oZ1Vh+PlH0_wUMEe0kdC<$3+!0dDVz+bizk6!&M4 zA|m9*z^ilrrf;WS?rti)|1(%{S9gsDsD-oorC9^1p@aJa9+aZFrlB*lFGdDz7P^cx z0?}is=*LG3i-6tZ1EJfd3qWY0C?m!Vd}CgT`o=5xX7Ofs;hXWP0-pYx*U#R(nSb;4 zG7cHMx?3NE{@&`^?4Pq$|10T)f}5Hga)yNavpWjR|uj1H;6xukWO% zsh&A`^Xj|%EErDNqpNMEk1MGgHrmxb_u&8F>^;Al>ceo&ot+8^$qu~}dQl|wA|>=9 zLKLJbh9X5#1A-!;gkGcsQ2_x7MMZ3(h>C?!MLL3lSO|hhQ-c+Kg-p(wS!c~zXU&)S z2eQ9pm*4YT_jNN>cl}Q^sP_9t(EG{7hR^FyxXF2IurT-fZBJf>Dk{1MT<;%OCO&|aJLxPF;#<)-zaxyhT(T}fp zN41P00geli52{(%%OPO}Ujui}TP8$_?Xbz|Wre3vps?(u@9*|0?OIZv6pS$6)s0#q zU;LhRY4Ik*9A5v77!${=r!sf0I!FsFoIT&EWGN&4F@z8lR%@#xOv%Z)v!`TCn%gvv zvsJ_!Ws30B>tAmNAF2YDM#sX7?EYcui>#5K=L;=C+lEnVkzj2~j_XX@ND6OA?1Mn^ zZVr`-oh+}9INY|pSV8a8{!|(FD(X{J!s3ljSCW4%f2wAnbe32dl82XSax@y3YV%E2 zmg<;JI?MGJd=4*PEemg4zE*j1W%)WQOJ}8_WUu2&NQ6k(%8iWj8SKsMt9;pKjqF#4 zS8qR9Y+Mcgxn?mf18n^DZS0afvewkEadWMC$Rz287D!p$?q8ds!nik4h`inU`u{+K z?p)`O2^T+F?b~*|-eKgCxY|!)+Ozy$9+R0_%xPsnPBu}ET+C$G=qV2`OzAm>sZAo~ z#IWQTDWvv(NI4p@y{?b2Gh@C3SzN>J6T;S$`%psLDKgO)^dY&E?9Su1FEjI@OBp|$ zoBFn4c~!Qg(MtUxP;74tWe0Z5y~INEhl{PW?=5DZv8fgG0xtK%h0{WXAD=|~?~bwc zB3v*Y`}<;l>y&-T?(x@#caNTW13n%8F?Dc|f3*0`F1^;fwk@Dswb(|#`9UK9?;W3ogEwYhCw5yivfCSCqoLQ^Nc@&ej^W_{!tV+8M(48%*?KI zYVg$RM&J9f=_^Gl%mN{aV@Yo@`hNe}7DTFZwol{4H;r4g3-Azy}z>v@W0Uc79@}TjDY#=5h24&mwRt5MAvd#lfn=CWc?6z%H9JKww zut5m}+u`eqwu$S)X{~n|7@17@9a?~uks2l*-sTc9&Ma$_lwpS6EFv%S9P2q-=SZs~T}k9KQKj8s%sb zLox~bAc~C5a=%QJM3^IN+t4;r!k)!O@;OREwG!K;yPyDSx|Gxs7KW=Oy%BSP&iDzT zMb%1CwsnBdvKy>Fgv55a3bfHNc*VVduTlRFBq_%*?~t-9DMxW(V>oR(v`mMTgA1WB zqbw0{X)_Eua*Xc*qdkXVAs1^T2v21)l<`_Fl!Dr)0YbJUbCQc_Ef=BQU@MBqO`|YL zfTnu}!i}3o`7loHJrgW)kkV~5Me0hY!f-)=y~0GR-zWwsckDP49XbYtCke%@=7NGGA{8X60;H4=mtUZ3#@>{nxbt3dt~x2*10gi z-S-=zyW#st-ntk}Jxsk8SDSs$;3kE|d6{!1o|L?~YF|0$#jNZM2I&s!G=FB$V~k|x zu(-I{<%uQ@gittV`ytajua?A1`v5j6$ zI-W~*^*7%CjM$CQx`oU*rHqWn#2Ewo(#8P9qOl%|!t`8{^hOC12pAVu>gF%gjz1C< z1`-EeYnD>({TXN>$k%PWn7aArogT)BGbBaFTJhuzHxiwE|V1YJPD@D0EF3qf=y2+D717MYd7@~=84r6@Kj41L*^Ou z=es=WFsoE_q-;HY$%XgrQY#^88otX4cO-WuRb6oguDI!fCDe&k89bZk59^9EO5YqQ z4iW;C5=IQGeh+=J{_oEy1K-L*?_RQ#`#YB7(ON4tymU6NZJaRv%tldU*)8z0$_sYC z4)!xPA}j#VH|um*q(Z98-6P36vMCNv;HmXAM5(ol67Ge7sdA7VA-UWk9z6mxVkvvj zvl`KRhbZ4$NF9{!C6BGivYiMnQ+ zg-(H#KJpmxgH0$GA)=JC9mz|D>mg+Fq+RaoZ5~VI+5&g@5XA`hK2j$^Ss8cdno5`L zG9}RVGU$5U-O7WRiKP&;=$U%V)Fm1D5>h6_a1z>kLzZ{g@9$5a5c!aPn-KQO;oxt#A9u8UD=mc$ zH(>UX#Y_T?GW+G~b;=U&MC0#;6;cd#cD7z9{U5L{>Z(P|VNNX-T*r@Z-XKp$88 z=-UE3iqb3=l5-fEeCEJT!^k%$#XM9$b4{h4PeH6NpEvFK>n6o^c4VerkqQ$Tr#o4w z?QZ)ji2AdAGQcptB zAfD%)E+&ZxP=|e*;>Ow9QFhU?#t8edBPd&n#06;62{Lt|gE928b&3>I=;CjxfYXtz z5&3Nb;a{BD(S%r!%P5TvHOxVO@I`NwA_SR1kN&telcVTVbZ-`#fcADujksG&e|A;7 zK?5je#V*tfg+2rOHG$9k2&l*fdfAgLpc+Q{2!0J>LiM;DbtoWQdmIvaq#+_eot}=N zP3fQj?f9MF@O3UZ@$u8XYE37H$B(?21(>pEBV5`I!+{+!C`=OOJlFc5$n zk|0w$+~YTF`Cj5dax_TBLA6=BCo+qig||Hm5;Nd?G7N%onk?M6gzas-sOC0IwNGA) z24uICy<&GeD`e{9 z`*MyDv`qN?ErLHr*kTiWYau>E{XgJR_=89hnIm+W(pdA-IRDawS7UA+5nbw!X_JMdp|M#T3M+%G@wP@lt7v+2xkGYPNgL2Rl?W=^XEVPx;Hk3V4=glH>(*hzucq7#)!?hi*Ec50fk7>Cpol)S#uh_A%l% zEs69D%?|3hB5i7rA7n?_r_z&H;th*P8C{POl3eP;Cxg&6>Ulip-rM)`x3@huzNJ|_L>-N=LCBx7v<}FYE3d< z)t5bMG-T7tcl9PB#`nfEaU+*-ul+0gxu?Td_Ml8n%8o zaZRYYSNtyK9IHOj?en4Xds6US-smpvbn<1~l~Z}bw&(o>umDrt zPr8PgyJM5hI4{5|nC{2auW>!W@?i+sd?3d4~Tw$g!aKeFtg z-f5$>-1LV^{2#%U5&Fyr2tG2j#p$j)6gw99u=j#R>J7801?<$Lik`q^vIe~7Q9j7@ z$aIC$x!1?GVRvkcwMJmsh~^d@0KJ&0&u$88FZ;a>YG+lwdeMBIfv-s1QT{8ci;|G0 znSku|G-4&79X(52;aoRJ5N7J5>%Mv23^H3i<_PnGLUo`ckY1)V&VK2&H(k5*%qW0b2f#T1a{S*iwP9)>(ghb82R${|=S9wLAN22*?EKM=Glui`p` z7H;JKrv}NgdNBHq;22i^4+=dE2t7WSIojp~G{u>t(pSv7Y2_2>Ionm|xJjy%|RV7;yA8)iO~xFBPf z%dmfH2wC-u=0rm=x3uOGu(xp@xSfzV)BC)*urW4DP+QCjhdzH7p09KIR?_uTv=<5% zm>&>3p+VLMOc56oN_L86s3P`s+3~0zER@lLRhAkmI?QU`P((Zbu5qwuOTM>L_y=qO-5gO6ih8H%*fa6fBDHosxCqj5!aOd)`okn=db(^>2X=00T%Tpzu@ z9lEbR_FXgwm#TW$$jP1#8gj~nm6am>DWBJzebrFzS>-1qAhp}L&m}@fCp|OyX8(ht zScg=;#Oya|R^2ITgM<<0*=km;YLjfWd4?K~rt*2sl;t2H$QT~Fap^DjB9eG%Jwejv zUFrUJFM~E;($2`GXa^)XLAz@sn7?p`cM~O!Mqb;i@Y&$f%k@%_%}5a}r7R-7iBtEC zUx6ILCSd%Xl%Mk1bAwH&MNU%-rs5Vaeh!&R$&E4<`epMr2E4eu;H z)v+n^nf?ldO@~-1J``M{D&jjsWR^-O(mfrVJN0=lp>%WVn!>a+|EL}>?d5r2h10+A zQM|D{mKx@I1`b# z`98ta;! z8*utz!OQev!e`d(-=p}mbPW1}J;-w~;D5y!9{g^U^4+BRyIIF~i`nm%{O{IEKPaBx z4_l)$$g3Elrw9$eDG%+>_>n)pP5C6j`zzi@4_M*}e}ZNZd%k%G<4^7Y0`Jbw@^Jk3 z_@MW*r-nZqf*rkCJFM`24iAH$c?&gr$SC2<%GbZPkp_Hk^Fa3dEeM5Ed&{Sb2uK$J z&&m**j-HjWVk1EhXKE2-%7dTyEsJ%TQQpEgpTR#NUv;?hDRIZ?cm*pT04U@U7RLx3 zT<#|xKD{bpckSANIY%EB92|$|wJsuSoZOj%h)$U1VVUoniy_~>j&d2A%j0!O zfCdzD2?GF@RxR2x`>u#zEhWev&+<1x-sZLgklBmF7#Lid15;wPbbZi*6^f?zlzV;hxFX5lT$3WsjwODdsWObX<6CzE{CnV^ zjIoXh3@!qYx&5<-CvXaO`5UdD{F)EN&m^f)&I1NHeWc49k*{XTTjGRRUYWI}=XQkn zJ&y9>(YmOq!s-@Z751K(lHd33(}fQ`s)ohsx3V^VT_?i8=vOAkrou^wFVC<4K zi=epea^grki}96*yBfCF6_KnFh=Eb52kYzdm72DftW3gO@Mo zGz+JcKjRAn7i5-lQ{|-5Y>N!RD!htR!Rq(*r+M$ymhB!dBPoph!2a6Co9L%QN&}-MHkTr{>qMB#v}C$poSvE{gEt zV1jnul-y>8)wGqLzA<`-LkbjML8No9wM6f|Raq>Z%j~v(TF--rxB2g8qBc7!T{A-uKqm+53A?qfh#$ zE^MR$t}3lz5XN*99hrKSt1`dg3%{7&pj9_A*D@M`FniT;uyE^Yq~DeDYeeTeQ3wVO zaTd+DU5o9ztnxtctY5vYx%W@)B_y+}R>ny7qvWoZUq3k?EBE1+K4rWrSgI}9lSK=S z?o1jZ7?dq4oIpr3KgX!giAKB5Ty9v33A*8dF zDi2M?L^R!s^Xaq_lAzIH`zy4x>m@}wqsQY?KVELUoAG|ieKOJElCw^6h6Y9LbWfRo zSWQkkVf)`&RUrdb|L%qw+$l@FGpg+~i)Nq91@ug+*X8rTWw0}giBkH^aeC3yO;A-J z^Sz3oKD|rM#Zm5cD)&SgXf2SF3pm4NY06IW^x`CHUwV9=u;U#cVv2vg;>V`*)ckLF z=pA*x#-zymIKu)O#vbTmr@3pWJQiC!t|GmWgV5?isGeLmFrS=@f4s5nix4M6%v{wm ztSdFwg;4;~&Z7|I?t(}P=qEofa@4Qf?&$WSa?y7V12IGipJI6S+gUl^B^&cCeXmPG z<6(u~#lp5Pw2R}ysvJzQQDrU z!e{>+UyGS~U@sT$<9*fR-?UqZq@n646XjT+I+XWVEk&w0M8Y}OEvWW9*vXe4vdA-Z z4?Wr9;qe0_fn zGIqf*M(}9|bt{Q>>J^7>DUhyZfZ(2s1jJF>Ew9TCyAt#9(T!We~N%Z{#|?Gtbn)!Olf29K~rqOcK5#nEci^lZQL6_b}9 z+P7V(r@r0q@b7`CT*ajLbc5GVN_bgI0Djsk<60Yws`Y9O`^wcAf#M@Kk8g&$U6p;6 z_c&U`=$=b}Rqe|zP92qwyp@wY@ZubkdnjSJf6IUe6S_6gAQ8jihu+uj^H^A4V{uB$h+9IlhCJBop(1LlJr)C%tR@o}@klj$7#$DIfNzM6XayZ89npN|f1{hI3FBk2sJB~4H)&p|uU zO;uR{%z*+3)7YRQhl}tnQxWzfI~r8ZolAMhupJ9SX& z=QO*5F(n(Fw!2M2hKuc-GGCyMxusA@~ zv8-R1ZCR}CT|Wr=HD5TfpNRG*O-Tg=0t$L#*!)h`^!PBZXRd+y(cxyE-7 z{^T?BVrTr9OviV{ig9x)8VQ{8BT%Z8R4PV_*r|kI7ui;~w>mC$X2$~=$_Gi{K@-~& ztD|YqEp9)N{mr4D{V}igw9?~W#{0brh|VYERFxZC$~3=46OZO*dc9&njVj0vruBHApsy&3vwI9jHn;j&&lyq!_rQQ1>ye>&>^ z=i>!K0o`KScDEksGA4f72)m!+@qeqE~2QcY=) zaoivmFCXuj?2q`EjT|kWMW$~^Y1@wr9M}d3I7IWcytb?0OqL?|Cz`^UcjP7H|J(8V zg`~No4?gDCsMlmCQ)F_r)dZVWyt4_;GTaO$BN|dYDlko}kG78JAo}l}V`K#W2X`sU zncm4*+DSp(r05F@_ZS)9ldQHE6NGM+Ozjj>A%O?#a=z}Oz}Obk=NR_{4pvh8!S(E` zdpj*)87prv7ZD36FC!&-e1V}*k;4)0)vDG=Ac)=J6cNY_}(V+m%qFtWqNGK}<4j{lhL>L5m!)*~mIJ?q;2b;3rFNZsC_wztRJ zJqkTA;{ZmXBob|=?HOioDd%!}KPUCx z88(OZ+gCxB2!R-8I(v1SQ(G=>astyC=tM&}6_NVRvHGeapB%Qt4`F+Q9GulMo`hBA zXua*DsX2#+^qt)Q?6~E#lW+UtGaNT3`Vxlfjq>dfG$2*2KUdnNNV-2m+$CMjrOv`S z#a-z6bJa9Xmt_~P<(z5AP8!QOU6!+W_|5@U`I2N8 z=7s0w_0KQ2KCkF`UOD-^YT@~nAJ3~111#}@8nuC1qk%eyfqL(Ot6>Az;s&l~3^ZIA zxKTgQ*g7C+*t<13aC>3k&X0k+h(WgaV3XQlv(aFS!(glT;JvWHwz$Fj8G{cl3_h$M zY;PTW)HC>aa`4H*;L{(29f%>0_)w?XP?ynAx5H46_fT)xP+#28vkZ5ifx>=7ZcP2q zV9(Id{6or!t18FATpH*j!tO-}DT> zog99*F#P_<@GN2^nkzmsr#AAzXk^}DWWjsnW7x=I+{mYlk)`CW8upImwZZ4DBWsf* z75nde`7!bpG0GDkT~{0ZW;FWUVf2Uh=ubf*Qrzh8jM0q?qj7SUDgAi&=A1v1qnit( zTR%qmh%rE7?CUMe*UFqD*#92@#z@8g24I}}`u_qjqNhCmPXMD~oH@Jl((?ZSFx;wE zT9jVi^lK@!tiN}2>Mr3OLt$6jElvu4lw~~Fc62g@f2qA{*HrlK!uani@BZ9*_vp$0 zH-Ir%W?15I<6(>c$ia_^itqLrMGYoAxokabv9j`tUGyS<_nYO_nFnWH{i}F%ikk5B ze*qXJ+h(y*55F^EPR2U43FHL`7bj*T~n4 zga0*J|4BTal3`Sn=4yf&&Qc23#gIK*#c-H6aq6#09Ba_{I!!R_SQw#9$<&XYK{T~^ zB#Mci!rT7T?g`47Ue5lIx4muYf4Et+=JSnSMa~zPEj9=ki(gCgMHH0w0@FbiI;M}5>R+y<(o12)KC*UP!mi`X_!{XU!L%lFr$GYKF-Ady|W!~YN z^;h@@d5u6s*59!J`bBNZ-9z7mZ{05dTmMsyI6NBpUfgX1g9k`Sp2)Rn)$%OXX7FhK!Ze!YP zP1p5yds5spqSV*{Z9LYwV2^R#O~de8;$u#YzD*S ze@OaQDrd<{Dyj5!BlL>(``nLzcF`yr3v^Wpv8>^BVb3wrF^FxU1e@P(yP^G?`}spZ z+ah|DpUK6_*Bk}Bc`*o^kLJQ$QU?Y_{0{yr)5Lz-h29bNk6Gw zO%!!M;_+P8JJw)g1{+zKt!zvyWwVzKO=KCByS8RPK6GukRkah7%KR1-t2W{?z_u zaLLfZE;1EsyQNwDSVWD{Z^!k&++*r&WGC|!H7oUyHtr=iPO1CKXYUu{@0J)@Y<_6 z*F+hO800OuMX_&(+v_I815=%L%#N+d9u>Q$9LERBxU{h@8S;ach0{#gd5)9bvGok$ zEkfRB}sgfw$;b(2w&>NN=P3V_ zaE0Lq^Ke3!#8h9aY+sqfr9l~TZ%G)xqi0szoOPEmVyp#`@A$eYaPdu>2o`*72 zE)cUFle?wQ+GnT&bDX%II(MI@Oi6Z=UgNSd&ZkD!x{Hi~nb~2Dn}lofo7_)C)(|&o zVf(vS=oAcB4ot97Otu#dq1&sVu6H;Xg(~fC)c`*5iW2|L%Zm#dblmC~c({C7J)cK`l6Z=Sl!{ z!$YLeH(p2iyX0>8-grj9ZIPF2#TbXM50cHibjem;rY1QU8v}KVikqa%)YDKq*dSB_4RMu6q%i$M~WT;Q3NeEOiW*ar4S*!2m{&8-b$%B$v zPvjG>2jl!`;vu1Q_&psBv?&5^xB6~7kl%DyOnMH7GIO@sfcZaQyy}qjK)?|D2`R}W z_?8Po&~8&i>guiMKd_Db9Um-w|24l$;tL(jyf{ZFnjTTkD%iKyv}04j4m$QDm30$B zhZ=Pe@cG?_rSvR!mu=z~1u2rV#18Ag{D4rV19O)K%4RX|hAxt!xRxqXbIF3JtIm-- zdk+c7ccm6YIxK>Zi=JnFxGGQSv~e>2C^SEhX}m=Dx#|{uYwx|Ay&i4Nbrx$OtNy?* z_9girEVQj(jj%ogCOBrL+k4xI1oBR*zo#O%8HI?KyOg$aFXlK=SKm##AxK*qC|$(7 zVxD|GU_eJCZKMJN8_uXpY=6*lUTG`R7?2#{Wv+@VXWXOT0c|FN=VvOB}=H4KVj z%0iTeb4M0$PfNzJGNXFBD_12rL?c>}YBHzNy`N)~#Yw%G+9ujJ)~gpM_pe# zutHXkf-rDh*0}}z=pJkK#=l3++5ElzvEMr*%1m^X;E(Y!7RHsGQdvCPxT82dS+QUt z>xs_sgg&F1;@u}v-L_*GIxZ>Q1_ObwQ<1$gv zC%qc!9-~ka$QNGBvQg+i7L1{HZvO>~7xwIi1<)C)e}9Ug{W@XU6syRl8i!;$f&;$N z`LqD+;vDq*m^9QD{ojjdp@itctZ0IC>fb)uMI$_-1ZgXVN^gOCQiT!$eOoU>V=B@n z^t6iMY0++T`ggKK9bB;mshJ*z=p<}$1w~M>l;FLXOR%LL;_WPtFW$=O+{AqGBu~!4 zjQeT&^K z$mWeqnwB7>45|nOhh)>(76pDw(lwRsLb;OLyYq9@pfqt8@x^_-o`TA_%zgFSlUiIQ zUI)tg7biXo?0i!q*sb$%t+F;L*PC;)RS;Nv09KS2Mr<2w%u495uo3 z`i(f|f_Uv5q#Sz5fr{KmK_B%ODPZD`N*hU=8I?UVKQW)Y!wf6)ji~YvLWB`hWQb~) zpcM16>oFS5b@2W6WLq)vEiJ%_b18~i9!0}^;Gt$jQRd|(zHDT5d728hM6l)wC8Gj4 z=N!xR-bJQfJ)O-2fg ziEV?|4UW_ll|4Jt^xA0R8tN3Q;^IS*KpMuEc}6-XHH1$`Zag?s_xg-6m5JT3L=p)R zBm-D_Hh7~_CiJW?x9asnkxQ>DGJsNs77?N93b+VUtX%PzF+&*H~#SFWLrDF^R*&>@^?`QkK6PTy7N68FM3HjY8=AKu&`TX!XlX<_6req?N*SZRzi39 zwXO@^UiE_(cQPDwBEH=M$s(p?kyDqCZ*&^0lbA?&El_tZRR_ejz?&PZFTTF?YuYFT zLjS&jwrn&5PQX_M5Y_LP-T=?zbhxC3OLSXOvZ`me? zF}+0^Qil%T!DoAaYDLWMJP=4DTqGloG2mJds*R2?WPuhx2{F{2+iA#Ep5Uf1(d42R z8KC*3Zq~ zG-ZE@!GF`jHI^?A|&8H7*$=L+KuDz)rJ3_i(HZ zfaQ%nRu!0NxfmsKN;U)TzKGW3iEQ!^hGdaNI!cMseUSqTrsLTRa3>GDK|^ZdniEOD zC<}}s70K{W9=~x~R6i~DVK+C0A8zF8U8YxEO!v8&29i4>Fz+~&8ZxzKn3gx2*LcMr$ypy8x$4`~=9P@9OIOrgH9KD+1^|2L0)INNtH z+Y%M5ba;e92AEFAu98eZ>O}evoYL5<+BLS=-c-ctm&?nq|GAmM>aO_!$L>dAp3{-f zA=FB;vFmkRa|=^b5~#$(T&{BA16a8eSc);i6Oan37{9VMF3=pKua0$mJ7PcfvVcbI zBaO!o2WXCAwY=^h^}WyM<#)WmD6#h%@}VN#i?C1UUgT5_Y;lIZxio=nybfi;ofXvb zPh_112Jo2Q{}SdQQ{Z*p5A6$9*h+Fs>vK9LQPBQFMb5jjzueMQa=Yxn0iN&(|1tFV z0AW(j3PmZXc-f^9kJ7XZ4kW=Edr%A3;m>U!D zGAX77G_&Aaic73ms7K2vvkz7O=eVlIZ2DANIqfI+&RAKL`a3 zaBp}_9|@g*0Ry5QB=X7kx5y$9EcDr9T3;qHZ483~mf*F7&*r#CHd)M44S(@)XGw~D zCT8-<{jUctN$*B0%8Eu*!kpa zue4wqCWBXD;i@0Z?VK|;6&CyCtL-v8t&cC@2%>9y}(0yRn_CCI?&Dm?MV+vrVgM{uuMl1W#Nd=h_{PSj8Bk@ z8{%LfpSsr;;pt-TaIM+le%g0UJ*csEb)>T%v;kGg*1{*ixDpWI3F640BH8fn6J0@s z)k_z3#ONj9g;b%eFFa!#MG~8jO^KC3sX{;CYOdLFOvY(wwf%LwB?3t>)n)*q6dra$ zz;ywM)!?Ow)24qbJb`Pw$Z1ZLbtTHWxD8kYJ(AGhC$i@k&F0rw19aHtdKva;A?fIs zle)*4dje1BOHLR?*zd?73)fKuHEWnB?7tb%k?c!<6CvM#6LqqW+obo@o32;7o>yKU z`;W){Z=KG0l0xb@KmLvWufO`=K*zsl$2HeSuAujLMc#EWh}67qaOY0fzo8<+H$Fq> z-QDIfJ<(B}ZNtJomz1`as<&1;w$^61zVNqrO8jp&{4X}!T4VVQA=~bXZriBl1D&2+ z%GnLvhwq-%MYd%UACuN20BJw5Zsf(-bPQ^C~DEywNC?2tYn`pG>x|8HRfrn^^knGfl6 z-B}`$Bko)>cl?a&f9kYBrMCmO4|HU0j#UF^6ZwwEx7JGIU}(I-PR`hy`^z2mGI}P= zfZ*uG;i}`h=8vl1zkRTakHXKxv$;=;RDJXP%vV2s9Ii%dE1dW_p7|u=6fr$L>&xSJ z>CRief7Y1Z{}oIQs9*LuAE|z+Sp~8hxCSS+y#3c+WQrp*I?loz7UL3iQnI%nv)~S%Y8CP-X1{OxwT(iAz0SS zBm1OU?lahHT(irat!+ZCBi3?-V;qfJWBhFCv>X^pTc14YhdV2R!9B(aWm^f!k-rj_sQ1+KkA;p~72;oNF~JN_%Dj zZf=Hq9-N{6tJAqRSq{b+Jb&jkjL$IqN4)qU-|Cg@g5`-d*^vxw4TI6qR))(F#M$CV9lYT(87qK{>qmmPqzQKA_mRa#9aED`bB+BH^jZZHR0%lz= zec#k@Gg4Rem#Wo)4fTm+F=Y<1=AZ-v3BU93en^4&*)uNL2WN>PGwLS)(Wb2WPMplj z%|CFAIS_qPZ=%*1pQY58Q!A`j3#IMRRCcsnUr}IRSWk{%anvMc|3skSK@t*@z+2Y3 zZpx62{gM=4`HAQ)ez`N?4Dh-)!+wA2Na5#xJ(#y;N&)|RGP)|{Dpr0;E&RC#h}S~6 zdI+gUb_<;9rv1dxu#IM6{3Kb%E>{P^$Y#OKJ4WlkHO#L9&=MAFCk8CLYhLrUf&&4h z;#Hcj=AC8s$^CDndy=K~xv(22#U^UjG)&rBl-V{i(D3@L$r_DA+c0)HY2q2&bP`=N z{U8EYy5Ut<8Gl^;CofwLAa$IK6pp(i?0rM9V5{kb4u4A@y!mvFakZu}M_yH~`)Qkl zn#QKcUba^auiYt0#t7YKJ9%L*?Pla#6pFYo= zQ~K&s-0NbhxQT}Tc7%E3x34#%!R40I1wzuR7C6XGo=+#18sj$N`V zk(kVuWct}D=)lxhit}EHoZdH}hLS~&2-!k0q|d`<_k=5%wJl1aaU~vt8B}8HylgN4 zphw1w4*Ds_Q7d33(?&&_5Dg3e-Yq$#3^bJAQJAIopaDAO)*Sx4^*?20iAOz@9XMuI zRX9IP=1+g#)uT6LwJ)lR825IczTVhrdjVy}O#KoqQGZ<|%C&dNHYHzB&ifi>;`VLe z(P1}1uR$vI{E3Xz&2%{HJ6czS?7^n8h|WjCzmWV*dhszQ?Y-}WMNPRs|MsO>>G@g^ z`MGYnZDZp;yGbDrCTuQWtaVXDTl-1lM9`DNPypku~xLN{YR~L}QfK)fv1+ zn6kAfhWbS6W*v;_jWb`jSqmmuA3A!}=CatEW9}wzMV_~Z{}*tmZl{Z~MO(kMQ^gk@ z{!sCdDA&yJ1Or$*DLDpY!_^oUhFyzA@5G0focN2WNC-e_R_UOV%VYYxw#Pj&8CMMNIZ7OlJO6cm zaZ`MN+HQ?Pl!AD#qv4G8``z&k=h9)qV4Ip{|Yg1U1?Esnwz>=nEv<4arE1+7bUQ`qCfHr7NdVc6rEN2%aeMFN-Aeo?~vDZ zmKU-;WpsZy4Rt#U$)e2}t)e7dWZa$*_q)sc)B^fBLLNMmdo}SnsDba{ z2@$Mh*~{OvW~KXqj#FQ1GZb&eM|x;ci`3(2AM117oFDCTdl{Dm4}Tx-9~WDBrTpmg zij{}vyIfkX#8>?eRkAPgvq@YRfpNN|qva-CMrzI_!xUAf%#vr+kIS4jQW!`!$G+9C zmT&jcLQST7zqbpG7LKHS6<_M@9oA?(J;Y!c(w9fYepw%2bLA|0&v}Skfc8}J=P+6# z&1(i(Kb~v8Q@a>(I^s;p=?8{0Fqv<*;vvu(rTz-TI?W;Y?~$)T)J&VuzYl@;bAQh! zcgy3j0j|-V;Oo3xPn%EW0`Vo{v3ySUN&MOMpM+3+0xG6D_`w@G!yz~ANG{m1o+@&q z9eo+XOY7n(Peifx5z-mY9>CHJP!$102_kSn8WBxKy=lqb8r}?TlK``lF;H9@)UHfD0s+y}sd8qZ1X~lfk)=#aRm~~o4-`LHNxUPo{i$qa zdt)7>plq5UJG(=S z>9oNJKigu)o2(>TmU#83v%mrD56aX3BaN31a zhHdOT`Y-z=yIKrz7N?(!wR{#Q&WPVY>qa^+&QvMya%~NKo}lU^^5>4T;D}~syf=U$ z1WT=$>@78i9a;dw#fx8WWQirD6LIM{vO><9#Gdh|(lE_d)@PZtr^VrvHbzbHEQa3{RVx@XD&HS89V2>N&1A6Y}LE@zJi;V_KlsufDVMC(~>t zDUT*!IG&0T$Yy}Rfo=GUmM=UT;-+?<%HSQ3L?m^;_WO&d#@Xf5^?79EEtYgpX8kpY z681r_thi7N7^a~NBmTqK|IS~HV;9&g(PQPbPATXKdE zNJd))NI?Tb`X0jyjW^Xvp@#Lc4oy8$ugI>pF$yuK9Qa4yTxzelJMr(muYvCRGO+77;tX}S%jP|Gfc^G_8~AVim*iiEcxI$^ zKhbp<++QHwt#UtLa4_)8U_jUv4&avpI3Ca)3f?>vvUMnQ&rn#{Q26noi1eYzf}yCY zq38!ghdYL128WJ(8H)Wi6n6wOuCO-=`Yvj%Oy_w0p{R#C>bH&_@v}XTqrO&54I2EI z;C^BTe`2fOC61y`9q)ue#z`?jUdT%%XPlrQ66pTv>U$EJd8hk%r;~KjHyoZJv2)gVqZBhDrbpJMSccOd;bhC_BJ z?ZpizQ+QF$+_;*wL&$xB{jiWos1qLQFW_$Y2SO07aa-of8D2b5gCKk%uygnBGxe=6 z5S3;ZBqP(Uli+8_JlB5CgFx^g3uauC=0)L{_Cw}Y;itr} zfhfN<*)vHzIt3Co$4g+QSr)_psiwt6rqPyRVN9q)Bs7f9mBe+wUiKYM3;b|A1CcWK z!DIhDAJdOH*h0#FR0^3FmjQXO26In>1hHWLHPE1CSPbyrT*=2dUwAZ~>oVo*-kcug zj{uC{D7Kut+i~t*!i_rmlg#G-LSYK#>Cm zGA#lN-Jf~84sq8Z%gv_ly`QZ4kj9Zbs(ZEZzhx0a}LyhBr`eI%dijW>2WMX_t>FA>?Kz| z;NP6jTLluj?FxD=VE2ml_5sacBm)yQm;l`m zQG0qhxjywv0*mY~-#iRPuwasImb5z`IMXtvf`{TiI8lXMm-_U>9%+^WMhJyNFXlxs zIh2gxeHcg>195^5_wP>~8B8Y=8KzixWi~_>4KsPlO~@!o#44uB%ZC807P*4MWB?!< z%)Qq?TMq^=!vUP)21?R>4k4#i)7^9V%43!0WmsdbCjMr{-W8xOEVbsQ_F0x-4aa-l;DpAa^dv>+Me=@Mq>i5<^`9q2R=D`trkY2&7sF#b(oC69$o=%QWS(^rB!N-)S zi=r#`UV(%9!MCbq@Yk!n`u7{y+wLE~ab4*DRRdyn? z)cHWNhB|l|#-rZWr$nsnz8L2p6}SwKVWyFXf4Cq=F6xCta(xS%ue#AWU&d~9Mf zuQ(Br;BoW>fB#|&qUa+cseU%YAB>3PrISHtacApE$_fS4lLhj8U_r=R3F`fHB}cbeGZ1@a zW6Mx^QIoAsLGA@{DI7VuXNglhqgeay<}%J1p0PF0YuLEC7^GNFau8gRKLMS0(LT#8 z5tAO^k(j#f%M_^K<6{?XaR4|3K3HeJ4Q`B!9au_O5|pL(?7wZW8sM` z|I@igHNJ&`b2Ya-0N3;=CXfNp*(#?)nI&yES~|IVrPTjOt5!B8RAH9XlTu4>R;ZC# zC-JG^n&|fjGUCX9UQ(G4F4R1J<36B@*>&a5YY2c$e~52M?`BE7{_wnrMY_i(+)RL{ zX~<>)9E>fNEoKi=;_YoC7Be|Yh!-3?o=ap}6d*oKkxyFYZtTOlRSw2X1%@HhX-L>1 zI`=3Q5tYm3|AB=TAx^ON9h*y!=;!G_<7NC}8tv<}w z1WqY*PuB-0VEU_UpU;6`L>sfdruV0BPEKvORS{tTbS836Oe;1h0X*)--*Ti=)vP`C zskC=DQ}!*>i)SczbQJkzb#Q4+J@_qKTXmh6j$olFsjieCpNvV?=XAm6%LWa8Mi7CQ zpPcqyj%Oa@oy6k}&2Xp4pW>!q?kw>^eA)&RLSh>U4gCX)uZJCK=JNM06mQ{Pk6WpJ zxSx<&aF!1Gfq@_>PKwQ-v;AO5^Fo~-a1DEx&$_MxK5~Xs4>?&N`W|>XNM4Wi)$|?x zRT-P3CU1Uu>iFb;T~Sx6j{%|UhyyiMdk{!aGLR-G*abMJA#7@}8*e^4K0oj_lu(uD7JQnkPZs|EHMFNJb>s1pk_-xl@z`OZ8!ndrE{ z`|s7qk4wJvcd(9@pJ{`+_s~IYQXlzS2&gB5M{@8JcN3_ zyXUuT*fL#^>arU8TXxH1!Qv~71X?mDMCjAS0_z1CU%F>6DwpO0JF}eQmMOgcHvC7c z)vl{NK%ru>G#XsU+uunAc4n`Pu7N21@Ml~PV;k|3-+^(4>HW2=7;n- z{BD%rW&g(j|8D=A;`BbPuzgd}X}EJM0}cyfj%)_%*ZmP2m0mH++;>4FtZ!Of%sB{6 zsrXR1<&Ep*ux(=4@bM=OHr-A?=nR;Y-Ee_U(`^S8_`#f;Eg``<6Y$~U_3aRrqJ%mj zYXY>s{^4|Zq4RAt(;_iVYFpmYEUTh5UZa4-8MKb#A zp3e|-ogxgfiV7u6F*v*D8Weksd>;1)S}qrePp91kxdg|n>$j2jl2xfesAb2+Z|F4nib-L$M+bT@4t z-*;7bUYnffXcRk1$lmbE9edp|Slq|RkFQ7q7VntYVVNWk2 zDN=x1HrZY2#J$U2=vd26ib%e(KZ9e{Pt4AO5E1bh4qfgjDvC!^d!ON^a~)S8@HlnH zQY6{e*RL_R47aln%eXgyaiJM&?bGqSt^IqGYK#2j+))D=m*p{;1H-A9c79gUjG616 zb|q(n3T$Vj{?(@o1tve_`r`T~uU!3xaIHMyHZx@&MA3ia~ykdg^oK{p2<| z{v(*y6kmCub(^B){VU&V^1Z&a58*8ncE+5pITx~84R7d?ZyfZ!usby>y!iySs&3$h z#U2lb@GGwZ8{QIqh3-CApZCpB9~h|yP5U@wLI) z#`{3aB8?q}yqf1E(!J0v70L@+(F7Iu`1G|zwSMJG8!w_v-GIEMU2^76P#5 z>O+tlFd?78fN3T1L2w2jZ9fMxPtit4v{B*t!rL0@KoyFTnCGi&n6M&!!9i?`z;)Q zH|#&v9is7fpS%6UJQse-rWf6B4r$5?gJit#xFF~<YyrZNxp>aHJ$x!(Wx=n)zN#PzFCMZo4*y;8AMDHStU!e!aR#?izKod3&Nbq~_If z$NiY(u21!g;>l$+w0UzbgcKX7z1dbw@GZ?|vbEz&P#H<-s|7 z!JY66#WJ~H+&cHwfovodzZe*8Lo(Yc#Sl zk|CWu+H2{LMYPm*${IC;MlLX}SI&#HP3S@l+2Zo^ULa6Qvke_9E>f$ZO8+)keh#_o zUnKwO;5v(EH$;My-?f6Efb2y4wMBS}82eu{*Gw`%MVRs{ZsgZxNmKafBX`XpESER9 ziTg0Y-w>orv724YJo~%MUl|p=^Tf`H)PsUH+mpDj}jRz;R2fZIfRMX!2ss}R%cday)@89nc?EJWZr4uUqsu(KDr z6PpH#B?wi}pohnHe;+&)5?Y4p%L`Pv_JZbmkPgA6un-;s8T+^OC5Jw(6*YLXRFNDr z6KC~COEmT@{sjU*DCdaHPrRt*D8dH9R%7Z}@@J}CEDr+v< z8?}ZkR7(-v&4()5rb?HH!b^lQS>6XtKwaprui3A2Qux49s?>JTU3w>c1k!P{NJCG% zYOegx$qWYuCpGXgfCcHD1}fM*sea-y91CI}EbA4lI|SQRESl|MH?Kl4gf?S^PT`U> zd|CM4qkJ25s$z{qfJ(~+8adKB;3?fUlUadd41B3fqZP6DLOcWo-w1sLnJ?>95Y23tzhDcja_|pVz3^0r8kYGKxKJ=| zvj;9^@FI3b_Miz{n!HV$DZoI#Aeg?m( zcn~JhjqF3*%AS0T&wavB-t14i&Q|HOp_Xq}O=2Tpk!&kGNA}0g13B_GSGvtgfbAoY zz&itxB`kxP3=5_}iTcWFR3O*=0u|bp-^)@P7OC_CTZr8%Oe!A#*~x@0m6W+RTwsi3 zNug66re0$Mb{(7%B*q3brR$}v4ERmLD#uubVE}}w!#RDq^-BpTg{8sg9I+jkZH9PV z7RgX=0Aej?3fL>_wROF~cz7Gt?c@8K0$imhVHDULROFN<#16XL2O1_K zr)KTHIY4#1!b$+Xl(R?XE?j_=+fFlzvoa~ordFg;@XGYG$hw5{sK;$3#YK0@IT<%x znAdJi4=A23yzuGf5@2|+bwp_{;>`1*CqG6f%vIqfG#h)DpL2Z&2nsfV=j?v%zVSoW zk))ltz4J!hrN^5KKn~NJ$G(;3>D3fY-ks=@*ZEeKsPk$~)x#DzGPL*Sz|L47HH(~H z8=3M(nSIsfg>FdSN6q_gROMGsPn=4Q_5&M+#XPsh3hURd?326N8mOJ5z*3#T{tO+s zuJyUv+o-30V7tt1hxoGUlg16H;WdTd8}@f#?QfqwSdl$OmM%Xy zd-M3sYZh?F6pqEJu|NtCfM-nXMb8{L!aT1V?OCje+af*fZk_BGYv*c@JhxF9xD$zT z;(wr3%1>0j?Y6J&o-VJM_vrA8Ni3P^c^>h?bEf;LNl#9-gJ)iIlS%I{5iJ{M&d!uUl_MBRqR?KPi%(E?~gR%abt3Je@9626o`r5DV z-96=QbiV$h_p||#J-x#*k|*!;@%09o>9pyn-oO)+%xznJI=!&$s-E0{l2j&QN9fFh zjymxhpW)bY=eg&!fKls45f6XRp^?*5koM-N=~K*|FPny1VuFl~jyM!cAX|zdPVDVp zuRxXzOvhtOUhUU;A$P64nwYEfL*)ziF{AcPA7o1k2Ndo-c~tXY3PgDMPT{d1Uwpj2 z*qYqsb{AgH{?;ejJY`Bp9`0P7t?s^3GanP%d*lkYWQ+#=xeyy$dBkbPW%njj$GPd2 z)tE7#m>*l>s5VC1v*B%fIzA@v?<@RZJ9_uI|2vzhpElI=jJggRlYKX8vh0dE*Oq?T z&cuQL+_h`u*pJ?|-)J8^zta?Cvd8LG`r6bx@1DzAT^}(aYwMgfA;d}0Sr?{!YtHS; z2xs}+&xyz6vPP|f;!S^2x~qXZPuglfM8?QmOFImIjPGFJ>~P_mr2WPF3ZmH%<&$I~d%OicYxrG}xWCbzzHT1JB8 znIJ_bTi$@JYyeV!J5R8qsoSwN{+rkM)1VC8(|l{LIA^X|#x^->+&6Tqp+DC1*d6m@ zJ5JX&{CFzb{qpCBb1|_Dk+K0>g+(K=EDWyF42mr9x%UjtS{PkDN~&Mbzi)x3v$5^M zA_cPsuBq(1IjfWs(`UQ8OB?n)x;$qa6Wh$u8UUHIIJPF1me%(z-$E?qIhO8=R=XDo zwQP$~h2|>N<|D=ruNcovFq=m5pSZmlRPA4i^>Pq!%!vW*=O!NqNJi~SeoT1HiLTst ziWDg)ajb4btXvkY-g2mKIaX&aETye1e}eFYMkllTR%bz4y)L0jvAd9UbY|Wz|3>Sp zhi}FEe7-Yl_xWCDVu8|Sky)#&*>3OdQqksCj_%%c8O!LW@F-h@RF$Pgs>BkXB(nHw zWv&25vH+)ljn*syxR~vvy=2jns$$@5!$iD&8X$d@L-zPq$;$e1?TByHQfaWrsu!%t z7drp3qFtrYFKnj%WTQ(^a*<%_ZO;C~0x%Jz-TF&of`z6FO&O3a1b=ik2al#*`~}91 zI# zz&iYVqO(0UQu#!5(U#-?T;q#=Z#+My?F#dK2pqF^?%tAgYD;vS_0c%%q(h0xd#Ta- zR9Hq+_@NWWUi>-9I}yECkaYIMu8BW8Qxbvg0%&Esmt$OPFK3D|hJPR;5}dUJuFhHQ z9-}c1!?`jxZL%oaYP5Du~50HnEg3 z5ui-irUJ;ptv7)gm;6tVuu=gEDR5YlaMZ9HM-PzGD96d32I4~)^j}sPpB;-`zJ7#k zVF+;T9cc;O8CU^vnUX7Ef$Bw${Y6ewkijvzi_)AUQyiP#jx>p=0_k$$5GV66_3Ijk zyz1#h0fVgC9LWuitB?|xlNa1?7VIu{B)awv=RW6i$i)y9>8xqM_szF?VSN=Ms) zs)25f6Q4Tm&2>tVPnaYmH?IxmWTSKWdt5lFxl4sI+ z#qEvJHH-E-bEW~1$?#sM5)j{N)G0t@In}dGdzO6RaIWgh_amv&CIaQiRAcf3tSeik zF(nfLQYfYoq0Xd6+HGk-0qU$t1<64{NFqo%m!-%MtvwyFt$eq0sdKVD(vCvKw}OGG zwnzY2w+H2?wUL10M0+-*TV#z+g^W_Qb^1XCEt-|*wJFpmVi$PE`NSm%49^x!gFs}V zao~>FMu!j+b{<_I4|K{X^gG315dJjXWp-p~9R$x-UvUeKELrgzv~Luxt8(szTD-g` zkq;4g4_c)b6FaQ2j~g=m+my|#v!kfMjEB5 zHG-@gK?+p%?0+;;C`17&jI?1%hqh4^c9aP@vFY6(YSuEa?M`^=c^&X|BvqS1WGrV! z__HBdZ=C4VgoWU^3F#+MEC?WwuT?-G6JsK&(_=7DBhseGH7^E^z$2*WF``&KU4MPU zc*ew*YXCVb4(3GJv0U`}I%@gd1#QO*zb5PKPR#DFI1XMx(I4eixn)c0*Q6l=LHXHN zjLT|&V-Gr9Sfw;6*ycxiSGZr)+hdd;;&y6osIKMfrcY)h9V&x`(~;2C42~>77xMIW zT(vvV+Z451$&^qZb$xkRJo&-)#Oy?RV^RE<&SaHcOZT0}exj8mwG{E63k~<&vabQG zFJ|+P&ipbUkNr8J{q(HViI|4qFBuSRLmTw`*T0(S+6K>X!{c`~o}ZDduYkxuRDkSc zWQwI55%-x6sQx|t=amxRP=-RUMD($gMzj8ber3ppwj@mU+N}JFoA1x3*>skmfWNIJ zcBj?@Y|GA^{`Y6kEa$|DQu~yz=y_6h!-9v)IlIb@Ogc?BmJou6&WRy##~LggUy0PB z83reftDK}ByHQ#*KDMnYYh6mjPWByUH&~*@h;()GtuzRPAn9j;ftdNPC`2D=7ogW1 zGNbwG%Hj6zv&ZaQSZLqHTFrM>=Zlal@R;x7^WT*N>Mcy zytAxM5JLm&$0D#Au$o@YGXbI>x;mx*B6RqKq->7*n}Dq6XKO2u^yEXA#hKcet6w!0 z3MpXN2$Zs$brS0TR`%>FN(7wcCMg@({(X%yfXs|!B2MdUq%x7{p0mE zJpD4fgV~#Go1Dh7lcVonwImE>iXbQ*s3Jl;x@H5Sj3iB*BM0Z$$U84hEl8PO69k># zH}UOf=^DQ+GU!A1KNdu)n)GVp>+4%tlNe8wIk4di^#HB*Y=7QY4d*u(4K+Hm{g223< z+VV=_-t~*L)!{Y}By0Z0is>1fb{LSc)XPSzJ_^^?KKvO8RuG(A7b^nJ=691acd!q? z;eb!jS!jj}aNbbEG>C%FM$s)Kpdn>>dZa{z?qSH`7aG!xW5N(WK$vr@Ke z%rm)6doz<1o}QnI$^lKk$QqH`E4Q%dOTvT}_{%jiJwsT{u$`f=IVuY4|eI z%-6Ls@T85FuQn@zE)IPEUeb-QpqizakeR=NX^iEX-HAC$E`jG_xr;SH)3X+`VWHP?PCBmU>Li2>QjFT% z{}Cr*BD)CVYT3CTmAZ*6L%6AtU+W7;*T|>ZJ6r;Hpe}tPpkxo=Lp0ZmI}i1;WdhbJ z)H{KdRhC{D2;smjJI#zPj!SQwRItG(Ys_m~t=`&Q3y}!lPLkG%8IJks zlRa$&ZXP!oUU}N^ds(=@Us|da!w6*XbZJ=bOs!7Q+0@(n*UtGp`CXx|kIy*daG92; zCv|j~%-v8Nk^K!mt9_jtweg5L?_#fw=`iPlq~?YX8B_!}g$5itePzG08}o*!HBq&)?3_F8~-1u}((|&MiKI zah;&MB|l#B=8z6K=!SimZj5*4a-fUs4@zpx>OA`VHw6Ql_m6baFWDr4_DSgNE^7;1 zyE_q`;T+Shozem`?*^UN)|_tNN8*`agQabWZKOWj$5>4E$pb0ITy}5XlMyY9g8fJ{ zU9SEmIz}h^v>QwFfLY+GGyYl9OlZSvq`Q5E9KdJM{=<=#;g@^8Xs@~^**D4uUHF%o zmTg8CecT5MRqa!tNp~*7%nd#h1|nU3>!wAz*R*x~mUMUR3m&t8T()-$K73s{;>N}C zn>`h)@GaL`^9-b^D)gar^K0eONqiRgc`;&}a_Mwc<-4Mj7iUdfvkvUj1Y^o&$)@M)Mg-+njGAx3wQ>Fvlc}Zq<0u(pmKZCmT|q zq_CksR&pB~G(Nhl{_xxP3xgkbA3HynN;5P&i`rsQz#l0GGYpg5j^?p3%bTeX#Ok*o!f#z@8U3QRAmC~y19$mr(Zo74{S zL<%q872HUUSJb~-YHwYibvslib77^!{vD=E6{7YdsWG$qTCB`&FWz@7tTu?0IVy#d z1l?!w?1s$?R69Q_1y6Mt%gtv{vVsYphkq$}CW;d0Lho*+of>iHX;hkc25r)L*ReP6 z*N=cwP4%IhZNz6sW#X3AzYE;-80zg;^qp^V$Zpfs<2g~3V5R3t9DGJgaI`^)Qcic9 zZ_$~@cl#<@Tu-)oi(8&|-yRM58noVNBAfip$!RHU{ndQ(#TBp6)b@u7Y4})kOk&Ar zjqZ=B+Nonm^{g@Mj&4^=BNERocMN+0?>S==vpM|kF5H$&-Q7fyrrYJ$Hmc}i06 z3lcd8$JZX-nFrP^1a@q?Q1OX4(i>vfOG3Br0NpXjLEi$->-PoS)z~GIK4HHnkoz!PRoM?pJbYQGh?ot;ea&D<`v6^ShmglXSdu5Iwb*Uv(Y)T?aYT3 z@g2z^@3dGnsyvZdJrz#t{6tk557Ma|-?Svu^#zkY3G||)D@KB(Cv-45V&o`MW61y= zLsQA2!g9puxiNGORizK+zb?c#3Dof}%Hi6$L@H5z46Cr9+{h?jCZUfB3BG_5l!0sn zw!?*b`}xb(*qPKdxCe!w4kb0Ss^PMqj#vt1ow2L95jW^{K8pt1;;O zZ@9-jo2svuZin(0a?Rlt%8s9*;vngrVwqJcEF7X4K$RUDL({21{)Ei%7nx6Ds8t(| z&M3EVhAF*~@)Z--1h9kcppAl%KL*VgY9kh~l5keF>KODXO}CMOY_8VDU7Ch6G#ka( z7?S+Kv5iDGC8eNuIV_M56@BiTUYD3x4N^S76fI|m*08Y|h;M~d^h^(Twk>l1xN^8) zW16871v2Yn=;2PK)d@}2Ah=Qp;@W35U!oq;5Rxy{m=WR}#e^6kY}f)9D>fqp!ADSP z0aTUsF%*}Go}tP5epcH_m7Sph$z#ygBk)RXjc`8YxwiR7%kJMo*flB^8idQE0V`CQ z0U~^7H;73@ALSt};+5QJHx;~ed=ReaSoCc=T1Nm17o%dtkcO!F7BJ{l~xT-ldV4i%XFX>*GULDobe8N#i#j4kyb zSmlCdH4Rp2fj(Fv7a-X6>Aq*#56$0W&@?`#`#QD14V%gbHnL39h;S=DD1(KSBR$Oj zhIK0s9x7LVx-snhpR5Ix4po;xMUD#a!yx|AFJ{+>m`_BsI0%s+gh&=@)CyotVwqZ^ ztptR)=Az;&ro<&6XM|h#Fcgy6ut+OhxWLltxQ`@A`g)JlOc2t_*R!4m>*RRs9?(b@ z!p3PcGzRWDQ@ zr9!0mfQJC}oTSmY=&Gdc5h31?_=B4mw!T#9ETLK81I=(T+yA*#{i2M8K+1xoF!5Hy z{*Bc2-|#I3HWaZ;aIktf6?UZ>ceKzP9q&=LG4s8FRWYQHbn7|I(as_x&thO%%Wyi5}7CVg@5n%rEHid$r@; z`=j&CpN=7Y71X$ZoiGeqQn_V$%PE^lO*tA&iilicsUaV#iHT|fAUMDWLIoSh7u2U4 zAnJJ}cG5g=jQWPJik(C|3V=eYEP;(u0^kC^>`{S=>PzRVFM(aqLm7!?*lj@WTh~r` z8^w*?Q^f)^JxI0MxnmEIHRf&Xacb+Zw@;g{!qF4mYN zVdzB2bt-NJK(_)iB_zU@_jNfJ90mJ;Dzn!!x6(^CEW0CJ{QO!!7mb}?xlpR+Qjq2n zTYY*%9~Y!KJ60w1)TCBw?CjDke&aC%s*bb$8IbI^ZKdXcavd0M)0I$>IUam@rD8Am z?wpq-cjcD*a-G42ajW7d>!3qdvY!;YD>Xc>eYsNm+O}>mx$gbrx{oV$W43p`B;Wb= z_|A`&JM*@8CBKsI{(XFRZRIY=t{$egqI9F;Z#00gYuNg=C9A$(J*OaeFroW!?Bn4E z^{XX{cK7$93iL5=Dlw%+*Y9t(yMOm~t5KHsvFO;j^0B!E^ORv+3`osB!kil16Z4_* zVN#>zhkJjGzu%ixZ|l>arg=+oPX#dGbO3fnjBF#~+C>EW8TDR}rW{P?jmb;@1C7V+ z>fhdec)CU3o@a;bButK}$&XFE=@^>+^w|DdwHA3@+y&+{i7HE=rsMJa zo_%eCWNu8QjREi1d!$kV>vw~prD3sDX?mt6_RGV;EQZ`gk>^!&kLkw^{|J5`zR!)R zjf&wE;K)t@rn(BXAZ|2+L|@qh-0(XRQ*gp5=31R+vkRJc3f zNkO&HI1NGVBr*bMuG2dCO?m{n&YG8(!=K^Cu1-DuK~g zyPd?%`^4}ZBIaq3hRNjPC!0j1*w#^VZH*)6$sevdohnF~e_J}>5j)!Tr0?Fyn6jjh z+T+dd-zSEIZ|uVLUIwy8E>mTnk_2008;*WVeVSx$wQ;%@KKhw^>HP~``$ze^!MEjv zqkFtcvez7L-w|mzv~TUXcZZD{4tNsBK*Wj>cN`!ThERDFRt$6@O})YP@4f}RvAIs3 z?oMkHv;MK|kgwlae$uyc(~YjcdDWx^5cPgb8Q6D?#r!)veeT)tlP|je&c6+9`r2No z)$;bcx)Ts7N;)HQzONx3b7~TFRIDL-f4w&ph`kv{Z1`JisRPGSwBcz1)M-LfjG~TUF-X zI!R$%fKw7F>))&(fJk#;2!cSpdNNR6DC_T{vMR9-Ukj9g^p7e~X~kF%oF8fVT*C%H-QTt*}^5XHnR@bdfPf)(RRXDqLmwLP8eJNE44k53O;l4m#ma%L^T=3e{DJko(yjRp&(UzJ;Y z+YCM41tz5z3*YnD?`O%Qggp%lmsA@+JyTP-nyedO3OOkdqRSgWuisN`^)LuU-WNeAkrky<$@|3TALkd-BiTTAus< z!3<&IPCW1}$ zQYaUvy}hp)CGVznIs3$5(j>N$&RAdN%Y&duv4pCN>Iuit!R;jKHh1J)wy!>aPS%Nv znnVIH>;}fLEkquZh1R$ z!&X92bWn#_OV$7I>Ry;tD_!ToC!QP7KkZNR|=Xa9>J*$h%PYfQp9gE z%8!hBXz|j<0I46Vi$dAot&6WL?bE#tZ|TofL^-Va|B1@-a?}>sf$eE*8(qT+M3p{; znkQwlyj#{0+!%c!!~fvqR6q@P;%Q!G60v*`d4?PQ*T`X zpf=7_gH47CQb5G=BDPV2x4Z<%mocF^D$BmFIyXg)0b2%TzEkb=JeNRiy;9;@V94ii zU6YsD%cb2uWB1=#XO}eG#aZ(C!{}HmA5VkKsf*#y{*-^^YGh7bKd-sXWGp;oS0s*S znu;;$cVe%J=pkTfCLDO@AH;HATY?l)-_o&ApMOM z=EQX|7Rd0W_&T0L4)c=Go&z(VZ-Y9OPA|#0S?@UYqX|)^TmE+H;!inu^cYymq=w8< z%E2$bFnere;ZgF;cbuo0vl_hp7mo}Y`nkP!tzD%cB_vXq`ZAa1>~oV&b;`!F%0Cv^ zZ$N9DhemHl^VtNikCG`GOKq9HE%!_fKgH*Ds>XV}xvNanG0NM^$7|kpASelWzRWZl{<8`Xm9Fhvo)xj7wJKQd zu&gdeA7~#lb|2mlgK(eB+FW-jmCgdR+VqW0NP1U4fFhC*fHE=)sZdTr!&SvK2w{MVy!gJgrgO0dNO~~dfvibXjxaV{(IeA_+Ea0+ zi~pgNe zV~vbJnp#mj`>goBb_C4t;e7 z!bxoySdHg{TM;*-pCvOyvOcbn&KDLfq(&#u1KTvV2=-oiuq7B}P)u_^@()5-6~mqI zH?^TI&EJpt8QKT>XUFU(SNcTVDmxOJuB{-%A6hpHam5Un16`+io6F63*!bw`^t;60mqzr?Po+M*E_h79*Ke*9 zbElpNWqCDF6S;EF#c%+oQTHQx@an7CJsD4bse2v$BR!5i;oiXc$Fpc(YEkc{noAD~ zj@NzPCQ~Cu#Zp8{z%ed!9~(AM2}pAVV1-6HtnUhq`+y}AXrX-IoMOYJvRZXH`9Ays z2H2U@mI}0Zv0wuNQ$zYR?Dkx2?wG#4wyP-pUg^)(egD>+ zrJso`v|qjeZH_B~j5x3rS93F5m*}!(QdTg>+%Le3up|@l5lKoR`Rgjk^L-ZjJFjo>fbmq;JCB9~zCX^} zC4N?Zv|L9CCe6-fo%PE)sM03uhxSY9QvI(lwnnOvA>AI@DHD%-AkxOs)Z^*ZrJ_e6=U?nz3k;YN3^l)Y_ZKLH{H3H#vTAK4*s0>%R9Wh3x<#du@}u^Z zZ!+qeON!_T2mkw1xt2Sm7J36)zG>4H+OwahHBZeS*E~Jj^u0t8yW-t}ra-#Tx-K?E zkWAWfc=@uM;hw+JIc)*KgV zA9vlgG9U50lYF)bLLf&*-%^43k-7U1S!TOhtiSKv{@~t`tGlMs3=GbqL@G0hND#f9 z;6D5jD+jVSt#tvmQC#0k#`Mb`tAD(%X*>O_EIHl3{EjhZ0R>)5J~Xa2hiPVOUJFXH z3H+#J#}9Wwt*xYdwk_LEck9poEgKK)(4&DKjUkQZB(i7bKw)2y`dGvLWT;d;#-Ja` z$DMHPI^DVFn7E5QTArL_4WV_?Q~o4(Rf0ygf?!POV}^I+ul*a8xUR-P1-@MU*JEel z5pIA<-jecjG5EhZnZxpi0b#Q7eDGuf++_pI#s?=PB8zqhFcHTlnodjJvG-DfrGoU0 zlu{wwGe$u`=dtY=2H-b`R{kaZgn9h!oD4;qgP{UO4S{B9OzVER)@q;idPojKdK+Kb zD+#JL54U6JNXQw4d3ax=Z5im83KD;PZ@j-jX4{_NHHJRc9P$EwTnEqn76IUy@Y}ws zx0Ylgnqhb>SCs*5UdDgj3~{3Gbz(@+q6pIF3fShv6c>gxn0%h&ug>+z0E^-74B1V5 z>0_Pye5$ivOdY;7m9?!rIbJtWh}o z+X%U>U+}9_ZpT#Xtm=k{K$S8V@gm zDCoyiPYqu1ox1SBI@iWCS9c@DzW+$ppA%>PIQNZ%gQ~r5g`$%g(pJa3gZOm2eq;_A zf?PbilCdq;^B60k(zTdzjOV2rwVs8h1wbx9p-6I z4<2ku&$MQ^x~4hswzyd7xHbW<5zFxTc}3tTq}q*V$AGSPG0!jVUY}sD2@0t~ri82~ zdRTCTXE*Jp0J15vF?8D|D0XK+Nt>ao4O@m654ukvG+~piIBLt+2e(CBoBLPD4h9*@)F9P2PC?Lg9q*@{>QZ*n7qGBjYhtNY0y{H&^$AE}n4ZWxo zv4ElmL_k0cQba_uxwCV3@7}pT>_3o92r%=W=bY!`TjiZnb-AwU%23sxw`sW(RsI^) zfp*n5e5->~szd9l!-uLP7ptQMYGO2M;_PY?d~1?YYLe?}Qip2N7i%&FYO^$IbL?vK zd}|9*YK!V>Zw=MnS**P)P*04KwQde77S3gwOxL9{jfLq_JQGegA{(*1( z!<71ty86dM^-mY;p9?f}YBY4)HT3#6^rtio)-}8sYIwESFe1=6rqMWV*Z9`A@qJ3; zWL@LOp~g>(jb8+srZt+r+BJRiZJJMM`d-(xv{++1)O2&R>ZiuNHM@HozW08o-1}2^ z@9)sPe~b6H0!+w0Cd{6RxWYuHGWqM7f-jgtOH8a_Gj3nAh<&rzmF7LE&64%a(l452 zmzw1STjck(DB8CuUujWIZBegp+4rJFYpLZw!TbC7-Pg6hf8fe}epjrak+S}a`)1Qk zCW5VI`&yxADvn%fwN7odt#7q|(RysD^@QMqllvZ=`q(=BJ=4nUfpfj^1J@T1+?O7l z7i@F8@}PeM3xNRgf8YoN00lI8%pO35ltTa%7eJt7Y?zGBIFyKn+W@n)I|)>@yKU24 z)|)D!SRDSpFc}qtIclfs+y+}JUlb574BfW9|9>+Xt$!|6kK8533CP;D){JHE!YThR zlVSIu?td^DzMqEv2a`eWPWc~9#^imU@jCYxZH*rvQoau58D9T9^*C_poO{Z{>#onD zU>0!WJSMx_Q%LdL%Z)ppee`D2jHAvP{WtS;&-XTT+@Bv|SfuVf_Nevyc+IK$bFa3& zp1)(t6{Ex-w+-%%hOdK#7+LdSzH1X1=_A_aANHXSs@FWk)2E}6Qqh-Z@JbM;V*ZLM z*+;>U`x-~NRGYt#|HQuiYO<5#hA&i#hzP=QcZtf~N+eK_!x4fnhi_)WM@)9wcObZIUY8H@o|Ad2B(WC19{Lc1Z-BbD% z@B#FV2eT6{Z_cLxEiAumw!sq&SbK#IsnkJ@yR^(bQ1l)mTrfz`EWoCVLlu>;tFDSd z1zB1D(Ro8_M1J=qz0$#2Ub`RhZg~_vBCcd>W+<(fDE-Zqvy4OZdkg!wc-W#7>@*b30*V0EZq}Q>*TvgYfQzj_etMA zrPucgYFwUx zuY`F8l{3pHgR-MT&d?A%TyO>g83m*l4F@{P66qQf=0HS!j93Xd;jfsNpk+ubQ7MEj zi}DiZ`rJJXKPYS3siFSWU;vj!0Lc#okjA1mkGOE=lNcw#1hpsP(*ow{A;y_;0=C8G zpRIbdax?IUNTozeM(ig7PT0kb*PDV)VMej#l>xCv~X!p>=#+@mJUtJl~C(RRQLXs_Y73+(56)>ny=i z)&Bbcvc=(=>YZ|c6f*ElRH-ulV;8$Ei?2$+QfMY3PGXkVfF0!kw<3Q(fkgGnYzC(7 zdF6RHxi+p-$db`4N>%)PGvUXX2f0C_DD0B+!z9WXrC>2(9LARJXh=!Vk+G4wZ9D36 z{6VEBySmyJw7kksEa8JN0Hu#vX|k4qhlk{GeH!3C%hSMy%m8sjgRUo27G8PV*A7?L8Yt<4Ib?wzFHR#Zq@8t`(+HA~(*Td-Y! zOO#K5L=|9x=_ps3(=R#*KK^HtuAY&WhCYaCZ<0^Zoe90WkX7GU({{fyPppN`|H;wg zVaG8Gu_4=}eLZH_FnYK4$uqCDj`y5qyB3&PQ3N*@VxK<8p#)?~_hL}MeUqV5P^4^l zGG9j|u_o3^KWx~!D;Iy==cB5ADh$VFo!X&N%>4>L!)5jp!IOM1f30Oc!p!;!*si1& zyRyrp#Cszf5}o<$_zo;UDiqVZ#rz!OWLs}46uP0j_+zKzNe2}RWx8;tpn_0bTg3sj zmfegrYm=jmTq#e6g;*WfwvQd~*tH^0DsTU}kLrW|2DQ@`5tkHBh#4Y|tW1-VFEYK{ zN~Qb>OJZ+GI>rLMA#q((9Rf+;k4j0QLg-x&fp2>{C)k$L*w;K=;6AoE~qn$NQ?3&^R!;f6T}CF#iD-wrwMD^&Ddvoj-#}F{OLc zg)cD)ndXvqs|DDn3)UyLU*FnYuQ~B_@$AUz=ZHhyHH$I+xrkvNLW-rIFt%G z<*oC_+W+5KaCJ}2thEmYVSrkQc=0}xUkz|$@ZBIGwpBqTDg^Ek{Sz5A=^b6^9r5O2 z0)MmH!W?L4qm-W$HE$j9 z@?rEzO5$%M48u$kWkf2WqM~{KjcusP@lH1Nh* z+)*2l&qnFEO%$pWLLkt3-UG3;IB8U}v`>of041~~!Nvw;6oNHsK%`AXtWRoOdy3gc z$_IVW>mV4nMe9K()3=fyNgVBa2ugqnP_x+FkklTV)cQS9ok_ijg^+4zCvj)gMT**$WQc%jVH#{T4~m1C z;eqp`F#(rS_>)0NJmfhW?79HnYeuLt|AUVDHApC5luX3p5N811yb&HfkPBr;Kc|7; zm4V~VzHU|E66dOor-o4xHC!#CN-Y5~4RfF-5e-P43$SZN5CSE;G9ZooOG;B6T({~(D@uYAUMi7NTbOqjm3A#TX{#TS)(&=uf@=@K z!plm{&fwA7O!7q9!%3PP7as^^>Zsu|;mtZnsmguo^gUVWu;yazQX+KvLdff!$4S&Q zTTlXkbzT;}Xs$JX!_6fi(!&{CK#7JGD7nVcw$u{;7Ue@3`F#G+**~~{oQtPwl{w#W zO1y;|{{qQU!?*m(Zh4Uiuv9W8sEb`Zn`jzjuAWXuty+{zni(Tc@>9i+R<+nb32I3* zWzP~RR^Kn4b1XYjTw(X9;^>EpR99#^xWWYVyVq-{EZRG(wMDKHN|nI0AiTL2ALGn4zmw}xdwxIW*O>4&C)Dg4c7s5i0ffiE`>)xUSzqTk zu5b;m9xQQDs``L?cB2VOZxj*S)9WuBC@k@sbKpA%Cu85J)7)hKtHu5!?!SG&;HY5f zDC&z#Jrs|MWAo+ZhkYYG*wcyOTZL)l9_>`PSD%Cy9&1?rl~WcFwm>&QOry_>Fwy=@ z6HB_-EX0u@n0Fy;Z1lm96mC8bB18edLmxzV?)gSAdZz)L?|x` zJA^#|p;2Hj=>XCLT`*7{nOMC-mJ>5evES3W5fa`tnouputMJE83Y@OFi4pOP;< z{B5T6QMKI&d}IW2!FnhgQoIk8V*x3ypb!;ypWR&Z8+)U`FJK>V_|Fp**8{B@F1ou0 zPDm@IKCUmb4^i)gYA_HPMk>fh5qqh&$6bYW3gp~vYP%nS3fszX$J z#4_dUBwh%(?jnk7Vz=G=fCJ*n(W|h)#ZEH?$nQB|MDQ8c7L?hCxnv}~#V{ApF*A9H zO^gMB*>3$ZLq*EL&vJ7jAu2&KVTWU~QWb6v=H!)yu zmP$r1oLH6WYz3OnDgWNgL6dqEr}y7m4T-No?;WodhyXXZmEaB;^Yn_+mwiuXRK?t@ z;^YODKZT3_Biy#rQENS<{QDpX8V@ZQf!`?438kHOEkl)66!nHmijVUrm%Os@Jdp^I z)955rb0gbdXow*AFTDA1Fm_TjJl#d@&K^BlteX4a#e&y0Zqlz_8^3z9EMK7c%It$T z?RDshZS?2mSHh*}8O`B#>oS3ArIXA1Ki&%IKwAks93BtTEs1rKvs!@hwbi8@%pe?mV9*owNR z8>5&ZPYmsSXi5L@k116FeT!wcV1&EM2D@4*-EW@jw*L#oP31@EN9ogZJ1@2Vz3yEV znjqi5h2FOup}xU;b^5r5YgnPf*b$*O8&sh$bWyj;p(9U6?bFAMOu|I}jjNbo-&6EM z6W$h-jczgD4BmcJ@cZrL?RU1aFZr8?Mk3xRU3+aL^s1sXks&DQ_X&$|ADLsIWlBSW z+{d_tw?7&0v|qiux++zng1fp8CnYW6_ao%833ddp%@;CpYlrua?-HOBVXq|I81UnG z;2iaX9rMFEJYdHH-H6~)ks)o2l6-dTHgbIbHS`AMm0-;4TgGpHkVX#u7)kZugOX6t z(y0Uzip*PvG5G`q_(mJ2-pPKNd^KgrGQ7gw5kG$?1{&MP5jt?~tQxO?(FME4e4C!6rm-U`>4IA)fIS@c zA`#m|`t+HJL`@6zZ4ZR_4|n_s*|^I7NyhXsHBWw@4!b0`2q**j0c0YW$cMh1hTKz=+Jnjr<@ z%u~<7IvLoeaOZ`{F&Y>7_Le3P#zw|*77BCwLz?H|X7gXoz=F^7ZCSwW&)<2MlbrxI zp+sr^DqARNVvT@GBC24jDvT2}#=qx2YJ*Vw^Yq-gGLsJz6E92z>Et_)S{*&BiRO zV7>r?Q!|vN9qc?A^ZXO$hBbSLjF}%DlaG3>t|iKGtQMFSAhQL0M)_>;0Ex;6#lcVG zfe-_b%|SpZrH=)1N=Slx-(^!%kh>2jL)62VjgjuW`#FkP8WnW@y0Rd|CRwv9QiMiE zF(|I*)ZO<#9ptfV`I?3(psA*qwf*l zhZ(ZH|6%u*B1D5?rpa|{d`Zdmizz1WPHv=-MjNR z5Xw{E@vJ18hMq3YH^?SK4&v)8fnyvcj^zK?n(i4AUUF=5zq|<(bi|uQ@ZmIeE;ZmZ zqq$Ab&>#Q%`dl9>K!w+;UU(d)#{X|O>w#RU<=+5dcdcYHMR=MBB@d9WA5SKe!H=wEy;WBA%e#?!4s z>I*<2#;|S$4mJI=_^*$p?HVcYu=wb=_c|AKI`m zUzELwQ)@U=@M)3vCzF>!x0H!LC}^TkUs{mdWYBX8(nt5M+h3$yz;t|JKgft1wmmj{ z`BLR6>iMABjXj4}cdB@!*WMG7fel^OlL5%4%eku3zRQ*8%F3;plZA1>=~EYqt${zN zJ|~s!KAmfyZeHk_lRWlSj3tqL>20r<`=Wnm%z4g!YepKfZ=up3lRtnX>cl&h`FG_F zm?M;5n^DgV`}cT2`toW#X_peEtPh@-UgEwTfAe=s`fACoxuVOOJt}?op6~B3ygcAH zUtE}z7B;CnvQyQJzVXhPYNb@1s8bjwY?W!X_j}8aBJ29vGtF?R7rpBfVr;AA0Y@A8 zn{0wQi?gb2d#e#uQo)dI zg)a}Ddo|4mdtDyc`_(RhPbtf8wlLw&>B*S+j^aMT#_bzb{pbFoTTNCV{ow(jA5vz2 z-Kyp%ouT2VS}MPu+2r=5v(qx}JQc&_xs}OHLq! z${hvd)BJPQz3=1W#eAvCvQ7}4|2&e`Sr#&l6XjGb&8c3evK~jRI8PXCHcN7zAdspGHllCa`|kM&s+3bmihw-TBF!U(YnOLHB|ui- zX-_oAzpm630gNArq3ed&aW#WKEytB0Jl{ zuE*e~w1tdmp|!hZUtCb@Trh8aG~s41!rIHn&ek$EnPmo0e7bdhv4ug96_+PUl=0Ew z6HJ_w{98!FDLcF#X&2ciHhtSJ?+`9$kf`tpZ++Aam-C;vp7$3QbFv@(cw7q+AVyAk z5AP@aoA!cRJAHO|yO>?^S`-EaU}!x&b&gGiWJlP3$Hc%OPSa9U`OZD<3?W9Apzf6; zS1H>bry-U%R6;2HTocvHZ?(JP;W5NG5M}YkJm6bkGNO^vj;9_Bf~m?dVvvU?vb($B z=mbWrZU)VvaHp#AfQNKUYrx0R*n>AoMJU~)OA|$E<_bo%L4GyTNeIAFz9iANjh2vt zMjcdX{qe(mX(ro`RVtl8ryYAr$TG)6&|00Aa)r|l$%PQabvhYBw~<+qA9*zCUauKN z$hsyvgMrc#fzO9PTz$DcxRm7cY5dB6F>fd0#5v$q;~>V66VK< zT2zMUoiUZbu$-(WC7SiWf!~RP(oudll-@^Vxp`MQ`VoAKy{J%O$#C-KmCMZfkne%t z+JKUin}si*{;p>2Q`|1!L>l+ zRrnR-uOr$9`sY5!Y;W#-(vk~1vU!@&$6Ld+I=-!vS+a4>s0#oQy=&dWiAZiRE7Z)PIhA@c%VI z7T_hwCI3%?JSy~mOptYbrv{qK`!n$tDKfS#UOmw&|EC0bYViL5k|3Ac4LwbqVT zlgjPx{C^VUxSyXRW$iaFI@SIds&lv3(fat1FkhNr|IqKq!<%c1$0jg8KR*xu2i=R- zZ*=OSO?TP9Y;XSBPgk@rIoi?k?S&hc{Q36U$99?s5IJ}BP|efVHK&@Wt(0|(cTj#4 zn`5`iGssX!lx2Y*S@+Avhfjg1noV}M;&fwbKPfOX{;ph_^n1+S$J2dsf*G~a@_sSy z@R!_xMlgKytBU-w8e+4pIbPt8TF}FlCy@{>I6d0QlDrzXix*`@!d2F9nP1RczZ(io z@6IrSZ>Sc8AcUQ;7CUMcC#V8X?@ti_64Y2GKi-_3P8RIcEd}HRf-;B$`&(sG^mKy6 z%~jsje9bW4T=<$v(z3pSu=e{(;B=!7 zFEcy$5|){erxPMf*0;@^6{LVYozjEJky#yFRcX+9!f%gfp%CLQsE|ycPQ4%Z=j(`p zqD>leK=alU%BbR=e}Mv)X#Z{@s0|nddpL1_q{G0XLU%+s^(6--X3uyqa^hZt4lYbd zhqm`bkIc{Kr_SD48%F4B1_&6uxdVlr)5TLqE$z84W5i006_2U7GC{pp(AI0X<~f}v z@Gbv8-KMhdn+-aj(fDIMIO}EJ(pcf&h>k9F8aY8egI1m>ZXLpEfnBvQ9Xq_m9zS7H zY!lvKr+RPviO|4QkMj59^<8 zU2Wevs!dGf-u|0e)q~wf{}aDAx&tof)I6a3jW$jbSNHk1Fg=Lx9WHF%Sw7EYIDXl3uh51Y6T7vOa z{RyqC>oR~*0~x$#a`bM9_2CR+OyDR+P8DFGH4TKIS3Tr5P@nmcM>I=bt-`D+u+40F z;6OZt7L;2)FjLqqD&ZlRNa_}G;M|Yz^;56{f##bGh<{`p-~keic1w}GDjqqIcSt5f z5t>nk0#fKgmFb7o$4iJF{(+t15iu!VTb;OYFCw2qhn?Z@NvL{A7bb!UQ=DQzBB!jk z)Mj{X64Nqrqbz-cEpDb=qFI0kg;xg1Mh=>ELVlnwtk!&2jdgAytA@n>=XsfCdAii| zdW0hKrStJPd3@;gkXURQ2fkqY^SrbLZSQf#@@OXrAWDhR*^Lppkoyy+PplGj;$Sf{ zF(Gn=N zW5h;sx5{w<$x0dEq(-whB{!CTn8KITqT5+yw>6?bA~S(-x>Vo<7=tusL7R@{r@lu> zUBcm^II<(~w7pNaq%_R}ZPrnCAkjo-iyrl|8)8)W;jkM3T%eGV*}6%P8AbxyW~J%+ zC=~J9`bmO@fE?nMpMWJ1F5@GQ^W{*n#uS*$6#0?lQ$N0_#K{$%!pz*$S2%$}H<^8^GKTIu)fOapj`<5t zx}@a<8B0DFiyPI%9yqL&(_TpxZ{_XpPmvq@h{@Uj8wi|m0)_yd&9-%fpkWuVX#m9q zkuQ1PGDKu;#1LttpZLyCymmOFed*Pdrmm_>=nrFaF+WC{gLLy#=x8rShZQ5;GcEU= z(s}rDF#P@TW8RamFUFkInJ|&Pfj_p@8ZM=Iod49{o|gyBD^2JzDeAvr#iu@t7hb%y zPqS3OsHRKYkBknT7*=>s zDQHn_kEs#Sg7Ss%kZQaEOxx{H{7EPH8JpG*>5Qj(#s!c^%&mu?4uYBGvnYbSSwek# zyfhVEeTLTZd5H$|!aZ3`zs?FuXZ#jLQKwIk;zTX+2)^~MkGJL{-bk-+U=2c%Mj>6< z&LqkKnwj99$nt<>X8d>47*t4HL4b(KwC8^@s6Ba5Zl~_y;As)BuLcsGNGmo>uA&(? z`Im~_!DCF^g5Wnqf3#hv{F8jr49Q4@t;Fly&iC2#4MLzpo(KES^@B12utX$GlVLJL z=imGdIm1BmDhMXOLWJpVqH|FzmXsTN!persgRfRZ8I z!Whwq>j}UdhvS}yC_#j=U?H?H&spT4GhE;OhRsbiiEF{_;f6`+8R8f1@xDgPl-vY} zSU*+rHR{|M(|M5ZDFMvj@OkuL7uNjG(o9bW%I7g*P%_$saJ1(uUpgg$3(%K1{@Wp@ zKg#Xb6BFjTjl8MQ|GHAYmf0#6WZ5YAj2i9q14V$YeJtXf*NEEF32ZGfXlREbSbDFU7_dXD?MvMmrK#Q56sj&(1*T5 zm)O|DY`&Rnl)-@_YbHXEXVWv#zb>LDMvZt#{oF4sPqZJ1ztV@_b5>2fI6z3Vi~d9R zSe}hij}v)^?d5&bv-F$ZOnl(XS;S01Hbp(^ih+BufrsLeYpwH11R~@+Dz4`j)`)X< zlK`I@cYVaALccIEC)iM3HZ%&aEvWCW#z3r6g}oV2T@Kuj0GlUcU6}BhUvOS$Id5b< z$AU`1ORNcIePo0_1seU$p{&T(p2D{$sKmb9ERK2}O2OP!0rc69NwnlbAEmefXrq3h zVAVlRY@qh#K#Fq`fqnbNg3oLI&>I)vZ}|)4Mhgf7W=}-;tT~z5WQ;Y3kIUw5(PQ^W zT?r$Wa2W`>Q51*HFGojl*+uCfmUrBwKZ@BLMQM|Q^ogD)I9MhFI#0of=m||Qc~B^w zr`Xqaz#YjKxYUqMCc=n`34R3MWg~ND9dsG!Ri02!b$m8(t4FzPsT-=m1>K7(-Fydi z1|P(SPo^s-QxOHXNjE*As02BDLdQTk7ZlJYW5cNDJy>_`@x@`z#0uxpi`NbY@Rp=^*wA;1!0STitRbE2J!GXn`C5hPxfcuEgJG&SJ;IA1hYo>q z-WXjvgX<-zOUB5Cneh<$L_=uvkk%$sqJ9xOw~1AL!*k^6_ih~A`6I;Lh6@kX=MmgY zi_bH+8v+kCa^r>U8BoleWz+{V4c3)sA!&JA-m}HIj$AzStg3s~kakg=b666=v8`ZY z;`*}pJ!@8NSOL{d2`JsRxstWDw{5N+9`*D~sh&9H3DE=R{vVXFsFITdI%@XAj%4Krvq6P9JI zLsR2G&b;?%ZEY$NaZzArxdo+W9CUZnb2kMp-tzItMZl)!3VwDQMG>GDAokmRgq@PM zE{K$wEqcUukO`8n-^RLfs@42qft%Qe45+B8VH^V*8fK=8e;7A-cTW$L$+&BQ*B<9R zqSqnQsoHHE$Pxu*h-hv~xMD#@^KotSBx;p*=;X6WdjDW2R?QE~vD{m8%K$a!L~H$~ zHJ_f2Wca*~13|Fzl4(yl+E~4j%SQ1r9gesh9{L3-(aCT=UF|}}eqrkU4TWp7ZMYy- zjRIS;I3-F(%y?o{NAucK&+l1>@ND*nfZb5pF)oL1qa5+Ut4;%Ncrgs_NHDYLAkExL zu=K>LjRJy>H@+vibIc(qT_}olV?Chb^u-WI0-r0v-CDdyuckoE+jonN%>SMdMits5 zYyTBN&Qnn1ctENLXUoV;cv6Kup`dB32ekv%g-ALiL zk;7S|$Cs0jzfZG>9TdWYYLmAOT%7;w2IL+zeeG!)@4aewX8-NY8}u8!5+{>Ceh1NS zUn^L@>UE=`xLL`nX5-dfSV@*Ph7CyYHqri!OAsMYUTR5t^UL#%-P1Rl4*#wFB1mt> z<~qI5ehQ{67+C8&=`<#E2P^%<^LYU8T*-E!UUnXocjxm0Jn`>LRQX)l@2<(d_Y->G z-0&{?2HzaXSITTmqqEz)#q<|A5oksrmT zuk^|UbUOr}?Elz)E#a9~6TI}}$@%x4ccz%1K8)*KhhH*(nO>9LeQWU8u{sm*Nu+kF zkM?rq)DP~?RIwM<;Xd{+13UW^yUCPEasRwc!Os1_ZUNX;va5Wo?FN8tk2^XX8N7eO ze={VZF&X<8!2Tw(R~oTfl!>pDiQg3L`!V(gh~<#6+W@a31Oq#Vo&9v>)a<1l**LOS zCK&1>-h|zz$f7=DR|%LU0!C<;z05g6c#HRoy>?y@m+9H9jk zW|=g*%n_PnVwT953CipOX_mK=^P5s-ZaQ24M`(g0#9@B@YX1?dKGWEN{lY-Eu#96F zsF$bshd4sxWON40*w>Hvh#+(`LuiDIF2$q#>8Klin6=UA=|dmKU*6)KaQ1OY$fGR8 zc^3QzC@@FC%+WC!9K;C@BFzsq#KL3`V|W`rd1QnO1;vYTR|rRrcu(Db^`SUuVVQ|4 z97Y@`qrL!YD!XW3Hr$PcaA6Cod}jV;Opk-eRD#e?A@&8^*IFUP-jA6OY@2!0_=bJ^I&4%7aLP*t7e#ZHY|GZ7Y{wAYG z*q@iRKgk?saqWzH$`KYMbII43Py9}Jm*8VR*LN0IMdi<01398MZc- z^F9ju?ca>vJKhquIjyfc6_l{t}LQ&|Nv7Qv0uwRVqlGB37RwO%FT` z-D3KG=`&cp#ln6jY)()pxg7xcJXPerOzbjS>weejl}`Lv$(7 zpfK3(gU)YX`8=pX77R<}3Ixjtm1~GUfQycJDPEL`1uCc$C*Gb)=sB!7ZYBlLa zhOEU+8AH#b#B#+sxUs+2mBbX)_i*--Dti;y7eU% z0_I-bIh?d|>d)cw>qUqDb!`kPL~gEsx{%a_IjeoXyDv5Px>Q^E-`5IaQsA~_rwOyvE}|*r&vXUa6YrwYTSrPQcGjwefi9X2k2a&JRW2kdwb&?TR`}f&ti6zW zH*zsFrT#zBr*JM99Zg>xa+yELP-HWVYtH&j|1k)lylMjZala)c5L=_+ft*%?`mBR}#1h zGGrky_p<~b`4oIvs2z-0zMT<&z|q+|J(;AE>HBN2x@^WXYqP}5x@fh1TRLkf*qxk)L#Bj((a@xA)m%VKK-3k&Y&K888W8YtkuObV zE5dfvS7jlK{1*~~)dAw3E;tXkPY_-_4G82<1fNDWu&tZr47UKbrBu~{3+eionrd9L z7QOF=Rt#qBJJQr5ddC|*){+tM;j4Ga#-ji0yOAqb_s!oHTU70^LX9fNX>HG{{87ESPax#d zm)S1r$!TT2o&MWNiZ@y5y1S-|8Q#mY?UZh8X1;gD)ut6W_tKf6f}oWcWQq6a{+{Hf zXAU|g*O~k0k4NOky3F4hf3hYmupZyrbki}Ih3j(gJrq~{0>P%U>P$=J^j#h-$(j7! zpF~xh{mY<6r$JchTPk9{ARt`o!i?Y3=X!k~C$x*|U3$bgV%0;r^`%n1V5rxDkTX59 ztuJvZvS#hS>SUDPhtA#l_^0FF-z_hx6!J}gH`q8H^31uPl%1`Lq1*dr+oA-S8;Rff zm2vQ`SJo&BU!d_1~ zx-ptGx+>8Wuh8P|-+OkO+OL<^iOKixlGL1Q|~tB;FSV@VLklPTQdE4j z&~&C2K$e24v4p&9tP^%JpxP8xOxU``@teO?_nvb2N^{cDzP-G6zL4+G#Qx{6CP!qy zkgSX<&eR$S^#*;(=0CX-B((44CH3;xUH+uk`8u+m<^mmk;%U=ZLf^EI`RV|!l_TUD z-+A1e`{#&^)HGI$eoW2Zpi3lbHC>DIO~{35erUWF9Ubo}SYgwxZ*30Z)C0^h!E2!u6V?b`7j|vn_Nhb1|v9l4$IbuIOWqddO<+ zMeFof`!{CxhU)y?;$d$xMI^2U=}4+$y?<$Jzg$<+jo~NWcr<=pYemgszuI3l@3hMi zs)3F1qoTE^GCfqjl|9(bzcUx3Tk=ZLP+ea1jb_5z$OJukZa4B(S25jcmwi1!rstW) zMfE7of6Do>OOAim^*Sn(YunLRoNW6~J=-PJn|rvKm9{<`i2N$uN9Z?ov^_km4wGJG z9Ot^0CiZHYTC2TsPTfl)#&qk&R^0t@#plRl8AJ)zG+)D0{jF~L#RI1UHy$SuYC@_8 zx3NcBpkIz2RjmlM6i|66bB&U4CFl8}42I>Hm`4ZR@InM^?=k;{v(Hx30!f?U4>vq2 z<9jl1M>$q?Bd$|kAf00QKs)3ac;VFQRAO6$%+OX}cEdioMkyP6{Ea$Ig9QkLr8j?$lz4FQH7oJ2&tLYZ zOJ{AW>;K~=$b+|qnxDW9{dW(2@=f@U@~7^9V)dp@iXn5hI`tt<#~gIL?o0*uT8rQ7 z_v0QAh1y$m+}KJqS|9UxZ)e-T((aiVxzi|GUE4!kY4Hm!bX6)SsyRe+M zc*?f_5VH%Tl5H*2ML7{L_xI_oou4g{yFS)|zr1z#6j#5gz2@*PO}5F$OsanybH}+a z{=Wr??3t;x`#n=*gH|^ltL}Ao{IjR=Mcae&Hig#GGoNgay1qI7n_`{YjzFrU|N(y4vErGDNBb)M7BR!c_^rIRrWa|PZw8T~# zD!a|BGl@#CD%|m;aJTqACVHk~`gCxOsUPrs`jd8B(+2O|2JmDbLBhHGm!o_k)A^cm zT;G02!4qyA>fB39yT4sBaFzG%ckak&8JkUc^GMp|QnYA9w~*1Osz4VdQE>`Dv~l|N z6WOtePV(BY&H?dDq)#5msktQSkOzv+fpb~*Bk$Cpf1_M2t_OAYed77`xx-ZSf+hc&)*3*Auj zJ=Jz-W#~|oocBbm_$)b7amxewrEmvl7lIL+y0w)e7kk|Y8D1DulcN$&E!HPNf@&L< z1BovVnfzf&dVuf?HBWDKCSm?!%zWU9F8R-hhdS>IRxBh)O2keY#7R;*c0?Wqk|BeN z&pMsbqd72)Pdo-kwIn3j6++q`KSRRJ855=-T0}3P5I3pyB`1X=4U(+DMD@SKdb`%6 zFnlQ`MwWqbrvR@CMM#o)A~o=eiC9q_LbN^R)v1`8`$)u-7_KTUPLiQeBl#3x(aqSZ z@pj&Km7;yArS9VxGT4bAeI@CZhsLJ;gF*t|MG167d&1&&l68upI|l_JDU=o_TGYV9 zeVU>Tl1e;O7e(|RQXU^t>ZKma>FY%Dobpg+(&?Zhxgpt`H9Wr^Syg1N(W6%LsJrcJ zjksNwjNPR$Du>%>@}j?;4xd-tE|Pt5j{UMOkjV=;E5T zt4qpHTg+pheWh&eLezod{ty{L-=ss^#dzyeJ!K`+Ng?eTubt~FiE^(!o_oDKG7n}4 z`ZNir^v5bSg;rRFD+#0sJTQV3jn%4IOeJ$|+fKHsb4&IQq~%&0PiaLQ)g9k&nW~wc z@_Hb)@@P!P^n6!&hv_#s}}hhZv$mrAk9( zdPC)wLlvioD!qoPf`+Q&hj=n1XS=Dk)vkn@r!m!=_p;_=SbzO(JFoG5D-Oc;@&m=} z!E?s8OwFM(yi~-fg)I?oNq^D7qpZ*gmu-?l2m^t+0(`LhD3O; zTbvf-g==BrC34b`p?FnS-lYygmeR{xGP2<|NJydmej?nN4%aG#+0f(3HprU>N!JNU z@AZ)C^|u9;6wPC>iXV^OX~0I%k^*b&FOKqY_cNfDg@|iv8sQXd;8vnnQR2v-L>{yq zLOlK_yJ1RcD9|$VG8OT-0;(_pdz*G#M<6u_BwWRx=yo_hAB)@~9C+0_9IIEGG!859Kb`B@v+mVUk%mD1c$r|l0ZgEkV1%M-$bePp#H7Ek>AS_hDx=8)TF|(q|2-m z8jM)Y8pPmE;$SW*l9m)kO*(K&c=qMvxgcbMnsvq@%Xwmk&2$AJPE7KX9^*+vUT!z5 z=4qG#(w7*2zzL@JfARI^?@;~m|NohNFvg5^>|;&#eJL_y-?N9Lv1AL8B_w9-WnZHZ zk|Km8m1<^4_9aV_GWI3)qL3u>alNn4_j`Rm-yc5zz`4%3u5+H(^E{sS`|XB@1Xrd8 zXs0#%r$tqks{W~~Vj!Za@YjVl)!G9q>1VGF%JO8%j{SP>n^dp3+vk-r;s_bPFxc;4 zsBxSDWfq+3R+D-ryZJ%>L)$6nduou}iIZ&JxiCV>0Ew)$-d5mj* zxhX5vc;^wv`Ou`+KTYeQXSYhx7bMjzmdzJh?d@MpBp4MWj1Tfky)K9qcu;9lYj5nC z3w5D2ECusBzA-7Hdb;mAUL76-{pO$iyH}>$Hq66!Xmv$kCDoWwg>93`3 z24^tctEX=jO_y6?%fj++n59Kv;GVfK*L|3$?a;Ci0?ak`O_s~;fzv@7!jXQ?m-XEW zSxoL~yMhdv>rYw=sMIar@U(eb40-%A`$vsu&MG|PgvBZ4;J22><_bTj9t2abL{b|J zoFwhxFA9^J{=tHAh-l>o59^Gh()JVP8G&soqr_o@WZRW!2s)IUqJp@;RvYgRWt9OC zy+F_3G?VEDROpLBe<<&xWI<|9rmSXgq-IUgRGXt)kCVe$4TqpzHIiXp?}MpLK~%eo z%Z>fiCSxeUf6^60jvym`s-In7IuqWh0V=Wj(aP;OGeGUAzmatlykBfGLs7$IGZ9$e z_+g@y;R>NZUP0!I5|9>7P<{}V5=J?3ESjXw_6v{OKA3nv>8{y0#hWz_k8{3%!Ts^; z7n&OH<85=AcHM&U^@R_NUc0BA_*2m=gUBm~E48#NAHuIAGw;Ay0W+*tbW;1iu<-;K zGL1>ta=Bt3u@Bdg{w(a9ZNv{|E%|H}ST5Gib-asHEzK~h zI1gwiDsz&JKYYADH0v&T@lnc@`cPv-*~|v)+)c=$>bo}|4Dz&#lU;GCE8MofOW>|0 z-fsq}D(fyXMaeoiNN{>uv-Zc_3-ha(QjRr2(|s7sb*cPW!DLG%WGuxt*EgIC(C_f^ zrO(P95pB_niXzK8+?TBPruue$HF1>HZ=XB9`AckgeMMeHky8Af4Ny1Zr%YCpG<3Jl{#oh3&>5@umua_QZMeM zv6iQDWs5F#UnrHis|=9Am1K^!T4nVq?sah>^u?7D3dc#Z@XhoSO&Lw`vlom8u6m67 zDtxmYUML-$t$EsnZ!7RFZ3r86@YbGx$<80G3}+gVVO1hyhE6u{a71t}1ob6Rz=kb{ z9sWxl9yFTPGu0??6{4q{7V8gfHhg9FC+*@WB=T>X1yU$V0EN3_q^JMdLm1Zd#Q)7kAp*?waqTWnzS0V^8>f>M`-nzhv(6(YM1y zsx5`oA~rktCICU$mobTIUaUer#-$F?4q#TUpMIycH?_X z(|=DwW@@AspV|!g@qBw%6ucPt*xMYzIWzh2?$;yZ$IY7Jqhj z*wa4JHX3SLqwVNfVrfqOUMzxGj&lkwfq@Lq>7_uKQ}DchGp@KH?>bZQ=YBWVc5b`7 z)BqP;Lz75K@g`u1~)*qdVEYB1{s}w)I z_L)x5=8g6rTAqNLpPMr^OAEKnm~cvEDpTZbo?knKs?2T4@7i#%IBRX3mg3uiI8eWp zsC9hZpbwif#Z#7rwtId#AsDT9oC)JWdfNp{JEHR2mm8zM8)l<65iQnfrUd9E+r1{9 zK$rdB9^YNC8fj7G@N?2%xZWU^3x~sl;X%r9!m{Iq9s3{UfA*qIt3Gq&dbodPE=KIK zoO1nWP9)U3BkDuY`bFHq>%nu_3&Y*$)ZE=G6PFCubkja|A|hU|+Deb_I|tY9E-Afn zZ)Q$}7ytJ(Cp+akg1~L-iP?Bnd+Dccs@an(P&Mm%m)hK9IfDYP*+yHjRW!Jx@)oPJ>;yVT-mM z_6dmiFcSIm8z&)qxa0z7MO}^wkZ#L7;{WA+mY}CUa`flh>Xuk{8d%b#!GBx4CzA^n zy1BM3(VHu7nlB&lQ?kEM_FSuDUyi70c+X&#gS7k?ZSVZr2Y;p4&%KP?+bjQ88X{mH z{M6?`1|sL;Ys%hcR=C#0mpAdpGtq|CvjcgQ^Qt(BXs@a+N}x{t@~P0rpWCl2e<)(R z9elnc?7#NSZ@-lo)I>zi&hsmx?aYh15Bma(ZAvA*hYH11Qwv1x!qvrB&g~#}E&C|82D^KW1z6 zyMEy1PRp{KSll=z_+J-lr2NJ8)i=UUr-JY4#~li-w4YPD=G-LwqTB_&U zTwg39{LUjfYU(b>wJb>9E2ii-hT=bs_lWh~~YgBYGdQyA&E)_S7!tF;O(5ke<-oUR$?6Citre z)sC7fc99LA)_(_r^Ut@C;SS0f*1xj6TV144;vch;JYI}V2Ar+eqK$jJ;CQXRWZGH& z6z#s+9sa1YN6NG{Uxw>|_aZZibA$0#WuSBR`AYACSjivjQ z%TgY9-wfd#+0HTG{O?A*kS*@GBqkXIcGBHxR(&0bmi1TA`>kB>3? zM@>>cyL6)~Ds@J;I!m=)R?S8);`t;;pfLrh{>@rHOM3deH(GP$#p+S9{`i-r>9ONv z?}~(Gk;sJpu@qBQ*VOvgR;%ILwlK!a^9g!;lArG9%s#A&+SZ=`CK32+(dyDhuHj4B znRm-yGp_G#4Kptsyi=o9Y6j&NbU&De~naXV2h;ww};cCYz&#TQzB8PaSp^QPXkupU>SB&+pns(k`Q_9IWG1R%Anf!ak{F<3! z=x~>^tTkh~B(*7y#}B*2vPZRUCEWxjlDcCi?u&q3rb_qb^VZF?)15mR|1hg<4~fe{ zD;O%@TTisg%lqn2zad{XJ?a7O45XPuXLWn_v!VvQ<;LnvPY+hTzd5LwUUXgpui)2x zvjHLf^l_Tdc8g&QJ5+R02Vr_(_F5l)HH@|F>s+A>cHfCp`SMta*ga|Ti1DSXW^P|) zhUUA^Skx5opin0+xN0!nhSsubXgykPhURYUKAF3=HPYu}-bpB2#s5`CXjV$0E*#Qv z)7oj}UQU(Ab#1A~zdnn7^fhMzKfXOjFk`FJ?*82vf}cYg3$-;TOAIogxKV&LwGyVM z4Hk@)@Pj@sReTlZ6MOd9R8>*M>2YM3+1@QFbvAvZai>eD9ofa<5}Jt1#UH0qXb5d8 zg`@2F6!B5F&el!U8}SM@DTgQO3&+qR72OITde72(e?j+i}1l#p+MaL#){7{FV zK-RlbViT+DnN)TQVF42>^AA~rYjriC`zkAWBl!~+z_h<9mlO+EZ9L}QingJflH1t5 zTAoIO6e8Ru7x`o>hZsKTHa8sE8%r|eXAih($yVRrP`~Q#{*UCQI`B5$aRDKz{mrIN z!0|nuT+OSn!BvPA4QIEeq~3RzOYt8ndfgyJS2$_-xJ0p_W~yE~(oL@+nH|(v&5e^aYVr}TvLe+ixiWY21hI^aS{UB+LwTw_=v zC>#;T{O_CDKj(Ze*0ai|eqi9by8M+0tuUHI4Lm!%!8WpwvUlv-6M9nZN)V)w*nULQ6^)c@{-485=*Rx0O+2#A?Ll1_z5`RI!TNP8e$##jVjld2ykBB6H zD174uR@L(dq1?t((S!=ap;eu?uH&UYGHRLbpq!xC$%Zo;Wfz9>puKm-?;e>|%*O@l zF?Bu)*AZYL!ubxb+@{NX&1)gb6qd3@Ck38iebj7@AxazzZjLe)5F?vtCw~6=gQ?l^ zR^dlz!S&e{MXi@3jXxrup8qU1W_nz|yAt!!Q1nNrA*!03c|)R$r)14g^dKwKr^Ac? zMmiX!Zk2c~kjyfU6Ybc;UWsNSh%Ua`*E=9W*h7~@L{`&ykmT&x$}S<^=lfdIV&v;2 zLs6(o>X}28H&^^gNH77>aTJzQ^WAWD?@j7p3MKn{bD=3uQ)r;7zLF;=+=W9 z&W0s(*UJsrPE;l-Rf|Q3A>+5k*0gAoR8LO-%58yYdW^hae!?Ib{BymShY4)4Uw=eh zsXaw>DI|jQQ4|2^B}g0{8wa^70eCc>Fw8iH6j5R0(N5wr7zFw_6~EqcS07CzTNs@{ z;j|$jT{-dzZAL~<2?+2{fSPG00@?oTfB;C&6jyofwV3VwH2CDPH|)$kjXsZ+>V6~t zD$zOZw5Ymk22b|Bi>@LKQ3n`yI^S3R6h2*=l%X(`Vi({7CmqXTFR0TdrNdIVoIKns z&3l(WAO;ELC?ohL^$acvhN(7P<6#;;& z(p+pf<9nN(H2?JJhEH1Ri8|Aeb6+xa29vm(=Fh}+>1q#!-5kBPYmeI}%Q5DeJR+*{ zNpeUMhPx=0f0Dn$FwnKzG@AL29Yf{PrEzZF=ZPbOY)J~TAN1X;RRD5ATbDk!cQBFw zN6`q$iNsTMG08+x995-BM1H^P^dajN?L1x_Ro`r02}$PFCIbx~uBe-ek_O_B$na^1 z@nNW)WPKSa+>BaL}+33?@p4cG7*IX z&#!xm9L-UAW<_6m+l7%uGA%A;aU0lvwY-zT>;F~X%1a8pgvN9W93^?2lr)?WGHnon z%`RVXlhkhz*&ai?%h*c+WEB@8JQOC6l=jr@)-MCWaAb%NV3@kZ%}Q401VFPs$5@j| zne;EZMQX9kJOydGmKat`Y*b&jOUcahxBw~8UX|H^Kz%BFv7e+8N8wnTdsBX2#0^4w zVIYdBJRJzI`Ckmgj*Hn>EPwf8ajC-o1{Hh6dH#bmXy4RP#^p2~@@0&EGmX7cLL5~qxzqA&=yX=ugjjYENfeUf9@^v8)wUL9`{F$WoK z17Rnd%EED;T50=M-^(70S{q*$yZH=BNdibBXDEel?H=RL+#49<)D(qVz2fu{Sy4UN zMCb(cjFF>HMN+5poRv#!POK_3uzu!37#_`kc+2dgy%}!yuPpt`8a%#On1($<+Jb)luhEk zBa$ThKu0Fu;myduKLk!m5DH0C<*v}!q3}6U_(qAM`<|lRKo^b5fun2flr2>~T88!B z0#h{(yLgxUlqA7BIzGgHugC?NhDtJMmZ4wvfcMZqW)_J4(Y3*I@`BMjL4XV|F>I?6 zXSab|F`LJ(8OR8MK-|*G_ABNgDQo~$=`ig+?W|zc#Od67BGz3>+6FS(*q~y^#;v5f zRIsLx#N`hnKnF#luea>Sh*KSiYlkAxO+bwj=U;$@B|)}-2;4iAxBr*`oJ2rHgZScz ztg6rgp=w~3054f{aii%U7@poFUlO1Sc2LoywV(-qCB_<|5D%1{Fn{S0D`GG*gn!(h zQZ54lv?Vj+k{}&au1`04B^!8MXiDh0Gf0W^B@kFBS%-VoBR$z6fHxq$j<2Qn=_&g8 zv5yVfjxx9;MWF{EAHsjnl2nn7dYwsG!L}D_-swzG#5T{1juM6O5a1=9Z^D_oTaIQ- zfkSD0B(Sg$MJc)P?-pBgTUAp;mX13lXvRWnjaAY3vqrLGrWK@enq_>W-?;=Le+ceA z>^kk98l}@k49{3^Pi)Hd-V>m1O;Cu$nbQ{T)U}&rn#N&U^v>`17KwHc@nfDAIdb z)rg2%qD;aQvGVlRw#K#ofw-XLxK5*gqulyV|8Y&;G%bTSL~y-@BKPdkhE?X0FpHH? z-;aa#ewz0w&$>#Yrj*taCA7ivGF=fGW6`=vijD>{hx8j(w{^4=1-H7i;s|>;k`#5j zE>;DweqlSalPI=%asI-09bOR{KUi9s*!h7dVnhMVAPFYJV9wz(|EV@k&i5tGzSeU3 z*2!NYeAm8ia)nvx8xIi!#wX>?Dpy&ZkMnWT(2WGs8$i`rst`-+AVIY%jcMnq0|gVTez!g{JIG0ww* zMU?FZksF4D3pZ6lp=uNpwZ0!}m7ivgowwA)O#uKzHNe?VvRyFxiA%z7iK^}pRX68T zSv}tF5_ymyVIyL7yrF(!@$ChSo;|X}fJbz|PW5D$scqQ!LcU1WdyU=@FC-Ov4A*p@ z)c(%#&D{`g3V9U|`UqyIN``;TZpAnfxsz$V*59RJPuCWL%5=xLC{>(FEu!9C8dhCu zW|Qg+d#eWiKYzB5ed-!QKea-6)s2~r6JObMu6E44K0%x@?$#b+F(m z8eel558%#8mE+n``&hfk*Ve{?q+n1q%pvvI3CB}L5eXHP@J^8&nf$pw(s#5!b4%4b?wuV6H}xo zS);eEWbNoW{L**t;)|n*;ppN*#}t7?ftm=OTuq@Td@O@xwnH*cLy+HP8sE}QE@c`A z&hVNxdcKYOu!8N{5a&UF(h`sxeAiRzlcf&LQ2dbKdj7jOGEq?Sif}Z|rJ$Xo8(`}o z$B$F7R=@iLDZGzBE(xX{)P!b|GSC5En}2ET+?Fs z!b>#He%B{;rTioO^bP)5zsN^bInPFX!%xAYKJ=#8pk>f zj;#*RJPoCUF|k*6=={_qx8(dJ?V;F--jiB?p0r`^NP^kQlJqwTII~&Crjy6FVTZjW z1tAdoD0!+iOq7%;wnPgn_<6$=^x_PSH=R(b|2zC6DEs(3%*w6BxLP}^ zC$cT|uJVZDZ%cWOAG>%!XUwo$;5;|yOr0<+$RNR$(Uw(fE_O&mEX znIn9z6r1x{ecU z_*o$2@F4fdP$`a}I7BWM1)~{MxZ82Xh$`bg&yq|Nvpv+OLc-5eL`g|(>IP4JsGLIG zoc^FQC>lE|QLv2sR4~?zg@Bvx!dC*@Fr?>;>#fn};`E^3Qz^Vl>g-6GWjF=-?R5P) z8XweM1Vf=NQctBiW`4otC*;EG9RUCL(*qB&Z1v7qWCX30mh zglu#&D`pOb`bX&fQ!Yfqlo;yH5~L0dZD02DCL7miea3VWr7Hki#{ zhd%4zA>MK8m}|BDptHdX!lnzFNTVT^yaqo*4A2JW&(OqNh!TWDovj|RAllm>rZoc_ zoD3>L-9Ue>=yv#<>F6_mQz-akkdG)RWAQo1M1=lFn!czA0r#`oI}<0a?yIZw>r#fG zR-(u$Bfql*W6;r&r*|0JeG~6FN8I1vBPF-4{PUF*h_Nw#lyK9x;jfl;3a^&maQFJI z(u3Er%);-=noB}9`j$tfpIaoX$|S5dHSUBBf6WuLN@e{0_#g8gIggi?%5%Cn$n~k; zSgq5m;^6bogH1!SK68A=D|pT_bPAGLro?0&L+ci0UDdl5s>Li-iiAMc+8})Y9rA26)r9kq( zD~x@wedT}tsU7Mqi4a7VnCC_Z8wW@|$^YrB?%!1b?jV{!@xtaOPo%ei&O*|aL(lo# zB9lkmqAuDP;BLZ#_B_U$P9X9pIBv1ti#^myO4L3o^-JS2Vzw?PYh}hPCQJEx&zB{n zPJQqtu)2uh#Be$;PY?>zWJDQ>27ky)+2tPKme058Kk%8y7k}Q^nkGrP;>qV=He9 z8gVi*r53Q2qI$k1VkZwXcrcsLVLTLP~9#qv;z0WI{*}D*UI)1a|L`6sYPu7M|y~!xa=uWRz zIq5F1*3ZrRe{OxbD(BXE&*EE+)7*_e!Z~u@!zHMv142wy$;>zTX0%)K6KYdueCW+y z)|y}BJ52BYRhEVT3V`$z~)hT-A6uUw`m69&fJ#COC8E;m7 zOE9Y0Ai3uP$%|yTVauU5RQt)V;ki!5xyJVQ@%B3}?ap4fm;etj;x&~FSdu2fv63f< z`{>1+V%hk_bcJ@jSDIA(2`?7888$yWd}=eYjUj z{Azl5r!FG9X!^(%Hij(ootGAH_0JfZvSMd11!uD2^c{`@zWQ2tR$^M%iQhowIj z#>4IUO%2u;!d)3mJdVhsc`~Rn>3r0}UMnO}DQTVcGn9xkz+O#@kWimzvBN!Jb#7Mp zb+zg#8CK0ZkpcCJO>45B!QUB8_QH@n2IkP71DG48s zc~d>@bdHT@k44;A&Y$zYV+?{inUiWJgqRt!CVc$QY8PV19Qwk?`F1D73BmPF^Bs0A zsI~`i>sm-QBb9@jioCKD{)Rv-Y!(WK*wOeu=#UeHw=sutx~;XXdR3#s$u;9L`I1`ZD_ZDI9!$9q$rO`tGkiGT(?8>nfPj^~;+a3;} zng!zhjrjm=BIUm#ZUDb5>I_hCo;`*Qmn@2Q#z1a)ZgO%1WI!g0EI7TJBLz@FLNWkA z-{L5*P6g{Kssfyc1%}6(&%cifoijmX$@#X|fng20d8LiP+lRM6uKKVMVWKFgd->+f^k zyME5XCiKktJH3N75TVf2fK5`tUU$1?!k=?(RmFhY=z7aP0Jwda#3Gsw0j7tzQqnAY z!Q_56c6Jk8u?xi$jMpTNH%Kftd0va9&9T zYBlhK#0AcAh@9Z{Q2UYS9sAjh)5Pi(W-+#E{Hr`KKs)gf%ae&;iL zk&XGYAy%m`xoY|j$-IY{gdlMWyn^hxa3$1@_Aw{uTI+!^o?5|UIU zI?I43F88-J3>XA5j{@Wtq&&`ytZr0^#?x7S{zIXtLi{@)(aaGx#B^r2_2zw z?2paVKptB^s(=Q9++o(c3Y3PgHIS`{f{USd2pk@kfW38r%_cn6`WG7{Fi_!`U8>Ds;RJQM z<6F`5!WH<|cmkV%7&@L*Rd}-PY7_lvo}DR#cj(SB8K&XrTcT0GO4G$RFRu zjwB56+JFLrrBkfrqEJBdebK{4pBb^uok}^);ODbuFas!EhO|CN0rFK82Pp_sgHhgh z;-@xcVZij&+$Xrf|I$O{`H@9CH_JQwj1I{#bid#t8KNr-i6Zc|leYU$s@I?N$fN)@ z3TWBOMtJMppwTW9@WWzxNYGDFTPh4jhD`j(I6hAOSM}9V3U&D>M15RmYnZi|fe-@v zP8o9L05R&{SPF>%{)0$}1=k2e1;p^BAn+w2=%*stt!~ zCAQswUj{FE^4+lSmNAsUVnY?GtvayH=YPh43|1L(fl7v@xrOk()47e6&1!{%rG<6G zC=$FdOwN}KoALA|w*mM%sbqPN86x}TAgLnS9+Zj=+UbLmFhW$0eI=t$%l*1?tp@!t zG>C~C;aI5>85UC<=#zr9mPTxwe7huR)#yQnNNDbo>6a2VBujctE@1{P*?&mdX!1c_ zKE3vSb9%GA^1qiay#(StHF7P@Lnm zTux5umn9qX^QFQ!26BaYK7l5+7&HDS10I^v!2)Iu&y0iUJzH&Q9-~F_h7IKUb*trD z%|ACHe!NRGXe+7I;By^e?+h^Z91@C{hflA=7pNO%g%z^TnyprzOiMrRxqquODPl$A zJR$Y90e48qWutp6rBE{1m%!mj1)U*bGKqYHG;HR)j_ZG@;d-Ny)>fIT3Nr0pRcl`V zIW_jyiEEP_qPGmfg4u$qu-)=rCF`Hc`b@CSzFPJ7S=)_HGRElSW6K814ppd_!Cp8I zKf_>0hgXcsf0pM7;2ZGxPoorv)uwHr+$*s`^KkgQP%-{&8woiK6s5P9*6;*<{^phT z%$6D4w?-$s3KL*%_WZWoQzc}gz&xrAFaB$t_4S_r_THV2TLHlV@CYYZkhw$PB&!Sw zvq7vn1O!Q94=SI1Vl8@mXqk=EyjtL2J~MJRoBRh^4E`DRQHFup5Zm+Lx;?1segD^G znl$QPfXCpZgT3^5##6fVhS|UM)naIKyv@TBpRS6HC*7kN+ax?y#`VS^vAY4th$_yR)+^&(#hf6;>++-q_RqH0s%M9U(DOoseIbJePNpj8 z+=wTp!jjxwD~$FOSX<`n_?aYB#m75zv~x_JuCkYXAi^nz1qI9;(0Dmpj;0>lPZ2qe zy`GzP&4u&qZPWu+e-XInvx;j1oSubV#gv@f2gRcx&0;Y3wYXpwaffw<(#n~^>5NY< z73kt%S!4b)RNUY^#CPDH0nE~&t5YPMxijJS$il=qs}@Q=X_g0xVjz#a;2u@t!}HJ( z22wJ{pm@i0A=p$FEGT5mR&mTYx>UHsfQtJeTiewJ#g2EVWG*7iEINZ9=l#wc(7nnw zV*&BeX;my?L6Po>$cEqR^Y80&BGc8=B~hJpoDBf$umsxiMWz|%%sp>}D*MBoBABvI z;ZnP3A<>x7BXrDB0#67zlGOm1MU+ z44a~O@R!K%i^ZLI+}c2G2pYbt3h>T|?KS5Hxz@+uI2rlwfu`A*y80z#hnE9=V?K)1 zAEhYaLc(znfgS}^DuczI|8CYNTw&=GR-Lh75KNXLul86v&BE|-9?98Aj-7u|Ok%NL zF_Y>MeM5uUFY(3?!G?)srp|d1KLr1{HJgEvo*uBNe3(Ttc~N{x=SsC`Q}y*@|KXn( z*+6b3L=p`XfPnMFf_2pkHeHsf|KO1g)i&I#Vg-y-m^Jgw;BVg-0DvRM``euY3{L} ztAFeYmuQbUG3*JK1&O+lKDbjwglMg$HX+BLALJ;EX1r4WjU`G?4=`>STqQ>GE*bB zz!F6j-Eiao5!(f&a@=ZBcXau)ldHzGtJG5^JseLD^`lDq|Ftl!vlk%3W@tjT1aA3d z2&sxQIk|5Bv^;bsMCuTe4T$TL;B@?WDv777Bo6{|NN|!KhYpZW7DBW98K! z4_n?pbzD>O<(jeuwBYj)W>AOtl8X~T9AUbSv;`2wGexeqpRz^v-E9wmF(AbRtV1Z9 zZ)KzO+XX9H$aL|}&u>5$WT#=tC*;8BbP*d~Nd<)Aa56_xgH<{`S! zht2a)8|rJGf8k4auYPCI({g#!6kO@Fk@cq)n+hP>@cU##j#=uB&3P1jp3%C9$zSR_ ztipbXBZfKkwv**rX!?x=l+8EMDNpU}MV4X$|0W3gP4~;%2RR{PbV=g7wl0o^#)fB$ zLT%*D&y84SJ3-pFLOwI#3;)Pdlm1T?MU5{5TW7wAW0I>4<*#3r$Epvo=ANLvdFgm@ z`K9J=rz|+(l*A=PX1u(3Nz-Hcew9;#Q!{lX=49dplecPZ|E_o4u9VsR@6z1kea+8c zq2`5@+;_gcXY@M+XxR9-SXq!rd{?mctb3oy?^4>8+v*-oL7k1&k&X!~ z6#XqCZ);xEnQ(WD^LAO?SUJn>!OS9c0+>4Y*Ma3wLg1>?^GhW&_YnKl?f0DH`C|KHS|za-z^(GK7EKftSYh0N^#7rg2mC-MKNJ7>0} zkJX)*-*72w9;-WbS6|;v``_x$a?9sUUtUH3+W0c?{K?!~GK5XUs-xNS>91)K50vKi zWNW5`Uy6K;%JQSza+jm-#60!8|KF(u5d}x}^>N+zvBpC)s~c0z-UAiZuiC$V?g)pZ z*1WoA6u2!ggTWAhPG89Gi=@?8FN^|@!*b%ivo9i-(0dke1NAWH1|ZitbDxAvCkaeqIC zuOjNqa?c!~97hOp8~dMh|1?5!Qo#Ww75NsYd~*{Wee0Hs-J{l*Zo5N1eEmWGV@0=-o`WCfi#<+X zX)pi!_`f%Yd*7averF*c>qieSJIjFaL0jh@ad&QYVNB(>ySdK=ZNJ0$HEj0?UEAD# zpUmkA!{Yx=kU=N3Y_Hm|E9cq{fK@7g_R9^$POj@>2En_TYJ*0Q z#{7QHr3Teug8})-0qeh25oUU9WHKw#TzPi{c>_<7(!TVvdBBlP8A?2fgKCV}@|AEdP^d&XM)*9p54lt6Q->17nvIZ1=t1JMfI!qzu=|aO%J}EPJvZZ zrDKGzb=QB$*2lU3klbB4TyyB{w_83EsjTyyUALskm=A669?gIrJkq}HS7|LzL z7sN$|Fk`WXC1hK-;J@T`WwTr<1_57dIY+$H)0OD>4D4Aic7mg38Y+;U*&$ zWAtoT2?$}M`#?RRwO?geqAD4Oyg8cG9b8oe)iGet#t%GmqCrH-Aay-P>&UV_{w#(J zzW)$qrdX2>76bROwn7tURqm=t^a{X2ttpO_a`4uJ7WswO3EzX0IcN`o?qX(_0&7iq z30v1`%Gyxs+S8mf$JE6hbBs>Yc$tYUiEDDp286Q5*T~Bl_!2Prmq@v%dwqF~$oiCY zVh()Un-~$Ae9f82I@*~cqgHQ6f%-uu2oz$RvYMdB)j;OodZKdHoHq1B0gl4 zPDS9EK+bwZY_4GPk66pfWnPKr?~@$!@r0Un2lF;em}GO!hi|e(95peC*XWKi-c0Wa zZ~3a-B;E;`^xfb#n1c~YX;x1}ka8(C^%`aIDJS8Tcetz-E+ax*%v4o9G2yne8^;X6dKdbBk%;P=ep-mrXVcL~!%=Ch*%EO|dTJ!6}YDhWTKQCnsScn{t8(`;=R(1lFHL zPY@)5kNnrENbPig{u_h~bQ8%`9?4!v->KZl+(!I1&_c{6XC+a`oymXx9>Ai-xClTB~XLzgL0^TPn+=)kARdi{_Gfx`sHyLcwE{3W2z)d5J$~`F< z9nt=X#cuKdBhWiBnp_+cA>pSVY8S)n)5TqyPjtuR9DA0AS^uO0w#^UJF(8HLY@L}__O{EKIByvws8xdGYpH)zb3i&zW8{+xuF%{_xaQv2*S3zvd@$#BCu(xACn&>(`3n;@LM|&92(~e);*|kLZzCUw;q(e)CuFBhN)M#@~u3 zZ`q8$r7D@t%jHLcIxckHe2?tm7yOe~(iLBn(<=_m`;&)n{v|%2NTlnfOMi^nsx<9= zWPc_1{b^4#aQZwsS&R(Y{-hcCP z|97X8a4R`C!PXW3cmLnnTbER#rcHrrQ8Q+!$L;@eD$j`1d~W_)mBgp&ChZFIzyCTN z#u0z61|W&D{$`Do?CxSRb>=x%5oAQz4X7FRtye+}<+?v7@d+R9gCF#36q#Lx9K#v! z?im&O9)n7k{!K!1bnpmApPWdeIDz;-JXaFy;Nf*qoUSBuKf+Nk$NV~=-b1Th=&`*yyN=Ak>CEB%%u!s{2kop0m#nGitm%@hnU1W}Ega?kS#!Nv3)->EzY{bO0obri zf!%bTJoGBSG0PWI5RLu;NFl>GF1cLatIQ^-x$TmpU@Gk6wrQv_j%8%R3`2a-g=3Ep z2UcO5!2>hc>#oO6O_Kh0ZsIjR^qj3uE1r!;4T2?;d*0IkiqYp?NN6+QD z7bOz4*^MPpUCM0Zp&VAOobAy{d(ECR^WtkInCx)L%PY}G7-A7ui7-fxf4(Tii-RGS zN8e&!XOz5q7z+{0{nDL{+AbDYz(LX{loFeW1bCm0JW3E1x#U(D5j)lX+cR$07XdbX#Heo9r{>tJiK9=I2I$2^HPv z%7-vzRxfL&TPmO8+1O*Fz-0Cw5-P+0nxhO5&IrxNph^%0o%X`V*uVAWntnWLrt*Hi zIs3d!&5bl9RE(_%a$FIL1goI2KKhFNet3(D$N7~p2%8~>^KB`Prk?k?4# zriqw!+hV_)*E+A(4!cUm%L1xWDM}~P`|)g|vL%WqG1P$KLsy5%F_fq*rqKd3RLODe z-K*gok^ysO$?4O@5vj#4wyJP;y+3%1-KEKg0 z;!now`I)*(_4T}f5Fd^bo;A3O`d`7nOQCI%UygFCm4CgwUjfuJ$tg1tZ+gi8+#X!B zduZB*Q@1Z01)smEC}gnFLia&71t+^+YS|%LLB#&!$@(*C_EQbpNz9eE#ZR+pV;S*{3$KZqD@kze@4Mz$L#G@Dn= zL|P-1OZl3$10LU&Q@+!4MM9v_Nw9Hm9fJsFq8hG?)-f?zcL$ag7hN9zQD|BA3|Qir z0DGIKBk;F-lw7BS+A2BLN%;f8%2}yZZ=Yw#Hz@29TEupecgXk!3Qot8t7IvQC$8`x5uDtD)+ZMrpuv$4EFRNe#ImdI^OO#FaZi-P?f{RX*aWBId+%xN}u zv|q_?N6{&(4HEo#|IRtvgbpRg_Vc#*fp0huM@54yxy%T>=morkqrah|(2k}^m5b8T zjM$<~T3;VGJY z=l%NhdJg>P9A#tX^(!`X+B1FI+^%wNHiRR;vg~DTp))HIKaQRC!m|>5W@ZuwUJ|-w}b;diTy_JuN^*YsOLkQ$wE$ z>Af`Lcy&tWkJlaRKT;Y>!A^7KJyyqe#SZ(OZrg#rS4Dl&{e476-=x9&WlVy+MVD_@ z#}P;T2O@US#d&wnyla7q^_1+teMRu494O7^QUN}ZLi)KaPX69OEU@0()9cw~cHgkY zdko+@>DTIR4=g$0hrDr1{kKnFZw(*l!@Yb9ZMjwJ(=t~YHK*U-G9TV>h_=G zQ@7qjd>~TZklG?^o@*k?`qEH#@v%hBS0?fP+?mutuTvM7DMBOB!if(*^fXer+zWz)B%KkIF3UJc0-+WR(%P1_d z@eAaO&|@f$5m|}<2c%y=rM$nh&8OfFzHT~Tou1w{0r_lp3sa7=d z*#C2WkAjma`SShw_g_RjEkg0BD!wfkx4>>m_|bNU7YmWZE#ClpSUf$fkIwI5L-bF0 z=OeY(z>Rgjf$*C~0({rr$#2kvmKiwPt@j@;j3o9eP6LWhU2vWKxP|whPs|S(wG6_? z(0`SHKH@lpirHA;sei#G${c^|>M&Z$6;m53#D+m_!8C?8T91n?z_0GqGl2fQz#9I* znQl%66>s1c`cVLg*kfOM+M1X26X&qo6KpjO4WBx^$g4sA$&(U|pPXu&z(>e}y&#J# zly{ig>KW2;;YVlO*zhO|Wg*}Zw}VRp0E^_&8N{^5E7v}VJYwRyi!-Z+FX+DH3cy135^ z7}~1g|Ju+&cA8b&!NgH?AKYm*9hnUjNBkpmH}}_3mHQbufnSe)!+EhU%l2_7C^{#p zVx+gMp|eW-^DzuMk@Qa5tgBHO@LQexN5_~r&gagLoyj{dqYN&KVZRW;w**ZqhTZHu zU%ywd;>N`FAGgy+>YmS|k~oLzQ;mD{$wU%hDYrOGpLDn}AIJ+mN&P+72e%@E>)A-8 zRs2jD=uQbymHZ{s@=0mlUu2-}7v*UZnVa`=_si?-F&t-E7=Z2d|1tT&e&6uN+zJWN zLqf<)uz@~^&*<;IGfm82NGsq~QkJcAuhde@ZeI##zBa8N<(b3(&phv6+BAa3#aS#| zrZDea#T|Rq(bcry%?>$09RHh$L5}gH(_mGfk$0J}`(*sn!2{+NbAQ>ZqR%nS^aTdZ zLGZ_jc_`{`C}aoZ$)lhr#b*)|R?Np@AT4VTj({d4u!o{^ycy#N+@wk-d=;G(ah@G0 z!F00G))G9OK)>q{u2bQ!S{MYNp@!*Oh`R36m`zj3jO80PAq-Hy5B?Y*dXWw5WYjuv z&53EweQ#JdSX>&VY_;~I82}rVSL%J_%)u;+~c7|=b&$oamOUzvgfq)l$0QGYVr zioIPg4J@)oqgqxi8sA&pSiTsX{cr`{Oh*HM<{qoqH8&mdxa|1^3gmsuD7D2)=!WiY zaWm7cCQc`bod|^qpPe+OHS*u^J4DK&UKPr&ZcjHSrOIA{8MbUBPyWy0RoJ(W)$L~WnOBb6$;5$%JA#dFR{>^NsZ>v8(J`*Z;%3PcOs@|Jg9#Sb^J)%~*FJ=oa zwpDOERRP|n4YIL)%IpJ~ zG-ScbQEO|<#+2ylreS@m^dFD}YG8PQOjLLUf1y;XT};8Ht#|v+JI7!bOlVQwdL~M! z5LX)wir6)TOYu{Ieu?PVF{CnR9?_C8^QcgWxB0O3)QubbK#UlSJtcLdrr$X>;Zyfx zDZBEqvxN?2BdB|cnv1fp44H^5JB?wn^T0gJJM(EmzRHaP>D2uIUjL`i@pCn?Y}A#+ zDrGw$jLl2udkK~Kc~0Y#+d(~10oxzK$pY`zR}*qVB5k5|dA^8;{YG%VQ#u+^^{e=ljo%S0qRxc}kV`D9Fw z?X0`!)NU6u@Ka9Ewv~l=0r9sce}QE5Rmh+!-#uv-fHWj#p1y3W$)#xq%m89W!H*wo z{rnJd>xuAb`Et~~_kDZVNTI0H#Nw3p_gABYxyKG_^R?b=e`O@{oCS9akPe%No~oa4 zx>#F<7d>V!u?CFK$kx;+%)3gE5)MR7Y8V_oHgH76&xL;v){zaKinncd5vZ;`rF?tf z{w0{JP>1Ge)kgyf?uM=hKG&W;Rx^-zGs;zTO4G>MDkbSoyQ}!$TBDO|1IZWVsi!dn zsvd4RIR<8dP$O|+WzPZ!IN~u?cDKo~)YRDa%ZJtDq%hu55aIAbBcUE+E@R4rjGfEU z2Ery>eyUQ>uTRN1^_Uv}ZcQpSca?RYO);tQmCAK2JaT9jKxdbnt8M33l#w$@0rsUI zkereUQ<1wo=#wVB=UgNs@toIqt@YmLhf<1?+-4OwCZBwJXMCh3&In@+K%XCXH=0?$!JD+ymWaVjqY23-~ zYS?*W5qsJI2-QdH=%<2ZuB>85_G!`g`_3le;I-8UhAgDYoY%a@n z3t^4shHHO)d#C0sr26vA?l-Q~n_j9<=ut(`lP2cLSxLK$l zd}(!s8m@Qm@L8*;R@L6sGA5s0<#nELmAVvOJ8;3nXtn=MLKT0Jm*}jiwP~u8hjZG6 z5IN(AW9OTK3B_SgAMH8nj#Ce@rK3cz$-qxuvow1H3Q!h$rjNCT-;#w^wDKvO76m@# zpsHVyv8L=#sx37e(6ZuPZj;Y)sknI6>W-}UH+;+vzfX;-KIk^({kHad&$7SF%EK4- zY1^kJW=SS`2$N$*rU zcJ`~u_Pxd%7j9;U)feQ>yo|c!6w~R55nobNk>M4sHeO{MQd}CyJ5;7%iLtm?18&|6 zftXxBIesP8Z|k6Y?V({rk44fkZV-3yt=`DG4ogCM)thBQP8)~ zO}A@a|6I5k6ZB*1qpNn_8f=2!}-Dz6?xfF&BX2Ep>I1PPvj8X9T{^o#Ajgdde zF~O6Ebno`sjx0a!3jU?ue7En;$Vx6UWagA^;Natt)ncQN-{+eHzq}s#`zj`6-c2{? z+tA3`>#mSR|K^~P^|vGI&B##pJ>B4O!O@K_qtNBF=HOo%qnjUMnv6Tecbn3)w}!ex z*Q%RC7VnI1k0Qf1I&?#qACK-#8-;CsZVp|0J-WLT6Sgy@8@4qx`ft4}?BCz!uz%~L zdwWPGz|Z88WXa)=J=SmBh5X zFV{nTjiCbn#kb)A7ohY1&$k7eg8nT>A{V%?K!0&(aZSDWXw`=whk8t?5 z=4kaw{D054(?swJU!H8t4tLN>PbM|gzHseL&py-lF5_zb`)mU!T&b?Aul%}2X(#v1 z>bar+&9~k6SR)HQksK1(nJ5ylBz|qA8((H-N&{Oy^_{$diu9e>Rr0O!3mr6xawbwSAV~l=f-gqeoj`BuoBJv8cz~OO9A{j+Bq; zpDQ~X$H&94x#yx--hH@qzT(}nx%tZe(+Ue!pKLrAs)w(XD!K7pS2*{2WVxMGtFF?| ztc4J15SzV19#813DN&i%U1j?D8%Vf9ED#ap6V<>nb-Vd|nrAhf^Z`XUqc`)U@U6)X z`zS3XIZ1>;ir#1~0p#p3X$2eRPxMML#tdbBWHEoP(H`xdaLS*dp9WK zAOYSS1r=GD+(J8YvYilX=Jy&nI8UVE5o7%U`g0>U;4_dJNkBgPi1Zf8FjyHxSAB1) z)vM|9O2L)lA6D?Hqt59}LRwf{n3;o&4T04y+`#V>$Mrz8#yJkg7YDiC@P?a>)P9G| zc++^#8|%_ic~pq4SVO~0$Cn{Y0U#qrTLx?w>?KdZ^awzV& z>*N(`j|43ONu;(6|D^lK80V_-9E9i2N(%eN{y=GWM*I}M9tUA_@%VT{5ljGK zIiFQPTaVP(Xca6wDl`krM-K15?BxEiRj;qR^TRGVP_x!S=6QOkvvcPBdGF5fNQrY;K= zAD5sjgj;GxoVa&*4{$}Xt~V9rqj(-wc5gDFXEoE+-~_lU-y}Vczk6RS8GevDKy5hc z#4P$1DPr7$T0CyN#d>abokL=KBe~!_khUnpS;94brWPFhX#bRT3+^T=f`mlUk`@!h z+gostWh^iom4qkusA;}~Qc+n_NiVf8y#Fzzxnwn%hZM^=xLpI~Ws#npj2+k0AB*rX zg_Ud&Jzs`iqxy)M!zgd5Q$nWtPA7TuSt}*8kFGXrD8CmK+E3~`&T4r3r!utpxX`R2 z&^pj_o&aw*G86IrWJ^+)d~oQ(893O1C_L*yb}T~O4yf;KVIkmEu}?>YQewCZt;_Tu zL;KVtTKD!Ba-sK^0tCT#KjR6B$Oo;8{Nuo$iuAt6_r4&#JZRT&(hnfQ5w;%$Q*PDv ziSKs5s1_nbWFIud_;%~V^j_C?y6GkGT9sCd+S9&`un999A5UWGduCEu9($KGR3vZr zJkK-I&yd7_B;E=sy;Os^N)6wiO5qYBCE|`5Lxrwg;(B*I9hSGG-_C%m2pM981dR86 z0ET%)q|fn*#Gbe!|8YNB+7Rxnl3?)A(RXa3(>>GZEKcYVw2l?Yb;IF7! z=RH?-ugWYLh(kpC*QRyNSe@l#?j~-(MExHlu?K4#j`Rw> zv1r;rlpEYyP_}R&OmwR21*ar^D$$Yb5uj=b>@G%bK;F%J`!~YrC@u%$i90_b z7{9|pedsphErVYhmimIU^=}>1{1ZPRJs@CvNef0#mR$NSkt9H6rum}W+j=GV_CCb* zWbWsQbl;gGCck;-erDy#_nlvwAKvuc>08O!-kB!h>-uBPtmca}DsNG1NloQ5h1+db zQ;WXZFyACm$>XzU4#b|!PjUpEj$QFFQ?nC0K!@Z`uz^>ZCx=qF8KCbfx)-$d<+Bls{T z4O=1*Fk1DB?$numFc1Fd4y2ck8w??K=1wxD$}_LB-asR%Plh&b~Ff8lW` zOoeJ4gX$z=Cz$wcP;N#8yZD&%M!fbo&N>D=-?c9x?k#a3v3QthGC4 zmJlvv4F0?9j~K(>y^=bk$$KG6%CT7CwJbQh#|n*hk4a4jMX$vO_~0z|Dg7d#7au*q zq^5o(pet#(KeP*rGnNy~yMrGkl5VG($p9RZI!i!X$3zC(;f1Dg_cdeY2ClhfP-Qky z8W+HYv)~#1V6$HwV;V^&F3f#6ii6-~?Qr+HMTI9h>^}7H7l|!zDLn{2ugm8TJ?wxS zki;i#{p|7@L+$3KU+CH+FFE&x{0#TUPV_iE^{uLX#7nN=zii@uk#iTA zc+E#HA2+jxTd&`IlPeePI^Cc1BqG!MlkyIc{)>#?$jISs%l(qdzul-?E+^mMot1a+GTvS=Oy0uf+f&?r=v{fx6Dm&c$(-#e>ZITZJ$b(0 zvTsk*%Y+5Pe-~f;{S-pbfKUs{opa8}U+&t(cCs_y7CqY|6c)?p`1wE}gcp$hV(Pb& zztCqYAhhRCUTSJl``xU+Y|NrYiNqFeh>g=eUC56Vyk!4k&GkjlRI zfa-UyFb4j}UI0CNHftkJZ-vVq3G1OIMiGYs&N+K9RT?_g1Y*{zFX{?T@sXbmp_!T zPkpckVkNo`NG(!u^90NX1|Ga$nQfB0)Q?{xt;KRZ*-;J_gCQP5Ka zTSmi_5db|p7bHmRR~#O45I;x3OjT9g+{7!1@I3Ry?NV@^Y~cmQOLY%HPcv|UfyveZ zMG18W0NzOxE}3}2?D(fAzu=T~uxVf}`TUc<-s~Cxuwmm@IR3o;3eT};G*iKWJr)Ks zhDlcdx(Q$p87W>41*pQmw6Z;UUMX#3llrfH^JgqT?CJpE%Ql|DXw-lHDz*BlLkb4M zz*ya~3BB?rye03*C;G`EfoTe^j?7&t+qfBo`)mg624P3p!uKUVT z2Rz=kZwFgLL*4xS$h$IP6>U%;WIwhQD#xPFCk4wF5el zCt}*@fB_H`0ARqkXF7ET!3jSDbmT7p-OFO&v-(WSi3=}?h;qznjE5Bgyad9ZAO@oIGWW~B6};C9ZEW1;;(X5GLG&gjB2+(fZ!I zc;NlokDQN`!A|dUb>5oI>`$AbC5kuDqs+I7jGT7I+FL3ENA*iq=F7;AxeMHH7Y~Ey zlz<8j#ABm}=x8>DQ|?6Wv9T8u1-i{a>hUIStK_-f(la~H7PSYj{LC5l#(pGZ4tXCn z-Eb4Xj%(g=+hMiTeG@pM{t2FUt%p&c^OnOa&1AQls^fFJo(ufV^8cmdNp_T>>XLr@_ zKS_WUu0XB4zeDsqzgfI6+4F{((0lc%7MA^nm@Hunk0YZtd26ySU&`e?x}EL!Wavg7 z;+p|D_I|)n3DhTpHuP&Y#EVDfvvhwKo<5xS)ttq1Q82d#Wm69dbCS`kqc(K-CCV5i z@29PPPLvhAjK-XP0Lxbb{S*KpWze3`JMbs>K~}gBtWYuZYXmQRHxVp-Fz!VR^&%sk zsW@pfULOsmue;#6F~rZ#_-Q5Hjs!*ZQ1G=Fy!NOWd<%?9Q7zRw0lR)aOtmI+v-GSd0IhexZpexH+du1k?GWqXt=}9>N zUk2LKrkg>dXNPXS^8IeknibrggGtV#%6~`DrsbV&QjUY$#2jeKWK{l)%%L9?C(wfB z1p9*+xj3unyco}?ww?de0MJF~H6eUp2IO%_`IJgH^jef-5mKSl3zXT1n09DKsleow z0e52P&(KNPG1*5c{9*rO-O2NilvCn1$l=8++^-NRi&OF{M2e$=mN*itvWzUBfN;dB z`z6$tFFGIh0uB42;x@-w1--C8OVE@FTIlrABj7M~esUbCd;}Hh{rbQ$P=^hpOe{ta zQ39hk?Us-lH!o?mx+mp(B;`v#NY!u~Rd#O9qCH<7iul!7bkZyLiLdUu-=+22Ve0|8 z>w(Sd!K3S;d+XsTTng&9%#QmgoM#9TH})5AKq#I3#0GxyMhIdP@@E6qvT^H5CnRqZ z0&Zqna`Ch5-5;4o-rPi#pKS)$2irD_!uF5n$@3Gq+H@KsBi$l&!Nl|6ldz3wT|U>Q z%Vvt3`?@y6RTM)aHpBInmi}DWS58SB1xs?*Yv?;yTsqq=dEZI6eZA=yx0k&0w}>m@ z2vztY9_bSqaw9!Til??N2DoqEV3$1tNp5)lbI-xMYMAF-$i z^7DgddL*N4^^kwC1Lv+<l zP`)^yX>7Teqrd`KHJF{$NHXprdCbUfs+Bow}_+Hjb2r~ zX)8VP{p8_ip57gAGfoV*^y@0QFE0p=}PmX9}JIL zs1IGPO9Rd8mqPfIp?SZFNe}t;)(s;-1=B z6Pc$~XU&dus99TROjTK1>cZ8}Ss5LwK4)!tO8xwKTes@-wwLbxM=biZ+Q#8#hq|rP zovCWuOJVS1cFr+}YV2H-PaV79_IS1Ug6LzXQi=U}PiyQwUv(UFxbb?b#^Gi&T*J|) z>(Fb*TOUqoIQb8`y>_}YdQaox-RY;VF9t1jXj}?epL%^MY!9wU2}d5Tr9|RSYdYT( zyi)5NBN46X5+_qs>vI1{XYIGZW1VuY$#CDbugOM--%LjQ)6;TGv%T`h?eV2(tt%Ps zMQ^TT-t5$J&%X2Pje9QEck^;?%;CDL1<9wiuRVQSBs}vFuCGP-FCG8@0>E*uM_m7X z-wi(fzOB2wpevbR5HD(?TG*K?i*7ROsd)PKG10ZtQLeJ+eWs?^;JY{H}7$lSY=sM zn7~z5IO^~-!rfG*8CE2CT6Qdo-{$JrJ)tYl#-c@U&y2+oqGiWpr5{}#kCQEWHXg57 zGc$gl*eN@apa%JCnYi^cmeX}xo0&)^A><}$h62|nQ;ZKkpG-ABHaq!%d|Gbm><~9_ zAILL*{xtPjY{iswe$?hv`sGL0eq~%Odj5a&0Gr_tS$3m$H}K!b zWRiBLR_YzdMkPKUvN<7J5PNd#s(z|!U_U)NesV@LdDs~#eVZ*=B9=_$@hHyL&;MOQ zd-$!Sa21C2Qep`{>57{CTP4IT2S^@xq7%sVX5Ids9O5sXd3&?QaWm0Ugb zwoFf@cGhC4(({tux|_`+oHiVD-~guN^~b&lh5A3H3JYyZ%X;$7Tgxq;?~h%Q&H-G7 z9F|)~*IxXtH~3I`M8vJ3^oZnEw1r2f`4P35EZEPDV&I;@r(=5Q0)DrDK(W1+X?_zN zoh8vg*e)Nn0$yPe7PviXe_V(YW-OPjXnqp}m0+4v4@{f1beZF!UasQ8~Ru|}Akw{b!7ze}H< ztf)#Fy64g%V9yyR6tG7{0!iKxp(xW^p4K8=JMGC~=UmXE!|7b3-iR9Rb}&rU!#qx(sjS?n&UhHEE z@9}U#As_&pQez@_$|Etuk-pd$`%cOZ6@S<@z{8B&b$^c~-xLCX-eKhNf4n?ER*Qs2 zH!yp6h>6G>p8W2Jb-OaUeN{ZF!tCLpq#-ldb?%@uV0Ov-Mz)c4<4 zNzh|#5nMp4E^CZqs{w#Out2v4=nR>sLj5wG&}{&*V>+aPjML9BsLL5~F&`6G5Wz)0i0GxZRPA~o#Ywy%$p@PxBk(;52|X!1cU zT~NkZGFsEl$Wry}^w2fKBeUHFHCEtwX?E}B9T+HI=%nbQbNm2)spm`0S;dDrnIETe zDAb$nsrS1aBRG-9_QGF2+(7qL0#`>(;EpRA#_a4=Wk)G#vb2A7yX7y}4K)Q$qY&va zXi?CP-?6Pol)&Up&_oSbI%JVz;yi04bUN2fP{`z zMWS>`To4pHg5%O8?V%yV`cCjvxA1q12ni6sPnOgRLl-8b zvCjy4D%4&3x7^=+{9w%YZS)W~Q*`<-@`iOi@3$>IKvlVf^lb-wRMoWN@q^@_2gXqP zKR8B`8wxacJ(O00Gv?CMv=1Zp3fDE?*vxq^-yFFu-B74mCXR4|Mk9`=I@7x}Jt%AFqJDSj&j`iXRW$C+}`OR{xj019|9=EZgZKy>Y~ zMVJoOX=i+-MwZD};z(V^NJBMfYQ$Vwz~Px4(9D|0w9?T_LXPkSaR}f@R$j;SiYIjk z+)C3+^mJ_dGR)*0eXIDsx^f)nvKL?=)W=4g&>ZLOtwpFmi2{R%v)882`jG_$cDs8mDsfkLpbbu{DI&^q( zwMZf_LNDvgbe~qdA#DsiV)VD`L{j2~)p6boTBK+@0eM1n91LYc;UB=5Uu!M`uV*?m zyvlCf4Q}h{-H`m%|4W;Cx>jQHM*jZ$AyP=imUjX_M3oYq0VPeQK5Wg4SbGjxWv1LPTdh7srr@3nlA~i!uY)4 zTfi}Xnt-{;icGw;2ZVx8Bp_o5$V3vVk>VRg-p zx)a2gT?RF;kPSfpyZnfg_gwYcVRgfyHr@~kZ`g!URAu`y1{2c1w=Ubsf+$4chr&~D zA2u{1fL`9P^Z7_+qET24RKgqLz}7tPD>lS@psp^vM1(CL0^+Fd%A`A$)_8m1fjt$g z1M(ydqK>k;Wa)4RF6~|tNrDaIm5$vBpk|OzF+{{oZyG|FCLn}BU4WZ-!~7|56E^%( zKkX779zj6!$#JfDhH#hb@!P04B6=7|J$qXAye}zbLM#Fje6^DNcE$W=+p+VlvR1QV zgD{JFq(;QB{$#-kS?M!_YO+ZXjp7H1-;aXZvJx5Iu`dtPkaC=oIpP8Z?hYc%*P$Mi zbY0Hj37hkwum}RCiHPE#MMM&?fhrnh5QFe%p$pr?NMX zjST1)y2|~8SuAGc{#eycugHn=(=Kz(tccWJ*3uf1(t&PimmbyHl{@vyz_@u+T>C6H zm8uX!fkTLah9E8R5JHmyzez`&_lA1V5#}tY2Lolp%8H<1BIxi$kmnNVoI9bwmjZY3 zMsuD^r`ejt+`OKV+79r2DH^;+@t~i6;p4M~>~Pscnq@LE(1G-n>u#0{3FbgRIaA=~ z6qFYmZqCT}C!QO6gYsgbGx~iS=}31LDuxtTK;*ee!YX}L6AYIo$C{fro!f;S z8weuoNqXA$B|c17Cl6F~Kh2+kil8IB7^q=6R1$!`Ped`85keWhGVYv5a^7jfh-5N1 z*$wX1pYIq5vj^_@fILm!h)eP)^fgq~6PPmt)dV8#SudSgh*m1?zHEf>I%1T5zr&t) zx{B&cEiqw3&k$hxlyo&VbVv>*@eE-?Msm)~Oc?pm1eggEhSFh#GGR6>q&*Y%qU%MB zH^LG;y?>|->vP7PenXlLktRV@NDwu4xe5syPsE-9E2PYzYo<^|Gw1;Ta)1FGpmH7D zGlPhN6=G&k6$<>S2mB*LLrR*yFP;>2P$Pn`P+;u&As5m%6NX~|XX^n1m5Ttv2mpjg zfW?w=XFyIgpxQ>K(%Q4yS)|6W3V<^Jt9n3)1g(@u%`)(6!o0B$gAKk}+8>gwycIvL zQYfgRp{OdmMTf6Ffvw5IjJ<13z0)h`SbrAG6oi`+U=QbD4@Kbj6`=aeH>w~^l>jAz zbt+(;Dh+my4WFXP?BnE6)xZVzh4g(V&VEsdC^{yn!^_itP@@&+Pl7*3BQ7xzZTHjL zb&vscRJ%gMyE!-oKwKojFVbPgRG5}`qZR==9MqVX+4xNXeP?eD{5`E(*oH4(#rv?i z25#eST)Dz5HhyPt&i@ms7eo}Q$=s>b)^KUsIO;Y5mA&J7g$Gu9P*rx81yiLo>U%e$ zv!K`pCi;3E-|?2b%<2mYP(kySA_eRknTjiiJ-r;GF)sF@A4TV+eG5~sOA!~=xvtmZ z?@pp*sMwXc%vbk=OWT?udQsUu&BXy#QZ7sr08-@HB5d9+Bw9!Jth3vGvmaAu>)C!b zxP?H1RFGbqmV%aac;G6=trNe}k7u)CM$}u_bNEg|Sf~q5k%cOAwM%0{{0gNyK_kQ} zcA9;{Y`@WfJLZO8=QVS?-b#|>xa=+qk9^U>y(d~{%7-w&&ECp`$h4XX6J5V9=RL-s$Ny8heOue`;bgyz1Uqgr7hCedVf`+nW z%)AjHez1yrSTh#nC>2`Al3_5c%0=Dmt7Rm8yJzXJeLuSI|L7jhf(|FZlCzkf9U6Zg z@A<3UB;Sw~|A8)h-3%N!_9cAEv4%i`RCu1^0&ziKEJ_5k9SX!@xwhn`Bc>Iyo#KsX_BwV<8n;rkaiqvVtY0 zvvHn;kEV1OF?;Z~(nsaSp&%?Gcz4K{{t+<{!^1^3IC0wQ)TfnsyuEkuXaK~B2s5BU zHK@1bS*QRPQa&9rO~uOhqu;G08qh;7g(NudVvOhz9YAkXlay-l^`JEKfi3eN6DMQQ zD4+N}_+|I^>y1>W#*qY=6%n&1T^OAm66f?O1eJ{7N9eHs(-jUl{x*p&JJfRT7pG53 za`pK%?6ij+SZ#nhi-m*|p+*$E$bIZUVpmaQaQ*fdfrIb$sqNn!M&%P5$B(x>&T4<~ zqkC$;1rzSN>ph?qFkl!0ohyeMFps4X+c3%w*MIbGigfv@!Gv~=`nWuGEcSkbj9ZrqVajIdI@A`yw)`V8y=%k|G@x*@{g7~8(eBX(DD?RJquz+3QGeY_&h zM0=pW>|rlE0HPQwCMnh=t|~hZLeG^>1msMg7Ok{*sJ?)P2KBW}JA!j9$5ceGV)xYg z_vo0={?|z$LTU}4$kH{bJ{8F7(Dua!l4ta);gS8MN+|lEERY0z!%gZY^~=7W(bY}Y z(#4GO>)UM+C(hmHvN5X;zSvRsue?sYQkpT>@NX`}tA)BaeFfblC(6p2mAw)5#QK+I zmEZAm)y=*8&g7feiN7Q1+&GbZlp5eFV=;%{B0;>&s;hIVn{uif%D7ZSDn-d1Ey~cA zvc=HQ#n;McQ@7VYR%JG5Mp2jPG5luBaoUdyUcdah)IDUe!+H?BeeX%7vA@Gx^S6>Q z$LD60D}{7xghm(ZaZBeFmn4qNhvl@KQe3K_)$?)9=?BUU?qkW1O2!1^rS}*$)(X{X zH&@hiSG4hvUwtb!rPG6KHBps6b=$m0EdPv`h5CCV(qc=}WC43JGTAQ94A1aqta^e7 z+vJi9mVeQA|57B@0?5c2W}T1&?>7DO8mJi1y5^ZIgM21txuU(s7TF@|tTFK4@;(!u zulYyeGeXt`1}q+0Z`=z5=?^yGWAwOJ8=TYPZHiq4o)2xf`XFpGJ$Lg-^JdoQX3pLw zU1BR=cPsbXu?%auXSrMcu2qE+Cl!hwa$C_9LnJ+Ja@qCJqWc>Yn{4aXXJQFts z;-*-b&R5(6WOTRp&HxMZjkwct1YmpP*9k=Q(u0;%vDdoVkiCMQ-806Eq+JNd*h1dv z>)-i8-TA`eVbQtgmoRUeccwUcZ_C|rAB~}uUH#Fm%oP1Kf$u&2A zHr*4kU39G3fUPRLEt_xj9e?7XFn!-lOz%>YY~XLR6v;M!I&N+1-Q!oji~7G^?;Lq* zUzdF%3?XJ;^&t(S>3ZdHk`wD*AI)bcqB!edS^VDN?>0MA0Iu5#|f{B0?CpI6y&Da)IeW%%0GJ>d67N!yfnRrl2DZ?iX#4z1+w z%nv$h>ALIosm3ikn5k_;3SW`3H~zRwR1T(`-sfHwWSmlzwW%K`WE?Ar5ICnf)+*#1 zixuuDshvUFs-+Z(z9U1}#o_bg#o`bLj=Jd4?-bs{!N1=;@2GdID1W-SD$;u>)TMR0 ziAzt4t(%XDI$QL>yP>$?-bL4&lIl_9@FQyFrcCF1$Nqak_r-W@ zmE7Q?)!G)(N9;|Rhayp%(`Q2em5;{;^0=*GJdyVIWgq45{>r|(r^hkqv_5Zx^ zN5T~dXp<0c_P>n4%98c)6EiMr2q0mzIQwS$Asg#o{8bpS3-)uaSjKPgV6;dqn+Zi6 zpb#eRAMG5Dl<}gB!IZ!Fb?&znNQD=^jau&F0h<1}fAjncFjK-%Ub8TuiZR_E7EPe! z)VuspG2+VUVI_wB+AK~vy0uv>VIJoAd`~#G<K@VrhPx>EKSvm0N>1 z)cyxW=N`@U|Htvq?i<70w;47ga%(PS{d>mbP=zZcTqkTiN{?wPnS&Q_v`0%{#?rg9w zQ?4Ma`_ijPAhu*tqY##@QetQgLJtGL)+#5T2-4RmscS$12BB=OGGoQfrm{LHl+6b& zHfQf_pMdQ9uT$$oB<$=PIr8mbr`F@3H3?{`rrox;u>qYYi(4mE`FXj-XyuUQJSPkL z7tkDMBYg{Hnn~$Agwpz^F~&lgG9mS?4rkc|eCpp<4?M!08c#S*^7c$T@o<;$;sH5Q zfjNm>*$M+^$dQ(SL~mIWp^KD5DNCmy?%1^|NT4E+Rqm`T`VExBBxA**e64_E2C5jKS!EHRbm60x>v7cgKd_k zP*AEs*Ig;1nUNFpmTFrc1HiViMk;q^AV^kSQB=_zLLq`x*Oc3t^pUiSM4cpjl5$eU zP!FAzkbT+N=m#tC`lW@AAt`Q86Cz_HN5IURn;iCnY#0kjXgRM1D5vRE%*fwp2@=e)QXsI;wQQ(BOzfEiHw!lOp3Aetn>wc> z{*h%wnW_fjrc`_3*(^>Oi?>#ov(COQYV=y`J6bDpZZ z1oXk3-?cwe;E{eZ1VG#QfRU%%`r>n(vN}OqD?-U>Y_NJX0EDvk65eff!b?qf(VH7V z=>uF1swAQbpph$u^%^srwB>!q{38p{T0 zrxnlnavx0d^#h_=}qD;=XYQ%55%N_vZy9cuPl7RoC})#u|RHE z3Tu5-@#0C*89w;$htjh*IVEcNk5B$lTH}{Xk@}SlMw7Ch$Frb>1A4JvVfR8&&yVnM z>@j0l>-&o*a>;v&2*9(}(VHzI&@LT0h7kKZVn>yv(So%Qhxn z75HQ;qBIYPxtPXT2r7ERM^Cv#zi|`7)o%sC{UIuOn~CGOAVxUwc2mCtpmg{kGAQ0G(4jue3+jc9rzZy*aXavYv@Fa4ek1kY=HKO(gygh zy8H2YGxgb-!n0jZJqVYz)9_86aaKoJmr}Gi$gSWkPQ&zEi(2g|k4X&>1&*iysfz^j z{%$?~2rmm5N`2(@t!tTUt#8Ik+PY~SKlN%d%({S;IX9PWTogi1D7QV>S zrt&V_#i}*YDMGMvQ?bH8w-56E`h!;id{cl6r?|r@V08?5oRWQ7 z>LIPWBlsywp35g&a%7(N5mZ>R&hOdN+_;LS$`N(J~&dii6elMJed$HrB#b$5P(%e;IE`A??5^)F^t`b=Vqdjs_&NTdT zqr*0@u3#dtT=OQd2`vD=2+{$r3Xqx>&&#ZChO9t^iv2Dn1R@Y5-5e2t#5OH_05a(V z5kw#@BFJ#x^XNLbXB`+T;l!KpY{b~uc}`p^&zl0pzFDu4GaR}5<(b9uwC8zI{{+uH z;d|NW586Cq33o7>qtgcp-ptbp1GM`1p{uj^)WMB8T(AVd6T#cw*l180A2#t7tETxE zEfB2Ln5l}V>ra(g+o&g!$`6F2N^@QwzkoWC?);SvvtmN%BDgt`OA@X`0o>q!TQDM! zt(fml33CziEy4gyI*+<}4Y^MjRSNB;L3O#7BA%t3XDa78i@9rbx0uK|^^b)h5aY(aa_t-GmCYO?3ngl1&K>3jXipC*`c`KOUa}YDPLB4Xa(10O*5RAdr z2R>waCKnbFZC9MhBa$$?ewTi+D~HC9jh*$*@>9zRgDMKH@co$C*hQ}50RbZpMX@>N z6*=MQ&=hvIrUc|fgA&-B?b=+!MZh)=QzzlCMhQ~o_2qE_^I1qCS!zCb%b^vd-^z8w zpG*O+1G_CB;(25&&kUn;f8g}pPbTxOgp+=v&}VPJdiggc=p13LvtMDHXw-~l6J+C# zqJmHueoA`o-o@M?7S|k`Y>-O|R1XU_UIRZ; zA&6SbGu^66apAGct3ocuo?(iPgcbdu!LJID(S6)*8A!9W5_nZPpa~)nc^Vw9GiS(K z!mkfQ$}M6P`8u2wCO3cySFg*?;=pvNCq3mH10+8{=vq+j_}RKRL9gXRIz*=lv3oEQ zXNS<6g&b)@*kHj&{Gd7jW>-4zKzfcgt1LF1mjb?W*ynROQ*=o3F*#igMc;(g1+-?d z1X@7s*!e4__GB>@I|A|)6?U@KUfQTm*Y=&-4?Ti}=q@6*vp<|*=28a7adD^w8h3P* zWMZFZNaYDOSvbpMbSiSI;-R|Ju!+rf%6e%R8QzolG_Sk&Q}qLFoB?QDlvP zY$)*9t04)CW*39FbgTj9C&G9K&#Z|T(1bV`1lm1~a~o7Tx8IV)-{`Xw2DAK|gEwAf z@HbtZ`C){=ffQ6ssjQ|zi$6o~?62ChT!U7wVMQXV6ELn*S*YVH+qHe{9A{xJ9ADf3 zvU&62>vSkwXN0FCk4}xkSGZp)ZN!_%8cbsRK-0Km$o;$H@?^IJ>0tujq`bYDs7+V* zx-D{!ulfG4XZz6+!QrrcX#TnXBr02I&@EvQTMQUo#8saIk(6eaIQK5fmiH;}^^3ym zRPP%`=K6kn(}7Afo13@@SEur;g3R1su|f2HJh-?S=Tqifc(Ajcb;=tSAr` zYBeqJYT~8K5h+wqke^>ln5qtKzuvwiD<4#u__%x!zLQPwo(0qWG`vMH`p9}$>XvKF z!UqzFOSNK!3Uf6wARx6}yp*j`Z^eXO-FqA&KVP;9N zg9g$l5M1x9*8a19cPlqkgPO6JYsluNyGPso`_FQXN?8TsXrJmQVd0DS;1!}=rWoSi zw5u42SW}wo&Ej>}@m~zCyhmYU-y%*)l+TV~q8(zJs5DCgf3p_qwo~;?Pp%i0?=x$d z`Wbe}GW_f?4C;C;(c+HG<=A0%HoY~c2l{>s@q6^f_X?=ye5=2_ctj{*^7n7#soMyi zTK6Y&@>eVE`n23Ke}UOEfvK}rndEr+$uh(1{a5C2x94s51wICTSA87QHmFVz8i$6s zpfW9fwTGz{{K_%90&yXpV7JnfkOFOYbUd>#XHaP(M_0eZ*BKtW%Pcs!?}>iU?=BJn zi_>Yf-nd+$`8V!yd!W{>Un%EqN5wj+G+slbC{^_5&Ox7MU)e64|Mu5Psue%D@~KK5 zE%s1!)}kA!Xnpn8)`J;m*lEL*rZi;v@wXvtA$$O#Y~JAmFQI$caCR6nZV~w$ndjh? ze}sZE|D}EM+^Z{DOC$GDWmFYVOzH3zwWoiCiZ>tsl_1}m85E~%6xBzb^x2m&>U;Do zHShhCeR&)6phJQ=o8@1>3q6V^WW#M4ZR!Xk2C-6PyYJ(r`1T4?rjyyikU`A{PpPPk&~u* z7?MXv#vz82Kbqu^Mg?zrX`{WuAL>v~UU&M6;zm>U1DF2db0dAn%r{-N9(o%dU-(4j z@G(=BBCP4VhyO^XJ{T=}O~%}pu6@Tw7;(to*ZW?+VqRxRkHP!TdR#9TXs_BIQQIe~ zFo@kTZ?>R;H;wDXtT*u~Gu?1~ZS`N*TdY=(*2*@+hx*p@*I93-KCb#bxA^0u@!Nw7 z6l?#;s3%B6PZtE91u*ty4hQw>N0|EQ>qk)Mp!)m6t8)zs{I0*=Kkc@HkZE{$k+elI z^0Fc^pQ5=PZ7yPi5!kpU0B-7)Bqm+OCX08fxKwoMBlZl{67{MC)oVrEbkk%0haIC5 zn_83bC`-{`4IFGMrek&vTL?}1hSR6GiUVxB3WI#)j~u-N$ftdWr*p1XA4_`Ze2HN? zda2x|gVJn*+Pp_;aKm#jIryC>wSJBr1pNAwxfw%-C--Fr8STF={`lD4QLT&Vw%7=L z;juKVeXK6^bik?1JE$qR8tB;U=W|&+z>~Y$Z{33-MoP6Ja8x}$hTIw z;&dIgWBAKD$DK_*UFUZ$iM+7-MxlAm($({yTKa>JG2D6|r?7 z#vu28yzV|Xh3f>(Y+0@y>`}FKfI%BYd{#4pe0sDVld6%up_~ zbvHE**6jxd3jn3hsDE_q&U)s9%uS}jm#5wQ!EjrZiSE0(V{x@7uM+$Oct^|Ydkq=Z z>^B;rOBlZP?F%r~wQ4_)&#OVva~kep|NbikLD4^MZhp3PH*>?5O-)@dAH=M?13FiA zoC|rlxGVbWlIuO@*H{C^MgkN&^@IpaPqqLXYmc_y>i7KO^h=|tRj+{;h4IoVeK{o1 z7c@jp{odiFslV3^pIoQEYWY*wLxl&%s=)Soi-XNmXcGjWO0duWzVeVM#g^^+Lt_69 z-|~4{%wuv;HGgzo8?{0Z!=IpVrq5=oqsBcOZ_*3=W&$wl>Y*Gn9&)HgIS*?W9JrRN zIwYW^LR38~eP}o5*8SlDkRR_SGE&()b=n8XP@JFUi4+>hkp}rRooLe`4Qbsk0;z;e zBn(gb!b4bqN5xk)0$cKRfOO1;P_0RzaBM@bXYVtV!rme`kFQy*!U1yq&D;U4Mohj# zGEsfB;WbLx?^y*hft3-Fs=7Q4s{~D05oMc2h+IfgY8rR6kSxCP4dSOsD971}gX8+y ztx%~df^p8WR&rYL-*c&tzeLH{m4H4CN-$sI(bwf4H1t~~Dms2!pTg;YhYn3cF$f0I z*zmY*Vd_+f3`ytVPC>R--flM$UBP4Bo`IjkC&|Fr-@i$kW(l?fs4} zT9XcwzGIAC(F6GAD%es)+GXA^Y^T^Mb9?etZV?5;I=qez+)RB~^4dlUJX!b3PpKm& zAth%4zifR{3Pindf3^jSOWr*4JZQHB_K#^5GHOXvsqn=0PzB&-&HO`uY7Jk!+WX6= z3mcBS!fq_xts~;>FnipO$&AAo{t*jpNe}b%bB3~x$>H5f@7QjGBZt_8xri;4;pdoL{P7Qw9zl zQE?_~NCUO0)i_XBf`ejm^@|@@!Z&RFuSy95&QDL@MpmSTC*|MCs;mXxW`FY-x$FqB z*lgOfh`4CLy|ex$Mj-g~R_-@z+k5uOy^s8x_i9MOLlXrtjt<&}JEoxcC7Nm*{LQU) z!gN+39}LL9o>F^NT#z+oc(kc?Z;A8AQCn%kIt<4pso}LDlekGG9J~Q05AiuEg7xVF zDrii8TErAQGeH?%6swwreGMC-_O7yLgO7IIJv^_TsBS=3rJGK;M1+kkC76bLeG0%h zoHfS1a!Zi}1qWJB9iA1qsWM}2FhreYDi5-Jd-YMQ z9J%2?gbEbXd!=ZPQgdA6@p%peWHSJ3;(nB3BP9yt3W1G4IiO>fK-%#fcD~46<8P^5ckkDw9|#BrMzGm-f995MkB)r$ z$L_+x=hQCk>iqldSJvl@PGTk9ggWTtC|mx7oq6Pcxz1ZLE5by)IXNuE57Lc7xcY-q z<;Uu|^yNf=pL2d1g=;|Mt)lW?{pPK8?YfcBEu*bJYu&wIq1rhpXRwM&X@$3}yAIAh z3Y~fN3@NyokaID9-D_*{TWdk{w1Veo4US-oC*#h3^Oj0>etZ&?wvLfiZK+fNu^*vQnKH1r~Sn#E7|Z? z2`|Mu2(|*GA3~3)ROF)Hb;mjizdZ*TVHvgZ8cY~y|8!5u*(tlrWX8h>?pTPnZBHb% z_wGBP^;w@iO{#m4Ty*0x-uYoClRk|lPK<8RR_rcD`T6=0fvqI!Oq|r(O@Nty&^Weh zN7J!AbtUftYh2ZND~r$5PoLk|^S~Zo&|J9=`htspX98~xyxS#lOD@|p@YL#_x7M)K zgoSj*M_VOldu|_~A6AWS9ND;n9FyRaIGszJ?&kU_u^!T_F!G*(Xn$$oJE6%SmAfHE z*euUg#6MJ9Fe680kIoQpXJ4=y_dh)U#1mY!a}Yq9n(Z6p_@DLJ5r$Cf>Zw@j*Q7{I z=6!N25kIOGQ@(u@B;u>hH24M73YH4ZB1Goy+DVGWMB2*TU5yoeJezqRat27v)ejv9 zpuJ)a4EP)fER9=2bgtJNjJrswDA-Rtx5`nrD`MSexu~Y=j&3qZUnGu;9&5)m*EHKftcM14^c7Gxwe$ZC`X>&l4P5R z(;rxxmECh-(f7c})*WHP8jIX;O3xuG_=j#F{$jT2%D~&%1W}#JRe@tl=Jw z0R@MM<=cgwq;y4@QF+c3ujI+(sa^>9^9WzJ&Z1!X$>+f1F8j_Hv-rl@Qs>5+LM1$$ ziaLab&m;aa46;??NA*6LC}nQ3$rAVX#MkrdQKXwr>Of^46E&=GMRFntC1etrBR#Pr7=s>A`lcWXb*|?Rfmm$F=y{9<`k$v+CC9m|(;(vQEyfeX z7&!dE^eR)Z3he~oD%ES{t0=Q1s0oA-zFQYp1<7$1bCemAmKngCrBC^34L}>W0tZpC z@N{kB=#B74oA%y4EcC!a+8^#+;mRWult478)&S6vW;yY$q3#an97kg7OgF?bu-RO) zh35)K8QG%Kngv>g@^gk`u(F;1UIPoLL3#o>0eRW9KJ!XVeZ9nt0 zVw77iaV%?8b>-@faW;PfsZ$4?niBidlKHBeL zI+l6CW?p99Cnf1zLs)e>ba{G;%2lb?((f23ODM8f;v8pX@cfbbNM~pzUuA@0#-^>% z$xffFG{2JYpJn!+tDdVWCCe+bRYi)RrN=bafrM3Y4YyPPwJk-^7(Hz z13Yq})FSY!ULn^w45aS&08D9uu=bspzlyJu;w)qq(X-Y>%Ib_Jdy7sN*XCreYbeia z_F)NT88m`3k9k?=k7mER?}lF`S{0oxaUj*YQeC-vf$e48 zF<{Lw-*^C6)5SO0rcoPgCmiuKE0kFSv(^OgD|a4Nd7@y-n9-8X1W0h6O&zDpcwWT> zs?5r&(;@*xto!PS^_;_ZQZr7DT6CfZzj}<=4Ee9hKXy&;e4QJbfwt;$8K6BYOQ4Qk z0SGb_wsZ9WXKI0Gn4}oToR_pcRm0AvP5Q) zFjsDS!{Kdn#F+)lEI(e!?fNc=>#(P*+|$)72Po{MG9kI1&CZUV4iV|HD2UMbyK|wZ zYZpJ~B-OQ$?=11md+q7knqJ`0TG-#U*Yi@0c8cG< zVW#WUHRmm^{4*Y%K4Wu+H=NII%$7Alq1$0^rw^6BY&*BRHk0RKa(ygt&?}*J%FeuZaP~)@#_zau@$bB= z=-G5TR`@fTg(TRNRGI+67L`oDKVw*A@QdbqOC<=my;w?C!7u?$Nh1|mNb*^s_pxIrNn#RUbQPPJDnmF zo|sUytbM{cwemv2;d3cZoSOE@f;$~Kt@k%UUjI1qI+za(H%nrvxmlgEO`RR&M43jr z7!cJ^7NH3bMeLh3GrM-U_z5f@j|38}c zpsU7UhGwIy-g#GCH22Bv_J?=dmDlwKcmr1st+USA089p3bs~3P*ymez@xQ}2&)m%r zJ*NU-;}MYQ2*`LAWFP|J3PE}zx6wqs9` zmDC8@IwM@$etE66@RW8dU>ME$wg5-Fdp{(p}@#ca7ZJijsRUhr9Ar{o8w~ z!~b3;x{=b|Mg;%fpK&)B;eI&C9l3q)iNUW2o*r+=S#N6pJuU#5E_vRq{+q4=1x{R? z(O5Q&&#v91x<-8@y-rPo?7G-DCKPJAt;wz#Y z+@Nt9GdQv;*LEG+jfX1!Pff6XS<%tv4mh0Ibi^V zx(>B#>AP|MYVxXE=X0a-3s-otIG`8I0lAkp4nz0i!Y5UZq2t^0P8%dC+M9iZb((UY zgt}8^WhpaxOl#Doww_8eO_$yWDQShrdH_sK@Ix!z>stK~$h18GTb}hbzKi{_4#-#> zLe@GO9#TfNK(Wyx>g~d(0hV)J4qQu^ACcn*lQ=N*pwENXrMWpq5q78e2CvZmtAk+HndO3t~_j||}} z``D_Z`r0E|d_(2<8dW>jI0=BT=S)DbQ5@;s*q>yE z`lXxQFXH#iXno<^EKxWBq_MBBl7w!3rIGj(V!?s<&ipplL?rwkJx3={da4Yr#)N{w`<=&>uH`_*?6$B9edL!673mP5ST6Lb1Ar5=0%HJ^pCy?x)}QHiXEZnX zPS1Tr=t*9&+qZOQ-)xU6(8J_{mA@di{U@_0CpR zqs=vKOvfU3B=|T-f={J^;D;YEV%zFd2t11PrZN%1bd5w36AjlF?xRa2%ZR0i&D zXZZJlQh%!#0s7BICf8z99PKlkX*-o5Eg21Jh@n@$H=WYED7a_W7l}^7$}|e)5NsR( z5AUZjsIy#i*C@S`bSQD@)03dW+O?=~l!ra%VfT`9ZaJ8viyRbs5oDU%h#c|~w+Ng7 zvNj&}B&!bz3Cmyk4%9AIXcQWlmKuKv6L?h7I9UXf9I)`cb(UVgCq|B0=J*F(oe+9e zf`CL|ELkD6=t4j0CT9hiq}B&uQ$1eqUIOFQC_vRG3JHPAg^OwL_1J*J8VjtxAOl@+Z)-i$1030>z+8 z&ky4ZuqsH#ORa;8^TuySrrnn(-~hJPXx$#)?dV--CsTEUhha)WHe?eR$+>v#9%X~w zF_6AkFVUL9Avf7+oWScEYgw)f&`LF3jl1pKm#tpbQC;9w(MeXDE7+{fc+;Bc8P~V2 z=0|J6$&Z<2tZ32P1GCQT|XXec)|acKJ> z$+b&QFYbAiO~d_O&8XYvgkG33xEWy5csnnlps-W(!}h5KOtp{If7;?EEX?mXUEnxa zt?_1I;q=!qm|M0?Q~sVr92*g)A+XI`0b1xe(Tc2yT?#lr0e~1v#c+>w-^qkt&2b+< zJsWKOVFUysFga*eOHb_d8Nh-PzHNK)9fv_r5LN*0diiMIwWV&v%rdwCp7c_;=C>kE z)3v7v|2aSS*W*wagyQ&?*8daNq&fo}vleoJ!Ai4(=~w5^P%@8n?~GjlG!J}>JcJI@ z>oPzGQ;9Ie($pyLLr4O<$>$2KgQ zn3#774?kvIIm}Y+Vj<7@Y%4Uo3YTL3aK227)p(MX{NfVi@i$afqIhl`a$0FNtyb=T8JCd ztax4CtLhIOkrPp(r{_Bf3rPe77(@h<3MXt};x?UGT*8Fm*ai)} zHU7aMGiB3+jzcOhWGagqpjXd7%KM+|kaG~?ZcY??k(f!P3nPkMEYne`H0u5S{b$UM49z~IQ z(UGcb4)n(-2v!GP!%@G?deojK9rsP@o|L+(s8;o-4F5%BcRf$rt;R@2bA`k) zP*-MT!o)>9eYGaVZ@WDK?iOnzDpfLf*rb4kC=u(Tn11GaGC%~zJX}|&7 z%Ne7B%xqHd9K}S%($-Sfc2H)pR(I8SOBh*Z)WOAbpaw31xQE;gic8gm7^#X6(cfPV z`LXhxJqKb+gHYx}SEUAN-^_LAl=M6Y9R{(Nm=IFb8Qx77uNxm-emYTZz7K5K@?AF^ zXR^AUj;s6$8mcBdB!RU-h+}2+Qz6@Q%OewYJ?(}=SJJ=(KOwVIjFpn9gke*c8oN}8 zjoYL#gF7EGIlc8G)_KzJ@w>qJrnRqRYnkPN>lX}u-;6o<4s&HaZtD%g)oMZ&$S^xn zb%Qt(_hO^=n#d&N7ntwL0l9MvdMxwy;du`-yJrU3+2yjVCW@HD=-89!Z~et}NNARW3%gk#ri z#-%1|-%30ls%$$MH+8q05%-MV{5PougR)fBBN6+>$p#ZpnLOkaV0<(Z6+=`%EHzq^ zLm#s?G)jygW0+yl!D5E-q{?fD3AMHPB%`Aa{7{E9=bi~R$tWw zWDH20rNh>If~UVU4U=d_$0LHHj3Q{42SBjtc}U@e)lvEZf%s^FX})3t)gmzp{(@YF z_cl$yWBT>R-m9enO0z5f5!U1zU9U!}|Dv_1HnK>Ud$lr^etbUhYiqo2Xar2(qx@E8 zD#<{ffeR7mtre!dt+u~SQ!u1 zro|XqKe-fKqp9pT(pbp2g~IKpOqRHY86ezvdihJGx{OW`kuoVX2o->FaIjFSf8L>- z-PGJUe)#fY%o1IM`faS(^NYZwsg8;7Pl{8!TKx`#U^4Oj$25)8Bgu^tSPTvKfes6- zzYBNcaM065Z>jjWQT;!hs}%W3 zKCZ+-uL74^VlR(~y$M>Z3$49nd@&7u<`hJ|`aq1hbUSBDaMZ}mgc_S@KHzO=9&J1j zN$Hw|x5$n6%h8N^R5@@u<&PBuPfp&_OPGMtoY1-A*_6wYGU9dZ2cqO%~}NW)$q zT7_=fHr+Lm=366HmV>oU+}2xNyXw5@=}&NVDHa{)VoB93j8uh(16o|jlH7oz3cD4o z8X_l@fnW-q{n_p=n(jd56FGE8C;p5uDBpHGts(xoi=kX^P>ENIgyXrH0!~sWV{a@A=|d;? z1i+R6_G39bMvi=OqM9v-XH*=BQ9&f%)e7r1l1X6uY3ee0N~av2CT~5+Vr@78mq|1} zpWO7%`Ns3m`uN}NXAYkhGhSC#I`@U8)Mbm{x(c}5|5)uRmB|THk7D1 zUY=v1*Rgw~qkr@EooCdFCZPDfQ$V<_)@>)&m2;pa>+4Cznhf;DvR#i7trt6(EL`;pB=XKR1k8t-QocqoTy;2Ve z+xwm@_GLQJ@39{klSO(zda%uU zo?bNCI<$5z{^@|~XJKV53od&7v~*jmRpztpG#Kwt+y(s-QvBVt3~KRVd$i$D!EB zd|RP~8riipu*K;WbM%zk>zkRc+s^LfCJ##6Uw3DYJ-9da=-=3o+neW^Z$|IEdGqhh zgxh$n>5F&w#`(v_zq-BsnfbOBnzrHWThKD8c)uLgA)g}|O>*U$9d?+b6NsY|o808j z{#muIoHXkg>+I94i1KvhyHTg6o=s1ICZ_1h&^@^W)9Ag%#2Q=ox1EeA9vw<#eb8Wi z*tY|e;Qle`=tmOgV@k)zBRfFZ%O3ts>j()D+@tI5m zT{ZfWs;nm2zM6t5fp zy{8dtU%vu_1vP6y;f@?v&Oj9GdVJk?e|R7QatED6v`>8lgCJ zeRseyN8ejZLWfI_&$=G@vxIW28_fN)0Mkyw@bXMFy&5e{Oc4gd7~F!L*L zu;~anWpDqk_n6hTw7^qyll_H;2QNB1woDJ5U-v68yao4^zoO5pZsuI(|>R zOuSYoE#@Wawbp0f5MG4-u1M7nxl-5{UD;CNk7=+>3GAgFhAbtmkh;d#!sC%>PS zI;&exJW0Ke0VD=s$$uqAGbk|(^wul4#DfnoQ6($-`p2-X8&?X2nD;xVwdLnc_we`?wdjroVO^bM`d$!*dTjblG$e5dY$IyMUTF= z29?>e2cNJasWhp&0(~nR^oDBosNWT)D}A zZFc>ie$RNH^03`|qHrsA$Hgp|#U$GH&zwnmjFW;~%7${(*PW0;wuG;*R&=UZK|dR8 z<+;mW>x^2OO<_CU#8nm#I){`1k-%)AxAja@4&?iJCDeAF1?tY>TV3`0Ya`8A4B!GUh1h%pe*5xKE^^&hgtA9CFacXsca=%tjUPz&7c@Q+$ zdnqXn8vXnK@xYqVGDzp{{>^G>Q5B@(lFyJJ&!AUPXMwj^d9K~M7e{;o)-UiLIX-jU z_1FMAF--d#0Z(^V{2Hx@pVK+x=Xy0z=e%-d-$?>cqTgm9| z0Y$a#e%v=yLN^WB_54whPyB{ z4f-+UL=)oTBMBzVzGcU0iNN!_%{L3`XHw14bdRf;^WOiRkt}^UcwZgcOMNg$N?9gy zGMApXfz$b*jwIfD6j6Q45}>_U-EjL&uknujv-RyMcXujU%{llc0U0Smeh-XQDmHV0 z4Nd&acl`vNp{khcmrhxc3UWCF)3{`zU-?(|2E2Vi(y-wErLbA4+pe)F;|(1 zY<%{#0NBu0qK%cVSY;j2TvkWC!senG-;xtcL=D6fEtR5h!PN`OF{{u z2%)Her~y=}N*BQrdJs!cRKylg5j%(lYc|jByYueO?CiIE$V|#)GB^33-#O%D>oq#E zfh>dty<}x|7**9Tby#yz_uVco{SU=`!wV-Cq4pgPppiD%^7sX-i|EhWUY}DXGk-&0 z*oI!!6RuxOR8?EW(SrW-UN5={nO0H$6LX4483s()BRGYsez@hh_Wia>9^&IGeRfGj zt-kiFHNl-6#6&~$&p$diBz@3DYGvKXQ#Z#C%N{x)BXS0I zb{!`9X#&;q!)ZLs$f8{K{n?}oLg$k5I!XUB0O{mYEFAKaGvr?i>KObRbHD!7s30bk zSV?nvJoS6?5bOwpU}VIQ$};?hQ=t~Sp1%)b`0td|!5qijZlt1w?f>*MU&mkKuf4@r zuE`A036ZuKyrOWCqW;Rt@#a)NCfUkpi{B11Rk1ax4y#(DTg=|1aK0M^*V_shg7)lJ z^ubeG#Zy9>Qsg-becX7HHtq^8R%h0M+Df{Az$ z(#yh1<&NGum5VH|F6gDyF`G+9gYy60)iepfq#QT@;Lek^;8z}2-C#2dZB*4U`m4aJ+R}BvH`71f-Is+ z`Qzz(&A#|?i}&1rx&=9Y%{%e9tPZ$-G$42Z6S|?>9}E`>%U0UYkd!XukVI>ou2_m` z40Vj-G)7xI+10pld(AXS&o1qCSE7ad-Z?PVZj9*JP<#-kSsZigSz=rA?Y7e4xf${| zSkI-b?QgR*bN~Lj7~fr0e!LWEGQ;B^<19qp>Yq-vidG z!=}Dw*$4nGTgsJ~>R61RM*uXaJgmG5NN+H`GJ_V{hRdc#mYQ6hfs?Y>YnRjnC7%5qsDn z-B11wXWj3NMD01hE#z=X!Q7f_Njq)+&TK;?XU3QE=|DJ=dlx=-Mn+oWEN@Y;+aIrQ z21n9%eDuATEPtW$E9`>5Zd*g+rNrW$wJ{@k1`FM_;*)aKn=NZhuheU!+(8d_RA>djyz|AEa^w>Z#bMMXa+WiWqF z^jXz${WMx5B611sN=0Uo&?*A7xku7^B^=o>HTrmFIfSDsWp7Q6`^F~djoGL1;436z zKQnCk3v#jnRWon0TTTj2N4YSA(?~!GlV}OKt%&s0<)mByjnS9R@Q1!nby9>QOqrSe z!^sJL6l@f5M4Kv=MatYJVy$(P8U(;dE@~SM>7ro9M;7O}>IGq_YF$c1kMq@&ui zK{|SLh4`0=h=(*hBqLKvX^I8k(}VJ0#9OjBeitq$juPE*EbO|TC*HPDD!8z2JXOgcQ^PRr_8#_?)#zO@MIa+# zoLwZJkH9g3FevGYZR8g|VeU0Gbjkj%2!4}-OrsOh7>Lm>lmlI6hFSiCfjF?F>A~eF zOKfQT{9uyiO&&aghf830=^z0M+sRIg6i$7MR5_Y+vb(hoy%EseVwg zQX|)I2_4PnqE&FwJTYQ>>Y=fR8Py&Vm1Kq=p9}KQYUBGZT07=55ox-b0ZZoZt6-LV zxG^7Yx&%8QgsLQ#VUnf`uh@pRO*NG&rdRD@!27=t`Wf)|<2Fo7eZ6mC`>pAIKlh&N zOLg-&=CJ25rl9aa`LU|Yh2&MVBO~qr5!b~ld zE@%{3{(^#k#K6zAmwzT=EFppm1N<%#T+(IC7{L;^AbtgD#zdR|bC;J03w-$EkKh~5 ze*JFMGdb0#kIQ1sWi+YBcoT`WcZcpaf(* zLyRmD5f<7JM;M6CuY~)HdI~H~Mu&_I1+=A`^e>e;(1=43aLx6kO<$JkRhVU|Z`& z`alnTvIj>6_ZxK9nOD28;`i62Z+=o~^NR42inOL*PAqXw?~6$0(^6lB&y~_5Lb2MFl7StZ$t%y-X*F07#=a82kovV? z$r@zB37@W3we%Avz}Y9zZ(i~#pMf(Edm94N|L_LH2m5;758S|B9W=Q*>~r;vN|0RQ zz-a4L1zG6-D0%|`MpE!N1N+|vk0tzI4k%|FE@-bC&WCioYdt&aM~jp#W1s$a!J{+U zISW2p9sXYhkDIk#|Fht6@ZHmiuEzgW@bK<#`kw`l?Kiud@BgRZamxEY1&@%f*k_W0 z$D>OQFRmecdQE*hB!RW~e z&TH)Jcsb71@j2~#rStV<)g|Yfx9kjhQizD+*oRlT-`?Nvhm`BnR<_SR8#sCV@yk-C zCj7qiOfhPn{g|&a6oyWli_JUhH?li}fpPNe$oZ_{P<5_=eTV!!%HSHqVML4UCvM^s zJ%6mohJng^h&12};v*Tybt93!E;i`s>Tq#qUZS7r0E%i=Cul@?+d-in{8pY;>^I7P zBHg}y!rULcT;T?|4Dzny1ILsd>%ZV$@d^wq41p9}p5c5ErY?`0O?epe@~G`X)Bn5R zq17SyUj>i~cZDTH5}*=&iGNhP$!XztZHw z)u4xNm%KZirgToi95%%hI+k03!=M9Jx9fvcK|9o0AhkcuCVU-C#Q?V* zqcv?hfDx-v{KQtXf=jQ=Ow774D(kuZZ#x6sC*bXa9s}sWiUc3nkAscCYPbn)Y#o-; zRr^O)*YrBhI-NG*e8SwK3%7B|RJRnstxz50zk1*)2RmXW@Oo0$ zJ>QkIhSrVu`#9ww)^%o5|K3_jo>jW>cydZN0GH5jq-F*@D{;7E`g+9OpVl2`6V10_ z?aaM<>JR-o(&;po&w4Few!PwYf34yrYKG}Z{K{RdaE03Lk#y%7=Jj(3O+fh%elm8q za&gJXsrGc{cAF&(;A}Q>@AVK|Z=0^@$lH4)#B3D4uq-|8bslNw?6OeSTeFmtqMfGR z4GmebC`S|Fsp_tWf5;l>ji~>K@`MeZy-}b(PoB0F*gJc2Wn@Rx)oQ`--nO!G&J%fX zp47VQWN6ndXO-M0Bw3Zrwbad3eFWB7h-HJ+S#1b5JSS9N)ttS8N2)!db2O3V90JA_ zhcq8EEUtr87j*NsI+3E`2KnwGfuv)QK!%VoX46+jE`g}(#4k>oY32pbbU@OKts~1f z5J)6>DrYq1S?01x*(9)8N;}_D5K&@(UuF4b{OrKQwsVS7p>&FNWugoc!Bx>YmE5 z4WTp7RGo~=Y8!G=trJU`OwX0dyp1w5&_?^qxZ*Bl=o!j2OSR*3kDclqr7He(@>pW< zpj1~qcr%TL(ZxwQEhr%)ps4RO;2!g=opj=L+okvT}hSwk~ooBeKrR*s0_=6V5Q^SjEFS1QCoK+1{)$#AJ8Egmd@oGpuy z=aCCTKu{{1g;F1ZNseTx^Rq;A|ARH`n}e=wl{|IbK`c1+-s!qApaL@6)d%0VEww{t zAQOWo4pF1Ih+#}_C!)E{>bL>1eb93AQz8fYY9BhWK<$(vnmU=LZ(|GQyTFbi3=0KU z5w|_)&BG5l$F+t%TsNXpyJgO4H@5YrHknLI5rm=`VR<7y9ru-6aa_tXbrShX%WaO8 zsTFblR3JG}w+V=YjX4FL(4KZQ+r6*;+Oo7r3SRJb!zbhuYw{p&e3YZ&{bl;7z;{ED zJb17K3NOgW83>-uKcHBj%XuXlL{D6F=92K4?IY^gew74=pweHFZ?DRBT!<%jJ}*oO z0hTdO*(m4DHsp@p$!l@@s~zU^Im)^|{PWIjJUHynrvPO|L1Ah8yj8&#T@oKSC=G`z zAd78n%f^2X#M3Y`7&t#xm^D)!neBYQ(w^d1{E3ER4@FZKhQw<96Rup4maQwUwbzD8a!EgKe?Id2_X~i~$4C1wWvl%WfdQ+u z_ES)*NiFF^(~sc_?JYSk(&v@$u7*;cabu`kUdkn~EkW%sISf`aNxa9?4mn>OLpe;E z3dw;=GT^X~2V^eZYjo>tiBTgQsG(o6I_`&1#6^QHGq8+gCX|GERe>Z59nCfbXZdp8 z87ffaY4oo-8BCZCRUn-~uTWtG0ywnytoh5*Ljn$$}VqDZ+%2HfR4Wp|* zJayMx>tR)Eo-`Z^yDsO%0kbZFOj4B}kzwNy6_X`4auQ>E+5c255^ ziEw((Tw1(WX@^r8#n9!2+SCwwU1OERHcm8G&Za600V$9N)1(Yh4-7);pcXl2?Rf7a zGr8oLSF3VwQ(eJiE?#OI$))c|lx=&i{MREpx#2TnL)kAdZIbSVdWpe5B9UFB1^eE< zvxp?mO5SPf%KUVUV;R2up$_Y+b?XiBtOr?F?+lBr=bZ}~c@iNrR!*y|p!K7+; zNQ(;zPe6wlsj=K(|2Y8GL{w+66#0cP)IV8``(-C*r#3<>8GvWOnxp5(E^fL00EmWca9$8F(ksJaig90Xc ziU-aCY@ND7`wk>bN^c{{+oLx{dJ3@N!!02Ecbl}XxjagFKDI91#tmXEAuw|Y^QA<% z2*aUr5O1)76v%G|3Kj0GKL%}NMDIl%I=`T76eIg$QNfCtf+I_JlAwQYAY*!npb}lk z#5GsxqIH3`5JfL)Hl8dq0Q%psfn1le5k!QhA+YychS85Cq$H_JLydVt+RS_hVbq%# zFp0E(*>IBuLN=3zUuPpx+#?PdP{S!)xF{jf)OsL*uRB~M=N#152-Vs_i|vVJG#REe(RgV)-U52Fm3*GG?8(#56 z6269sd*exVH~|LQLDzWjyL4ySErxK}|JbuLc_1zZyu*_kTg~1=qAndm*oY7d=->@} zWRdWAfL*1=ykr5e{zWQrdm}W)bZslpQw<`>$krjq;FfJC(J;ixVDvx?G83pn5JP{r zM=D{6=cnsfLnjgDb)TESOq!2}d$tuHbyq4C!OC4+RfPxcSo;#a?F#g&nP_)VMhC*| z(1(oM3*s!4-g5t=^+r@9Bj4p0Z#lLx&sSgU4fS{I$0x}6aG-64XAsK`hE4jj>!2r7 zA^jq3YMzw!uGc1BQsI_lCy4`qe;b5&`(vZFV-p zMeEPuuQPFHBEb>`nSF0@`>sIE{b#CYlkGPh?--J4?$3rZaYE5SJWFPguc7ya@ry=Y z*Fb1~gL}xlPy^vbOk52h^T8Of5@;Mak?>cT_fJR|xYs7llF6QJeZrRA9@1=~5Ra@Q zOF3M8R%J4l%4NE=%cyn8I&{c~bttBHD4*<59q3Sh(s6kmIXTD@Q%5q3Bu>}(bc(Vh z-H#)S9cVI6?pMg)#$@g*VXyM>E7M-h7eaDh-Jj-O+cP+ zL)(`M_2z1_zcgQ2h*qV>_Dq*&_>`NDA4j}JUfYdAmUSP%UQiE|cCj~XCv9#z2eCz` z;oM$)-3ecB$Vd&7{{-TsLqmN=Z6+YTpmlG}fTRpwC@jz9Nlgtv?k3PeG`5q6{ls0j z5del7lO4sO#10b!hlAOY%d|BnfERT1R_lp#E!W{xv_{oHI2FF<5VUto7hIGvbrZ^` zT$gnU_w&(})5czJZ^V(2AKuq4J3vYNkhGt%YoD|Zt0}A-&{gd1g12wNLa5IUkP~Se z*9+>IEJw}-=l(qRtM!UX;GotV$9t$B&ZubJa_zbhtyLS2VByy6y^(kb+F^n-?3R^> zYGSq-?%Wquey-?Gerv#1^yftyioOq#kUeNZyzE5`u9CaS%M7#_sAIG)wI2GZfJzcw z9sole+Q2C$F5t@EjdV~oV^FJO6du^9v5Y_d7Lca{6dccM9!qIOH625Gz75&Izn&^4 z0oR$y*ub_TUN52yxkf6zNLt~{(7Ax}LD^#^h(I*A8vR)f|L@1;_3C|Z~*Yg4>Lxvhod`zDrjy&plqDn6M2sY`L;bWrE&aFz*>R*m%N z0m~VI_kgQr>LzmYJ^j>i^s?6>+LaU&)YC#pAWGONLWa{(DMIkNm|`62QyP$9Bd*om z+1g`tj+IF*D_#ffVR$N;21FOJ@`HUn#-+t#p6Qc95RW|*TEsod0}w#DWn(l z`8}9-vU4wz@z@00E6N(vor)EO^yngOwhkd9?#{G88fzG1Tw&4XmNU7xN_K6rpm)E; zjy{ho-bu;Z@xCYUc03O3nuy|`X@kP|hx99;-cA;LT|Z!>!LWWmBWH|^U5bNK5nL&R zE-(}Q2J)~DI^Egz_)mN<&^7bB`OI{u1$7_GFQfvG&!#&h)%+ zy=}KOxYlgQfdq<;pm%@cK|iRRhw>0|8~qUfG!Q@DLbw=g9rMb{cPv=U#}4KjP!T&6 zh#@Fhsb_`{U7>stjYx*6QZLJtjS>@HR?4m|r5aD_0_Mh0_ZTe0c9!Z7MKv2Ch}#3@ z2@Z~OK27MMZTgp&z)2%u*X_MBbyBfS?DRyfEoML$v`KN49HQ~SUJvLR){#ewuGv~aKUYpkVf;u0wPYE$5j%X%Ma^-O*j6K{ib zYR`ke;7S`XurSN!CNGE?^z!^YYe~E9{WKKr20!-6V;Zp^4sBoe^~^GFvF#oF5lJiJ zP0O7gqziXlTO%&$HQb0VQArxGlAx%i4;b?z&>S;)1yxGH+aw)+Ust#mq3XJ0-H#PQ zi@#w*g(L+i^g?P@Mn`o^eP>~-9@|VaSf8{7FT+p5;ZjA zgCYC)LQ)A#|572A5MU>+eqTBKe5TU}N%Y(x-=NDtc#)`wCKfL9eV=Zy%R1sxtHUUz z94Vn3`B6ukx{kUpehb$#gLcYbOKD#W0vvCb1b(9ttmVib%w<++t{7+4X(4U_+U^?w zE%7zsOJCiPhF=Dif0dNk|Fq~UH{TI+0QKEJ?6dPfv##i!-*;!}8Kr(lmwk^eb=3B; z+*+D&m-b1n4wrK}QN_~ov##Y+qfh1)umAS`SS=tt-D|Y8w6dW{Rw`r?rn8Q@mJ*?5 znYq*Q4~-Ddig-bnSzyR4F-^95ufG3i6ZOJ4J;0zMVD%ea=EV~J4TTWC>i>^rl;@^g~R3!Y-{TCb;Kx#TQJsRVB!@8T8ow?e!k zIa4r~Bfb&ifxt_r0odx2v}pX2mec=P^u`Ee%RGinkX>|@gMt6M=v^M+ob&CL(Mbb( z-DsBh*SFt$KB;ZYmLh(sYz|r!mPM;ZPTV6l0H(g zYy9QRt(q5iq)k&G@?dqyv+`Fue3_HYNNGRhTdS90*E9dNT)m=jh97_PPo9ELuSRbw z0{buS_m6je?0l`U%#j5%vPJF;E#oGw#Kj?5?~MCL#XZp(e~`Vu?Z3aeoi!uARcAd@ z)A(U}>lz2Eze`CH`P002UG2Lo=TD8@(*_Oy?AB@S zx}zFYLQ+K1=MV+ACR>eS=Tj-J6PR3ofVGg?s1eofbn9%*s$@Kws;cH|1N$J?p_`Rf zP*f-S&@X`D4Ea15+e)6KYcVFGco>{)oj8;E-F)HXl4m*I;0ZEuX`;18c5Qc|VGIc& zrQIU*vDRyF2mWi8nNZTZ?>v#Oeo)o^O|A8Rir&+3kjmQlZ)#lZkUw^>rRUAqyG!LZ z%Bs0MZ&S;PP?;V%`_EVzwwm)AJe3|K=h(PGU|I8&but>0V2r>bMAd@IG(j0E*Snt0r1j?Ru0;3l z2(4T^bMV&GYw0Yyo(~Z9a0_D~*RW!1y=JfNm4a*jUk1t2Nae_4El2IekOJdva8V&f z;u6X-CQ`TZJn+Sh#~1cC2E-ZfedEr~=}fT)POqZH!L_H&-I<4OKf5zlt`-^0v;^-t zG1nx`)JwwvBO|G7TM-~7y<|8!Hir;rrQChw8sO} zRqKPL;q*s&-QKO5@)aB2D0zUjF?CH@L?$rtCRJa)tM}p6o;y0)&VWf9DYEF3(`Q!Q z(hm(62zG=AN?m?dyX$x$087I;-s<@IYx}-ztJRC;>)zD3cYcy}J&vZpA!clQd!8NT zGARYse(?L^sLsrHuE(uxQaLc9JR=20J)IYmccg%L)kJLXM8r-wkNtuMCzRWA4Mi=% zoUtIef5`Y0rQd8bS(u`dMJy9(#8dcFXZG&guITSkV6CZPfjLQAx15P|0tVN4aR-T| zj9`~?GN6ToX`g`Ss>_(Oy{@rTv$_P<+?iU{L_Iep%W+HNDbB$^!+FtHX4WQ+IhcrE zs=Y|@AhjlY{PqjXA=gEgg4#||x8_x@$AJ3E+Ij5FEK--UvXeWR=@A{Nv9HqeAyVjI zuxlbF$4OPaBcj;bc1XSW%bhRE_Z$!sW8D!e^rL%2cDiuCtxPV`$=!0$!*!V`8~xlx z_c8aIo`lSgIj1wD@8^Lm43rbU)wug<&p3}%lJ!EOeP39`HQqJ}xW>>#1N_`W>s?eX zPV9O_LU?B@qllZN3#5sIz3Iot3lfDnYMS$-`Cxr8(rzTx?A-Z*pE?%XDwP`ijkq@N znki#UHy!7}ddBTx^=klM

PG(A#9&S25#B!#=e0x8vZnF!!Kw?lF9Q@S!SQdG+~Q z9IHr)4XxJB$;*YOenI2U{Q`?4%SCqVNVm()9uC*btheWqTP!8S;PtubJyi`F?k5c# zRXW+4lHE#^&of`?pj_*w64IfN^Dfi8DLZ>4^dLi)Jo?M_cVAhG{go#3BQPv)PNC*# zOm5%&QjrTlMg3WPC$_tVx}?@2U(lpBtUMxgWy`||QJlSs3p6B5w~`cwtn-(4&RGl6 z>zMpwI%n;OiJuf`{dR$FFbDjQ#3ce3<^jizfv{Q~;?bsDyXjO;+K03IJi6C7L4({Q z-Zr|N86Uavc3Sq?x?MK+U+K8d4fePuZ*_A!ci>R=(S6WG@-{hBQyQk|uw)CI(B$VB z61l@D_)-5E1>mq+IdKgo7mF-#cGEwM#meexetUU|CtH8R=GR313;JiP)62#CngW5F z{4uxNEWC1N6iM#-_6hYm6WphRR`82^n3fhf@*sdh+EH904VXCJk;@}T+pq2(k}brD znvO&YPX7~EMLV8~YMG(A>lG)coqno2`sHS>)vjeQgbw9&0!Y){5yc*SUjSzdbGm1W zvZmznl$$`?XJrGVBGBM`H0{8Ph*#(L;wLf=6mLd3;EgSF?>ve+P2WStmHOpez8T{# z3^ia9Azg%{K1azM*i)bz7kEfNl(jm1I>b(Nc1)X)|P5yyp(x+wPYHlNR)|Y*DLHT4s4CgMsW2 zuU8d7z~f~zAllZ2c)Yk5@Ta~nvdmq`Gw>{XT3^H&cnw}Ij!@R$@}uQ<wtWOXF0Tje9r2%)mF=B8uEG$ zXc%&);badRy4IlP$e}yTTk^4A%O|5aeX-#ED6o%wLYT1H#N z4jF~(m`vIjj|`bk53PAMWcGDvEpnJ5KWwf$Y+*HQ={jt+c{omoDE{*^-%z(KpE+#P zU2GdZ?9j$BoOW^S9%epvF&Y`B%8wYC@|~$};uc8;O#o6l)wMx{gYmGi zCRZP;Lf06n48sw(I7iS>8pQ;HHUmYrZZJc)z(0r{V04YVTi{g?#Q|WpqoC&~2)Tu4 z0Br7Pe$3UarW+<>Ih#z~D)?^U(O{^r8^;##{YjN+E~8lSOLTet{vMO zH^#B8jE^3QZNr3ikH*OZ+cz`AZf!_>I<(){BTQWyY;wydxuy7y?2u<-Ls$xiFjxo+ zYwIQ#0%Pe4*i84#+MyizGwB(iTnb1cfpR=gF=r8eZx+nw$x)*{I|jxq7PD1JoSa+% zBitlk9*|qimgNfAB(Ggbe+B8~$#!APVW1@KHcX^kAsBfH(J z)^x+E4323COP_SXsA&|ef}baq6wY|UNM7e(4Q0e}TGa(T#xk%)R%a5(@f`=7M)id( z5Q3G>=-A0K)fQbY$(v-hb2=k9Mola*gk?eVV!iUH!g=)6a&8Vz&hN`s;7sORl^|0v zjirhF7?vQMCBpzOmvc;9r4zRK26l`eYV(|My~(Dq1koIHlW)HAE#XzCZNAkZKl>%obEco20bPBmSqYQ8QAQX*q|DY+KQ)0w{X+uiJ}jaUqU7x z>T>4gnMR}wEvvU%Ib`+>OrhNWh7jGT%Q2&{5UZoRb-nUkeX~Wd5u{HxhlyCNxw1Z> zRp?W;2=8_E%TECcUA>4)ULQZ)ZSe`TzA9VO*3F_SyER<+@b}$( zTThU5VY4Y*j>){3%K=kp@`v2Bh508x2p6*fIT3ANIO}*c_`QwwNS=iyAvo&;K_(Lc z_+0yXOZh0}Z}F|54}qU+IjSEg6=Hl0Pub`yIG}`g59zvX`@qVr4an|uCtn-e^=CAb z<8Okp4!m_wJlE~M^Qjk`>0{+KsIq<27G03Y^eIr^ggFX+)D3c}xZm4s2@`K?S>e+@Aejseq1f#%!3mU(f`jGIRUB0{Oetob#BL zgZc4w7ubB5*EukbJ6J}CnSf&z8q&@R!8J~yFeWl-7sq^&C0Xc!KrX!okdV*H3PSF<#ODu$0zBtjiXzO7;B@qXKx(fTvB*aNqN$@A4Cf8 zszR*pZybGowmxIF?RE$(WVVRGllM3O5OJT&vta?3gwj#V- zIls>|Z1gDS+_SJi^KCFFZ%hq&7r(tMhOL^;xz!VVV|07hgJ(|X`R(DbnP&^Pw?93^G2OD|nF6M~&XT>&`=v%Tj=87?Gd-1epU!S zyFdKnxALV2cW>ceDDK)Z`gi*ix1ADJ!jc&L+tKoJ46s3&|1(qePP2x1)H$7lPUV5A z6j7z8h|NI1CyK0Fj;lyo)^x?)b7*ojwCUg|vX>rqp#*)gAO5)1_Nou`{2259LY4r4 z3bTX%7qVn1dPdDb{@=(_$FY?+5 zJIZg_K6!jGn6ol66zAO@^kg7q<(*$u(#x>?7gpd>#nQs_VNUwZ{XgRuOI4t|`u{`AzsuNt0`E{%(&RS!ZopLO%-7`A@E4C%UdD~>|5>0gh82HY z$lTiJJv;JQwQ`?r>$_LNhVsM0?XS53cd`NX1 z`PL~nv@zgDOh(nWYz&lja-)+N0W*ZMRu&CTJO5GPY(MlZ;@FPJza1l_onEiU1CRW& zZi>kKR{VqK;&o-uGnU$M@KLV*`KI|oa-ISIp!>6Y%_6J$?{f|<6HT(k*5{jE9x-%2 zcG}5OdPK+f!?z|~7p*VfUzXGS#~+r-IyRp^7I=|!j^-59z3VtV5gmL&E>mTp8eitM ztvsf8TUm|k;Lp=1lOlBuB3&Og?{Q7mmb!a-E&Qf#h)UvD|1qh#Dpm`sGIA5!wvbH+l^cIYHl-0+j22~p%P{a1IW zuu6IluuSWs^*I_&Bd^HmQiTHPYipN_;uQwZ?f3ZBa-s$80 zx6}(SWadAnZyF1Dvy}Aw?p54-uU{wK6-Pv8DlT@#G;OzY5DJ!x!|9Gm0cr6kBezGF z*uB`FzNcc@sOI_lYRp;N*>C*&*XxUp*rrtJY@fcf;GB*W*UzrxJ--{%zmtb?=Ks09 z$V5j7j;HORF6*_iptz#ATO)ih+sjlIQvmes9+c^Ib&pu#fgfL;Bi1bC8ct6h4H7t4 zE@F0lnes%1g*3h==>}Ncs>3Ze4r~5e%BSKY3&jT#uw>O`j;C+E>E=y|>dNDu?u)_;#Tx5%+-2(eOEwdaroIhVzO!_NWhl7< zwDWTvu_dmla<^neV@;*Lu-DW&k30q!ZiKK9HKaAL>sbmB6RPXl9Q<@4VUnWv;*)!rj!?JiNjPp3yC4sep}ROvESTK zv*l8yAGou*aQaq>;=#C%7;jeEqeo(WWOLaTaJRX`meVCZMxhjRtfvlBn6^3juw(14 zZ39my&aaEcOnjiG-GpqO-qbB$&UqmfWWi!AooBl3cL6(|JerMAwDY^<@{3iP>bhA^ zYRN3Lcc8QtDRVA1iL*=G9}eR_>S@o+4ce1%<%P_v#Oag;xtN{+w(<`x<5m8~{%QK8 z;30Ez%hzGlvq^3diehlMit}RpRA1&DX)4){XF`Hp{$4Ax! zDPzva-u5Apbp}b(2>Z=)t5t3A4Z)qZDD}gYNFi4C6DjT@CT>zoCskL6X5-Yba~FthKI(F43P|cTxGH9 znuW7~x|1i2;{;q?|Hith4(E)0rS^pu{7cH>O@*LyVvxv$dG`_w1N0}f)!npZ%%xbj z=2g2^-CdsZXfX9`O2Vpo!kXlw9Zeq{;*SXA${)Bl+g4o@ucC}lyrSGcRW?4oq}VYA z$3<6Lu0aDuR$u0Lt7k*wwFYZZLzCMj9Od5T5fd=Gx}d6`Tu$Dx5$+vTd5=wjH|46| zyT@@+Ux9iwf2`klIgc_uSdMKTA zBf|{}u?N`Gfp}YSpg>!_gOhRR!hN-$<7dzo$7p@@XPpOM`HWM;^Ty_;5Yjoy)AU^9 zTi)bj@=SACcw)Ad#=`oa<4bpB<16I{j(@+2B*#h!DKlNniab?TN?SUE;I5o4xZHr^ zO1FjoHQid8I*w?L%7$1Zw$NGO0P_n9d$v5A;y$Z3pA5sLeWI&AcP{pEF^3|syOmtc z-?ww@*AGHDJCh8b^5ceE&T&c>`l(mVfJ%by+XxEM>1;%iw^b&o_Y_XLOGGX1OWyAz3CBC?Y|B9zj@Y zmf1R{jAY_cC$Zzn{3EHHG>>0r?IRlzyE&f_)RLjjYS= zq^LjCRtZ~@i`=3x3*QiLv(}-{<4>gwyet<^Lef2n7Cgv_LcAy3tFQosiD;ja)rK4F z&zD160;RP``;wZVFk9bUhQvKH`6Lp;0zzhba#*Wb5Dd}D3~#i^un-HNo3y=fbA>+? z*`e2vWuwQRvqW0>PXOh~Mfg-nZV)X1INOthWm)mMyiOTFkA#Fg8%R*6<=U>W`vsM<3eZslhcUt4n4xPHEY`knc7d9~H(_z#-J{MaYHXsiUt# zu|Zs`_ZJY0M~}%;@)7K{9)&}rU-|wkZE9c-lRCJ)C zu1e`N>Kfb?SA~biSXC8=i~w;mN3HI}l+95%BNMS~X}KzSzkIRh)i%9_d?>Q@T|1;Z zjxVmdnFDgFOIg{=Srq08>A+)z2ts2y_r5lCy-7~l98?&t9_&yFlPs#g&(tnD2C93 zX6RZ0>?^wV#zgJjRoMhPB2)Zzd*fF^!%)`X&y)DT>H#~bc`@6p3Q979@;%}Acm$48 znA&T?&1MKiVT!AX9ov{BYS!Dg$2xggW-JK@z<>*RGgeSaJMAFN@HI0OhM)=$b z)s78<4wVe!rctqVe1MZ0bD}9=o4lQl@h^H~gt7aMKIkOSR=dtd`pz;X*jV0Sq6u5VOs5w7C&2gx%JnyN~<_be{mn=Ll z)FluCbb#+Im#)(PV1E&rd zaYUECEWU;W-4Qlll$7hxL_7sjVP1Nh)V5=(`K)nf4Nd0t(j_Q?dl><|U>vUtruw}> z|IWQ&Wdj}cVkwlx$PdyWn2JGQ+qOgp-Bu7c2gB35G3GHn>`U<`lGo;goWrDnp<}zC zce)S&H5(9Z_wPnZ(V?0h$k_$28wKTf<|Os^T4ylKw6Qk4#h;5-`iH$5s=em zICpNkuT!^IC7)X`MCymrEZTgaOIVHWj^_2Ppn8#PUL!t}!MFpp{3h+jOT|9YgO(r2 z+QbxHKw{9bnI`WmuQi&0z_%c;|n3FOe!=c09?dAFwHutxuuM?2@1iJ zP#FEF6m$jY1WOH8kktp|myoA6DRfR>PzW@|EW^~P(A2svY~a=KChfoc>N1AxzGmo~ zG4`GT^mgfzq6c()!2Ubf5B^*JVhayX*OlJ5*;`>PJ7(f|`XsDDV3QTnb98#rp* zaZ&$E^KA+D(GOj*4+x{9j=7?Ckf3nWVuOgomg3_!jk3Pd35aiFF35-*k_vngW1!2T z8#9N}G_=pAUyQIlOb3qC#I?<|fNc7()k)}|=m?(NCrb?d)UHyyRl2b}tK9(_J!{|F z7X3<*B|C^bMpAG0mB*%QUcTSP=JGfh0xa>sLuC-}BmsTEc@p3cgpMv>q=zaDMR>1x z7ys5(R}C>1kR3X6a;$JPt3-!8LiGDZTp*^8Ck|ccEYDFtk%H2NpKPgrprgg3Nzunv?S8K=lcX3 zA>X=RsEa)Cb$e55&3z;phN!!MWl6)!s^JtwDf+>P1d?-vTCP68)jdQ6-js&HscV1- zq6|vAf)y3X_B(~^xFb}J-=#Vm){@WDm<J&!-HS~c5pboRXC?9rRE?ay>nXOv%y z9_(zFBV2t<2*jVuFFrak`b!O8E+U>Zzx4Xg=GRY^XPGzw2`u8Jp$&WvIj}KPnc@7q z^<$&hUMU&zPiSm(N7LNM#?U849zx1%ESu4SfIYx70gEW#-d-p_gI%32>(psD_h<8t zzYvagQkMjip?L-A1N-)7tUe{~|0>n(v_7rfZ?jUf^wG#~%t@_0P{R5p4L(A2@E3rR z23|Rwb{R{=57Xz3vBaEL*QFy$;2i;T3sUEU&FxdBLthb$%z#3AS|GoNZ3@GQfU&A7 z>1D*QH>CR>``3@i$%hxd-29J%h&MWjNFY+SW+LX$NFS(#6KGz+k7Yi95BAByVjopQ zvrHLd37c~-wx!qeX)ghcYo0^!7RQu5+K+sM5j@crYZ&ny^tVU2 z=f08(8vDCs?pwfIk+}i)#MD*X*?M;I+H?G0ARpEJ5w53okt}y>-Cg$2+sitRl~JOVZBQ}4 zsOUZc?1YYTQe3&HOXiTCeQx@$ng@?>_RiyNV>CY*L4tXr6C|0*Ht&_*Rv}!mE{pQo z3VKPy&NH~Erq4Q)wQ$8HftM$?`(yffue`nyI*yPZHdt2YpYDaT#tONtgxy;CRnXjm z&#{}hA*h%~juNu1iLmw}=UmwW?zuCj7a826FVX3o>#qLbW!aSXq;46UsPKhy8Y}V3 zt#JfSQ`^>3r7Hp-XR-B6QnHmRNQnn_-|^(MPSK+KJ<&Jb3EAuf0w+YvKMacWZJ3O@ z7t_7(?cSBJ*@!LVx3Q3u z`?{GzjBdcPe4OZ|z#seyOs%MhxvcQQf)E=J`7R`!vHiQI1??A5C%xV^GVVQYv+EzT z=CsPMDjAWZ4WfH$XF~%t+jzk9AJ1Kyv4Z2)EBiVX}UtYEnnpAi2=D~tmE{T}u#*A9SO2TfOZxJpzy<|#N@fQOEmDvL&K21;|Ny6e3#dL{())tl?#HHC|hQ!nPu#~ zgI{d(PBbB4FNSHn8X)7C=(xo?s+YTsJ z-nwvHH*{>#`M13DmHkF`-9#6phOd6aD%JhcuV_uyNIc9Aa>Ha^+EA4#P)-#(^4^l# zYa7YhRA|&FnPnz5v^w6p*+huCD@G7dENZp`goLBVt!3~h8R z^IWxPP=T%5J2BEfFzxeRWBYY)u#gOjprc*lE<8-Oi$YeEi3R{0?P$&pY0+N~9c3OI z(NIefI;5j1Tr=H5*!f4CDYAxKxJjt#<+vAi)M=?_%L{FINdYMGBtfcG!XMfx>m9`# zJ^vxmZ_gqguKV4U~;po`W2g?4}g|Q zkM%x$VCvyEU#OqFJ0qCer&t5^*XB@Nj2c{FV9F{4V54V*;0orOb+U3FHuj(1TjVI^ zS8p#>O{lR@uP|Ra#g^PIT9G^0J{KUVv<=(k%{htk-`r7!zY%vh%_jPT-7)DRSa1EQ z+JWkE?BqBFg(Q4Kzl^mVb4Zl#dRrYT{3u%RVCyA~sWj&&^t%y?B9E8>s8wZ|W6is! z36FCm0BU*`(Ou?nQlONgU*Ksr`2^*b8kPNd7OYI$dVewann99wNu#N@3s2Bsf5Z)A zx$GkM?L526bq9wdqL1~ z@%i+PmW56V%94}+QkGz&??X00Ze=EXlTF$s_GFc#ZM;VG8kkQ1C8aVGd?$qcVCP*@ z#!fj!U?@OC>1Vo>T}CLwzHU&sP-f526BAo%L%kaI+3O7?gQ%;5<)zw3AGO7z+tg-k z#qxZ2e>a~J-LI%)yIi~QE45Gjj2@C0+Lr;$ENtIG_MuZu{R&>q)Ls{434acE*eg_C zxTsF|+Fk4FaRfh5Xf>2x_q-4wMqPM~gzXWDI{FVDRPMCZ9}G)ZlAQIeTH!hX`>|uk z=4WV)u_yro2=~O+fWIf}6H&0|e~|>mDMm;ht*%hd2f^(As~$kbksufD!*osy;g;{< zzolq~pL~enqO^jN<3X7K(B9~^_pI$NjwFAe&03E^sVaih_DC-o{0?G=z0$8x%bO~@ zrpOLD>3$Qo>E}Ej$J#%UtW%5s4lEp=_n$U7WCj zrW?3OpI9j{l!|kzoOXoC;slc8T@Z#H8t2>{sgcsI9{afk+jYaRa3QAH(TCw)sgolk zEi^0L$owN%@4>?$NqWvR%a-}RP@^VT9^Q=N30-EQBr>X75{-oYFz}xA7oQ1bN|bSY z4NQ>JN>DbUyBS3vtemq4K52sCdN(h?Uj|B?)d2}xiHy-m!rk=a`F@Wcxx;dmaINK; z`XTGWv)1YgPq}`fq2V{3bC+}3A>g3CKD3Y>?6dJoQmRXhZJR#>6BEqRy4aU>J?xcRZuM=@%=W~U zWdx6Y)k45aK=JNj#zA-LE%npvHy*s`PRusnA&=Udi975N+q9<%5gdDEeZ5!I&A`4* zNtX6P-z&B7xly6V4$7b&Dfg5uv|Zs$Txj1x7(S>kPKtDXv?ug@a1EuDuR`PR1a^** z1^3#qm6Krfe)tk08x{Gn>(RUSceskKv73JOh5}}}i`c`^fcVkc^vJ%%p4!M}{i5=0 zl-f4-a=GDE6S)F>-f|0V%(6+XH-Ox!RO}7fqg{5`IU1vX0j8N!j=O1umfa>H#Bbl`GF*;=O)!zp*-#^z`{F ztj3S~-~JXx4=2Co#e>r#{f0b>tiuTK`iFtUzrgck>BY@|v>b`p%NyX4=kB|H3>2mp zpR?C``S0JWVS{}2Lh6g<9cNuecBe85FoY$rurPOvBI-0=tFT2dwT|t*N`dN@WzGnC zBq=l$@&2s5H%_wk5gE8@q4Hdb20p@gD^xwLmFI_iY{#PVlfWKJ`|Tj-r=^0F$neK+ z?4;Z83TyVwF3TTEqp^KLuRp8k{?|JoNEMLjHtKQ|x;zVPl-!>_5m zv-q;*#TENfs@CLFPV|Jd7>2>`{i(=eK=UUVKsk%hE&_|LUovtHswXQq+ ztGY#%I60As<^@4?WlK7JuMKOUY{wBPQ^UNf1snYrc7L@%#X-0}head8VfZ`g;Naiq zy~N)%<{{jZBy$F_GsRXTKSpuHLL%;Fe-%U*zeo!w*p?aC$Nr`zb!6RKGoKA7ZL(hMELfhIFo$+7QG$ihQWMZlQN4)k875q6Qntjz`~|=TsKSz| zF608vNY%%YQWr9F1+3Ag3z^b|K)0(7k7|*{g;iu{qN}sS!$e|RYIEoP-!!)b*{m?6 z^VXwgRS|4x{&cM(^f=v5j;Abux|b*G7`X!s*%!YB8rVy@95OD@pI5 zQSr^m99j}yVRjzvWJ^2kqw&^`w$MRKi$q&m&{K$GN$jz4OZUe!V~>&J6B4^8RK_`S zW7G~>U!!{r2PKBJs^Z=|)?5|uUvgEE71Lo(^_Sr6Dv+|HYpa92g)wWr6&pRk0}+J%Ow$>RVTel;9-?w+H{|EP)Hpx7bnBZN1d3D?VGH9t1O6SI6bVOybFiU&fw`03^PEfH-j8(2iC4bH@7_NXfBurT2=v< zO;~$jb2ND-U%6)L2zoK4+o=RP$yH?CeNxNJw3d~BS`oEFEu=jJH@%LC_n_5iFs zrP$2ezTK6FrC!ZkP~*Uqd}p&*z5hn-Xbo7m=xir;_F6D_q-h&+aw5K5DXhnRsd*5{ z7&;q9Yg$7&n=+1X`gGm#(7l(5(V9(~+dX8FuS0;_O~bT&TM#<@W|)V^c?67Akwu`0 zs}G)FW|>=oC%H~AE>%Mau^35jqsYaC5z5W!EPF4+De#AP&M8?DSdTgX<8UHoUA^w` z+fcwWZcdGhKDBy}SGS)Rarem-8Rz`l-of9~g@n!1p?j8R?l7mvOOQ=;K=iH_)cS#3 zb?AsBxjh-jjqT*t0Oj}TPa8VYBgv(+<4F!eKXzGFP>0k%^&E3S3P@kM7UT#|Vj%(U3om*JRt}bVvHXg499i8S%-ZQ56NiU4Hgt-(;d&Bc8W zkDY^zM|FNkBYyn6O;y)EhDZK#!Dl5*yWtNzM;dM!-7B8M7sMXIX+Z$h!zTEJ-mARY7``ua|8gXS#iLVM&w}vD<1D#)jD68Z9`h{)h8iw zs#Fj0j8?j|I&)u!Dbhoh>VT*E?h~9<0^_;`rpkRtl)^Vb7FnFu+)jafpRN?equ(7^ z{c+vu-|pdj>YTvLw>bl83A8g?nM7{4JU})urFjywP7rDB#hoH;l6rISPY4e^2@l@; z+y@@^8L~PxhO3JBtp@(}Y3riooUmAc7m+d(b^J+tW3kWe-2DrFCR{=H^MFg4snrdO zg}1vKkAW!Xg(Y>L`~8&yzRj~q2?#$IB;1s8&WtuziqqUIQy?s(#^HK~9wUaAiLN)FIW=o8ZzX0G{Su; zWLNi~e%Aed9p{9jq~hS1Euyn2O|)6;$zhU+>cs;g&1S1M|0)su2dWT4Q37DOP}R58 zx09Xyo*a+gZML)NSt+Pv1=!l>=fHR*@hr+l)pJsFf6OQNs^ zehat~x2(JOeP)P@cE!W?lil9SdwVDs4ytFeGd#hQm(VXt4)O+HU7#5^9(19l<0D}B zbWuEvmN5M&fj+GZjyOu3#jINN+@~mqoIEapR5H~|l{wx)%(&HxslDwVNf+hcFY3V_ zx$7tUK0K3oc+P%6)4l(DD)h~~jmpXT5&{bNdSnp~!dyH6wNE!AtP^GZ58FZ~{dJ}G z3dAyZ>Tm&=DeT5SKxFmIlo%Py0EC~?w^V~qPCJzB4as1B*=f5oL!EX)9SsX}&ti>w z|0H959}B;Z%qU;aUcIqM$Wss*NlVldv_r?btp8Po;eyCFWMC_wzfc)~5Mz4Bm&gpT zMHa ze(22=Cs6I|W7XU1VKP@%&FL>B$U0%uUlZvGl0eYy_a)44hj?HxQ}|eO{BwF%7%6M9 zzlFW}jvQT)W#Jp7wsUk7)ZkSDdvaaA^8I&p!@K?zmv1Lx+86tBle)H*r=evG_Dvu(ogX zor8;?Y5(fftR0l(MJK)_Fq*$pnW5I(xyPjRaLPXqMm^3hFWW~c47WvP zba+{w+VVZvGP<;N@pfK?^JPm$x~n-|s9+s;3CyrOeNya2;M-R;e5<9fw?>ZTwi~qE zvq?im;5@tf#V7_oqSO{?b%3Ma-b$rt`Usg-D^uh^*!h#1l!wdj#Vds4@+(O!044SR$>F`^1LIqY}*ncTTq&I{k2WbehW>{!^Zq} zUc`@$PnZ_z*@C36zjRJ*aff(aP~YWy=eP7$YRFoeBF{S-M>`5lV&3|;ZybLV(xQJf zyVc;sjFjXN&S9b*n!Zi$g0CVoL$Ea@`3U=O;evhY4O*@7Vl$nd-X`B=tjlC0U|Knr z$iI9wcxit7!2P+axnITLf!jX%*PK7yy0>cAHPCp?C*}FO=`y;H^B}m_w5z^jg5dOT z#)Nrz!_~(@bjB+5urSGRaK^s#BI`2HyKXC=diC#9MhNQfUQvfHkm=GqklhQbbKEo=8NR!v3Rk+o)A6iQ?sZoP&KXWs0;c7FctInVux_00nZUb zl6s1n!jq-}_O+kXSVwr}+5E(8zm*Tmm1^0k>h8D-QTDCft1lB#)!sIV99>+Mlb*TH zcV1*x(FQWt!cF^l?b)&06s^qIhWdm|Eb z+To>jtY;)N{&hlX*gBT&WO|9w2on(O{!IUkU*(idnax%0^Yck46bz6;Qidh0u!RrQ zjsq>%Ke^p~WzYK?@SW3*Gu1rd91@)%MpwVB)#8{GfU}Jz8arG{DiX93dpgGql;eCs%%zdQ65IdZup^6>uw=E~b0sON*VZ9^N@Q(A}xl^jo_t;x5OB{9P z3`l5^xS?g{&DtbUQYCl?UKy`xvP9A#YO&R&>Y{A@6=yS_s{OiXn4uzCY5LBRk}FxI zntm_+jELXiLw+MoER*ty_zT(YIk>1kNZCb34k!>9W9jtG<2}zkrRN#dfwl%QywqK7i83i|^S6J9^|*8026GuI_i&RU-`V4Lwg;ESUC2HN(m z9z8r(9mnH5geeA|hi7?aWT#izAMs^K3N6HcEOtSvC<5(EBYfk*jmo3 z(4s41l$1oh#PTnB9d>Br4CK)Li&2yekpCkzs0QrEFx^yC$$=k%R!{`IEAAY?!9*H7s4ld~1!2%KU3O{X zW_FKQ@v`Aqnq{OCvWhN@!qqzrLAhogD)=p`3jwj85$apL_nYq<`^$R5uygi6=qkrD zo~UgCvgEWGY~g>nEai_IayzY7gB%EBzs&Yr{9GaAaHTj?H5hhDOz}CaB-_emp*B}S zntW;?j&1G&6Rd6D{lCoAzOsj zC(YO^9L)piq`RW2#PYuEMq=iJUsnV$!1j#=w2jY&1*DA$l?N*54;6+^d%#(-<_sa(o~HE6;Y#a^3!=gY9IkUsT+Mv;apzcwwL!&n<6EQF&hdy;gQ{iicV^R_kK=m{E`M!& zXZ5vnBK4mE6QQ$eE8fM)vNo&{Z(4OU=$gz=HLO$CdGETnYwAL;VZA}q``s~J)0h7l zHrVTY@G9<_xp0Jjo$9^h)7mwAE7hnmNN4Tfbk~!%UZYzvO>2H%yPo#`Gis*ld<+op zo*S|@zEj-v@wh?vv&X5%cWZS%o!Hww|D@Nrt+naX>6q^4ul^k~?ikSd997)?;;pqw z*L2h8xYq8MqMakVUz|SeGur*?yLFq@M$?y+uidZz{WD=9bh#Aqo&^CL(|++=+)RU> zMUk|vf_1kubjzM4sRyP*2DjGpVtSSZ&a!*Y-Yp>i|DBV$TQ6DvPbSxE;r}=%%cK~= zcjI4O?$nJGtE^T3m&qMD`^BNlG67d}>!RtdSJ;dHWpa_izZwPaHtbS$D%SM70ll_O zb+2tx@%Q3qa-}l^|I6ea$nn|UJDnsE&~Q6!`o=dm!&=I{$mP@>-FJ>n$eOHtcsY7@ zN%6`*BvNX$+5hzbJ+CXf!?e~d*HgA__eYKp=8@mdDV?99t?#muzNaXBin{Zludeg5 zwX~VheyXx)MEvgVwpT61r`KMM>#Kfw&7xwqse9KCEValgZGU{^>_!r2J0@4x5BNrX zioTKSVQCS+`trUBZ+n4WJMh(T@_@TX@BQ%aVzUP%gj#!l|3(BXy`JD%fBpvu;3rSP zrPw&i`-eNOP_WSW;8M2At>bgq+WI9+ z?mKmZ1J7?8qF=Bzp2GX*$Gl$++PA-N*~>!j!;j^{{n8f;EnJM>uN046LcA$SzBpa6 zi@_aMF8!)LQfTSDB*9W2-z=j`0iG9Utk%HyMOGlL|Fvaa!~0Ufz68Tj(z%kmFGy)( z2VU4xgghInsTVRT>@Gcf?`^T6Ju|Q!*VM`ph_dF0dC6pf4fa*$^HVv}r!_PjA`}c! zcFUkYU(guii5HNcTADpcy!3V@Fs&DcVh+gY=Q+p9@N_49_ z8}aUK&Gh&0d;V^I-SYvFb~GvQnn?+LuY!?VQfS?Sh|)EQecNy=n01j!%Ri?gdVtO~ zh1r9cOk5WJbE7rGuh)J>&(+}6tzYXSS_M+t{XuubR^>h|?6De(`Evh2njn+~NW{#9 z?bKQMuVum}A9^(Gpq=0wOu_v(E~u%27x&{;x>A~KF$bEbS* z?oXJaD35=lR6M$y?)1N%6Z4kv8i*uug-!4x7UW=sGNoGnmviEet>rr>L;4l#xnb_L zGEaTG(0BCo7zqv!R`A0nUG$SV{&`<-0mLg!8!I zm|`6;M;M`iQzFThE0;f#K=%!b%sO@D5b_zrLudh4Zds?ErY~R_NGU8<8L(3~8=?AW z6(9FkQ5A&kf~uwkZa?L~p!dL<(7>#cupj#JrDQewiZ+8L;cVk>XW z-^&=W=d;%`xr$dVtx)BIa~@eMWz=aXySiO0Qq48Bi>1}QH?g<@B`Idev=VO|%4d}k z;y+z7ktFX%ZGb-YyMTE73A-ZmS&B-WJl;xB2ugC=c-fDKC?6Duh*>x7;s|c?E-gs? z{L*}JC<0m!T)@H;25h(7b{+?jDglAg2Tl5Ye)yz^UJM(= zizz}uV{qA2E4I4C#}{J^D`;eHm^dj zOeId}Ht7{XU`EDR8q#~;!^Yb1;Z4%pChlaZkI(s!nSPjSz%+OnFS=pJ#oYpBGrhB(Fo#a zuQ4uwf`J@Hv?XO$LJ@{m2z=^eQU_pQFhL}fo-5%GGgCa)q=p%i(^e7mpu_D-pbwcV zBmu!}7|0wy8J4_q4;1{A_yEY-*%&~0dDLEBp#M`el_HeFg!6;KK$y+*IWuD0J(N;L zK-G-aphxw6Br5{8!kpUt*Upj+{77{_3``5y+6Nb&xn=kwS*U>BLj^w3F-WAuaDsg> zGg8b{xv?$Z<(jw>LWRBXOqJ(sC&FC#Qf%M-8r#x_4Tg{zF>>?R1ET~|gu@QQ!4-Ib z8K)4)ED^0+-BFg%7aDzLn?F)Y^w^a!NERjq=FKW*pokT=ixDSmx>cEsjYG0VXZ zkRMoTM=_B*eE)v(`|`_SDMEn4`a=ld3(iK-2(h=w*}U2$yAm?;$}y`i@w}v^r}yJR zq2w>Jec#==TAd}Tegu@W<;dw}5-D3EWvtm5E5Gg;TgL^8I-}7qNmnaO}_bGRLO-aLMi$ z$tk~8f&1Ii;6MsEnf&}f8iFs7u*m$spH!fzigwYr+oBQcqM|`!V>GByEe%eJmr}?5 zu0_Q$0|JPl2#W9Lz32oo^kpwPpjiOslrGqp4sXUwNv7jl_`tpBZ>H#AEHn&PTPJ%( z>Wgsts9bTk?_AM8EYW{ZhPk@rmS^UE(@fv;%tIZSN9Hn*Ze{x8vjR=Cf_<|>60*X= z#6Eh8N`koG+_V#TnqMK6pSEQaXl_xV31JfH?KA}(8B`Qb1tsPqX@b>3)C4g;(9X~P z=<%9QYLXCoKzQ~Xu6F@D#T4K-`P2xIeI%6Vl^wx`-Vh)?CftGmX%OLXE(}Y6s_6&= zj&A4y3pmTXz1+MrY+DDOkP-=LFd<<+Nl$?03BaudA-Ez2&Y;w)8GH0u{C#Tv8!b0U zp!18ZSOyHv%@JONDfpw*34D4m=NK_!`+k!a|1hR>~eoyi?=?Et>bYB%(gf#ATNSLq= zdU-iy*cVW*9)+(5fr|_{P{8LtdkMnt3HT_z!r;3o8bQE;$I20+_}+FY*!)hp#ms)c zD&4jq>bQ){-vOLnRkvd@HcV5&>S7VS0)8@bo|E3Qo~!M3cs@E_nv<-|%Gu6hU>0H6 zMa-MXT>O-1%e43>Q-ul^wCRhoIN|r{D-5ZQ+tmqK-P2BfCO64Nog|*LhjQS3fQ@IF z$OUMR25?;+N+6U>D=Vg=O^V35n8iF{VtAI6z#ekCaAEo73(%oXv6O>OISZKN?apwPD16!S_kwEUTro1jhXEJklHm)O zrAX+k6Ca;ODxADPf0jMDP-WL~MM|AM#X(=%$`K<#9#EBt7s`f|3MatflYkQ^yDSk} z<+ksldMAYW3rp0I@_+R?x=B!l3wj?j*@KJBI+*?2Q)Cemu4o3+BLj8l2n}L^ z7#V;wBjChnxR)@WIYx<0(uBP(O)u95XL#~A05B{@I2j>TakMQPYObdt3Psk`vwkr| zJaQnh*m7_f&;a0Ae{umJrVxq93n0V$^7b4;FV_pdA>B~0y&kfe`&}IfOcF^g6@2yc zl8**JT!>A_3)9JYAE9CuFXND4uR`v%<+qpZIW<4{-DM7txE_Xv)xryF2Q`2xmdGNp zr2C>&QnUCTpPWeo5Jx--ryy37ASGtHkS%iCQ}h4>B94gsCe=%A5sS!`=NB#uR^LS1 zmOkW%^8rK*xe`%W3HNV0T#YWy6xvQmv^Nx0I84L9YO$)?fzUOA980eV0$UCzpf zQ}V%l@blk<{(weN9jy`l=e@w|bjSc3r~ zjHey=mLt1kwXY{ZWG&!oIpW93{EsKW<$A%`!*&B*kZ7&&6tNxR-7HLmP`rfOf;f?n z0KH}l*BpJPB9g}8qicAPjWz63b;k6aUXf}sH7)4BhA||}yD7LpU?KE$KHPlJ-T?_# zL9A$~M(79YBrRl~vc^YA{@ zF|z-@F;v_mlu=`S#Ra;x-=eW?<#@UGxG(vF01Z3YoJxCwtCpjztMLG#ZV$j>yG zEn~!$dFny=RXA{6uo}jBhaA_2nn`z#1Tb(?cE7k7IFbE0=VtzgMvfEO6noA4NV~~f zX!8+nuaLy`YYx9p)s?<&=R1d|fY87!#>o0lNV~aFbn@X&RpGCaF>$$&9V^=864cRl zYcxUptKqr3^^Z>kk5@N`y5EP662~?yAtB9&jh3k$s9l&vanew02qSCb&Kp$ zh6aCX0B)90EYzESk_wL+K^K09V{@mn z?ht2$3bBSd$FqoIy(uG)uY>hXP_h8#tsLzR2R!S9Sk?woIOy(ARWCn07oG%riK9=o zX))TuevLzdJRGWE9F@gAU-t2WmoOffGW0<^%?vtwmo+A1bu67c^<9Zk6n?Q zTbJi=>tDT7c~8FM@9MKiUr7*%1dPcNdnULX_^BA;KV#?v0$oRAp5 zRmvSXzA8Gz=x&abQuup?!|hf3e3_G%;ah?Uk5;z1cy>lAly-}4~)^Db!G zgQtsF49!V<6=9};vKzUn(J&G5>aER=#{*?#AE%sAGWDM{J3ycHk+#(0@oAv^jnr*M_zv((oTeE1oUAhLnWUr zVFSrPTz(7v0SA0Ueo|8gvBM=43(V45P@GrU5>T29V;H_pCJ@6fRzV89FSH?|K*p1i z_^O-m#aIlh8q&i|lZ9KM! zFYT1U5F|I3V-#&AF4xC3KTCam@aV&D$zah%5@>ooVBQGoS2%g)I{N)L@BtURPsGsg zeQ#Yj_-Mh`@l1Ht8&FD>Klif*CkEPkrnTlltuPqR1MDI78+E0Ul&>6#TLvOVxj#6|*++9}O0YiDRyDt4K4zq#%q3>6i6Ac;b%C}1M_`O&E zcm>YnM^kRstDdASV+?onSpzV_w6wQ$;O2qP@v#E$sAMwB^*84)qjT_6e6F zOd8Ho%D`GH>6eJw2^{hv+fTfp?}mxx#p>$4n;A2*c-YHb+e`FvE@Bwnu(HqzABx|q~xhH$w6U%pE+Mi&K-%_W3{%d z?;Eoavlcwe&I`lpvwipSj)Y2c=;;E@-+wkq2O+z~PX3V;?0>M*^Y-EwCG%^aZoTf+ z0y-tPloe7uE{I=Qcy(RPCH0@+8)2J2_%LYT42A&96LYZyU}9-UqB^8^F*hDrsMlWU zwinwy{K&WR;}y3*E)ECtWN=KJvrlMB+|$Ffzj4okuBF634?p9lTwN)7wk}aV(tqRL zrk=+YzSQRooP8nffj|B|s;gJ*rj;G}?At!kiJ1B7ohzhIGD3B)lD84gJ3Un2{#O9Y z1qHCkgkuRU4qwZz%+4zwEVE6ka(!?DY==t`%$wU~GocOu`GmUEBLn!;;plKE zOj^n~1d|ti!AWkt5Rc73$mFusSK1}PH#c^|j|`iQc?kx6JmawA*N_1S0MbGl5)-Uy z5yVwe-zph2Z|?6-B3rv$j3C&AT@kQuc4#`6t9pOL>+F00>!{((*^hf6eaM?u}fWkU@&s+U$g+;h?7z=lN#1>eMagDUjHYEJDFNv>kwy0Al zA5&S94dzWl$-mUtl*pFzzef~Xa)TZF9iX_&5-e@cXQK`;1ErpFGZl*pv+`VQ0X?uE zYpgHeys0a)VmM-SVWiOF(EC(x!(l_aNxI~dJDDO$i&C9od=hd&kk=vdItMA^>Of3y zFF|fss2+8;43r>87V4i#1AppGHwaWo~m^3!`vTdj`C))!?TEa27E6VB=C&Mn_EqgZg&K|o`Xur=6P$7DI!CGg;^werOA&oo~+gcEMEQt@EI@@JSfaJ;ixH1u1#1QWu^oa1kEHDv(%c@JkXG!ysR zdG&@@!!Df|dxGy@MQMIh!$QxMBz*2>nmq;p6D~s5f9ZW_UHEdeBHWE0HY3MAOW$?0 zOhnd<0-S56(u4bPWc-?MWlzbJrNM3Q&)obYb-1cSiHeW5_^;4&jHDBaEh5-EhoVCD z76Q%*OHrke3?vL`P_Fd;A*n>~ysh$aD@5V`e39`*hah_UMWoh zQ{fSRw>ClwxMQRw7%W6W$yQ$jNR zq}^4YM$m&NlZTsa#d9cZIHY#ZL_1iKoHAi2707}K;z{W|N);gB<;f?G0V;NLOgYqa zaOVcHpo-kRcyPDB{GWNaU&{ z$WC4aHX2W!r?neu&a+P#E?G^h5QnIgpEZ)T*zz>{=Q0?Vc<6Yls)y89}wt2Sc|;Yz0XgZo=Cnd9hu&LmWzmyW21ex;|9xky_>aXQnN~geMbOGhSju&gzdF)nE-`?M&=D$a~-ied>QHxTb zG#`)TP19o%+5i>)h+7uiK_EC%z>y9w@U%jIqz?@k3(kOkp1QHq^rH);;&MhYCmoBl z9m3nfw)zSZSQI>E195+HOP#v*eX>M&}qPAPflNKkFnr2S_sNp5uLGYI%( zI7pE1iUGnL^Bq;S{jyd&P7Qe99pIDxDMEtVSdQELVYBwIPixjc4FpJaj@%r(9J*Z! zD6`a8MxTSOkn>pZ8$duo;HmqecZW`4O{A0*cg+l)K@LYs3`eO9M;i{uI1I=7495iz z$Hxwz%@|H78BVMlPP#jsJUHA>EeR6w`t9Q!W`F zD}Y5XU4>noz~*HQy3o&6`a>=Soh#jG*yXGBHD$J#y|40XYM<|i5Wey{U z7F`M$BQzDkA_;Pi4`1B{%6vvH=1N>1b17uFUMX?ScX6xEEdt4a_?BxP5mx?(4yscm zA@a>0Aie65B+IQnw@A{nsPQA^ssuprEE4f|Db~?KRwSmico=>Ev3SU=&` z?LRL3majq}W#|v~$|ikGJ6$8PZrpO$bwk%Y^>i7sTkFbbM0CznEC3L9H_+{_&44_d z?;|jB*o7LBkTkZEs8JH4_Y8v}G$gdBu_W!J(54YdQjH}^ z*>`P}q}6xcpU>xfm*4k%f9HF?|G_+yU(o=#qmgAkOF&X&cOf8)Gw7j__F zU{RHiggRvZaD``T)9>Gf?E2*G$PL=SK_>VRvFi!47K0WYS(b< zm=5BaNSwcVsXFs7IW~Y>O{PwIPn+Ob9wn_duCks7XuEGh&^#f3#I8LcB-(O<2dEHx zoFfQOiKp}fZ|r05-uqqiIeZtimiO~xTpJEY4uPKUI=}ez{9<=r|Ep4z=f#O$e6{b+ z^jCL8ZTw|ll|Q}dzU_i#-|&<^y0PE8l2@F{XPcd$2dVKdz3YnkhT;iE8&n=KoQ|?bK@OmBaEqlfz;AD;W+Js8J-Wz2OZ;N+({wpXm z*9XD(&r8^RY0axL;~X<6L!)}&Qu=jOTh3WDPUR1h>CU_wlg-S9;-XSdPC~+ur8R?m zWudBeV<1CeadwCW@o{jK#%=UGB+oGM-C69v? zFI_)S$ZdSPB7oQ2p5*h`NcGO3qR5QIg#qJ_K_|qB*gbMkc8E%;ldf9mZsgG%OEK{s~5_ zkKq4~lxXji8XCFJ0%Vs4xo)EhF2Hr`QN=0mMByk`fOReyg{GR5X5Jp}$Nsw1IPnHb zWaY|sLC-ik8=j65toyX%$86v3|m%ZNjr}!fR?`)6&Fd%p_A`(pzWJXKh3=oc;dW zgudORU;N~@j7k5Z$$+ZK!1~GUZIeNLlRKs+gO?_EVy0LMQz1H2p=+nYT&BYPrXqGt z?TVk;oiP|XgaZKI;np8NZWLB-*n2<^wFj1e=su~g&D3+Wa3g*qThv7znS!1Ga2zSnHe+u zqDbiJiE{(XS^sl533W*1wHQX3}$dP~HsMJ`~)9i&)4!-JZHr|w{ zVt+2k(tPrn&2T_lr_%J)3*ki8`0I7IsaODRlvT(Ir6#E;<&+Ai>LNby2?srpJ#d2`w#H` zhB;fU#k3FW@9sUE{9t%UJyasCT)7-IhMiBp}AL{_o(NUer(s= zZTDAiLg3NtHjxj1OPwh2j5_qp*vmzK^8a^3eV23F@4Bk(*i92tX9CL1B`)G_{jC~F z_3|!?`xmqNl(s|v`-XazSto>uR@1|%=O zr)fQ4gzguSE<6*|zW5R%ZUw)!nLUPnco^OL`E%n929JMMtf`(B{mDUpZ}NV|@kPVh zRuK5`#W|iHn%NTX|I9?ZlzsIJqj%=Mg`-g&fhJm7-}%W%f7L`?w}*#iHoe!$GD9_7 z)d%hiuKz z*5D#E1Vcwvwc3V*enyeHmLVQY8sQP zfgJ-a58MR~K$UmtAxsm&Jc!c}nWBlIf={=m_lZA)GsHiPD2V>M>QTE7Ja){|RIGUU z%Dx65mhT`>D+s#+K{`oA9`d~w=lRS8BrDat}9 zN0qLP(RXZm>Lsk|sfPDVTU=-sUOmfl$I}g5Edh`S0jON3Ic=(esWOLh+50izhfduT z)G<<^T5Vu5nB@TneYw1UjhkNW%`F-i!mfd^q5qXYfoI^!%N%X))_<}+YIU5Hm6W$_ zxnbZZ^7~fn`@9mc;<#Tjm?#+b!N8 z4O0dCU2W=*3C1zos-;fh6P|bseL4O8{*2d+q}R`emhOIkFrRxPdD>%Gugvf4PG*`$ zwk}{3t`$7Km1n6?yAwf4JMqn!Z&4l#>m(!iI0eqy@>&d4&m3a}i?(P6!SYwXK^r84 z*hfVn@~!k%aGpc8m`89c=@iEVvlLqajL{2k33h4^{k*+VC0W!)jD(Or^E@)ts)RXJ z-Tcq98ACK z!3ts@NtM~4Fqg77T#@v2a^$krKQN?ixm^Heap|4#r;X}7j2RPE^B&G+C)~Rr*T|rN z-f);oD<1D%St-xWVFUd~i0uHLBJGyem`^44GcvyaO1G19>N&fj31Y7fNDc~G-zd)0 zacCf7RXZIf{7p54$)AhXBd~ZTw~lmR7N67&Nd-6|7GNUg*^xbJs~}<_1w^1u;cj_l zD4?0SIzL5J^i{{zf6hDpYe{pM>KF1y+1x zjYpO>yge6j&eel+kQE<^N<6k79z$9&OLd9epX{m;q+@!S-{lt2!nGsIc+O3gPH({* zHK#8zOX(UNTmr(kE>TT4wNOczh!_!(qr=))NH#kJ2ZTuKow8Cxx5O#l2#dG4m8bI} zX16!;2j!+hyT&bkrg4MZbg3?|ffm8giGZk}BJD6Jge0EO(@Z+y5lOGX0;k2+c^xGY z^2Rs7G!eKJh{lW(@|o~2VYCs#A%Bd6c49yXq(u!ZakzDj;16*^uhX!Ec(tGGSj{dS zC?pj<8kJd2e47EwZDZlRZLhu4HZ2V_~`BO+w-{R%Tcfw!++Y za7<^gS?_lZiH#v&T9K1((Xx@#4LN^^WTPjuuiz-IEUWCWPOiW70FVleqTNKhaNKYw zJz$0sJSop7kfmP$SvYU6tNy`J{&3d_rwfplhNS=M?tI+pjw z?Fm5<>9Nx!vEt!g|J=TW-2Rf>fyUf-{kcQSxg(8ax?)}*6f@Y4TFlIqxtOaH4<;PS z-FyMzmySp~l&eY)=naFev!He%WYK@Tt7d0RW^iLG;&bG`lf9BfW{VP-)V9+TK4g3W zk%~rY&HI5`0k(@x#LjJ2-x>?GC(%LTd`xqZYkz*>kQ|45K~tfhN(eP(||9I{kW)boC{fVn|=d6VK6W@6JQ zxVrdr53-EzQt;hCMxc_D2Xy{<5hh58*&e{S_sSNlAc%Q_F06wJDB0vBqk`E)beCPA zE^u9V;_xhT=QbX$tW;-rp8gzka|B-x7lX9i1{tY02hXWxVpCX9Q$x``In*t!G@^Gg zKkPinK4%hk0nNZ35|(*I6+?-o#E=U$6nvRT+VHZW#0C6_LP({>B`~quf1tPjNOEBB zGpdGkPYEF^{)|u2csB!$$oLp`Vk@)w#wxTs5F53^I&eq`WiZd=vZ~JQKEL~PRl^sz z6ImDb9M0E*QSWEaVC(Tf%ebpwD{5-0A~bhxo!z7iqt2h+G;zx>cdnGvipqwinpo!( zBFiY6yCS6UkAUbBtniL6{L^LQgxra>doH0-8^#li-+Z-e8rX&KCeD{SYc)8Jouu$?`v)cb>QK6;3)`}=HxzWh=|o^Ulx6QV6f_WW>-;yjL$ zd42Pbv-Q=3_&gRNs)zjIhkj!vBG(DrXb5oi0X%2h_RI~96@(u6sCSvoMcvG;4p3Ij zn(4aRg}$(^(Cr%^t{Z`fSFE;iQ@v9g5{v8~9D)PR)Swpvj{*3HLP8jAtp|heuVEk^ zf_5C)BTYfb)f|y3L+=(sd3)g=QN!6Dd=?!#1wbGbOMDM+5@L2Tu}4MgDuh>f$l0`0s15+}qNlkZ>Fdtyz;5M!3B}T5~%bxm~92?R|a$XgTi-83Jv4 z;X2O!unIy4-n>qXmt9HQ0OdDg@^6aQ9>nBZgRnEmZRnxl=V`aKYR^ab;4()bj%eM) z5!aczkmOYxB%uMxTJh^M7MQNO#Uq9XQ}1u=hIp`4jb>AetgXTK>$f%G<20$Hj0TRl zF8joTI@-Nwdkx>FYfN)ApsqE25}(Ch_&sX}#!R~Zaq`wc5uHhuYK^q^&xwcjUC?bRoS&T485Z{8V>_dA5f9R_FjJUXNP9t|$8# zP&munN#;q!N+)T*s-mtYFtI^1+_U{?a(g%j4RX-ML2y6~dOZuh^$BPNYX+#^+?7u~ z9t3AZw+}mFvNm7>D8L#DU^IfTqbC@T=`6Dxzfnpf5#GvmyFmsfVHX_6wmZ92?5BHr zn?vgkE;@{Z4q&%q5YNS)&oSJ?lDB$HiMHd1$M=GA4--s3ib-ktPqyX*2mt`ry!e=` z;}}FrZ6O^9k(W^=o4Oz{G#$rx(!=wFC|}Y67x~)X@Y7^ineC3X)js^2^!GOrpmB!h z@n=p%ZzVs)H$T@EXJ8P>ZS%4eudTT=|T)7H6 z{+8B`ksOEsj`O5piWRD>eH#_)GzjCo0+!oU58Zn9rAB(1c?za>=S;uUAp$5-&k9TW zWEROksK?a|v-6;fW$FvK>!r0Z;70^pM@WG&j!{PP{2Dlye)kb)=1KvW{zO55kEQpoCcg!YDI##d}7dw{17)K@Y$LqyfN_Lz)sx z``gGL03Z$pSLtC<0Y7RJ>u=vibks$IFtV*ymOMtcK2ajt)I*JpXZn$_w<=*Tw;sWXGJRz=vu${8Xl@0{bNHvuDapNbO%aGdz=y_c@ zfZnvz0*e1w=_4wRjnIAwG{YZAD{SZ?69?2pN!GAG(^mav4%t&ZLn#=kbLhQdlz|Cg zOT!XPfQ#GUJuqtFBff?nokv^O(424w@z~)xTsDtyo5$CSrB9APW%JTT0I&}jz~sO4 zGQ%WUVE9b2pB?5P6BSm2VLf<dWm~UE^uI=MathqWB6P3_AbX-m zjGr380Bp=}x>bi4hR=CEjC>lKI~lejv_W^B1KI8tv?8Ue&5sBw3DIM?1w#Kkv8Sf{ zSeWG25Pu71_y3X0%!63Or+?RAF6BX9HRuPoPwrtpfXa5qnZSdFDw+Om%7|CfV(BSL zeFrRcE_lo*c7Vg0yT1#r3NAKn*u394;9EPwX&#d+us$xBsESsm@0-PVcfBdo9A;0v zWJ!M&eY7`|lAaUZoQDcnrX6g2x;ZFQ6B6~k3_l87sgDZbtnC?*j((whHu4jex@wt5 zTJ$Eh+R3j!XuUc}`cd-@s5VNEzNs-sGc%=dcHMyQ=$*s+;8_5_YB9`yEl6O4hQ-^8 zp236Lw6mk-qtfoF?T4*a;6@Ask?XsFElX4tbjolLX16R(tAE9WpiP$$I{zHUQ4v?F z7Uje#Ck^+?(EO!^O`aOvehceN?eAT-B2F^LWf=)_V&H65ok`2WS(T{Of+d3R)@oLG z%=yo!UoT3PEqYWC9tjDP^MuWM)kyzaCm!#d_(WUFKddI&|S-D z#&^S)QH5KVuf*d$lZ~CX-`b3hinH(W(fNM14-bAeP}M(k_7bdFvsah3$UXw6n*y=t z5pgf~+?5zH&Cg@%3sQmDlRWTT{ZFv#=keq42~(K2|4!pegTVf{?N&mgUv>PQupT|h zYX6-KQ=nwC%)yneM+N1-F2CM|Mj(4uU}H=-7O~#s#4+cRpLHqZC##o0(Vn@7GS5gl zUvVct?HoNZ`5mB+qybzdNZl!+hT-t9koeYj=9p8qyzze*5{KqwcxvF})YNE|^R=P& zC;v-G+?mxb=N!h*I_8*0v?g@UGr$&%E}AKJ-twQ}us?cVs5xb*Bj%kn%lF<`ecAOi z3VoG*^?!!LDsDtZmyUYQq>d5pfV-;o^ha9xBwdV@B31a>{&qTXwTr5(x((vz$Y7We zYq%-x*Zjixlbaz<&q3NhZAP5=h@(8&^Dd=zJxVcx?c0M_`<5&Er!3Y0fR|o%2_%iwYyz6

@%zG@RCn81wFM8tqh7BKL_@4`bSs+c49di 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�K=djx(>FFfQjBFi1|^8UJd2BRYbiDk3I!4IO$ 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ΞR|!r~N?jQI!WKR~!%x4p04@n$4kg3A$@q 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

i{w3eG7ysxoH%en>Tky&nC_yMiD}ny0HSTb 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

0udfXO}HqAwPP6~c739c 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


lG(2 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
sE(f!b`F|Me2mXJ8dc|GF%*c~d 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

VzIwhZHb#)oI+ zA1_rH5a?PR{Mfe^vf(UKjvT-v(|)l}rvj|hdGgfbLgjPMUdYRI-~!TFsb;Y=%y86W z(npnIwyY)C${HxyCXK|>WOVwp+Zbj&&*TzjRSBS+kP?F)3t0eD%-PD}huALJLJ4xs zeng^Uzr5L+oMS^tLek6m9@nvc_Py(1Q{x()5Sk3f4>Mc;jRoM_CQ5J9bwq~bVDI&n zEMzB!cBnQ+Iv_wuy}Z=3y7bdZZJ#%x0h_s^2Mp{>s1vjG_347#f%$Mpd+d#yn@FQB zw$2-xID#&NlSS&>0F#NBrkSv81g(St&F+)29N#IiFp>uWF;tJ}dMYbN)2&Y@tv+y1 zJU+BRSFt)KAt=@4#gz;Gk#ir6yTFD_J|kmmErhvroAjX31{THBYjm z4}lNNTRYun{I`du6NC}WGn)3oD`Bo4Es;!Nwlj2E8g;6` zMpe9TB0#+7>o*qjv`Pdy@H1wslV#)%oycfjq#Pd5pDe|{R;6Ix#$)x#@@?aN5h78$U zas%k{4k$@(5_v;OMh-%{_Akr1>=v6&L^jgtL?!l1W&G=I{|j_FSN!PgX;~ zRpaWNLpQ>Ug3I~4N~=dJo7d92g=SLG8Z>kl%Ws%ZPeY}S(C6U?h6AW_yM1^9NF_6D zFy+krh43Mtk7h~p^O+VCZ!CIH^*Sn{TDksGvm|L1@SW!^ANH0`MbpqNx6!*yyvR_r zFZk6zx@#9pCkY6^(Oh+`%bGuzjg*k4KfjR`dzR90b(n2Z#lWY5ldZwk;$ip=R;zH$ z2U)gD150#_CF(}Q^mCb32W(?6v9;s<@T3ghwXLeu61}7PrWY5BYOM-&49S=@kw+MA z(}#CJ)y1_FYv1u13~l28={nM1C{T2z###qt*fp~$^q#hBuC8RE^oA|;-~JEdH*MM& zFb{hlT9fio52?qSKI zZQtDOHSJ^OHGJFCrMuJf`NOLHn*QD=NeIUE5TT1pL@>$S&wKNrX!?X(hB?#>W zl@yWfzBy`X_x&@SB*#We&L!rk?gss#BuU}qbVcuL-6Y`c4$IPyeX1LMs*`=nmM-dE zd=AL|gvb2~E^7*+A{pef&O2eswyXmB8lSzqV(#s#y~BznBncvI-)O^XAD#JuO$%H- zRl>E{=UZZjqzP=W4REZ@EmY&wD^60oS`}5Rjqhy5u;4Hez28Nl0{p%Hb>1Q^d>fo` zk`0GEwR>ixdp@st+xkhAfT1OrIWLmzKinH!n1iFL)wCd>CzF!vNy(45}!r; zOcG&>^zc}Il>nxo{Crr}Gx6^y)VlzB+i%Az7^+oNrPyo}V>X;Zb(>9*8fMz#(j}^x zf{9?qx=C#C#{H)LjPQ|1Um`3GSO2o8;;}!p$bEQWKSb(T@tzKQI8D5et?|ynd)X?! zi`nRv$&1=YbqyWZpu29+_fy~LHbG2#SQs1$*OR0+OjS(+wmIhml)(J*+|PDOU;$&A z0H*=4NOGNcib8?{3bKw?DtkFO4kQWYOfu8~Dx$WmkIgLY{&w%t7DD1#-(4{ zmdsupyqo zyD_O_0`U-Y@wzo>0g_~u#Rt}!b83mfFjGl|<)JscFMyuGWFvD&F%USxpwEoimyp{D zz_Q`a_0O89>Al-Qzu9?8Y(6Enej-&GLBvf0>KBE!nz_VRo1#DGe$RFl0+Jd4T^7&z z`x5*Z#ubb>!=HrpW*Lb2Vf!w%8V$q#eJ7Ca4gL27Ht2FXR>p~=N=;0&-0jVsA+upN zy)@JP2NN@!#vj1j%;PP2c4i$s)fm#L_Ll{3VdIAZIUNjvE>_`zY<1b)}T`sk4qh z=sI_H=!FS1>2eajs>l8{O$YGpnx=vAr(}aRrh^h2zWmTc#9po)uz~A?_tP|!fbb0g z{v?{_Hc$YPsE+8cgLJe%iO*6>%xX)2W=nJ>v*B)Z*Cxwqjp5%xiDmL$w0fvOB{V*C z#AIwqa$il=7D=K5s7UTJsEOf!FJ1D`uk_P^feKA^@gla)RY`?rGRzk4NjSPp72q&$ z2@vIQ8wYTG4Oq6&iou-!D>Gv*8>7TH;Lo17-!Mw1A$9wNsAX>p_PlxuC%z63-s+AY zIIQw}b~}{q-%dE> zmt&tiRjIvYcDwgw59XfGyo5x!ND{A;lia44cQITs+($E3 zmye4(JnS!azSesGO;@%cargW096amtKL|pkO+%(H2_j})NXYZEx++_!>U?rI$CITJ7D@;&eA)yk>Lt zRf9tnF|>xrCtQc>zO-ql=>GAT%6ocFyI!$zX>{NV34u!Ee zN2qZ zc=-5$sBfmrpjhbaS=l5U*F4u~W$4!UQ#e$-sp?mfv6Ag%w&k&Bv=Wt9_?wqAU$J&I z^0N)oPlVku%ovVwdae$XACi~(x|5CX*giBQ72m7*6c;bG-dIW7_PsmuwD^{`jK-fy zw0`0e>6TPsu{Y`lKev6M%o%22A)s9BHO;5mhp7|t|M{nJ?7}=r;D+X3--t2Qzbft~ zE#{I)v4?j@i zZeujlxyIL#xN&nR9Kk7~Mx4{FqDDrka=?ny8n6*(-51&l$8Kc3?;fhTeb4#Z2+c}B zgdg+!Qxx~@=GRC*t_BsrpKUu^ewlCHWhTm1qSf7 z8K&L3o}lwG-l^I7trM%%s&1?5!czFcwSzi~#giZc)?9#;m}gz_;PcPGJna$!%RdrG zA*YarSx<4zM(#t0aCyWD$zM8Z`svC}2%AL(O!P|9skN$^S^d&0@eNX0&NL>H15jl8NiL9W44TJN z7V_BCQ6sWmz6&a*!e8<=f(_3;-=>iW))KBhp#ULY9qn+swEt$tcJz6pETyK51LG*}6 z6Xzn_c=L@K01mRcN;c<}P4D6S)l32UjqUJY)AjqmWNLft4(*G5?$nx>mG#ZWZe%J2 zIonJ&q7E1g3+2RA)rx<@!}YhfZRFO35?)cB8Z1Yl&Kp|@2rs^UP+XPCwhWhX`vkm$ z;{a?B0O^L=S^XEbgKphuJM!>sWv8NDWORGM?YiN+JJp$DmaC9-W}wNSFA9*)$l0Ae zxUv1MCw#k4a^5S|j8`D?@6RKPVIdPu>4g`zfq+yE8>5<6Ji)f0c3I@0A^V|jURZRU z?74-2y7g>*XDV4_tWW#PRCYqY+>KsrjrzZDPK$vS;x67cCLEV)i@u>zoUrd97=tOtk#sdhMP{7>aWq7DWl?8=;WndGmAw|9=LoqJnU z71a+Pnggiv4m)~`RO9%ESrNH%(ogyiN#CNOO8KA3Z`$_r^#oG2E7;OG0k--QB&yxE zoWCNg`5;aC!%*|x%&^%yrD}f1q3EK!c#^HrNZaGcYNpU_Eri+6DO9Yje?o-dqEE@*{!+G)NUPT*Tu^ zj)Q{j`}1Fq!8~t$+f}-9RYD4jDv=8o=kjx}yzcJ3jHEu{o4Fmm(K|e+X#-okieBN5Ng%+R zN|MkQhS=C>1VdsH12x3bV?RDlbwO=l3$Qb=8Qzh1az(AV?wg<(1)u_{qRYK0J{lx- zuQc!bo1x|p1FW;nm%dIG(cJusKkrcGW;YJ?eS0Wm!y$s*+MvQ*G6!B{`?P#=D%*+F z;5d&3T^Ho7MEcAY9(@)m`iwCc9j0&{&|7x!&P&J7d4+HIc!@UuqS8F}aUk8fuCp!u zImvoN5R71sT{}oSIP8bp%uO|#l?h_JVKV{R%zYu{`-9wv6@snnA3U;kcUwC@`0MYl zsJG94Bp1AS`L$Kpe1rKa;(C=RviCLdT@-A8nmr&GYY9W(0U{H!QY!?wby1P<ICJ}X4hHJS(!DAK*ZSBFQ+<-85jTFrd zJluxNmP*Y(aBC!LIYNxd4}|Bj-e%vp(q`xh*e1%>CCgu20YCePh3lF|qRg=7XkXq& zhn5CI1M6>qIW?jmH+I`5bxH}}m-j(Vx>RJJgEeg-X65kZW_-VT{0I< zsiJ}_Zvd4iKvL`RPj7tz3W(xAp$DE_YKDU@Mo%RU#2hQA%rnjos`JOKY1rT@HR%5& zr$kj#pOSpOWZPZ53TktFJ@drL1lEV^VEXr30TgZDd7Y8c2*a&ClbUBqZg4Ooyt!7Q zKqg6Qg_Z3*jSFdwe;x=Ep614-2F1e{K@@#%<@eb|74S4?1ed<8H-_Ei2+ra~8d#Fz zBYhvikFG`8(!5_IwCGy`62LJB?8t<+R0-`eu_HjKm1;1=L!GZI z#b6}tho7Pls^K0Br?Q0Gz@xYuO!Nj3{e^j;Y86-KzgC=qugc4)bU`awiS*A(i&xKl znZu!I8QAuH2Wt(~u9A^tc+wQEY)0aXjEEs@XK(=MRyA8#9Y$SpUjpub=_~MjFt`CB z-8rORJSUA}0Y?BjBjY$z4s5bdfXm`n0_^7;0h}a4he@sw>hDYzj^|A{M#8em@C}ZH z&kxlVUznwagZLDLmwHX6K_dXi9GUznKVWVg38Dp{athL+YG%{RVL+G9YAuY^KyO5DM9+ znmGj?q2jag;7U%>-jtXdQS@%hq3dgMkQ#GyU}yG0@Fb_^^x^2NQt&68YFeO@CnA|*tC@H0RJ5sOv1+(r-M_K^|G zQ+zGtb(E!;BS6BOCNE)bI9errl8lj!hM}s3Ov$XldoxW9itKw*rtAZ@ccrt*;yFbB zW3Ig2E32FH*cU&fBZz1<`?5k36jFHTYdcYr;rxY#HB`*w2SC37BwlF|ZaevpF!>vN ze=;$vnFZd6dB_GQvTiIcX%;3tB^|+n+N~+|QTa~z!Eps)nKWqABC<@!KZql^=gXJE zl%~76LO>=j0%U@iLfb58p|1;+DKY~+Ghaaz;(L2`XvS6<8%^qGSBe1l!CHrXfZ zbxhZx6$mZ11Ndy>?0({$iNt3wJR&#c79rtviYRAJe0(w}1&`)4SKZ_wra6%l({OmUvj-<7Zw}GXVZ>y;tRAtEZg-=#V zf0>dVD>BwczkR-S$Ocm*&L^=!uB_w>bm8!Q!J~w$g>cnE!X$JHKD4apB!MWPxPjMJ zj7zXYLja{iFQ9!KX;TiyJUPs=ReJKZ)KOP40)F2f3Cg+mAdU*s39)tOm}$@Bm#1K+ zWJ&pT9HA;&ZcWgX$-m1K4C25J3`*x8bVK+dl&b9gm*dLmM>^V^x2q+^S%|vtrESlE zS{(3VE?9~4=VRQiGhkaD9?sPXbnNj@f#6YJs#e0zVFr&04ATqXzs8N?C@Ol1isHtoRDAMmuGC{ zoSA7ZK@tc8WV|9|jeqh2>!_aciE!S_bzU0qeH^0Sn?}43xs+C_wdZVz)Z%4Tsg6#G zItC+7av+X)Fo6ShBtqlJd=O^-FmTn&D*9+&%ZUq=cr_#Q(7eZ4Zastw3y{rN&5@<# z8{e^UMN{#&^CGTHMMk*dOV~c$Sk?QO-&?a)s-U{-%IQKohOz9Zj(%;m?0vwpI{TgD zy*FP=vFpVi1O}H4M3m{CPH4Q)-FRuIk!IMGoY0is-ITS{lxKLesBCdsj&y8@=(ZzM znUKO^d}uOkzP4is0{x$qLoo07YyhnJ|Ij2#ZU4hqkHg5B$J)C1S!Q7We;MnuUjG^E zzy34UIsea%_3Wdeg)KZ|-9%02Vy?X1{YZtH>&nHq?f;Ll9zEl8Qs8~S>Bng~!bRdm zi_X=qqQ8`4SU^md?p^XHGH(Yd*IPdSE9J1w|Hc2INnSqs?V{|I zC?M_F)3rJ?l$Gr`(({M-B*y9q<7ZFz=J$zvXTFX+HhOwtz2_=d`m~GupY_Gpw>;68 zAOHQmGGi33{$I*rr_rac>L<;(+@o_mnxyxS4TsjYKbb?nFE+$sG=8v@OcH6(^G(JE zHBF`9;ufb;@hM8vY4XJ(vM2skG)-ryywXKUfIp1Y#80*BjSz{LfTvm79>KYcTi;&S z#t{<+P=*$YH)r#Y>V2CnaQp0RH36>v?0?kRW5pZ@UkwUdWJg3`lU z5BZdzs{YmxLmBzzdp&OOyklkJ*0=vdll=clIaDl`C2e9s z-fZaH8NGG$6*pzcMZas^DdSE}+4q+A-ofwogPeP3S{sBvojI3|z%Soqi(d?nN!Y!2 z_#V4+C;Z%NUg+Wdms79N?T=2pI2)sS>6UWK6JD5A+dRM9?e3SC_-}Qs=mjtLe0z86 z*Z-hN1XtxSJbc}JrSDXYEI)fNT~_n|HrBDhEvtjL^UJGG@u@1jY{Q)Q$DXy`mpl0U zTG8{h7x3;Lt>J{J7_FC0=}Wo%gx|~Sqr~qX%`ZrzpUX!C%=|YPw(1V=`B1Sfv1c97 zI*iv|!MAl2%@CBqcOn0%Y@$jNF9Rw>A~@OHJMns)=TXF%0LeGeWa!gL$>?0EXNugb z`X{n?Rkt}wq7mCuX$M<#B|wEYxo)LfMGM2Lb*l!^Vf6Z5=s_iV+U5nWH z*3{U#v()n7=g#-Gr)qzfJKk3=nRMx z0`Fk(Odx4kP`pJAwfWRlovMB$&5>sDY+E>s_zEEdfC|_W$Kaqb4UFNY+oiEe&^EXO zD2U)#h#=Ba)cdCdehCEtv1uPk@dtCGIgF4it{mbT89`TxybO+Ff*|HJSO66a!hD(9 z2?k*J|hH)G!OvMH7f$SqL65$!SF8JfP zX(AG#x5vlHJnx3k!qI`C**v@oHtk<#ip`p40K+ax4h~%d%W+i0gms9(2qnx>ENCD2 zA>K;qW)bOxN*?NAfK*Rg=32T%0n*p+BjJe9Q4g7dp%{d+^uzw+YIXEu@ zLWKw#khGR-zMmg27WJt1F!U~f?=btkS@~Op((%C)eyjM-4LU$W#>&FYIrU0Fn#P7` zhr^Xg%pD27)47NKA&y# zcUvUPrh;X;yKyx!`p@%aUvlw?QHV$nV7$X12X)CgMB@H8hO$pgr8}jDn2!M$MC9Tn z_ovxGr;prtjHxSG1S{?rhDzJ|)`M6?ki*ARnk}pPV;w^WnWCF~JO^*J-&XU3K`!^E z(`5*YxP_W_2KF2SEat*puPLT!bWnu&4uyf>epbK=>J51M3C&vZB&A&d^)$!a>#5Sl>Pv3(mc`?76M!5zXbN-q}6YL`)K69B!Iw)U*YzBpw2s7Qe<2 zA>0NOkDDtY`WuTMx-)U#z=9sk$LU#@E&(osLxX@K@kz;D zPI#K7t=3^>sxeUpX1Ea^)~A8F7nspJB|r4`<0A}OzW?5_ikn1R4a}zu1r(^1W_Fl{ zxw!KCgv&hzFmxIygpe0HjzORX-+9rxKn46GM_(^LRF{qSLRyZI%&~26*RR8_2u!J) zy4G9v*J#Sw=3!eQAwb+&ivwChcZm?b*!Lxh zQfbk*WgjMQlkhY3H?uDWz5q3?^FktRSwy-DMsyzuVAw?i;J#g@sa(JdYrrC&)I9lJ zc@%0frcJ7=IK-Ap0)pc25N9)kRa2b-^msot->Q#4-^E_xU&YtK{Wt`4z*$2=pU~m& z0s$&D$vEe#Yfxs$3uO0cQTLQS_R{1C=l<2aoL}i zbAQkd0Kh+j7;KqiIY2&$mdH3!*?(Uj8qQUr2#^Mdh&)8BCmjQdvQ&g<{Bm(7P|#py z!!a3TBY%}piNr@RJUb_TqSo~v2W~pM%1l@Rr>8x-e>b8$X!`i>G2FBz&@GMQ&XnO)q7x~CfAdv@faIR$3UNmB9UD_}GbTdGnt zLP!9jC~*{eEV)jg|69Q$7^$NwrS^=afYBWsnQslE*5ZIa8uH5%UX!A_?F=|>GXyrf zeqTM{^HqE7-*;^1jT-5GM8BeK>3xsX`7cm1cb8=R&m*pe9)J}a{rcW` zz;^Vz(CNl3)IGA2M1i^1v+r1){ey3m<2# zih|**(BSz)@vbBfjOo!_Kao|4I|g^UC;^1gPaz}sG!jWMu#p+tqbty7Z*+~?!09$| z2$>l0lqEHp=E%5m@f}^IDuiDKEqEkFlfJd%4s7>l#F5i+Idef|ygUV$-Y zU{Vu_kj@Js51{UC&{$qNOzag+PXe8q=&?Y{4!8`TN>a0o6&OEf-$+;RH(PyrL8a?l zEc@jy?vPk#yT&tFZz-` zJ%|hU^2~+RA51&iM99Zu;(kNT($f9U$A>ZLP+d$^6+GU;w~u)NG-i&%n&!g2d_thU z%+oaw^zJ|yyi6-!fN#7%l1~o7A9(p$z(vaiZ|~GAH@cvi=fGwZ&mWuTBdBRt7#?ot zW6KCMAKiptxK|+|b`PB3GXOQR$@odt4>^};V{w->07AlJjnp z9Jc}J_tS_hXOEhASR|leg%I~o32f6*TU<8@Lx?-%{*VBlqWV^4`%)5|C@J8)P>_tk1UaH53ZfH#XxTY6 z;+yVjV+!0C8X*VhrW8Hbi0XZ%{1uPs9!myQT^(CAv*v*Hi4f=asgaa?{&m5b5OIkH zwTr14(HOWN1*1Zy^U1&xUKgL%)IThg3yCR}Pl-jemx0<6cv4N)1@SHCGkY~xL6o4# zs-p9q5c>-lQ9b<`s{iftA{N9He&6fY@*@Rg;64RHJiFrXg#(dXik^`+rvH$}twS)Q z;BpY})iol0R?**cF$)0n)|*3*@#O=@OCeFP!G~!e4ak|-6-OGcKBy86P%2uQ&i4ak zo!^2uzAsIS$v030_)%azVpT{NeGnc#d4Xr(7J*h^?!nRFA=i*Dg^(!0wW=z4e^g#6 z=6l=0ZSZl;opR$o%+4Xe!iwNd`gME(1>&pmkgiidjo#zo%nJq(TAgiJCE_3;*F9=3 zsgB5-+*XJ_(On-BQ=ei%fs?%b3>%KVMXP1#KhJGol?siHHMp)5YVu|Io}!}@ymhQx zf7KAUoH|jSB1A=tE}}Ozni$>axdyZCmBu}CLkHK&HCS9H(GK%>On8%n(g;Ic+bQSa zD7Ilu$oow}8Orn|eZJrZkW51hy!Jl{8qmaDp{!GHy5FRrW4&X`8bkIq!z^yq_n{Z4 zf?so0U(KmKcw0Nqp+IaJztWYD?`Xcv5Nhjd>d@8UiO&;bD66GI{eI1N_-j>3x3a_3 zeE7Bb^>4pD;d5tAwZ9vq@v(VZqhWHV#j2KK9@fg(5q#g)viJ&fX!`bMZcDwmnvBIw zgb=zVcpvl{rj{pX04r|2Qaij@`|NPT&hx_rF#0c5=Pu7)2A~(n$obsXVRNDAgxd^5 zN^HWd0dsW)|F)?k7@Y)E`SZ3PRKe$53T?55{%=QcedW$vn8vhWtCWS{LL2I5+rjT+ zC~1ki)l0$?6x6{_w}5A;InC-xhE3S&lY=~s7caj+K_9s)IOyE2@*QJj--Nbo{MfC! zzo3&-hM9qqz40Z>7@^Q^W!?Z5cLg=Ef@0X+dLGv7eoIZQ453X0s#{??4gqW~qNJ}1 zKDc{_M=iVu+zp zqJNN4eaD0yB&LZXA4IMpap#B#}`o=ONiIGl)p=?)HdiIhZSBfyG<5w zx~1jvU3J1I90l#Kn4TR~=)1jT#Gq;$eg3wMpGK+)Q zx^RnS_zX%pdp;3GRK_H506x2Ym#?;DCG=^;n9dAhQYbJwhQDzcH7`3*aPk?*dB6bK z@wM$g;#vbah&g&oIPsB^9MsIp=^z5^5(A^pAv&G;vNQzm+(5`y&_=4 z0Su0@UhUpdQhxdlsWs&9&*uVnIcHVcAka$|=*ACM^N{l~^wY$%g(C2O9G>=#{L#}) z-eqnaZ6Eln)j9?rPr-~7ghp}@PpSl_D-ff(2ml%IVIK^+i*(r)7;J0aupd|Qeo5yd zwOopj2dy#VxybPPucMFRaKTvzOEO+7h4+s1s%$5RxG63Dr-FQ;G)Wws%nPI3< z{+4z8+sodg{w=NNGqj$qxDSXRO30==#w0^aCk+m`Y`h)!2=#re{p-rBK@9);nYSl! zpYaUTvnm4;`PfGlR4X3Pnv1-s6A=ahjnrG@x}%YE1t2n|MW5p$_`-j;C9nk}a?$(H zWtB2X#94sjr~+o5eCftr|9{Tt!|ZA6*TQogM=%iVS@-f&EJpJS41|F=SIy#NI&AWa zw{8wh=EJQjgxs?sAOQ4~LaczyTx`3qQG&{Ez;P?J8Sps&+8jTP3_F|q(oi1x^XWCg zae?U8{RaU8x)(8fl(Jkc+fWR|ve)A2Z1|bNxg{{vl)D0b&78~Fx9DVrDWQHo(mDsi zfL+eX)X_kV@mdT0>P}?Db7#2(Nx_AC0nTI?X#5k1xd_s%2vi2ZyM^ym3DbAfuP6e3 z6Rq}Dey|FM{kepZ>J@4?ZMA3vvpv5@)T^I0_;gnl^Rw;~SP1c073$nJ8}wyXObERd zQz_7H-=hVFNhl-Fq1CiK+>(yW&zOUpdGBH7@ehG_*RcAWSqlyAtJCP-dv%bh!e_(} z2qCC*6>Lu9llPRqpv%G^Im~0SlQw7eF$ijCX>&SC&u7PA=N@DSr9K(^wUzv-gn9hU zb~*zkhqo z-B8SFYP|>LPILvruoVCE3OUXQvHB6oQb&k%TO!o7%m9jN0oU=HF)a!UwdL*J;A+ z6~fm$m|u|x|ECYbyFmhs|3~GN^S>*nzAT;(BObfx{J$%wvi-?YW^u@y8nc#3iU!Rm z5B^{#2ZJSdBunq?gH1}THI8k@;Q>fUoUPDC7Hn*74q z21LVL(mt6SGyUdmBvzb^GO{Vv7&G)pc{r90dRS0jV)8{BBfsOEK3~31GVT8&?alw8 z{2RXi!!awf9k#L?JB7x+m1Ynl${=N{Mk!lq6hdgm*h53gRvJ=-G{r|q8cVVj%HCql z(uzuya?j^Huj@Ro`@XO5{e9ez`wy63=5aiZ<@tWTUaxlrp+f<4*CJ+bzdjR{+UY0Q zhe<8I6u07D7CmyYn=51;<)sI%@&7Ep#J z?r!KwP-ZqR4tbR|ejEFr$SHjDiN$8LMkOg`ME9zv#Vhm5F_x%9nrGyu2m3?XD^B)= z1gt|dAV#rtwuP(#eWP@#T}o^rZ+qZXFL=z zaEEP=YNQ=_dI*C6DI2S<8AbhjZZ(unJC?Vlhf6yG?UM(#hsSAYyTvtxqb={VCfe8HG+%w zTk8JMTvJUbjI zr@D7Cl(=u5>|OPVKM(s})wekY8{hL9H&XbUg1`>g>A#Ux=6?mL29LZWy5$}L0W;1h z{f`>H%+=!-ybba@SM=uaVQ3@rroz(Jkw39#vtNXKKJUI@*8!|tB*?X${WGmdiQ{Me zmZS^8^xBuBZLf+a-#t5alna1VNEh1%b(XP#SQ3O2fy3Z>?Uq+>nP8OL0BzOej~nQ$ z#LsHh#IIgdD4qyN*-!vCh!4MZg)D-#fsu$pc=48&?H`{*Rk??;@FUim>XRv7TLs5I zwyin)niIUVr=@#G8mq#-U_j~-+j24p94}E6ZuC?n_3xNen@KT{yMff?Jz=ATGQl+~ zvl%@j59~~YaNc#Hee+a9Y@+qm4hgb^e+NQTc~)j}3h3^T zvhf$Oft&I*tz4LplGM~WeF-Zln%t^c7aC~ott6eWg;|MH#h|2{m4sdF1XmhNLLO&R z@s5lvWcq@977Aj*ScX>EZSo++)(<|dbb}+3w`EYOjIESRtN{I6$ZcDgN)cpGns(f3 z?Dqb=B95{R#Kbr3hVtVs3q`1*x9cfcD+ca4Cnai47gh%IMdF2OC8+unT1-{np)GW= z5nGg?W-~Bb2wdcolLbXo#4zIih^-U}(N@`wFzsBsEL%RAShzXeO-vQmueK-b(I7CO z&xd8GQN?SC?&^$_#MkjN^J7{@=(oX2((}PqZ)HXb?NwwzYNE`G$iKKqNxtA5+(m#( zk-lUEC@7nx+j-uRk5kEG*rlunYt8Mzp5)WmJXt~H4j8I%(ObQ(} zrbIhBpCRM#bCMiqlx5dCsC(~c<@C&```IeWo{N*2@2(@2HH$bvuhWF}kG1ZZCVHY< zH{aK0s=YR0c=mw`h!%L7ZRSRhvugEt6FmWenZr1hf#T(h@oF}LzUkWKO`AR%oAh~L z0{g(tacqtnCVuuH6yPZyrI!8NUF!WrqB+sC|JBzYKoQZRzVPKJ4E%g3X-2aNM^qd^Xgol0PZ$^b7~C z#_c*^E^7I749(lbl+C_(QPdN6*&y4*DvdU@bJ*-9$~nC0!)xt_Zn7xb5f%{M*D1d) zm`dc{A9>C_6{}JrVzjaPbyKA_B)4x8c}>;B<2-kcG~sn35yIP6^3Ql-;?aNFg`BDb zmU;CQoQrxsP`C%m?DjNut!?Q`UVv4qTbxLmxJBMniHO%Idi5kev;(zcJ_!>)C-Tf> zWNPVHn92-RzcNlVbnjtbr+SeCT-fD=qX}F5x2HPsr#GeDGO{yl`E)<=+vcu@Fps;@ zm*>k5JIktQ*&IDgOczcwM<9?!}eoR3C?XL$Qv5xaV&ph4dG=b zQ;ki~Jcex`V%Cm0nwZ4Eluk!Hz!`C(Tbd)#&ZsaN%d1vKGfcZm1MtjYn`j{Y7)Was z*KgvdQ#1h9lXG4NST*xF56V-gqk9!2Jhab$8lzb|xZ97xyo0@nO8l5|$9!|Cf||n=v#_1bT_k;Z1~DwD^$C z0sL1a{pJ~|U2w)K@-*oPtSFf4FZrV;SzZa$Ioi63(g3%(5LoVQ|*p&mJLH*6zPa)h0a;+u0o$kF!(HqI=U zy#Vzxa+6bX{b9MFkG7|Mj*&VAHJO%epLf(X51b_A+spmwqnWD%NiGVewsN?4dF?Jo zH|RO%*RCj5=Y6ju%sLCG7@lHZFv}?53Saro%L|isyxo}#YtG-KLgCb3Stk){)^MKz zdGmI{_eFe7B>p@7a-i>3=Dxfu9!AZ+S0e&03)XgLndIz^$ZNeFg#Nso!G(g*wSt44 zdi+kv)8nXRqTrXf5fb5fUE%aX0mvj!%&zUvyZmaQ;PG180hR0D0OV>);hTnH@rHRxi3erwFws^8%TYVG*FN5iA4AgsK1U7 zY^^eG3m0!HhbVbDLyN=prS;Lb>CMxTFm+u10DxTs&Xu<#jK?Rj1@Sr6T0X#U^@k zBg;#1O9Vra8{zMdzLzf5XKP}(2XrTHa?BIj^$EkYQd+~6N4N8JzQQPwTkTQ2W$HCq zO6e_g$TZd9O9Uhbhe?oNtMpr1@1gc$>_lWibtHZ$3V&VHNSusY;pTBf?zD?tVo#vh zf-M&Y`dt+IeM6PvijSQ*09yhGWZXCOt%#Qg+T#c*0?@}nr%#|l7!iph=)?m@kXr$S z15c!YhkeMyzv4l^cw(~mBrNW2^13H=?w(A6fNz;B@1c^m2RtNHkl%$4h z5vh6S#_(Nqe0664a-!(vhO}c^ri2Xz=*jR)c{UVs0tN5a& zcTySZr=vZB&;cY{TLvyz_|_LGlw?`WnilXCz>L%HTq9g7@%IP;5J~kz&?lc&;(C zzQOeC_DBfvHQSEY4Yvv;#BF`N!FvQJ0}n9`g6W_Z29BCn8{`FyLwT-ScRB+I5`X}i z)`>Kf8`Giwa(?E*xmR9~A8rL=X?5+4f(yyb`{|7~A1d8EN#ks&|0Sy5)zXKFzuegZ z0L=i?B56@D1ztDuv*b@C?pase&M3nRk~=!-=x4s>6gnc2*f`!vX!rm~2xbxKcs~KI zWz@M_m9KR+rw8e|kWo9*EI}R?oDk`xJ&55VLlh88+xdx?K%AjEwRo*&4Kg`{`J{HA2?}0Ow-Xwqkn)^zTHm z{JP$k>0MyIH_Ye$d+}XI4Q+jhSix+W-w6ajNBknS>SLZPL{=1hFql1t1ewAeyxr9HgNe2{ssbPTj=%-IH@_ZR ziVXUEt;Qp*>axAczhkv@evOrTCjc&o*>+EL= z-=W#j`Udfnqoy}#T@z3w9jUxNM&TkmFXiE#FCHoa_f+fZspxt$PqFWKd^mAPIe}^j zmH&v6jP4Nq%`bl2;44 zlWBU1W&1*IO)S4a-LvSPKnM!yCVxw2r8teAcIxI1M;b!8WEB1r{0y53<)Ucx^ZB^f z$Bt&0{Ph;SX~!X;O}+`bk26~068zs@|H>oit3y90t{NF%3sD)?*3Aizor@@(i)xyS zemfWYXO5{bA7?oqe`sFV=S|`Udp>cmsky7^>85#(!a|niLiT6V&O4^`H#h;fOL_T9 zn1W{?C9FQefi(O(Ub5#O6Lr~_scg;<#sZ6NeVK!w1qh${M~)R56J}NGtBki9;0tn{ zqGe1!O__EPFQp!ZFAYuvpCQfyDlng2pZ2BPd}G3Y{yz4bS~P5ENaPbpxfI_Tg}O&r zlJZQ|HHk5Vnl&JsQTfB=)BGtwJ0ACk|FN5u0g|pfb$K209p^(9+{x(el#A~^X^%|2 z!Y=89y|U7yh9K9Z_wswDwF*PiH1kYm`XzM48Dx~o(woyGm?fdQWSREmV{jkB1)S-q z^W5)cLM=&Fn_#Rf*54o)EPhm|tG9EhGURKd7zF&!g5`h3g#Qoa{wiGXgyTLNMW zst)rzI!$I!{>Jc*e4&zr_tGD?qa;l%NSwl4g<#R{3k$ehHGKNH;qzB_y zg8pMh`u$4l=ZF88k^VLmB$$z&eO06hE>?UwQyj0%=SZBKV;vpeE2I;F;~WJM^{>Y3i9TLOMKvpvVw zWPPIALrx<;4lp3-9LV0KSd#z*Pu!~U*s3Vewe7Lvo$o{5XFq-a8xtB^dA?@uxnsdd z?%g@l5ZE>n(G3209XfpS$D4?`JO2wN-1}B3vDLSid{X1{>NLmh-~4(YY|ADb6xz;78Hr(U@{C`g%I=jAFTZE#O|q6!f$&MLEx+ebO~skLnt z58A{@05F&Ya)G38m-vVmKdeHPSSF)3itZ}uL1gF%5%EWuyN6zV?YAKhdUcbP)Jd{g zEoX2v)Mw(J6unwP-nSAT!z(4u3r68JAZ-z%h<$S0=0?8YB_b{OwK!D)oQx;J7m3^D zlGPAAW`e3x>eq9}My8UQ+^?KgvIGi&iCm7A2vIn^dP)&7k!q>k%K2f@p^iB6&`F&} z)Hg+|&4sj830sM#Ldi1dETq)OyMSPLPH->SB_!oaY!{Csr+I8Vy}D!1wSnm(r7J~F z38u`#?wUEPVp_tsY-@#gGoI!ZVjXOBbKcF+iPxXCm|OVVG|;2a3QBg0-#(yiBBB1M zi9u1?H&AFrpV{r*yi*fRYR@6#A0T^uXxu|r6mJHWihDm9LoREj#Cc6+pR+^8}QOSI(#!;s#Gj8Pm zjyTD&EzH_f3d-#XOA5iK`f5)RZ~4lNENZ-n_Z3odeOE!hJ}Wf!C_P`mg|`kx4&Bqs zRB=7H^>7lu@xhuEu&>fuzL+CaoQS)KAOffzL8C+ zO*wZzF^;RC!qyO4KnBAV&_}HTc?e}rIC1(H%W+|At?^K`($9lb9NiY8lza(ZgE6h8 zXm96~7vB<~k2lF;W+7R(1^ZheBu{4?Rex2Gjv_i#v3 z;2^kBCxp>;_|#}eE8%G=Ai}E4RP&zyoOwPoNi&e=;`VDB6q;E zthKx-AUv%7>I=>vKgq)5i|!az{AvCxBKA&bL#a%8VpUvOIyYqZ&?HvjscdkcHYfbd zr0{;4wWP?K)4NZPqH-juZf7?iZTjxsum(R+i7QUAfE>o=S-sYo%c3HFb3NLj{3}tQy9f2Z1M(U_qfKM0( zq~NrT@tMmer=a~X3LHe81c@<+)Pa#j>|$SnXQnyWoc2)}0QlSSt#?5A9QP=P%tiaPy_?2mYFw;JK6VgWwbwAhCi-BC6_Y;{! z@-?Ah!1>Toyi=*@EL{zxr=UYPa38z?nPG3cTRhM{As)8DOO;81YzGMM%iPzQgp)0< z-Y*G%CJ1jkL=_i&wMVn`s$uDD4z8-dx1 z%D|44%i7hK(L&iN(pmpxbCu57(E*tPHs^EuXwhgcB{EYXAX^ERO>`yrv9mZSqDT+I zW6|t;Yq>ijP0+~&zXx)vwSXw;0_&1|!nD{P73i@N;bfft99d(8i(R4H^hjM%wa(sY ze^rW2g|Tq$JbeFJuJmN)>IM_{WkQVAd1WL(??a#A6@P5sLb}3QfyNpAc`f4sG6~j? zxyT^Ar(Tj>B216sXX|q~T6yx;Dd;ii)KdqL1Uk@!R~VP@{g<@c^_0wPT0Qg)k6$vZ zg{m@?- zO#N~Xf=QJAg0z0(tf0>mT;>zX7c#rZxnSQ_S5HV0G?s_3Ke>c#d(j<{e=Bscyo5Y= z6Qf1cFaAxD$-E#Du7J2HZ93{z$31e?)%;kAaEP46Sn=gG!W`)MaV|ErSbq2`&eOxhl8Y1#BA9WqMrp&5{gEYvmr3YM)YBV6!Q7+r9@)2LkZ=xqgIvM6 zeR*#=mPgi@Bj0XpDE6#&kRf9K@QhK-M}h@P8w34&qH=f?p8=FLG{`3l8^`+EBPL*< z={jXv!0jj`z`2_=L71J;jk%5Ck#py0Qp4{nq+xcX3FOZ{LZW@qALd;o(I=^|(&{JX zG8gM(#(Q}h8hLNj`XEg@>h9E-ckX=YDqW!cVTS1`u%H~dARfWm0!5)vHzRg#5OJ$O z_Bs={!MuwgR*C&06mjlLZH08Yt4J6<=>b%|DnRS=d(9S-q9YFOt7?GNzz2L%=y)C- z>l2XjiB@PIkn&fTQOdi6pIy(c#P3>qFNlO=K0{T2s_rZu`?9YRqm}7nL8!Uya`3&u zw6!a!R0ndfd6Lm22>uiXGw4H4mSY~Cf&T$YGw4`QwpPbE-*_#}hb=tE78dbAOMg2K zlEF9zI+jmpp8x{$2(W2EBT^h-z< z&+4raByEFw6&k*C5pk;TFCK}oWde9i63nPRgy-kG8r(p_=~z_SuYzI=gM)CnSvn^5reGJ!bK7dx>&M zta|)2X~HMyT6BI57FLN5*#r9Q`2k1hX#?aiDqQqx_tf>e0IAa|P&fMNfEZz#*p6cf z`)-GF1@0Mu_*#(UVGI>ixS#(eiQTB>EF2+BLxhAzD2CzQ&BT83suRrC9;dqwUa=?- z0eO9RswwnmvA9jlxu_2%XB0Z60vKQ$HmLy?x1l1m@kb(l(g;%0>};@rteCAayzU3} zG7&7WzE$s<+O}SX`Z(h8O9$v`w3NU`JEXNOGY$H|b;hVc{gtA~hcIheH`@6b$mvG zUbptUQ!ZW2*E87YvR=E2eAIUd~=C^nYho!wbK?Ngzv^>wjE&; zDyma|(ywNtD^NHRo_gKU!9%|X>GDHIb`1F*96BB|h2RrD zJ@;;aq&EY*mO~9148&^X4Aoy-Dj(!rGyUAsm8as^Kr>Hg>Noj}u4KI}W$8cl@3<^) zzVh4j_ZuT!%2m?WafJ0my!acc&jj;-BTGAkZv88|yZA2wt%xZQ(Ed-+-TxN>?a+Ti zmb(6XvgA|ozmTQVuTOo~_LJ+1P?>uwbLQv3zoNU3?koN$S*rc?>Tdz<(a)Zp0y)B?TT~S^ zf>Gh%o3DGfQ?~@%v|d^anYlb^gua^Tov0xY!QZesmSBhY?Ae`fk%RdR-I8NhLyc>u z$)6)U<_baI_KfXO%UbhX_Va3dQL=iuTv+N*r~eI(?e3%8EYI6-qp~wS79z4`jNjY} ziWS)sQ+#D`q3qM;)Id&om5fh8Rr|)450y1TfgkSF&6aEHtvwr58Y?SE~RW2l2h0K4KSofv%N0Z?fa*wg&JwWoq+?a{qycJE| z@AbEBi9;`fmQQU8ieGM=ztyPUwT_!g2KpMVP*qkVwjSx!C`i+DR8!n{>MyC6zYJok z^1ddTfzX1E@u>;+m*=~FMC&_j#T@+BZ}Y2i+$6XT9&8be^_c43FRQcEy%Uw*SMRN& z!#8sSi0TcgXgfWA>X&!ax&Eme z-OnC6TwwP$z zQ-mj+E|=GzljAKbF*ZnQZOSrB$y7lZRZd5ny7^KHEv;Chl=@_g=TfSBPw}P){?c1N zPRKOj^- z)KTZ}z)El|QQq9yVQape$w@0w)v)i}?YW$l+f$-$(%HG!(}h`xy{V~n3EZ4^TFGA~ z8DqG z&$lPbkd!t!mZ~tNj~yj2z8MEZ6R(F!m102hc@tGbXWi~M1 zGfI~8>gq4}2%A1(f8WLiF1T@tS-PU7WV>#XawCxp|X| zW03AX3J^N7;I=tDyIe%CVEdEg&7nV?tcj|3;erHm+=QKt2ou~YpKP0w_iX$8K4K(i zmJB@{VUd(X>=#=$H*s!pU-VbPML|j(i9_sh1H$<6GWa-mp_(&FZkkCBa5HDt2D}Ax zXpwRZ0l*Y(l&WA#&ATyVccE`Wb>Qtd-)<%7VOJ*puk=|f&h3%bz-(T~ojd+FCiVtI z?7!GVv(bOgIe35`cimkwnNdL;d)z`N#!#&#QVZfA#1_c~{+w1`PxTzwon2$FqbzE( z80>D8kVx@wp|kbmBtOXcqK_0+UQFgd%IP0>1qozhH6jyPW31#1sZhEeJRMYS!>C&( zlbl{bVlE{}g^ieQW*^rlK4$jv@?du@IqN_a!N(X?aI*U(6pd_(csWz6+x<)W!e%3 zcE$r+l$egm@{XXMhIzc`?&uz4&z0n-mMcoosromc>N83T>^_Pu>-a|ZU>he;POB}l ze-@LS8mBh*M(oC;bG81wv+OBH=(tY`3)mjHx zdV+kvUwhrM*>M|FMNa5@>AF?O05?Ic@{h1xS&Qh$kC7Q=Pv6A~_@Ur5_r-o6;aqzqpC$i+|Sh+M?IOE(WnwCw~nR)aHi?u`DT{ zpN$*GBy%}%m4O3mGiPH1>F6O1y{K=8ZPtWBYh(+Ya`2z#B)cyS9;3Q0t|8)b7uMV?UHpkX!K;B$LzF$~`?_oD$oFL?> zO-nFZ+@JqrKWfR>f(ZQ30E(W5r>VyIa1r0tfC`O-VW)~=^Cmd>3kp* zt(Y7)P>Ot)JOzKv9fSF#gu!($ z^o0qFM!`d3Zv0@Spkw#b5zfcipOSFrY*NbSp{mVDFK%SX)07eo7RZ3Xo#lv{)XO}y z!8G#W0Hj`vaAP0_X)yj^OnY+FVNP0otDUSWMmQt^UW9a;h}t*8PIFHJi%?Mz^~3{; zf&t{Yh;XDrBPQuCE2*8wSRAV0pE}Rjl?tO|RD9pxE_IA!81~ftup`-X29@^Hl>IIO zBCJwH%s8P^@%Hc7snm=EWR$#p#tBW^BLf%HBv8c%P+rW_Fuj;}?uZvu&I`?B`I{3R z`N!Qh_z25n4ewRk;TfbK4JE3cT`|b4&J~qHGc)(0f+3$^o~M;NTfrmUJ`8bj7o@Dt z@|i$p5eYl$ZKZ3_u^gzZJr(YppDuzg?0I`%&-jKJQyoW)(4Ri z2^B2lhr%)GWGdKP0GkvF>PWO%j1vU7PeFDkeqd)A_+N{cPn3{+%%J>@;S8=8@`f2? z0wwqgL^BGGt48hO+WMM7LDXyL5X=|_2h+oMnAzPR0!LE>&8lf${J_8L^58}CAVgT= zQ`O>ggX<7S0}5e!Fgu!DgYfbE2M9kR3btehl5j5}g1x`g7Fw!l%>_SxG;9fZnv+|J zJYKDtSDXSJd|H^jB>RYOXljFwVrIoYDTcFh9v_hN1db1x$^P!7%-j|oK%H}f!bK$Xy=$Re z)B#YZf0=NsMrV`jvFBp;YcC?UOkazSDvKDiEDk+;ZX*fmwKC|KE6aRu*G0Q6w}j38 zXlwKpo>jfd##NI# zzx&8BGlX83%CCa3FrPH@0%}UVV|K}MK9CmyFaOT1SY+TvfV*!ZARDoJ-}zG1TgAtXhC7H?#$krHKM@J*i?~NTd`*6}bdjz=J$x@( z_1uNG$-yp38TiV@f&fM!|5>}%2twkytUEKV_Z@@E+)LyyLs2GN#2o*w`wHPZ1NVtj zGxk#(f!XHWR+erKsZPa$Tp?f)9vyWbuV?f)wZ`m{fy0LfZlPM0QBa-`!N~!-z%l5K ztCSXy%hVc`iaWo`cl|X6eO<&SPT6iv6l&oSELSd9E#XgGs1tX%7g<6MJ>c1xfIkov zeZrwGr`2wRgkkfeGpLn`4x&{>*qK25tI=ClqEvB`&@{RDaW~{@fR36##geIP=8c$r zLLdYPEdqZ_fD=67jeEDx4{Ibb&EuLhxOD!%xIIiVqN) zTCr!QS-80@&w0;nHw1-f|c*j@UjD;}c zq_)BfccPZtoDA>BC<7lE&Y%*)nU22q{-_=Mf)4z3rsM{k_q4xGd>ezBkA^Ej0oA0kv8G zBH+$F1<1gqk59~kFh?4%=__?a8$LO4VlRy44d=sk(+H36-L1d^&u6-_y?BqAosUIq z3epJIdhBLZokEES$}Di0NSJP|X>|nPQ0Jv}T<1Dw80e5b(G4cHp0YuSnm`>AaLOil z7y}nlAT59HDbg)8eG#9*#dIxJ%o4?~Tp;*W+WF51bTA+a9}y@x2;^dQE4w!MT_Cv! z>_^WoVp=gahU>LenRm~r?&*hc>S{o3xOXTWEuO$SMZ|sqJMm;8fQu4<&;1(~Rp4Up zv9$X6hLU{}@V_o&XVm~fgY@7)vz?u?PCJq`HO?L z{0k1}A%4-Z*oyufi+cs!B`tz6ZG1dAO*fFHhh#$wKXY0++Yd`@`+U)OH6$uQO)3cuj!S zheGXe66BG)i5{R3%!P&sgG62uamqh&pGbl`4j~!0ZLaI3>xL@&fb^d3zOkpzpyDvx zXC`jnZwwD=wN@){(%HpNh3wF{|To z-6BGW>2O!obm4wA;E9`e6Xy+KNok3GHzQt%vWWv{33pDopQMe`Ao!>6w?qccg0y4$ zUNQnnZ;3dpS=0Ds^tHn0y(K4IVmPP_9e~P!c+75Om1L}`iS7VliG;`M0s%B{DF`0O z97p>gHycCVyu3(18BLV1a>`CeM29-C*HHEfiZNaZEHBb?Cvi`0n+D3*ZD^=t-8u zC{jd^FkdMtNZ{IhC&cfyW;Q`T(xH=dWYRqoUMG~W_oQ8+6#=;*(vNhejqmS&uag0# zpMyDVhglP6HQNZT>vV}p#7PLQf8_&CsRSj|GH?XjU&Xey+y~L zh;0jtg)-m8USQ(iDA?m#ojQn4*7E3#un!XWoEcqv`;im-s;1qwfWbe;S#1PdIpJ)D zx~^Viz2|-4l>MFyWx5;7B*m}#A9j8M!suf7?0 zCJrRx<{{ck-Q5~b@a-7KQ(buP^A4lma0^`ZvtM?@Hb*=l;m^vFzm0v(9I&Q6raCIx zfAGP(j(>wIt$yzN@xZX{v^lz{(?KB$TAFZha`;xD>J1Z03Mg*BE3tpzGod|LiapVC zYTvx4d_?x!g_OH8HN6f7DsHWYonfdPzUuWe=XbXp`gI!qv+ewP$MyBDi!v=*_Ww12 zixe2kX8+=!5+lLfW;R-Ui+2aZ=b>Qr*!U`yRQ%8C!sNcGC-Dk96|f$VFEv5ctbCux z|4VgY`1Z)Zs|#VzGX9#U-D%F&+##qg9J=FBtF|yC31r^2ZW4WUUsBFAc)T%6{GsX= zqb>bKR;BuHr9JMw>-K+U)E-UKoPM?^Z0}HVwZ`0kS6z6xsZ$WZ{W8vHW1a@SOL0E$ znDn1!-T4=3dmov1wA~z6s{Jo!ox(rOy5W(t|1|5I{==+u5}0*6&;Ds-&5kp>{x<87 zT~{Vp*x6b-8+tB?nM$J8O{ecqx9)(M zu5^eJ)zNLww=b=t-?+?=-nvK;MbF^3FG>X{Tg-bu$=LpZdixzE9vezX_L`c{pd7W8 zzLl-^sk(Q^TyErS0i#g3Hz8ywpfpbW?ZR|u)XIWJYUrPUsYv@5Ze`pBM7djG^79V= z8=rS{T`uN?YXscfaws+6{M?E63#Ht||5E@r=J(84@14dK&%vGG;&esK25^C+@DNe( zfw%N-OPA~{=|Y7dfcubhZ|Hc%CqV%BT%XxU)Yi{+GygK{KGuE^m~|pa7s-D|aT|Nz zoZBX-E|g9MHdeMS^5Opx!2P#bckhhO9yu?IY|qM(Mwx$C7v`K;?$j);T<+3-@Nv1D z^z>uaCKEdQJzinTRlD4_Lwl39B})FFvQ^SMYCl!u&bJqiCjScH=4c)r+@j;GI^^9e z89a=Q!Tomu+`rAb9oI*~|BG2y?Z|qKG$b+!&iqfz*NL+HW^w>_Uj`6X=F>5PB+l%b z3b3H_r;svT%C?m(on*_k79JR<$%J}8UngsD6V5*7 z%VhL@6>$@-2SVv$>DxL<&7re6_cwD5PoZrk%@~j$zkm%fdoD`y|5TtTr0$ZiU9~rK zlN=Ss*<4d0EKuD9g?x0bP=W*y4^pj>h!(^)8(M&))Ely?No(RaCFxKISlyj01mhFK z&A#O+Z@^g`;tB=WB+>Hq2o%4ig9g|qv&eEhKnfj?w@VXDnlHB{s20UY@%d9+B2xt^ zdc1|)@$SAR$FdR%RfGT>A&w=6Z^O7iab$mYHJ>6!$fvAzd2HmNAW4fkBG(~|SZw*a zODP<-25#gkV`GrP+*B|C#&{pa-N4=50_>V@lrxYR5VS9c4Tk$%SFx+a1AB$V@}4Lc$2iAZ}s zbth_y?W<`;+?3XA*zc@&c}E}7gp`aDd*S3PLWF^JbClEeajdk9y1EgEn{60ycCvoR z1;&#vg=>g(5u1{Oqjs&KbOamQ48wH*wvwXhzLm~^ewvyiI}s+DOhhPamXjF`joA%W zQEAb8%$5>hLeM19l+K?A~*p>!j^8hO%mApu-zBDwpkHfROqKl&0PW!!F+0 zwyFX6i^MY(bv#s(Z*iQZN<`Bks#?a-&E06C_zkH9mD-?#tY~YXmv?YZ*4=s;>o>b!+` z8$iK1mMw^t)8XpbhB;f5PQ@Hpp&Oy$(M|&Jl}kg2o;7Wj86xe%BMi_OGRBGY`FL0z z+~`Dehclj?d02mjW9HstRCSw@K}+E8&fN%7-&D;eWW^U6MfCVjgBLH+5~T81yN}>& zfW_B_Ch%pVJ-$q|oc2-{=GkQ%du9;yOfWYnYDNiv*cp=Qo+yf_m-2=?GbGAh14H}&^xR|cRtdDKR&DxA@X0F2&r6xzfvS#iX9Zp5? zCclT(R&kf54K@N;!aII7a z9$F8s4lKpyZ(Q}isweK56bLA$7Cf(^$f>@0+f)tE6jmrVexv9F&rqZF1Rbu_)wJWG zy$i%}y>s<*Zo@t{JJJo6_pg7_GwCR}%frd{DSZYG z*2CFDJ2sQ0sQX9<~^HM+_vzU~%EpQFc@RyA#f15e$U67KoyRn+iCUUHYfwLQmVTGTZz z5f%Eyo-ocbuB-1TQ2Vk4_~>svRH&AS)%!~;klzOUqHPyJ@wpXV0ioaPFRS1e-%C~I z*sZU+W*w9jX5JfN9;A(ecvgr4sPluO{A0iRdmUme5}g zXHdqN#Ta+5&#lEzthIk@aiB9^C6ie8KJ&KdSm{xt?PDrXlx~xIXHgD_o};GUN=!yC zQJ%Vk7s`q$){DZhE=wk(N@; zR_It=GK+XJ&y|rsub)8C9MCol(ixxv@u1H%?((`8wE-b}j+-|xNM)YYHU^=OA!Q*$ zY;Xqi57nY!{h)$QIrdGvHVy>zK;ja=dP1fg-=g+~g-zpNgYbvYM|A~O+Mk8B&I;ta zN#x&5%As<#cap~vI@IPwwB*y3+^g1=2a=Ph2=%v;=Y=%NXIi2QmHghHi)ktNBOs%0 z)xmk0i!AaNVfm=_ImOwF%K!v3$(>!O6AUk>3=LX+9%|t19;1s;FWC9RxeGteIjuJA zaIgBzHXf#8k2A@cKT1l=vhCe3yT*`tLXz{XhVNzGY6XQ~=#6mt?&BclFQddM<7|CB z3Yfxf^5BlEfcKdMr=Mh<$%f@%Z4IBiIVvHk25l-NTHzYtJ~{{K0D21h7q}w7tt6M0 z{37PqhXqkIgA!71w z>6w}SBAKfZM|g$d+LwsNl)i+W1|MkO>01z$=o^Y&P#2QMhB-2c-HG1vw%2a$xt7Z! z=Wq#!>aKX7y116<@c^y;oe6sJQEv)&o>Br_ZeUB@)!%Hnrufmg`2cQ?OVFQ9fvS=0 z4Hf)jq-_X~H;UlzS$s0mDajHOF-2(O5>`N{n+qiAU?G4tHdRSc2Esc#f+x7D1vY+4 zK+P$mW~$xDB@1T|MVrF#8i{4!kSkM|T;X}IbM<>e&u1Ee4h>pi$&9siCVWu=v7f#p z@gXXQip`*r+86+uOUz~9PQNIc2kQ08IWHQuu>|_ejvxJ?Q^ez>oHM$c0l-pX#B`&hPN+zqf zB6`qbwla52`slVM)eqqEi0}om3Z(td6hwVFWLg68iW3gk|Fi#bH^+Z&;xzK zyB88=F7L&*U>Ah7MSfnZASFUvXYb{n+Cj^b5%e)#&8pI1 zXweh~R)m3vQgB^2+TSaIB6Hu?Fd0ow-dy5ANAOPg4eS-pL;QmQa{!h14JF=pw!cXV zlFBX8>-Wbr-AOceM6eqm&58h_L{AiP5Rh4Q79-NuJ8Vu zW;wL|fduJD9EiF6)OXrz-6gxjaeGKD0>&jfccr?n?A-|*Ot^3WysKoap}Rf~{2YC& zqtMVP2h97VO~|1zf+?ZLDBrmhVvLv1Ax=SDewE4O1(}kUcT0J{>81kFYf%=G-qU>{^~`i$;*dv3ihQ2ZQ*Ullk(t#f6Am0Ne?k* z!+>h{#WXR_!o8h&%uoU7pc3q>Hkot#eW7fxc^@p%vh!WyU+O#byBoW1=jdw9ZBPoc)A*UFCn*zKNSB&Sc8P={Q)zvY!&ObVq|`J-5H^ z^WEw4s8nDWM!b=b`^mq~(bngkG9S8Om{H7ssaHB_f^fw7M_X1w+Besz_wP!WsVZ}& ze#OCaWkDC#Jj)L?_e0bvGn!dpP#k!{%l+w(R~4~FwY9nNf8Tp?y_Zy!PbF{4^sUN- zkCzqZSgO9iT<8+=zPdD^;eAa-)c=t>{m-ept&Qr3eq)hYK&86cVp-Mh9U81EEN8Lx zziZ!W8b9CqlU{%8uVjGZ_l68|D*QpKl+@@9US z`8L1b6C-MGlYm`8wASsZN`+{13BCgZd__Q}fabfGlB7IO%acr7ud7>a#6A~8SrDu) zB7fe@PU_o-hnuAVUwgIoV9n*tAYE8M?XE{#a?y~;dMoIgoKQG>c>Bjq@Q=cs35L|T z@{x@wW&RErwvy5e0$ZoZnv^^iti=ZVu3~s*f%;6KAs4qQnA5n3bJsq zDnPs>0rq#Dmz4jk`A(ig0*#7Vk_#fG^9*8tD#(O@iRh|et;i2#sAiBZXV7a8J6?Ex z6Nk-5tFTwMkR*}vyA_aUaWJP&F}U&vy6P|%X6SnmzZ)}))^@7zx7Y;FNOOr%V$U$d zHm|J%Oos{_tCudhGxc7Wjt;ntbgW!q{%i%#j(AcpWd#fNJ0 zlD|2J8!D!+?-Zsyz%z051LtJTx5~-G?bCBjUaT`$0k%3#!2VH#;7`Xt^%{zIkz z!OurGc23Q%{*)B8;Wfg8F<<@Fq8+K0J(m5MI%JdY`v`&Qbz-TPQ1^Yu4TFB+p+-|nut8l$(mHz8Tvz*(dGh{?HRMxtS5 z^Pbk-HyhtljeoRKcJ8gU9i5z(zIiRA4$iF14p*){NHwK(ip~Na?mwa3kJPf=_G*K` zvhk~ji;B@XpK?z}+7UvFs{<_ppoRMUr%3@8iY@okN2#AxY_}4C%Gt&D5si!-`N3=W-loLEW-lk{imgYg z`-6Oa{D}$bzF?psLWHD+jn5d3;f&^37dVj#@-xLjo2k`wyz^k$6$2HAD#W3spHozCB z+pdmdt3GSJ8;r*W*(2U-UO#JuR3Pl-%eEb5CB3nZ`jkL4T1K{{yhbsJQR=(YY}?}+ zj0^ck#;e4VxXbj%%;gPhY-|t4*t}DiYU!DDbfnaM2Yun$DZG;3G3nJgREYcd_GH;R z+j2w^GK-C;6yK8U+9nQ5B{Gt;6@O<8mz&HTX=)(Q$p$y?1L?fv2b+}yH~ET?uIvp@ zR=QZtrW!m#MMHR2M*xzP0b8lKvP!rCXgH`Hc8tfy4YQgY--T=x`z#}TEtsNy6mrWWlE>cRGr$LLNz?8H{;`*ng^+Qp5CP_yk(9*GRF;E6GF;ACOm;s5>0Mj(^@Mq^)uAGWM~s!npKz%NyM_N7SddF zGDDpq@IqeUW&3P#Ikb|!n5gtmen{X#nofJ;M(K!7tG3AgJCovN1=gigmYAu_P>P6| z*3$=mUL(CrNWG~Hx&`Hqe3gqx1V2*2k1WyvJ0(6{tQuOi0M`jBvu;as*6VEF=$r9| zNn8=QK-ct89B3X~7p#~2txxN*&!%M|=f?NE?PX#G z>m)Z^Cnn;Yg@Q3c>6BCHg};ua23dg+Y}lAcy2~Q0GUQIor+ru`3~r@Qwr`K}-S(HA zD;Op}AI9DlW*XENK3F3Qma^6qi=0P5@If&&O>jh*hwBjc86giFP=wK$aqYAOL-3a{ z!|50)Vv77%P-Hor_cf7{V5D=MnR64wq*$f81`*#F#?CV~n!;2>Rfq>H%1^Ll{e*Ko z7xRxS3_N{)8*o!b2gWTI3d%*gc?7M}e+*)fAdKg&HA}u^5c`gYU0{{WJft+Lie$TjI8)RR-~IE#wObn81WJeIz*gRJnLaDqiXk#7Ho8|XvB zLRx?S42~_9@MfI+RVMEhR?F%dd8c*OCvISf0Q;AB;cL4~Yyb)x_Sz_`|592X(%N4i zCkvUSOMO~SH^?7_JQ&^(`m(lmw0b15PyJ)#1O)klKuQA0b zk^F{A3=!;IqGkf`FU;+Meu;siDa!hWn%^Lv$IaF3tnOH-UVk9#TzWFX5#!CpeC(hk z)CYP9YmRtam=p0XU_5YDW#l*PqSTD6x6&COeWAV?9WH+oE{}~9B2G{#J|jg??ez~6 zh2%AeOVqZm5sIk52(3K!LxD0*E2W$Kon?qG6Cy z1Yw4HazD)^l}GFsU^YmYz{N~VsU-adVnYb(jSy+aLU+;{Z`5&D2Xas0psr-IXSAb$T(q8%L`!X=D^kiT>CzsnZsz0jDGC-$@U-B-0vpaL=c zmVU4a&cNKGQYwXrchD*Vh)H9?W7+w0e6o0KSxo5_;S3ogMk*ETDy3P1l1(8~gsdsV zE-E&M4#+Wy-XI=Yps+V86tc@gY%&R5&Ip*J%nr~?(5h8P?4y#08T;TIbOsXP%qGim zVB_EwCxz`R)a}*Fm70pSlr3N|h*cQ0>jT>0z-~AIPo$oG!X`gfz|wM2mC?DQyuV*8lVNa=y~l| z#_u|p$(&3tJdmZ5;(wDkj6P6nb|D$3u;Z>a8@%-Wo_n`$hAz0l>0ae2kOAz5diYYK z|4I>Y%37fQB=3&rsa?|Cop+CekG{3U@LG{erch|{=M=YWi4FHDZ~a$;^5+1U$>Ae? z_F`eCPm+%BvbgE{FUi+FLr?^qX@VabQ}n>wfe*?b9z>#c2~nGM^&$;H!)*T8I@HKP z-{G|T^_6h7BqfTXy4w~|KN}3^?Ml~rAU8~TW}tpfwv8Z$3chn2UfC!;EBUJxVKH?V zw?y%^Q};Cn=MLTr7NAFdnVN}s-Rwz8$vYsX4Cijwi<2&>0>NQuujyWbSo{uQ z&ju}o1@qy(W34fR{4a{YQ|<#fSlX+P;#GE;JyZR=k2gGk--4RV9z&&9r~ADQ58m|c z$^slA8`&U-A9#Fyse87kJmKyQ+?V-015n9b# z)%D&M@^6Kr4`w|gRovURu779;2wnIHdul4?bblIC-1ekjtfO3v&YD(!Vl`Xt8!f<| z7vS#-h_3|XKLT*$u(-*v#G&E!al_JARAQR+r%Q)7{TZf)Z^)AT>M|T&@0&e zxTD`DjISNPu&e2*OWgA>2}+Nc1EB?EXnai9UO!TsykHEb@sj)xBqDq$!-3`AYkGJ^ z(0&`ZOe=n2R%X9Z1 zLV|y<`9~rI)UO=Knj2~Kesa%b&(gp8m8Ocnf3CH@dGpHfzGzN_vT{1|2Ny(5z-(RE z;DpyNJ(xhY9G|owwGQ$Lk@WiCrcveon$2XWJFeSjxem}KXVQG1@5|N=d1hzH!RnGX z>sba-oVRak}_upc&&fV1YuT{S9)x&qm*vjwyyR98?Cy)O&UHKmc|Noe~IV1> zQ6qjWVhyGMGqN(uv5r{(< zcdn$=+TBGUl|DbAKOiK-aJ0)8qQ$+j)MUD&oYQ^4jBU!$J{~Q9lbR`=E{inBBz!Xi zVwhN|1()0;=}tCEt`9D$fV!oT;{~Uq%{+(G{ISq-TG?ijA?xNIBm+P+S!mN9pri|r zP^IZsKat`|NU{>%EWMLb1*U9g!8U&FlYSyv8wFjl+(g1r{^$02x}BU~+V@Z{v;vh3 z)0{~_EG5dWNg-Y@Mx?^AUI=Kd>BsX2N&DomV7&_l_V9@O%aKAWP}bU4;KPN%uFT}H9CWX`F`Vf-Z}b*kC9EUG~Y=DK1_(kA+&aD z|D>n=l7AZ%@L=-hE+MRh^bm&PV%MP{Wh*p-3Ol}M6BkTUUR%OAb3D|2eET-|v8lSZ z{WouQOWDk4Bcl{|3y|8#a*XdlAbuj z;i))g_qaI;Nl#9`#ykUOB+EAl_B?xdxJqDNuWrikN7JbONclwb42Hco7C3*R&iq54 zast~W;H>Hi7lu(MAolDUcdub0y=t0}w$%)f7Hoc!Y9m$}%ddi4)!7|^Vm`YqfD>yl zw6CFUP35-~=fw+jo-tUA+YMy^=4tQd(rpaQf#f=p%!6&KS(dLqcc)OpP$#>eWn6oFM&=&2m`|$VSCsD#=1LM*= za0&MMXW*;Xmas5umN2Yqm2N?grtUkWX~Em!o49te%f$^j2`zEH!Sk`QUg@%(Wgzcv zeuG0}7u%r8GsnuXbhBh1CH5D8(A>Va4R!E{zdC25Qv%jf7$I3~$H95KO3y2vv!GO^ zP$@_e=8q)bQp}v8vOyki6TW={o$yB0FrnSMuJgd=)6B$Ae2fmaOe~%`cdcVO2R_`% z4Yvg`YJRx*XC5apCfG78>eyiCD_%2bJ)X# z86w=M>)P;OXaX^&BV_9H`t*;8_1_FiFKM1rXHKUdDJj7%Z0b99DJ~@hG$0;lSkOA~ zLuMo8VLjuGK(ahI|8sOo)SL>49vzyIeSk6Ly3;oF7(Y2-*!N@C7=>FMe?P32re+b z+CaKw+w?1vZHs92$LLK~mc>fnK5(?=^-IaGSLsUfoM#8a4#h~N)8ync%& zk2E-)k%u0700yCw)2C8j+*9X0F4jhC>!^FInTpyM3EfQRIt03i+knGhn zPzMDkeW{pD(UFv`z~OE2SJxRFp<+rPOO2L~T&XNhDsFz}DDEhPiy&i??5a=^h2F04 zJqD4GoOLM@&cYr}Glb?teVHjw*jiD`q&GCszfSB)iT=KEdlA=d-8+Mi``xooAWi3~Qg(Oh2~j~nQwwEniqhmrF}P0o zJw^FT&46<KT-di$h*4|Da4LXhU+Noa@V+pLMf;s^@5^$Jw&`3p4W{{KLrz zH-scrWT>~d!bx9aYh^vBq(+ORyW9X76Z=F; zao@HvA*s+Rhm@ZO)kH`-?wJcY+Ye_*{Lq=jQiN1so|?YAkT*1LKh7j8Eamr&8#w7u zg#Xl;NOwU>VV{@|WM^lQb*4F+-=}XA;l!W`$#H7F%y7D&v>3S~dsoa!=@_!w1Ywnx zcVgUNg;o%+O*z_^-ZWf@IlwtRlQl1Z1nI=wcllVybSM#IDW;X)l*H$*RMRQ_Jc4FW-? zEBEY^VDg9%QV*bivAA%b>U{vaq$Fcp?-m2cDkH<`q=s~@qskZT4p7eOZF(Dc<|%`Gjf+kc z=v`l-6xjf6<@JgKls2yG2t5^A3T+a<5a?cxj)XF6XD~~a_c%mhBx!JjlHv~~hX5p} zx>86P5MXnu#3%IBBx5qP!MaX1*YJmKtqvG|*$m@^N@SCNPX!le)&f&I$Xr5?5S_~} z*e%=qwzee5L-!}`;8QB8AF`VQ)>XRu6njyrJnUC?wFGZRj*!H9PvNo9m4aM;J6R|s z|E9TTtzEUhM5tYdVoh<(k?bki)9TVskc(ix-oSRL$um>Snm@DAZR6PJpGL+1JC+*2JELDe`w_L9i%^3}s==SfJ(Q+bXxO1yDhn;2s=AEgF}VbbtqK zB{L;+--c-Xny-`4vibYa^lg@D>bvIk6XHHe9>fP7a35@f0PQG1uOU!otZU1ic^&>cj}jFqd#)h!?^zbK@h+x?7{}?*RwqL)cYKA#S4G3QleV~g%*PE6bg94sds|%soH#~XMQW4> zl|x@AvJxb3|5yo686GbUKTSb3X<*fXhPP~NKJm04ntZ1xV96C~iT&;Cfi7BR#H}zb zSZ#G60YGh12gF6cw|dJ%o5{(a5s@hX~C-<;WMz@|Gy&fA-YEd#F87d@x-O4T)rQY_m;>6;$j-cJiU z@>{>?1U)4i^a2NwS_fZ$(*Le*GjSR09qXCx*9}ntelaO$S9E%0c_Lm$_iz2-inRYu zdd?5a-W`^E^$+P8KRb}AQ%^ngbZgwx`$x%UaHC(eMCC=T#_Xni#Xk7+e`RlSmmfkR z_w>V*`aA#1-f%MshYY=cRpedDbbV@Au3IOB=-^aedXmeFenTjFQzd8O_4BFctLIYJ zl;(I(^K{7jG3e`-o7U_m`D{x6@T-DSQg|J7+$H1wSoU)C08x5W==%V^`C}F#~ z)4;v6I<39n91kT+2O>|%<$iJ*sj}Il0jeW_+#CvSZ%6O9Cy_deOR0wDmk9+USo;}t zK#XREiLCv8w>0GePQm2Pu5>5Z3q8d#{1SS*Iv{WHBEn+)OxKH~|BduOkshe2sRIYF zB0z+bGvs-jCSuo#e{$Vd*_HhJgLPBym&)!eX`PT~(F`Bc_>E$+c0nvZXkpDh!n6Nc z^f zuLf4+?_XkeWui{87VdMGv*Xs4Yx_-H6RGZsoW1V1_x8!zcuC>M95(G}w#*gG&Bo~> z%+gZWNt!}mJbY3{=VY63M`zLO3YVO3l#3g>z%qKSu^#HTo=D5gX#s((ZBMQSA|*sL z5BDW;n8kpL1kt4o2(!GOv!4HYdF5CA{Yi1*+rDuT(@4AAYDMmy)sBJFRJQ33+{0o= z*Ej=#*ZDm`PtE3tM+>!%%3SYuB$cIjyJp~MeU3R;TF&~OZx-jpcstGbRMCy)yv?&X zY6Wl?q|zZv0B=ff?{ln6fa2B;=Y%9Tc_lWmORP5t66Pd0{Z;OIX!JYC$4UC0`_en3 zebPl(ealbZvK%dTF7M0q^}RG^I>*_@R*bkKmTCG|dOFcTLABp0174Bu8=isvvG3%L z)&mQ>epf_ZHk*(f$TN)qgtq6Ab$sUexAjU3b?K7P*upw(dAg$hWa|ZB?4igx&oltf z9gL5cJF)e&so}B5@yFMPJQmmdb}0=w$p7l#&+3+UInJ8i^1n#WN(Za?qNIxDM=gY&EvogYaqq4Gnc=q!94$)^?>m|M z>A>5)rzL3?(Q|(h7adK<71^bh=d-^KQ~nTyXKX8${4C(kx;a3Ejjo_vQ@S4+ozz*Y$ZigxwjBA$Iq0U z^4JS=zITUJuN%DzmN>C@W6LWU)Xvk@^e29twFiF<8$LKjaB078kVucEipIa6iA(6P z$!D%U!vZY6EgX2QS6G?dN+l|#D?ZtMdMluT%>ggpq)5?B2obimLILO zTfV{kvPO6E4Elx4xasIwJ%fcleD=>&$+xQ%|DDrn-jNAnB9FJ}SMH*=n=I{BWDXa! zofc+H>?f*6P_q+wcBc(O1>^ho=Z6xfL1bgPQ7$W8W)s}Wc8V%7w)Q~Ng%f0vr8xX> zcdy~oULA{!fx(JnJMiz1Dv84ft5ppOa{)|9iLJfqnv=}APbjs`(`mj){!K39t5HcI zCr-S-KQT^Gg2&#Y%z)XzIQt9hc1kN-z&77gL2f2xSh;_I*?Qz|)ivrMJd>NXszWtw zd;I?LE1S-|n4PKAvxP-Bn%cljbsb%PLN%?{$lwBRxA}eDM~Cn~2JJJG%N2bU@9|ZJ zDwOx0?Y6Ep9;>e?5WYVz%&y%z`y(%Aa{2tqo!VXB`$bRUe=c8Kb?P(OD9%WLf8%29 z>&&GF1c_&tE5V$)-6TYIrpLD`=|^>z1_Q&nvEMFHN%dBHZJwSj|8`l~zTU<)_Ni_A zw`y8Wy>Ku%3_PnbUa4o~G&t4T zJa6z=X>fbg;Bs@|d2_&u1e4V0)@w6*t$d{^$iC5IY+$tQ)_=+LI5#)-HF|v?7`yj# z+v0~6iSyJH)#BTk&e7jHCQVQ(4lS-<&d%IDZF1Es4?pU_ zGryO$60!d~-fMM6>UP4$aCh654Ey6%5(Nvp6AXODoP~)}Eq#pvK7`Q~ymV7NzdOm@ z%*AD=v{d61&%67W=htURv5-9Hg-M=efPDnf9UnLv9;c8M(3s|GyH+{wE>-7jjkOw zcu%%G#vFuSjua-zy=7APv^}cKbI-;{OGm7#ySGFqq`?6$`A&Os@%JpKVZJglOH!*V z@CZQaR7o^Y_jny{3ErnD*&S1~*le;Gio0&!*4X|~s}KM%GzF>4$~r1R!#EO1#q_o( zSGLL>#`$rX#UzZyQD*y=dhD)>;vsCQJcu!?tSnV8YONe@aC&zrKYbz>F<7lRHsrlU& z{+{NJiY${LCX5NBZedL)quw&58i73*-Q{1Wj~J|9-FUqjll%NbO`=qugE?6a06?q1 zPX)XmN}7Z2i7?;oQD_ zyws6<%c+5=Ez$A>-WixI%>|W9_~iTRbJ2QUk;&pA$|=vcon1|(yEXUU4Sj#4bES}J zEJAICk!)_1zRsSaKhJ|@+TJMT8`hvSavPSuRsWPQOf}v9Y*Ut_)ZujnLS~6DLZb!` zd3B~Rq-ulN z0a|P{pM`5=5Nzmhf*|=6hhSF=%jY2E_=$Wv;r+?*iKtj35i?ndhwkP^Rnty;V}MW& z0YdXZbOeXia~S$;8qO6^?77` zUt+5uDxZp=vN55;w6=Bvtt3breNeMHU4oxp2;isNSO5U%0>lDZqAD{4$;xR6!hd!R zK?!mIVGfl+Xys$Kv2xJV2yK99HxI}#LtFroHkXBj0sy=iE*L-5!$JyCy>w_NEMyD| zkm}NyTh8dRS!8x@D~(8C0Fct2kcMriI`XkH$HjTNwwC@O3yirL5o@*w`B46c<^z zx2T4Dq;^{bnvM#kBj(dFy=)}(-#gd^gS&}N2@WC9QBHhpG>a3;Ae;hotoZR<#z_w# z%9M@H<`)4h_$eNG8v~Fp3%SS*W3tSn(=l2 z33D6`F*hbyd~W=>{<-n!PzTnLbfNDQI;yH2!*tC)jxElo;UwL&Gii|oUNTBVhg-B2 z)Jx%_-A_aUS*DDbNe&Y81C>xyXa$nvf zgvYJvKx}=b1P<_?^4;MMWD1$p>!Vyx;wEX4x(s|ajc7y%bomvkLZ*Z@V9g*F@Cdir zgc5o_ii4b_RRB}0ZS8qBEaCu;l+MZtnY$JrP6^Vs}ThWMJQs@mOAqMWi2{5`!<(y-KlyZN{|*PKu;$%p~8+YoN^v4wk4JKl%gpvG=UC4_PluiHcl zc$m#HMO|YTv}sM=#;5IANAjsSW*};NPm%7nD3N<{Ks{c~h5OMU!~t5x0fKAv8^&r# z*?fXgCN^O{{`o>dr)+@-K-3bwhud(G4xH;z-m%oCo)479j)&*ns3|HhLR@m>JSxI9FJ2l(XR$ zx}A1iU-mMa6Hl->5$wa6I3SWk zC>G{*L52Vk9dSRjrT}OwWLBGlI{=9qTkZZcC*{_;H_}A|F~qR)*!vrfSO*m} zvNA$xL?>!Q5I_21Y`JOt=F5iVY$0A7+?og5ajilrKg_O};iOiPu zwnPO_;@^y*3xnaIJpmU3T+fvkN1P(I&~b`bcqA)(3QI&AUvOeU@1gD|`npyO`e$kj zvL1=6MMeuzTGptxkgGkmA#X~Np#b^==HaOhe77qg!$oF;9kO&3lL}*&9pQ4gy#V@6 z(79eKz?^o@K{lH88!^p6q~Xw!%v@9caqK)Yq9ZTK^2DG~qzt=PXboh7(Wau93?FLU zuyl%@Cm>71RdeGBLe$Ra(jl3QP~fKAEw=Vg)Xiu_|0$w3i(|?|M>XB@&Fn}xc~LGF z*S?i`Thiw;(@WOH>pbJ=OG{6+)tes;PCLG6R0S&e^b%bjU=vfCq|fb2!`P@?PiM2< zTH?H-Id7B^`GQh3aAVQ6bR>lSWE5A=J<`kU{bj{rf(38J!-DwSMlQad@2jPHrAP|r z5{sDd$e+nV7j9EhV(ok%S}HLGCt`phW1I}*L>HfMiW`rszjdh{zw|TbZ5uukh*ItV zqJ@6EA6E!8Ot9Q=_fTac6}kA5oo7?j%E|LqK_1#xzW!kAswk+lniU2$FFo5vcI5ay z_8{J-;ZCtJ1t3ndCrYnp#OCfZ8 z9&$}LVq<@%UNB-MaT(9G!OU~L8L=U_8@zx!+yPwU zq@?x)tMz1<3r4Nl39W*zP=;Tabmpd1jMpNvV38HX9?P>2jxG%|sW{msg>&MK8?iBW zxUPp6pP!;eZIgbk&8xl5J(7rj;lK|5Y=9|VZMETyZeJZY+7ZO0Bb<1I@S77SbJBkH zq*bo@2E`@$Jo2fh2iP5YH5&J7XZXRZHTX-bdsa4DZ|y6z16Sf=gy3lOx6ku40}Q)MsWr;KHXDMhL61J8F*}b z-0C~u4FP^1EYBFMPpqD5GH5#!b9*}cJJX;oQ*$m}vj=aq>U*ngns;(geAmqHlrsXr zw~0FQ`O28c##d_7XzkQ%T=VNAH}T?sV>f6^iz+`w?RilSbv<}W`9G}_}P|S-d0P~Hwq(T-B(=!+`I=1TU#d5$ z;`x5qWWDdDp_`j^&-0KTz!YO&{k#Ma1;Z#TWS}`!Bxn4-4xF9@yo5 zKPv3aXXNDQVCTw_?Pu^ZuLEvuaZx?8tm%Ew4}DM$z2wt9GJp5m#NBW0?;=F{ zN3Xp*6!_)a^^~PsCssP12j80u4cUCK^4CG{CxLcf-nx0aV8>5x<_O93mkv`%apu_v z5ohUy$f_N#tMOlk;$4z^al)0g<-cprJpp&yR>J3=MMZrN5A<@>KkBP@bTihg0f?Kb z{`S=lU)a3(=w4vTWAB_J3pO>Mg$}>u0`R5HQ6n2&J664juYX;5=ZZAOZR5hsMAci{ zF{ezNCwuf3goa~oV_xJ%?C_fT74hTu>o2jp+*Yc;z)}~12R2;(fm*lo9?nhDn$9igUCGi*Q(L_7 zNAu5?I?ncFqf9PnpTJ4Wl4Wc(*Bn0;Ry!1CPP+>q_@&Bq(Gz}_9;n^x+z_?tw-smV zapFbRo`HNt@kUz<0@(z6Jn%_vQ_$jM(I8jlKy~wHS!qIO^ZrJccLO$!g$|A0_T5#9 z$#|Nj6-Qb7_J?&eno(V0W|57mrORc9ZtV)454{gfDfqc=!kB9PCQPiIr%cek1A7-| zrc(+Qp1IYy*c6Z6U01&%66xs_&}<-SDhPx-0cF}QvBYo#qToeSlyPAb$GyR!%iXqP&_qT zatz_xrOB;Mqo-_4_E(*YXp^Q?+hiF`TCwrFnL|~<&QQWWa7A4x}`B_4_s6X1wM#YofLYC^Mx3t{d=d!e1kXkpZ zJM8S#ak-Rs<5`uo&EuV^nHt06)zZ53!f9!gGnEND=d!YV_JyYjOv*C|;JWO@W3{Bj zHMH`Rt%Ke_WNgvMc=y!SL+RQ6yJQdlVI7TbCmI*~3;>jJJNgA;MnycGew)w*s;zkn zN8D4w9boGfE=Fl5p+6uc!V|Rpr7QvERf6TF7uS8#w)jeBqwQuM8Q8qO5iTvGWayCU z<8ZVsgc4^xf49`&E9t^$_2}5wm2M`Q=$Ff^p2*T6-1c5A_MK6sbLJ+2VzLG8qrm6EtPc2U)6OP^EgDJr)}n zuS350%zhuzkvwpEo^Jno|I^H(eVGrwCsAw~aF=(!n!RV@@wx$p!}LW$t}Iae92|}n z0NEZM8f^40Y~5_uuT5`JHK;kkW?ip20G7Us|m(!-+yv zKdlewn3-1D|A6r8Hw$(~rAN;2GFDaspr0D=_OV&nan)!lUBK#m^?^;-C0bw!%53;~ zVdnwxC~Vfky5MVTDpF4j*~&~&A)8Cdz8!>7h2G*|9i2!Qlc?`2px>GYbBIrUF0LhC z1+6o%j)_P@5P(w3NWOlkYJF(*|3%Tc_%r?eaeOm2W^=zA=9T$9`h zxo+l`Tq3@y&_bm`?g?pgC-=LMxyvnt}B*Kv<6dKePkpj)MbpFH+xxPVbux5%_5%CV4adRWEaFqYr$`eCbOnjf;sCckYr0e>6%Ph zwzdNv3nWmQl@-K?)ZsU=BvYAq^_Pw-M=!XOFyI9hW_2#+}_-fh$sa^LqVr|k~tOF59)MZeV5{&8|e&VG4g z4xP*MLED>46k3*|<1i+yU&roH7{SV~F>a!rDJ?Rswe`K%9eBT;TzD#ud5L zTe)MUZUXlmh9c~$vnJa-60T_P2s1~OItWVrXQ+KHzsNf+Dk$BNr0J!x$Ti{Cjsgc| z1omb`*MtjhToCS0srZcW$)fhX`pWd1r_8Y|Qym*TNt*vTX2irQYt%;Qd}N zbUxXswIrXxr#jWK=a7_^FU1@)*(!L7l}}%GxvReF&`%BcqwUbN6yD}0V9TYH-I$sY zv)?KxRR__4p1DVj-t3Q-snHyUdB}_2>@Y9y%xd&mReJYjK>IxK#rM>Vhm*X0CxeEX zN2YgUcN~UJ*OJ~-U%N#fIsPJlXw z4V1Mgfz08gR)Os`6^(uuCLld-W;GxQ@Ds=ktY1XXI3xl3htdNgr+*%T!e%9XO_4pP~Y7I1Ct_~7EpIl zjcH7O0zqffBGmAHO_^={=V<}p+~1KuTU$|cx*NATRh#ww(jy(te*MWcRKM_%gq3_1 z*ubf4{E)wpPeuzKlpFp$aAL0c`}McaH}$!>p|Eh4pT9TCRi~$%{39l&cXu3`7DeZ_ z$o4UN8O|E@jcH2{G@5tvKdJsuq=pY&)!M_oi&`HNj2Hx+Z&M7S>VLr_2ERM)rTjfv zZ;f_uu%Vs{)Xs%13TGUV)z7zD|3-cOUAa9Z8hcbept*fk@OS3B+s?gDjnkaY%ypkM zxBToIf0@0C+;28z(>L%(&^UlY{4V%V?x3!O^(Ij?E!_{x} zZQq#n$Q-t0PIod_2$?&c%oByFFCss9LO%G2sc$3;n0|w|Y3gik9pTT5T6Ww)^z$)Rr|)^4rTZll+3YukRqz1=RP-9Ek@ z?XIJc2O&r5802YN&$Rvf(slH=;^UVEmg0Wd?cQ?!yECRoZaX^%8XHZs!{5uK~k^Llg*CXo9*&TZNut18F~789BofcJ94wTpBHz(DDJih>9)4* z)^F?Fy{(tGZ~Us)_@!7+p;AwgUXO%QE3vpkVMz}i-|V@swX4{QGwu1<)>AraV$)_E zmraTd=`4U5f5_G{;m}lbH#WBYUhDq7uBmnVeoKj7>$jH%LGHR22MCAN+SnSCDh}h% zw7n#bUUCT8O6fae_BZ*{&fnFIpTvwR_P>{9_jVVXmY#NIx_5k^(R&)z(tt3zV@vMg z=o=F2v(7WJl+yi}*SY<)qrtYvC%)G%s&}fm??+AFbX(udXy5Eo-%t0B8@77X4;+Ao zePeKM`{+_fMo9O!KYc49{j2f)YuWv4QDzMqhR;lUt9*>>Q~OMm^cy4lhdBmzl{%i< zc00@%6ezVFnD#ZpI+XQv98OI?oc8IKS{yr?ob+0p&RD#5G(J1EIJdO`KCtkHSyB;} zmLX;-8oJi*<_m2DUGA0&d97`xZSO+b--`{vmj`cL2)UKCCEL*OnO>lDTeg&TV@QwX zejn3=A?`8bnY{0BX-(eM^z_#Z@Z|TO#}5h44stDzNN|bTez}!<7eVeFtcK zhtZ}(&ol%3NI5m3IT*Io>#K4%zIwxgdS%Hd;k4_U z<6u~PSEXq`D$Ou0YNV!kWK7IhRlpb}J`}jG^$BKk&&Na;Vaw5{r@VE2|Id(N!l;Xn zaolEyv9j&6&q)-tWwg6Cq{eZkkO|y<=fJ<2c&u^@>#w z>J4aT2X1UNNAQ@(9t=S}z6C8NG39-(15M(j$K7jegO;sFK2B6OwNVFj6}@xm!ge6B z$s|AB?|ZFH)@fgTgOdV@U@iJYe>W{x__r7y)H4B8Oi7X|md1^g6e_8j(4HuVBKVg; z@V*XKZ-!am1_gNzY*ISU8X?g~AVGQ@tq~5Mn-D&!T7RO_^Idb9{c8k4bGPwUmM>Vx z5~n?w5j5L>K=sk+6lS@x9IgAAgog zD$>`?5`buh|B%5FF6Un8pFz=BNIicNUn%67qEi23NQS0@R1s$CBRLYA@Pk_;zt{E05Yo}dxVJE)C*d~{L_1p>s;ou7eY*C0{h zNx}gDLlg)!$p%LQgXI!w0&sT$lg{-(Dnt?oqX%sl*+322Wqb!2`-X?znqmQQ8v>9j z(C3~v;K&L*10YVO0uR9wJn0h!OD+aB?s5r^A@>Jo0l)wp2dTi{0=e)bmmo-jCl3T2 z4mkF8H9BaCEulT1o!zkk0*vAnd0r{o0p%s!Jk}s?L>$)-ywEUBBnpE1&!X@~>m8U5 zLbD~}suKSsKQxxt{K!HNGKX&M51A@ zUlF9>vFM}_Ts$W!&J*C`?FA04heRGFVk-#$lp#J|V54N50uhYHtwxqOL;WB&2FtMp z5H1$4xbZtOHWY=GBp3jP!6g_RCEx_(li#jYmakn(bE|Uf2{_S=p@zt(TPl_pV&r_Lx z$dhyvy+k$k1gR4@IFAT=KR0qif4%_Iu=Dsd+`bhSgHxyg86|JuB;8Xn@}3afc*~UV z?oeyst+&rbJX0lUcZgtM6t7njZ(^AkO|shz^$#7r{^(F0-rrkywdqR?E`Vz`l9Hsb zhST2pt&L3z;YpI{y1%fpp-ueddE{xtGapG0R@nJf_@CqRGjK5S&PdM8l{4EugJqAj z_4ns=(&R*g#`U{L5Doy&phP*=GSOt`Ch@>SX3Ly0-9EF1^!ahpN_$+#IXIjitdhIr zSpf>EgMd`02r{JWpK^KRsxBXuxZQZ%)?3a{qhKVj$_{@)rkp6s0BPngx zA&T-K&c1y=WB_o(qA$uJv$LiD`*`0~4FTu2?^|`BtI75IIs)-cJB*F1_Z?(S9ooNt z-~Nb-SJr$Q>6ZV>imPuF(`Kik-2djT#!h47?Dt!%PaEG*Z$CRB`Ky~%Txvb4ISCpY zB*SfQrhdCA)l|Ljupk;`q4zf}=A_+5{e$*tld9Rbu&8|6rkKrPC(aXn+mqkltr?_k zs<~UcAZJhmvPb-6`=*JhQt$4|M%#956xjZXtqv)_?L^Uh>YeVrF~ff`QPg&g?=Iub zS2fAXdbgIMqT{4{2MuFJG&(+1Z4Nu1QQI_da@ZCvo6p?< zO4Gvw`et_Y;Cy2k1G_<~L!hf(@*fcNxO8(dZ}wr#2|}?7RC_~Sa6Z8dx?kJ<_^-D&5QF75he}jMxWuGUjT#w7&?Su?`Rgs0p z-wgxbu zK2h!e`&{$%XmjY*GYhI#3~>F=yNS8juQ4Z6&*rrEIVXkUPA}IZ3Gi!2$O{o2YCbOA zA$&d|4OJ+d#2>Ndk|Z2+QCXap8@})e`CqcgW6=+iB9G*oO9~&$HK2-;l^48Tr>gYS zyCq#a?h?(^g{m!PsvXuBr5h#Y7CusPMJ;D*A9jiSchmce__I3^|HN~tE-7jf&plo| zlz4IP!xxE^Pm_BRdHz55daiz+biJDw_~XlJe)RCaOZidI7w__-nM~G*Q6k=wMUN#+ zB#V-CjwOpT4{u(6^Ym8A-GYpu536rqctY1p0`_jclYWrC*Ylw)eec7^(w-mdr4{`Q zB`^Jl8Qw{LJwCo#L58YJRkrg*N>z1VX_Tt&yLKW~Gi0JJT|0IwQo3%+yHWb{Y{ZFl z{d|hL%$MaCx23QA`p_uTxYckX)3n>8F8lT1$Azlk-+H6$x3lAoPu0(D|6kV1A0^kq zaJ5OU6|R0N*T%{$g%;qjyjJVmgc%O6t}BB)mzPZfIQ zziTM=DNjc!_N#3)DGq3!oc`(SSj#f5dQOUiYwca$a>897NOF!mznm|KGgCeLId%i$ zRf{{2&VMipu|}y(dAy7cjX#R|10Cw{-0O=t+izu_eJ~xZ`t#w&SJk;w`ax9+e&p;k zC4qnY@BE{y&8WpR^>WpSjpu*lD@$w(VcKV?uWGASy1vS54$fw^xD%`BYZFvW&AIhm z{F%~^%I{k0Ta3q|IE9>ejm>GQmyGHTnNeF~x1C=Wt^H42NMo;qd#>rv5QzC~cl5eY z^w!k1kzX@6#!tuB@BrQ}vdGF5)LRM0m zL7OmB+7WoqPqO{8mY3i)4ld@{Bi$am-i-sB|6+AXvq{wX8E z$W3$YzZ#Px@{_F7;=^+neS<^G$AYwP&U$wf2l6gGTnPYKTVDQ7-Av1Jc+K{+xQT>40Ohx(~HpNgoAAYXu&#&)sJ`LRnZ&lry%y7OU%9P_Hp>oOgyTIX2=Fg~~ z%D2_B13YaotM}WGql>BsM?kLg9SF_$%N8YPZkctqD+--=n;%{)5ezia)1}3x>-u1L ze=l9q`BUBJzQT?Ji(qwjtH0?sVVENVbVc`B67MR>77E@eLF`Uh-r=f<5&Sy9_ic#L zO^;oOZ&^~!;+A=2P;hZ?DuvbKnmJ$kAO8r+5^dKHBd&2A4#B4q*3VVVjhGHJ2qzbn zoqQ0@w(9qdw(bZ*!u6L8%uf&`lrU&b>m9|N(e_9FGDUYKDBuFZK)Qg1L7kVm} zosZ<1eg2?4#u-??s#fAWaBIRjU)Rq^+Syo>cd}hY@!=}He&vq@=xVKK>Z1s;e!JmOi8%d~CwOSOYHeIcA$y?%U(a`9f%~ zyfXCIKW|ax9obOx$z$fl7c2GMW-`GqKe887i&2~`PeZEbD38g=j^3eQ`GrvP8 zRA&0hLn|3)cRp}`9Y5O+o;`8eNepWkkp3OI_}F=P(7tg;z(2h2qw~N2R=y322i)sO zNpnK}amYU5ju(}hXRxVn;cAvkTs}y70#Ch3(Bw|mm0DnZnwv>2q;F43t1TaBc-+4A zLAnv!w9wO@+ab#}-stGKh+XFCls?=|dwA+5@a}rYx#6mpS<03{xq6EAerWK^IjL3D2ycIA!Jqt% z)K$%mF9Q$H6<-0jR?+McgNa;9g^c-Yx>p;9Qe*ZDMbA7ldpiVjw9Jj9W|_4wpAa6e1n$4w8##;N|8IiQ@*lSz~ZPX^{vv|flt++&5hsx zGE%nvp!%c&{=wUSQTliFjaqc#@*?2bapNyz+whRo_kZ^7HTP-rwCK2xcCrmM5-v5( z!3~dE;95I&=8ki$m%`i2lKhje<}7j>TG%GkH)R(2eR4{e6;zA~c%+@T%pdl!)1}`( zV{vF+wln;DU`%j|w#AD4#J_=u&B2c$`D;Q#P;FYpC#&hTf_mLcY6{OCV|JdcGqUak z|A~D0P4B@^C+&OM2G(3D$gs^~^7ZkJp>#l`{iT52mzLjT{(2TH3NZ2-P0it%Yv#fP zt>(IPL|Q_B`RQE>e5Jl%b+bF=N#c5{cA8o3LxoT~IAB z+Z}?alnaA;cpN{1Y#of?{_^=!+DiDRXjPMHp}5cf>J_X>qBB^qY5)*QyMt%XL(@qH zkpBz}COb!geve!D2RF*L$5IxbG4ah%)dXxADEz+8iti1zHS9-sTUFOu_z`$$1rC}A zfaZ}PrLX9!UO{I_tX_EjeVx(D*|VHP%bWS3`dxcFqhj4TaY*iAk720OQ&`GVAluWw z!V^BD1ZgiaYdsq5gghymqbnDJmf#ozDEu0&2g_7v4S|AqlyEx(PG(Z)=4=wR7Q`Vu z3ymR&<`MuJ1b%d;8j6Mk;{rF&+yNB$HtC9ck=bVekN^@y4@=uXqWyq7nVpBpk-6e& z4i4tnwqMSOr3u!|orurTZUeMShgkAkmBrw(Vrg_boUx;=+G{OLmN<|*iJg>2olO!y z1_I(+w7q};%N$VvT4Z#Dw=nDLF33r2Ru$304g*5n(cs>BSUrGohQx#*v&)g0c0^7z zUy0^{v?;m@PR@teCLfW+EQVm$(l-Mk}y;H)Asp~OJqw*(lTS<`4eo1^Gz z8&T%y0YM2*N5p9WEF{)=GRp-$iH?UuZO>jpQxvckr+vz*LXVaNphb^B*IKYwO{_Ji z1cIV<5t}%=AQD3b3ARaMLEt&#@$3RRJPtti3LN5s1bbzI9_*l)GNOJ);6#x`nx8^t zjA-IS0a0Mv8^bXqq@e5KB|GcA8W5c&Km{=>%Ryp*iAX|8$bC^!s2Jv$Fj9%tX&BOZ zVK4gy0C6WVAjrJ+7zCn4SV>2cr&W;$BqbInD21mh#Bpip(nz>bzj}nv=WwdDvGb5r zQEx_+Ti{Uu#(Io+0-4LPl_`n@S8B18y0{SpFm95R*E)GCNDNXyL$y2RBKn9Kl5AY=aEduehK8y#tYhlnL;(*CGZQB;6WKVIWH-NlW7B7sUzBr%EfX=xSx{5?6 zgAqB6>n8SgYY+nZ?RZLXh+9Av_r=>++>En`Uw4aV99-|{WQqr^Ff<7R9Do|L06NPh zcGDu!k|hQJiAf5ma@xw2yULD2d#xLqpA+~2IId(f+lQA}9$KiQ$6x>wixeJcNm3$8 zNSzV{Qx~+GR<6{wLgFRFe|YjgvQ`gRRLvv9@^FlK`0i7h0Px+O07)rC9BULBEP3~~ z%Bq6*Gskk42Yfg+sX`M!vR2awI}46mfqc2YM2&;QA~tZ*qFPC32H%Qy4FR-C(%PpI zP8dj0i5Nri4DA3C3|kaZzQ~)pU>QXK@&NHroMgku{cCaBQ2@GJ0!BxYKYw6s>P|x3 z5_}CWKN%;pMiT&CbvTcciH{R?z(b>Ok0k7aX$n(T-if?-2kMO|32<0DUS5F#>BKHu z6Xz@)FB_hL+}YaIN{T_by4pk%EO~*KN6eymDDylGcKGVp>~bJIiS6Qq5J3YV#Xalz zppBvdB3j_?XiF{e7gbg?F%v%yvY_rHCRhuH`Rne~HvxRDvbH*sKA2bDR|J?LG0ZT%`OpbrA>CLg1hPkv zFttkIz9dP9Cl3ITysMd$NOZbdcg}xMv-X%z49bDy%)|VD_s>I!2*UmT*P7sM-gw@6 z@$Nu2VGy>X!lX1tRO!R*)@xfI0h>5rJxH9%{Ok-wM+E3|mI)$Sv`OChm|xy6R#^e0 z@LR5JK~^;D`Ey@EM z7I(~xM#n5n{bZq%Cw`cJ?qB4kBdi6)wk|4+?!2847mMbON8Xzl)f$PnFBEKL(Q%(VScqj}bf@tBDBD022kdrjh z=Kv-cnLUq;lq191fGWAI@j;@L=H=hn+2RXpcMQfRR~8@$Jb(u@(BQ3k(;G~Bs(=Cj zqezNJgv;LOhu6^Jq!Bua_kjA}%p-%c(HHaI8y9u~oC}|qy$J+hJ(@qP;D1^pSV+=u z7KCB?SN`+ogjO8xuu_KvwR1sIZFqhSGP?trDf<=U=4(zg@!dIziGGm@HH748-Tf&< zDJb4?Hy6(%t6MH;ACcL;@Cvq)?_Mlxp>Nu>q@Tjgx=_*_CQ_+ux;ts(5%rR|AU7i_n^m(gt9v*YkRn&)kCvKPSfzWKptVZvG z-8ShDFHl|x$W8=6D@giUJ1iBu%x!p~db|Qr%F+6MFto54Gq#nS;nHq%osSC++`;@a zA1<{Rj(4<8$P=A_1f8{V4N|Y#CLq*XY$9rkua!Zx*yWD*Ib|pM@wVKCq!wN;AUluH zRiP@-D>Azj@akVo#*gV=lc)v(_NEiTsE*qWY?Rf zp)N$f$-3z3;OgCy3bN ziYN2t;RRuFf+!l5UP;Tamv;Wj8l0IMQT_H`ZfKtu!6)N;?Lxz z?viaT4eB!ck=Q8Z^#ec z;vT_U&i;Vw@&2W@B*I#R#afiqS(7Am>?L$WPyIwEX;d5(T|W7s%q$tKLSuRCn#Gf0 z9zspxL)N^G9)#iF^#`{nT9r{Pch&D3z;$L0w}nYg8_&CBk)pA+p)Obb$9pZ7C}a2e zSr{{G_jV>=>vL{@L&5nOTixa8$v7cc%kOnEe?72IC62!dZ}rkhB)&!2J^!|Ah{B7R z)vm+I@XYYLkZsNW@ZBbJ9g&6CFcH+1$G1L)ybAVvl}>vWMzb4+ zYrV0VB~O714fXuB%?Ike!mxkA$1}GCU%yjZr{Wts?UxDfiLQ6Xj0_wB>vtcibG^~x>AO{_n z5zX(=i&6kX)nMa)uF}j*d-ggMIx7n$KIVr!0dM$O{>k&z2aUm9ivGps!AAU0FLg^+ z-1G02-VqNewk-;b>I{qY$0vf5Mqf+aci#Bc{X|@+MiVjU%hdqCRwtQx0sSEa!1N^J z$-<5Jd+HxAx{22Z==AYUVA-s)s@nJSG-*e7(c*WEtTWsjp%s5Z!wC(xYylXSPAp4^ zu0L5Ar6ala3t3OL*}zD~V~3}l7ME4uJ|5gctiq%)vXi=iiMlgDeI@tPzn5u$F(j(7 zQ16Pjk-16&^}c^z-#V~WZs`uGD0`J(2HJKKzjr6>INB?X@`3sF)hFb4mS;=04JTLj z*7WIP2-3NAGIFf7vSb#Y(+)THM+6U%3Y3&1K~1t~Zfq9&?G1}&CFf+Ts*MVa)f;-@ za(h^t`1fz?^*8VR+mwq7#J`c-t3R&`kXbH%CHsBYzha^* zLWkx&F1zA6sE7+eqe2fx@38M!pfPdO za~DPrbF_9mv#<_=CsU;T5vP!OQ;EDQCPN65$f1_yZv6C;)mz&ySsvG)37s%d!rIzX zU&uICVCCK3acbsZ$w8wfnMIbbvC7w~b=y<<6^TEOcJ~d&gmlw4D~8vo)9Nw25T?^> zgD&kAyz*~zl6ORYq(j7;v(=yZ-DwQljZ2;Khd}exZkAXE>ge|g-`eMRP=gwJDXnCM zuDv{VdGw;#)m_llWAJk zT!t|TQDRZ@R1oAuNMUIJiPkwk*<}zlr2~fWNulyXQoQLsPFcH%yMju6O%te~kILyP zd;=nfsLjFFCWjF^uG>b4O1;|#u#~owenV~^l%+Gy>jh`J)UDvHGDeii8^&_qCC&@3V*0Qpi>s3gZRvQrL=Q8lxUuSGpi5j6d=5Wq<2P zp2@MF38EXfbMfc=W$#AN4|VW(dQdy1knte&rsJy|uKpX9eRk8nBW)|s{mF3qnZR!8 ziJ9ObGyB;GQ@#_kVe@JBKOg=ovv$|H0!OilWdBM&1H1@j1-_7iOmkzst9L!9uDwScF1!SXpG7bKdjxhp45XmGwn6o^{ zC7y%+F&-=&(3zjegF?-N*nU2iJ>pLfUwDk_F@^|4AF|H=TV18@tqP881Yi<4D(vSU zaMo0`gdLe5Vc;4t;crYbG08wMlhPoLa8YjWOvB`GG>_77&wPsrCH|hHW}m)hcHvoo zpt=jNUQgonFYYCO3uD+gte6=7)8!wwZ2K2O0r6mo(QFqksEE}#F^zdxibK3o?&^DL z*-q?<11-BNGIs-RKyT*|FO^EtVrnC?uw^GI_6VmVue7i{*okBQVTfmr+W}QX>Im!v z=!Bw@6K?Fk(mi!a;K@Ux#u;A$it*{!qKMIQlsJ(>R(K$akoG3HgAYEG#N&m2biJ1p z=|!TI9(7@DMkjFs|7pk0Amdf0@LW+=OwLjwP@Vv)JM4H6VviI}^BqlOnJP(^3?Knb z_9+6(iY>DAIxMkzHb|@YwXvIS;EOPQV1XPxhqMk{XAmbU&yrvyLCErsa#O?c=-nF? z2AepdL6QKIE%|xI2XeI6QnO9&t@jFPd-bsN0~kX{g-piDKp6odP-f{hb1oVz-Y%RD zHL>JpOYLBmqma$x0grjb@*f+)!BT8#`SX?tM`H>z zUej^Suz{E=Bw;ZWx@+|pZVl5_!wCnbkRuTWo{}QAKf1X>0T@PaNeHLt=zGG>qJXh$ zPEoUUM#L%TE#%<+^}~637gJrXz<^eEDvDzC*p&pB@Acw4egb=90OCz#F%%gRh70G0 z051ZL;1`lDvQa<*5d0~id7eJ_$jzHZt^*QcW%(?=h3A}wq-INm07nD$*QnJ`jk69ZZFqy%xFxJBZ<~1 zTA1G1h#;^gnFPRM9id1Ynmr7exp{{+q>GSJ$%*#XWu1;K=Hj9u8D4i?V1^>_wP6o% zT!-to&-ktbjsx0|{X}YlB24&8+5;T$#Rt6PAfD+)m##p(Wcsy149jS(j6xI+PiIMd z+SN;nvhz*|dNLszr5OhTJTWz-$I^4~uwOs=kqinOhMw{)#n3c33;Y)4h#RDV^G!~I z9ctdwci@b@hqDJdIC%)-0vsjiRsaFgsS&zQQ@U~#0%-A@HLSD& z@!IawcLk__Tj8cg-a+s*%3CfH5Obs>c7leuyW7RBRn!PqJ$8gRs(~blc-98k)4wV- zfOK@S0)PUJX{M?|ckS|HKja(A>-zQdDxs1Q-Gyp=^r}BgQ6ER-%AcR2(h$V`m z$4vxah`P4&tYf|F%mVN*FgMTjP2RAq7-Lk6;;EWM)M?T9$1_O%9PU015C@$&^^qkyZ4-0~O3AM5@TP(h>e zWBvy_QNXhOcW0#TF7T^J?-9+f&vL!HKgHMnD=Yddt!=)886BtxM1=v!@=p>`Z}EBA zUrSM3!n9b%rmp-p5+sV48a)Y;P?!RC`1XkNYjSAl8jf+8Ldkkvq-6qE!mj(senCls52c8%aY9)wiqyA2KtFDK z{ga^2JmLehJuRA-Z+>(^hIQsXkatjMa~@Q_+4HvS>`-P1fxB2{6u{^T={Q$ zz-b&2+9mrzMUHo!$XvG$hio4P{DQg>5!-DJ+wR`yWJD>En~#v1&^Jyue*?D9im ze)8<^x`jfqT3J1rSR{D#68#f-dcQ}L$CjHaX6a9a!zikESV>a zbv?yg8=SnGG@@4p-wm-uS{b!G`DR^cKRonqUzmgIB0x)KSx9C|-=fF~Gw+cY<0&V} zW*}EIw2%m0XN^`VDda+Pb-!m$U*o)y#RaeIt9R2e(h)I>yL2h&g^?kjlo9Kb`M9j| zyq?Qq1e_SBG&mk09*ty(LcW(I7RmvjOfpl2NPf}BjHsYCzP(HBRhQ@h_3pwAFc;QB zjA-|JCPx=ub5<}%#v}?*C3rs_LHbxe$T*6erw${bu1IJMmP&rNi5Kn$iUvuNThJm+3m0}N8-WU+-CqZ)= z6lA-eXO%I-fb4vi6=#3fYpwNsP*C!(X097na;b#YBb8TOmBvLE9c=FIli~G50poiL zV>qUeZk9DHA>OB>eCX-5%OE*GR-7U{4p0TIzDl;18IRXws#ddFRvRMhJxHU7LbRoUsmBTZ|6FH-? zavyOFPAMsf1^xvJ0!)T3pzE|`V5JlmXbWp17F>hmfVS||VXs09Swk!V1@rK_BB6aE z_n`@MDFxPyL2|Y7)Sww-fMqRcy8lS<9pSZ{SbY_ zU3xtvT^){Ig94&1to8&D=k{7Nqev`Ig!%pum0Wf!vv3UMK!NH}9$SE#_W}LpypRvs z?*0wNO|tbJETi3bR!b7Jg+kjx68s5RKA(ppD4gdme74B)bPBkiLhp&@J$7Mqq%gGL z7_>+{<1UOo2g@M`uv{dl%3PVCY`*Xql=6g^{2Szmh1gx9)4ES%O(XcigeIo9`8b^%W#nk$b852}WVR)80&sAmz*mU{)ADWQ@q^m~JlJow?S{evD8+J(9{nYN1aU0Wh1Zw&>04s^~yZq#5I5F#eyWS{5gzPd^1DNxXp$Vv(O>PXsj>Lp0O z5z;$+cs=(5q4FSr1mZ!`*-b+0!XnS=8Il3o924AiV=RuZ|05|rmqZ3ld?p%&K|06bQEwl8F9?Xe?HHjyAaJk50V=wGeNbldmM}+J_l~1m=yA*Zr+X|Mzm*#gN7HDK zKzumQkN-d)9u}WDKKozL^BFg-pcBeH>} z&m920^N$!7_@j;$5i~*zKI5iWQ(uu0E#ZPI^TI!0zXiJr^0*52V}kq1#;Uih6mWoo z&nJT~fJeD6Dt(IIKhMx4`L`n(>uy4FDfCp=AKc@^ELmuf6!e`{?Yq=@+8Devcv%q^ zr*zFj#6%aFVqZD(1c?@{>K3W8U=i-2F>0$R^#}R<*nXIh2Kf0RCKZrG1g>WyZY|Ss3^ynVo74vmo{%7{c1XWZ|s};G<81>b*ugc`s++& zlZLWSQg4c$m#sz=pNvP?P{3ED_@ac{^Kb%xOVIBNyAAbZM{0j(GQkUWb67`wC5OYC##eSv(HSUtQX;DJGl$jaV2h@hUGAhH<;x@1Lgyvn?i|PNe{>?{wAbGnl!TQl3C3M|v((cU zY1dY4zqwLcNavu=-!(;em-4CiAGxb2%9*D9DE(sPir7uAU!6=L>&972h#PIvw6r_g z7D`mj&AiXQmimRZTKRUDsE++kyA6wg$*|{u)th^_e9dEKhNPFjiZ_WO<1O8L$nyEa z5Bhp)XOz|uDtQu0d?&-gnqxPj$8Mf^;yjR}Fc0_WagQ_1-}pW+&4~xm6A!;mM4wII zH766IC#@vJo7$b8XinusPd&egNadeRy`FW{i2iX8;=4 zhJ|Iw-xm!g%4=L6l6$j8%AS`b(apgL%PtGJF)v*Z}#LL#0n8vMvGh!}h)&3lC;v z1Xq9;%N`?qA_iD^g~NmB*p!UqUbiGb*!lFj1SWq%ity=2Nz8YL}mEE3XrcI-2VN>H%xPtuDF zh81^sW5x1R&Hd?ddbVOf<{|A&Wa98A6J=AUTVGV|aDI=!(7j+BSu0QvJIUsbp44dE zo1STmTotSmbaIIs-8Y+>=wZgtxci?@3^?b>jTGDaYaPCfF#+}c7nkO$xa z)z{hY^aWgw4(QlTiLK1;eE$^T?0%AqOl~N(!wiK-V%FVEbVox*BI%_@9yxZ`Y6i59 ziHnc_=-B@r9TlnH?hfkL0$x#i!AVOA_Q(&l{?{i;NM=ps_wyl7u&X;@ zY^-f}Yw1|UBpBxF3gt^7D?!A9I&V>WK2a~RR zq!~pHJ?Lc!Fh@k-uCcsl`xWT@sk!0CEPAtx%|PHWy>$|wvly#Bn<3GrL?=BhVa1z9 z(#DaeWd=kY`1CVIeZp(SHYkz5vj8*0Y%J%ZC+R1nlyPgTMx0gq92G=+y#n{$|C_N# z=YZA@aU@yTA92-_&Db_`k@tjS#Z`NyhA`5^%HZzLW9-G+A^o-ek3;Qwx@nNk89giy z8HX%wZ*XR@Pf+_xH_5C*^~vngULoFNS20-HNEB7DaBoK!=cI;wJ9<)VDjIhbD0SD= z%R>+zaXK<@NyRP>u+pyW4X6n+*>dCu9?8XXMzrD6G1`hM_Na}WStZAa_gG}D zDrAv)_*>-*^rucg0N~Mv<00DRlqHw*mQi`{@8K&G3oqM0S%~lL<|>+q<|qw!eL*zZ zChTkTxU!oiewP7k;kOVf?~}M3h%&ng^KjSP#D5nbaqdT{(H#5fCkwArFPtW96}eWw zYDn=3cz?)ko)o~j{RI&a9a*=Nq)tnsWjmrkE;46aTs%qs`-$dI*5uGD^liYjm&%=Q$z@3l zdj3Xr=Xn?Hbh2^xej#^tNs&NhrQRRPT408h4K|ASc=C>D=E%|A$l_8(~{1s zg~8|BS7YhN;gQ3@! z?0-gU#c-$GDw-s9*SAC%7dU9b`#71vpOVvCdbFG4UZuksD#xyU1mIUhl8}7zx_lCt zJIu!|yrf_0L#VbqSQ&g39K_@i@5&Ov(x&cP3{E|+MB(4ZF(ZJM9P|rR7FrZup&0TM z5AKj%hU)8>841Tw+}IE>C-{SefRkO0rwBP_r4$ZbziURdOk%-+3Nf7d|Kj_*N9AK7G;A1 zKY0eDZla~+zMLhMTUvJIl;}qDtmExuUeJ!|^&G?OfC7^KK+K!gtm~R*b9W2JGqZ1O zY_@P2j_<+QYI76B6K>I8;lWJ=i!?*z!nKb6hMoIQh$f%93zHTJKx!bfEEofoHs5S9v0+CJ zWzQm|`}rt3pB@$ZeDBlMJ)DFrdCfbpt>%CMsoU?w&hZx4o~}3V z!VFuy+$UW#mgSa0d1$&6U>0%1&1XX@U&E5U7sOGAoaZ}Q0Jj5Q932>1kJO{4$y`e& z*K!7kqbAw3A^Yw3&D0$J=3~gJ)gJ3XPh?iv3mn6`a7zAH*aut)OUa`D;Ru+Lwc}%K zz{tSlix;xlO1bvbb_q7o(K;n5$f}2> znsj?WlD!kF_vekMD%(bVnM1P{3Q|;w?J`HnMqU&mW}NjT^ay)h>oGahcG0HfFtd6$ zMNUVUH$GRM+?$~v;%3nK)uc3_z+pS!(VfyO*FPphEBC7_+hS zvLv85<0Dbr8+`UbR9kThCuqmcYW4kRW}ZJNn!XxH7*rY{XFK>OA%+dUiRS#yJ@{5u z_R01LfgqS?W@aRZ+%>xfh@CDr`A7s>P=gZCnnEM~D&#y*)bey}uEG_L{NEny`)y4B z6XLH$wih2N{Oc&nAY{UlL*pNw5Nl5fYu@n<7h%zqbe?3qf=!==jK1akN9YegnUHA` zi4^F->45(lW!p8_0d_&;T7|vF)wX&?A*|1<2hXdIcP{FVh% z=8;j3xXex7{hvmR*P?g4M(gP2MM>OGUj^HSH)6ggFoTy>eH?c)?w^LXJNoo4h*xQ= z3AloN_C`>ZJ4#2T<2Fyhex5bjg%h8UL!4hbcW*`g4^Qm8fd`*0Hb*(VRf~w!F!iCp zvv7z&EFumIx1&JTLem`8l;w3n^4 zJhY7JhkK1Q!$X?9P++P+{D&db1P?7- z^9d#Tl;NRZHmsTt{lcZ3XG+!Yqu0BWUoq)(oWf!XrkID!6aIKv=ge(*$#F&?8AhN$ zJ&8~|Y=9>>#g~&-#uDk`A?Xz4c^u*uZ%0I3U|+RTcSGP)>;2oYDt%izxGj&}H4Y~H zJd<2%-367eafO$`xbr+@86Ler6z#%eYKh1X$mAHZkPd$;lzKjn0)Oe1{<6o+hs_A! zrqS`}J8bPx79x~a)LHGomoWV56uHkpdNAlD-&(uvp=^#i8Rk}aI#A4!1D^b@X!J~@ zsjOH#j+tnq_=gW)Rfp4gg~j*_K|nG!>;QRHC>s*MB^;ouKcF7B&4#Uu0&#G6bwt&V z(pM~xz0E3Rr7E$Pm3}TNtL-d~*TsHfA{Y4n77pG>wPKe%-9MxQlyX=R5g8=(4`C4& zXD>9=N?y?Pt7>G}^3OZ6q5cNYpR;AYBu0$THybM&xD}D`-X-p5`C>rjL`S7%Y3bSC z%F_DMOlNw@An}@lRyGrv&6bK`A@X>LT+*Hte%kUK@@u4yNw!S?;Dyutv~;eS=l;q~ zn&op)h4_WatNW@%-6U3C$GBNnm8*MvAzm|*5&urP_T66FXkOzVQ>!0z9Z{n78Fl?T z+vO8YJlp!}O;7CNjBVSa>kG+Pa32ZQC%CF7d+oTo^|KC_sF~t8RP};{YOS?e?4n}1 zu^zURwF<3P*{D`U*C_3(c?_!2il{kjTBDmUt&Ofiw$$vcboiUcG7d7X4X6#4qFZRy zN|e@GY}8tz>#TRx*&eL3kEnCZuXApxa~ZEYv{84YMY?{t(&}vuKB8Wl7Wj@;@3WD< zd8htlU%h{dSRlF~Afn+^enU9AA@E>B*my(4cztL~LkzkxA)+y1sey8^F@9HLcwb}s zQsZgGrc=KfGZh=pRyN37P<=ubJ-^X(K1KAxuI3BBnu-rJU-W4%N@*^yY-Wx(U)^Y~ zLbp^MY`%K1WdYw(SJ_e%(bBTi(pD*GZtQEhuGrdspta&xOSeyRXJu;-y5)Sngv!$O z!OE+bhH6Ih+a9&FO^mlqZnRCKZ_NCvemvu`KcbfCQ~NZ(*0l15iDIB-#0~Vf8?lQw zRyJx^Q;gpoFnQf~<85F2(t&nU#rF5VYS;5`d``LXE&t})QtkRu`}}zOR;BWPzivX5 z*c%7gU>9i=rtZH=_NCIRv%5N^TsmYTJLC#F6qIVDUtd!E(4mUyRMYF!m}pZ-sn<4B z@Hp5O+uPZqTmR3yZChp-Yv(@S@_lz}P0Z?zpLZHp1vNEy8BBB?MRyTXyB&Ua z?Y-M=f49r|clWVzb^Tqngx{SL62+YZ0#9qSx!*+Kj|fA5rQ75Wih;jx{W@?v%=dP% zFMB!V_D1Dx%H7)$&u?!k-ue6Mc8KqZeaAf3ZpoStiAPA#)oJFnYDwWTfgKM9T8eZBQANpWL6dltkSCi=1+JubN% zeX=Ef$xLjHE%u$QQ!^pNl=MBn+&8+|*H&dRnw5oKLD2b_S6J~mUhgKh?;HDW|3u$` zUw07-{ahExix}}Wyx1ZS;X;IHpcuu!HoTP?0( zEmf;@FFf04ptdUPQb#^s5r!KOxk8Wu(`5~Z|Bmu`{ca6gtp(% z<@kHGvHrjLqW5vg84@BK3$?}$8&KeDT-r?ea9ZT(>M6tQ5IwDJdSpCuMP?-WXdmRl z(79IeS2(d*oLB)D5e^I=c?`XcSIKOY_0u2NEgJ@9+h}y!C=#{F%45z?`i$#`$23${ zabhc2(MMRAH6VcPkbwkH#l8?#i04K(Tn-2PCo)YDb0Gr*RMDPOh1Gu6GZTunwBem< zVnT5fn1~=@q3$gB84k#kBD#qe7dP_HpHM7cS1dgRgOhcK{S0N{?*#?Tp3aQOJsm3egkC=!w&bT!e<^o{mF5Cl2 z-CH;J=xtN(3WLG;qUtJkU^kC$&qqbSX=5XF zU$Is0*$&fIA~z_<|P4%pw;6kX#7 zfFa^?#$s24u49cCRV|*%*gZWyUMyZa?6WME87jF-75hkjzRncMq@s@D7u=O$xk4or z4{{QJppP%2B)N1VTKo+l{!o3SaH8VWC0HYCOuyvBg3&U zx2Ttoc$j0r@G**hE*CjXo&2OHnfc@T_>8;@5daR|n>%4rCY@H*sr!Q^5WjswjB^O# z#}rv*jh$bfBLTy1Op#nB0#6dA_VAaxMaRj*k~T@|v8oo`PjEHh=E+x;Sq3g`T0Wgx z>m*(>35IPS2V+IsiHKw-A{qsBJ$<=n=Y&&OlhCTj>gb-TUv47_bNU#7BEKBIj`>kl` zTZ!GctMxCelVOr=CiaaizD^c8-;ue*^+&k%eMP7Wra)wjIev48=nD4rN&b)}3AP7^ zd`A*jo)uSKvBm8v@2q+6q=8LW5#L%+TE~eLU`1D{LYRmO_G-t!jYs@Bi9?784$Kk@ ziC~G$XlL^&rIxc@tEV?BzNk-pvfLLSxlR=;V2T`VhtHmVlSUO$i1|Fl6e-vo!T*Jw z;X@;EA}Z^P6vAWNHU8zS%?h*LHT>!d@!0xRgga$5yM6T$_JhwRm-}(V{Sz#cBsPWF zJZ0;n`{2t5DM>y{JaxBA*X0BBVw* z&_#T8_FDYHVt6RYGD<2i8;+&_5}%3-G>)GA_+lOmFg(?j{n-@>+6u+8D|6Yn- z_oA>&WsKmm=SIOf)RfaHsCD{H+Pw_u9cL zY?9aa@)y}2CSp7N7Wn}~c}j`WkuiS#HS6aBYNTLj7ZGcbL;kX&-o~-U<*No4;p6Xh zEPLdioSj~GOBaruo!I{B0C)UniFPV|4PQtX{L0y9LP>IrU#s}{dw8Xa8Y8H4$!Hj; zh&rW1=$F8MzJ5&!^5fg{PQja8!`dg9gD0E(w^FyaRtL+kNuTUb`u*Lx{i61HX?eet zTIGv)&~Am;A!~=7vvu1jwCZ|=gKFC!+9BN^NcV{=Dv3!08aYMsf%Nn>)0&cJoT>o& zGL#g8k_$;%F+C9?AB>XC#l!VLh1LP1Nq)hv3#AgJ0rQ-`ctcxSMce6(#N0gcAVT`WnpyBG1SH4xw=?|SR!V3v2cS7l`jlHAS!7*gNPoXa{Fep zXpH<@co2Mc6>b%>9jYQH+2L3$1%EgqD(3%_o~Kc2um;!r_kJ~7E6Oc|p?2o?sAJH- zhwoHR9p;2!n(yCz-6Y6R40t`Jv{BVktCM`*(1n~Oa~t1LvN3xt^_sJT=)NA3hD7|b zH9{r$m($M5$PQ6W(I@(tmBs`7Y{X5>y{HzJXz2QI{_g%jxl6taz10$_rwLiCbjg`h zGjBL%-?DD}>#)y>`D6Oc@t7dF!70^mao{>39nY<@UmLedXk-*iq%EaKpDgw&3tuQKSAFPq2xb&5k{Bek!ML8_jju;m%ns*-B5me1*472qe<;=k8R;R# zZ~RTfl4I`EzP*bPbXYDm?g(Es_(KUFZhqr)Qsm)N<0~qKD_SSHy`$s~#X+W8*5u{t zl8m))L3E$0bVNkz(J(t|!lnQI9 zhJPnK#Cf&0R=;BHb|t^JSV8SY5iyt7hY<&6#r2r&ay~)hd;KV)FT6)J(6;g;MHC?- z@)Xk7YwEz!(BhVG{h01%f7BsD#RqTX{*1^;9{*u+Qrnvy>rT1b=VD9DuQXsQ_%=uC zgw@sZVCXLMd_fd%!BqO~h_VieW)9^tr1a4+I@@tCiJfgC+*(^qTEf0$?BDc~OYKGZ3m_SH7$ zM=#yDB!C4CXcZ3$%X00F46ix}CVs zJE;$vVf**a9Z~zaW%GzPWc0{uC=)D!bk!fkgfncUMcl-`_iChq@qy8~UCJSwv4nGH zu1mZSly{`rd?p~?%8z6Ymh#Tz9Qkc7HgaZ|^oIEL+I*ePzMDTPYbjki4#{d(nimUC z&DDvOMA<6N_8!)?Qxh+{J8HIVZTCz+SMM8T-Ekwxq|z`)|7HC8;gj24>2q1d))qRR zg|^u0kjJTVQoC#}j~`jLKT;`Ezkx#KxnVy+cKl+G?zhU%o7U7(&^54i{lbGyXwpJ| zB!%1L>vVs&Gir(Z^agqT?D3)t+~TCw&=W7D?zO;gr@VN)!{kncc;y${9qXha!?yX$ z!Cz_Gg#V_){o)$c`pT|-8!ES>LEKVPJZoythY?-O+;Y<|b+?K(kx%^Y$lj%?2KBB^ z7g@V6NL^P~yw4v#okkO}{aP(%WMro@$IscTKcM`LrE7OVU4Gr(r0;B%yI;A{aot1j z{qE1UzU*3}K31J@JlMm(kb+vyo{hZSC z;pF?*XWRd+-W)-S@V@L!@=E^}X(RRJ&go5vmH#hf{MG=ksCWM$dX4`Q|L1k#U(q4? zLvEEJEb4$J>ffIXn#5?7*984uWdVAo;(*~+~_?S84_Rh z;!g-+RNy@o-w=QG)45Rdciz*f4qfM0M?;ASA8yvpGu5JLVRm<(O=yIisa5$K=H%!z zd$Hk6{qD4I*U+V6f6w6k7KeO}r1o_wqW4{Fl#IB=*`BNS+}G^(*Tm!QfvScbQ>}kN z8^_-$&i9G!yJ`O-BC7Miqo$$+c7{b%K-Sa6F3*G;@fJS5f)w@2hQwPp(xRh6eV;$i zJ!9YVH=08CU4FCEq(L_>(4f)xg{M~R(SSkjgODHnRSiFmez1svJIcKJz2`^$H6>!0!ff)Aqs8c-3dfT#XTHX)460@ujVN8hL&OMF0MH>mL*Wx4VMLfM(pHCOP@LF3 zsJD3|=>=;~LjPGp?MtO8%(LfWr+NYq$~pirm7WA4umHHc8K8UwB4spb$g@KA9c4&Thq66uMuq5; z1(}K>vFWx=578#u0PL}UA|OwO$M!fJKmGD**~ycFqc9h%q!=;BZBU1vFg>H~m4}{W z!o!`g@N@8RLblO12!*p;`As$Az|&dgpq>Maup57W6Bk$VD}sc5;cOK=uxey3!v#C) z&|$8*5ly+#%!d(JdR&F97uFns@1Ok*m~6v8qXvYrP9E4=1A3`8?B?0+91WuNYCKgV zEIV8Rp|G4AJ(jE2Js{t0eU^;y;%16t?+-%&8Tst^v1_@QLJhw`vRfJM3ViprC4^`# z$_57sXW1ek!b_so2QAvHCrlAhNf4O|+j%3ZYEyP6mZ~XnIRlv^C1B^=_^@|>+tARu zd3qSaVjBQI26iXq#>*qlFmrdk&DH;CtKUBm(PN$LMUUY_WXb09@qk`ZE=R|vP7?41 zs3%#wUH%OJAh!tHZD6wb!f(5H0zClui`A@oZ}^h)951@w44!pYQZWCF18 z+H;e+qi`lm1)yqhGmnPbk^LM8bTILYnJW6`h$QeSr;%6!LQ$O_I_DVvHaFaL_?v-H zTTYMPhMVy0UPGuVL?oMxyqN?>1ArJ2>qoWq;`S?+BO2@sFv|e{5e;6T9iY2 z_drR%%}EM9!Hb^GFpEk8cSu>Hld_EZJ35=7fPf0yH{^7^pYfVN$1}#dYNw{^J5plfS664_rFV%BYdh3<@2g#tP8h}cN6a6dQ0iYh_p1*GHayb5i0^uHb z5fp&jRaZe*s2MoD4o_bmEpg3_!_#9jT`~xC!WnZgi)sr@=4Oc>ZYEL^Yo~@@pRw#F>Q5f^H%;+(BqN*u?+0E zim|yIGN;YA*xXram$7qtaBdWld99a#{RzJ;{a6JL$Hb2LfT*O3p_6%&i&0e?)CXX4 zCOf=6ZMHa-DSI(2CyERY!O@8Vwsj(&9xE??PNEW~o~Ipp z|7Vy+g3I8{7R)AN`u5#%*FVdoE7&0RHNhjTnc?pTQYi+V6sQcr0>RI^<;A!yaaRGK z8$-EQyL4pK81qQkOiUhHo>EOCVa_oTz%p2!ooR&4RJB3KotHi9H8gb~KT^lB+bk=2 zjGIY9`Vzo4TZr8~a(|`WT+U=m!l+VB*=ZG~jqB*-B#11Ny6^-nNde>t*)j5nv+^Fv z+lKM-;HO5wZUQ22TgfkYw(Aew8h5Y540K|#Pp)RS@K07|2_<_}Z9*2l6i{E!3Bi-J z$M>`t(Y1&V0|nMpvUA*>~!R*8J1!%1AHf9Ju+O^75cW^Dkjdj5eC(v5oWXik$@r_$r&zjnsH=z|Q?g-pO$c|@`h zDJUR8P)_EEF)E&vTU6hi;$-Sb1YuON)y%yK^@oFusT%8wpP+rDQuSW@>XG zxUXJitq9M3Q!3K;bApF5V0A;so@39^$F4j!;!XU6TuIr6I|}#P7r_=>SYjA7h*%lP zq!*8wcXAKP@*aY@nK5IYjbTo>-wbt;f?U7p?A83-GkcdsujIMAy`h{a&v|i^dE?~? zzma2ww8hfFNS7eWvlbVIbub9c1VnjM6$ZotpL@rn?R!MK>rn4*-1x(}tUrQy#!+9) zoMPt^Q7)IEQ?TBxCRO-M^72=i*)O|aY7F+`D;}*CEUymqrjX$HI>73$2f{1Ui0V_k zDpj3%H>C+GN32;hj8dpIU0saYKY&5?IeEz*{jp zhMP%NWSB6rZuP+Bb|QB^qp1-f<;vos-x)Od26o4*0Ph37gcGkds0zrOs=?kwWR3;} zKyZ&D7HQVl`Wqhkv0K-YS^eQ`@ZSW$gg|deWppM%AW8Dylo_EsK!)s*>jg%z$~7<3 zOjaaNAW|7w;z?jDK~k1N4=r%#_>L!*-B7x#Lpt{Ki$+1})984!FORK3UoTLfDUQ=DnOruE1 zEaoR8TNJpE)C$XtB#5&7``u2j@j$f_^Ys@2ujyc7wp2xKablMLPR7Re{MLzgyDsdG zPs;Lr)_L7#WTcE(tGMhU8;u$*VaJXxF^NaVDDo)w9^5E1av0IjoLp}xJET@bLtEg@2 z{MM1`oe}yo*ODvXpKUDwzFiPD=;6J-v+EMO$FzDhAD&%*dym{d|Jx}(4AIG%rxEB1 zSXf2{d|9nZ`r3I*|8RODEoq%Tqsvf8f@B~eGJJ%fJF=Y9`0IdElpqV`#B62R4tGeR}^)9_(aKJ2`ypOS*VV(6r<-ZQ#}^ z*+sBp1tKF1k#!F2DDUfSnV-1cr^cO|H=~VB_BTc%ZzUBNErQR(qh3-i^j?9b*I}sy z`WPl_Hz7-bhr=AW=SY2`b8g=f zs`B6FhpxwgoMMkiQbm{Oc40M{%&PL1a8OgQ6*)*uwMc1^=XxJ5N2WzNz+@@3cg*W| zw(87Yo(3(_h*s}yw}E4gTeen(MP7EmD@#X0Cd2q{#|Lk5=UF@@%Lob4lh2gezCY`0 zA)AyH$-h?Bs^lJ;f58$W(<5Is&W{-bq#ueiOhMf_+1?B9`d&$o(oyR}_~_zR?c?3y&qJ{uF4GQ#MW)84o;hz-z?b`l`Kjp&3uN z-u_QBJjJWa$(K1zYsyy8u8QGiO*=?*ZY?YL{(6V=FTI28q%^Yv+r7VMX@y#Do8L=_ zF<<>}48IMVpE~eq=9HS~ezmk7&yy!lJ|^Xe{^4ZkCam!$E6+c!LO(j0s@I!1A5vTw zj1Iz@&+6T4_%ts4)m=8&qrOTkoyVa(-dp7(Uas{m65;vY)U>j)q(qPLET(u~b>UdR z-}>jG>!!WyEotL-wrBvR!7N;0_V*+sOS=M;Aon=?j5&h$29N*sDH7pO`21gF%j;0b zZ-Nc8ADO>feGf#jbFNO*s**smUKfM_3==2lDdzpN6-)Jl=HCPN-1_`)QjZi1lc28C z#Z|2`|A|$4gt*G-pBTCS^Mf{#_#pk;#vx6@1@#97k|voVx^bG1N_HNpacz#%nz*#* z9IMfv>pDe!{9@1Tjz`3#Hs7H#e32YeA{?>GibU!&FshK%LiHF zd(+L6*LMl3kK9bR`2BtJ)nM`749ma2zJGo*eKW&K@bBNV)}u4l5HT+~8uWW`8G!h8 z5$7p#plQwy>#6lR6X7uSBu7MXjBIx%dAr&}EpbeZu_I(#BIocSMnH~YdlR`(JjH8; zwm-L`B*5&;Vr{V%SfP$-yO!`W!%_WmU5Sg~v$~5%21YANJ>0#uoE#5BS%6Pmum2_g z)2NX0jWp+wiZ5lT)r;XZqia^D2a-clVv9^0uSCCWZn*0Cn^(cG}o60RyH?O#Vs{AUe8o)X{s&pX=!e(scdO!?ObYUy*Z%R z+SWDe(|Y61N@Z*N-7ib6Hy?nN+Sr4VzHJ?&>Q!x>6Nb;*x~6TEZgf9!_q}mzA+YMk z?dNgNZ`^s6snp){ro^|s_gzg@d*6r7=k0et4=CO2|8Lg!=Di;)RX6Yd{_;G=&kn52 z=0K$U@DKlO?2_0&ZvKQlC~m9VF(l>T*D)*?bfsfNDSo+QR5eSvb47swk$3@ygg4itSe&sQeI);V94LH(1WoaT+^sEALQId?To78=BCEI;aMoW4%X ziu?F8xPe=1+~EdLyPKcn?3KDC&DPo&43~JpNEt69%eS5wT!KcHe0+EkjF9=Wla~ve zmG#I^TPk5;WRO25UrgK~Yvn9T#$kEWtWKKO@BA`7{9{f`2ue|d)zcX$OEUNuq>pc0 zt@`&}VNzZ`;O%siMatpH1F!GTLqvnkU-aF!(L2BYe%Ie#{O4B|t1Ga>{XCI^EYAVi zq^Yx8@8rsD1wUi7-o0O>dA6DC`#rNUZ+2WT?cJIBFnxWd5vuyH|HnJGle6j57w@J0 zuKfJr`jH0@GA{mu>agO)KAG^S0<9)qrpW$vUKZ9t=XJKUXV~i;`4A!7S2=P0H653$ zv%=846tJXnFK0D{Sr zIENy4lxZKiRbj)uTq9dwJ)KctpKEzX+nSMYhr(a~qf2DL4$XSh z%gqds_UNgr0nIy3fHyK2xN4B~C8mIbt!|-qqSax`@7E5qbh+3EsS&u3O9-}&5`TDb&x!-!;ovU4Hz7%DhU#J=C z@G>#%bO)HGzH4vsKTlULuJPMkEwIyEJIsS`Z?)pC>TFz z$b6vb)$ZFRxsKZSBrpsBrYOknxD+cssxSe`ki&51}W&xeX&V+mp(HA#tn23 z+qj0!frWDey+qBLX1yok)d50AUd~ZaswSGrtq@=!+LE=M0EpNSFHZh~PjH+A~T$1Y!!8tUii$XX?uATgn!dvd=$cyo-u@&y$vl%in!^OMU;` zirjp*eI~I(+HQGP+QYixkaC`jUuU*x{86+nI@k>-l*5T~#mU>y=BxvQ)L zx6^2@Wyq0fKHtPhHh0nwbkl?u4VAziuBhdmb#mPmd<69Itr*Nk6OM8Nh*9I}O34y- zhYZzOKC2#Mb`u9D86}Y9Q`Tp6C6D#QmGyUHVN^qnEb0I9<FwiqP zy`UG#<%nBRwK9haAgW`)*CIC?dfR{3{?yHwSv{M+Y-o4MDqv-Qq_msoz>KE-<3=DO zVkWBsTq$*M)ltPJzi8J`vv`M^acK5jt)H_NPCFAQ!#czOC)n(|uN7Sg4R3RpHNpNA zydTr(mT^9DzH zdy#(F%k~+zFUDoln&?)$mx?1D#?L7R8|}$_TO*YgB{mUHpc_% zuO9F|c$jq&5E(C3Gozh?-+Lm*^aT*h&EW|e`%>%%)KjhyMzcJ<_f%_wrl6 zZi)02-v5{hmb;+ylnjul7M%BS?y>+rYV~b|@9(9>#4m<L`qp?q3}uWEb@{ z634GDhP?lH?A&+h=bjBFi1{AnY=|P6X?^7f#}H4{P>yN<@TD9>tWKbKq5Mcz4yVAc zi3%7J;FnQUdXTWouefNtXM?-8kB0^VbVjOCY#{m%YZ@%T$BUH^QT|K?O4*3pFySy@ zrvnBwc?8tJ1;`ahmPC2&z=JaGsxuxe63H5_)!4nY|1M3g6v)vkx&RTH2_*_@A2O}l za{{H`U;r-;{+}P9&F~ZLwaK0VI5Z18^>HZvu9jyOHDeqRO+3gKWU4*E| z;j;EINU$`q#g)SxhTl20tBxx!aAB*<-p)*r4u!#3&=NL)!J*{dL0<##$KTJ*IBJLCg8TUymQt}v+>j)0 zMk|0miU1Ty=WuwD-J`Lah>Y+?4p4QZElDZ;jDKJx`zY0Ae)`GkX}L(`Lkxq zC8Ha(&+WUE8_|;+L2y1zaP9`s#ySv5rhAX0l~s0X-yPb&AGztK80TyfmjRZCx3AgslSC+Y7};aVxA^3IBsh|p zWnz-t&!xwO#R^w?j5*1p{Ez@PA)c8QJ;Es5PAg>!J53b%CR*8T^i@7h9}=rMhPfoA zf1i-tk{FrY!#K*1%jcj=@gj!8TTU`>prC}_?j$;Nax66PEUFv~_ggQ(0qN91%yllx z_7Z;YNK_;x-M$pv%RyRJKt}PXeirOgBhqa#_6nF>S&CyRZ;svIq-r_Uv|5|Ff#+Uo{WeKxFfRd(P6O`DtGACG#WE z&6LvVQKY~#K@5wEve8&|y?~ z<7KqtFq(0^@Zv&-`wyBTzXC>ubIHd4sff>ch#ngt0gs6O4k3hT){#UkFH(oG7;SFo zAUiO7{d(`S;QOWx>b<#a?Ns@^VCS9CTfEdLq}ygAk2zU)laEE_lqosM|JZK`8bs)Q6fua{TuKirtI>&+_Xakk$vmH zK_X0nd3h8c1#^O_617Y4=hGY@VnjwhKi^vt(@)*`?MIp$99)7;2!>xi$|w6BOeoiY z*x*0`CL-CjFmp!+D%^XIoW3#-y0$B#pU=7$e_1$N#QD(xHe-hqoa5G8rE#Y}n;WVp_O*sZ&M%sd%gxkTx_ z+lRi+t1jg?M>{~Aw>$Nvx_YUYQc?l31*ATn4kJ=0bRx>Joh?{KB)8zwW$34asOMqb zP$J~`0g)vgXm6Zxh_8skSaLTJwcLVKVbnf$On3B1yy+GEcYn0t7aQu^n^6%>l5PvH zq^pve^>3ja)Em^3(a!Q|S9O^i$b@(z?CP^PJ$RaZ9lDu(>!#ktyLdC7=Jfl=^G=da zU%=b6aWJ>2@U{Z@EpEngP+ufaeua#_MQOXh@%EO-*q=EQNy2pSQGb!}cw#F-@ph{q zweK$WXbbCNJnQ;hY)TjwC2EK1Cf&uoXK_tXz4-oNUraC0u7?#q{QEA86>;GJYE71K z>Oak>y1+ti>C|n6ln>_2yReye*Poh2_mJ}b`qFv}kfS5W_i_Y$9lDhyQtb#k$vxdl zZjnlAlkg>_pM=0rF1&GobpO)C{-p14zzEwWbH08pyoBoYfJP?9 zKh*rWJ-U~gQ6ht>qoBtfF$9}p|2vo-u7&$!wEw$=X9v;#QQ7@O%;C3o4h&4xTY4ik z!@EUD+!%6k^_+9*3yvD;V4?{%=mu>5vMok$=!Emf1bgWLTL;V~YS&4DANmSaqYgVT zOd9qsxV^A3+GR9&dVQ!LXVbtMl0lBzcaKs1L>vatdrF6W|77?#j+o|W$ROQX*r?j5 z?CWKt)V5)@54q2l2K)5~v9Q51DEfH?WFt2fL%C7Tb`4e>t>ZrSP%iPFeSDQ=?a-;A zSa;<&!8=g-=tbDLlj|h+idI-@mUoHPlYPU_T|Fm7#-BD=zdVNyJ8D;d4n1W)J->gF zFl+zCeA-=e`ibB8itF@G<)iZ=)84HS01Fvd6+IJ$dR{pFz0kqlaPsu7sqH@#n^98> z{T_a1Du@rjMaTzXSVwXdeOCPS5#+Fzb?Xe5QCGVg9NfAqw>XWG2i`T6HZL*reY zo6pWUM$hpt%?F=&8gj$6-&u2N_?#pYq>*IfX+9fw@9|XOWPI8}($$5%e)|P&3r{a; zT_U3z0Q>Y4i@8^$i7(1Zx`3$=l*s<4^z#cxzF28UKf9FnY<~Z6#fz#oj)QG3M!)}A z&H07Y)}V|C=q z^9gTfM~mfNPWIDh z&(}WAt-Y{!EE}EdANlndV={Q*wG8I4yYrKNW;q458Hv75u0CvcwgW%e7>YWyHs8S> zXe>vU3t#)SyFl&MlQKnk&FM*VE?1v-sh+1Dg+6RoUw+E`Dru>KRM3g)YvdjJb7OkV z72`jN61;ev?5YX=$1~R-ZedwZmA!&5UFQ(bVvB0;Yu>$g;$@A+@&nVi4ttgajTZyw z{d@Uu?Z3V~UE5U~!a0KlO9#T>eZY}Qy$3Mby6&ccK|hadO8SVw)l9oUFhuZS zVyk`W2@Vs2V?v{qax`&}sl<}68jyJEMqj$kV+7cS{i+>o$`)MKM2?yFSzAN8RRXxziWM*Sg9HY+#*ICo;Iwx-Ime! zbQbkl`cYKOh#`h|_OLkk7Pf6~q&8MgEVi`+z{bYuoUoLK6e{&DJ8L_>0aDqI%rlB@ zw38X53~KEqC>1_28uCLv?~cn$lj}drCtvq-kZ%$2CE^`iQ_%dcG)u_k*3`()I?2zb zkm5gz+@6-SwU&wZU^*OuBg~8jVqO@<*yTaXsk79Vgp20hRS(8NkyjatB=eiMzo+d- z6fcAv#3PKc`bivNRTf*%g1r^c5!DL>)dz?Zm-*DpUq?wds-K0NCm4uM_b&x4+Eq)*Fmr(AU~-_qDtTuVX`86o`rA_cC>rZZU}i)1&q-&)g=Mq#{Nse z0A(g`hOG>Q@$yfNOYe4viSOD)B+gV;}4t=-}QL9C9wyIe*{zXjCXW z;?!;&w#SR0uwM{a4I)x+N?ohBP6Gipk~*YTn;nkV{C>u*O_tqE@qLT}6gtsJg?k~! zD4)COSf)XtWRvDY`qp6=;!S`1qxs`CcBqOs-#*B>j^}KZgaVlE>K(bL*^!IEAm9q2 z;l{De@oE4a_$XhppZGkhEFc)iqaX9K#sKDMeU{}tCm^@%VlZ*6)Z^&GkC3b(Uzqs! zbf=b)3N&%(9t`W9Qvya&zy`oI9S56T#Dd`S%UnW;Hg`h1v(k4;20ZL>E6jM!|%E}auqR0Gy;9X_d%2b1&b zd3)P8=6Jv1^4j_?F?R%sgf>9=4cR{5H~i)l1H2zIxYL_OgI74qUpPFyUDSLYey;l2 zsS+oryc}5{%b#^efC?@PxWA#rIe%pX*;)h@BFDTRC=caaI;5@1dxF7K(B{P6ad#T* z9FS;}bztv9nMWsiYstzQeJJhog^#|q5OO#A&Z}IrO)rKS910QXX%==|*DjQ+K86e* z`cIv92xiP(eBV$_@3phRqbESc`^dkmar~&KHI@D%?;1eAlSD8S{BmpjP-l0LDN$ zzwA0@bLxQUUx<1VI2xFT5`OC$Fu)KN^#H&CV1PyvNJE@e@PapmDGUgB1d4>2;{OxC z*h66+!wU(a!2mVl92$VpBMlVBCN(KQ$VQer0PG#nUm;)tqQ3_L#0)#mz9xrx51wxi07Lmw74ir(GU4TIdzW+o+NffdR zGz?OOpV&%f2%v;WI6($VU<55L5x6<@k_Jjh8`)G?!V*iZ z>}5?_7tPYevK(zlCqR1%vav$69IfM5JFyD8q=JrG*##qnsuvX&hc2r9Dk)NXiPLt% z5|^MO*?j9px{$&Wx;5=*Z|mFBlC8AEM*S_^78%A^nA^py;ziHD7*f^j88O(tfz-5Kn z{<}6i(oYpSd+>wPM#s0&MQ60=gc44JDR)jPsKc+8^$^VuMk&czZNCtA0U5sP? zGDMD7#&VXsg^|=QRm)!n7ftH|U;SCRTjV;fNx{74FU!}>Z-(<89TI0c-`2TsUT>ZC z99cH^+0TClbf5)2XhIj-(1%8Jq7}VpMmO5gkA`%lB|T|MSK88-j>y?Gy=hK&+S8u~ zb*M$H99Ghz)TcIes!_daRkxbeuXc5;VLfYE*P7P1wso#?y=z_fn%BSfb+Caw>|TFj zJjVtFvXz}|W-r^>&4%`~r5$Z*Putqn#`d+foo#M!+uPj+_qW9zZgP*?+}Tb?y4AgI zcDLKz?}m50EW^+u#4*_df(aaQ}iA+~5aCc)}IFaE3SB;SYy+ z#0xF}hYNt>1HZV$HNJ64^{}5auv#;Lvw>LWNb-#Pw_y6Aay~lm0;ZfBfaY z`S#b}{`bd!{`J5A+t1(s{|CSTEIa-qzydVD1MEEWQ@{mezy@@{2ZX=~ltAfAxU;i3 z0mQ%z)IiCLz5!&p2?W6q6u}WB!4jOnrYktI6M%j&!4`DE7lgqWoItTdIl_~{8^pmJ z)Il6XL7Usb9}Gc*1HvIR!5$PmB1FOkv_a@w!X$LU1~fvad%`IMzbI@vD#Ststhg-X z!t1j_lWW2*6vON@xUw6=F=RmtWWh6J!~f}HyEa6_u3JH|TR}Lq!wU>Ml)FPN#5g9* zxINs%Ed)d=?8E3Q#6e_3K}19+oH#HvxkXIG6jVV-9KtjNyE(i>O3cEs(?d-}LY!MU zPwYZP6vZ9S|q|UoJ3vJK{=#DU;IH% zTsmR=#EZj4V>HEvQ^sRV#%6RyW{gE>l)+o1#%i>>Yt+VV#6`Q~#&2xKQ(QU(BuB#= zJX!?DbX3KI+rV~o$9H_aa+Jq;q{n)+$9u%beALH%zBN?I zImAP{Gs%}+K(oWd)`Q8K9KWP{Mw`@0?nAnr^hxa#N1n^cpCroZ>&c=-O6ohxq-4sL z+&zwrNbQTt>;pz%tiz@pL7X(o59CQ?#J*P~!&kIMLwrUXG)t@u!lm>>Ed)vw97+lt zytP!yKSV_^L`x9#y{mLeGvvNZq`t5NNxpQ$w7W|Q)Ji{$xN{UjR18I&>p`*D!KlDl_jKa0F!d!&RL!7w4t4zx@I;C_($1Kfa6vDlGI>vm=x-?5r zl+4xa%+nmd-_y&Kz?yv@lJ%jINEw+zk9R7OY}OHti1Xx&(yR&BYe7C{7$i?K`wG#&kgNP zuVhU41WyB{&E{-G3Jt%WjK%Pb%=HYq5d}+FygKQOO%v_D;_FS1Buvc%PPN-l!lcoW z?7bV!&;L}(Nt{T)m*cR9Lqz!Q0vsi_+-?uEV=?U)JT=Zi#a-V&_Bi1T1`}04bxv0#aNZqw?u5x!hJn>{gm<)?p3TK(tnvYu0nE z)~I7wUtHFAy;R=BPkAj?W3|_O)z^LH*M6nWMNLoDoYnK}L@d=z`7BL>Jy?VFRfTO> zhBeoK-O7Q5SpR^PLWfP*iXGOAT~LZeSb+7{A01bMBw2Ly&4fhRl+D104cV4;*_Vac zn5EH4m03vSJ(jH5Hf&Yo%h@(mx}Jr@p9NZ-Exv!K*P+EirPEZTox+ioIZHfMrv1b? zm0B*u)TRAIe!vH#)Y|Ri2Y!gauPsb>?bti5)C)~UDm_{^#KWjf$-Xqdt%W|Y-N~*K zI5iDbBJEVSWm{HtSOGW(dsxkV*oSzS1wd#9!WB4w_ydtfnc}?eSqA15P&W)fo6z@eVAMUpj(Uchj_3D8?b?Tum=I~2YkSXj?@Qz z7zZ{8fCLa<@tuGT5CD6a+=#5*+ckkdum@@YgkY!#eP{+gpoVd%hkdX(?d1nK6kD-n z$ep#kyY)H(7ETKUzvUaa?hS?_C|`ohTz?n`GT?z=s9l09gBDO;#%0le@CU+m-V&AE z_nn1VD1!&+f}Y}pihT%-R!)=5A8k` zy+Y{Qhkp126PSVuxZm0p0BT?ZI|zm@=z(Bh2ODMsLTH9ENZ#Gmhj^fdM@U@nE#Y{8 zg#THvxN&%dF0g}f;0MWtUc!xsKUe`iu!nj$2Qs!eNPvVmW@Bn-hDSi-E|`ERAmcKa zfFdXZb6`PgD1$CwVHTW)U~t@77zgHMNT(%N5QWg##Z0GL!mXWx3SNOO7zcLPhZC-V z4WQl%HrxbgW$N94aoAnkg@g$BgWA2}E`Wz3C<1(-h6-rq3RnS1sNvq#hb88Ncre}e zz1|I&fa`^X_Wgqz_=7T70a?ZZNRVb%HU@j};#PiuDX=&j*Z^WCgmKUZ{cT9s4b2SQ zSPX?-mHXgvu!j|xf(Z`Z_niPB(ApEO;9%$hSe}Imr~q58VK^> z2R>+m)E$Qw00IG!TZ?OFJLUs??gxDqfLYjp1egVWC<7e`h9!msdzgh5_=DXIh817~ zjUda`>k2Zlf)(3u= zf+C0qHkfNN;Oin-hid)Zxq@u-8*`2x%E`f z^~HjJ1_B^>03fgjG6-I)9tSH91}_$5eK=kX9tX+g-KUmp>}6|y7zZFY>HiA&XX~Zi zeX!#GtL26(9p!CWHVW<_buF0KkHAplt1>NKT$PEhW)- z9^%(@#LwP`ns((P00N)>-iU^WtHy#J=wcJN->xQWTSnjRZH6Y8fbJwo@;q{-glNd z@m}5MbkPm?JM(c(CCMQ0^sWgV`2p^@pYggt=}4TlNQF zmTczThkrg_1{dxXcw?*XZ|aSQc%a@U81biu>Gs`+bhu$M5CGGCfd82;+(&rn?(XP? ztV&W%YA2;by`L0~?TVI~aqY zwude#0Ujs=NZ9Tc-rs)cf+Bd~edvNN*oSc-YaaLm%gyuX)8Ald0!RR3)8&Dewue99 z0X0VUU_jq8-~nfUUm(c$GAD!$D1j@01n2DnHgH~x3}SJ7%m3L7xJQZklq*0-Z;iy0Io=A1-#LX&4>NW zi7!zkcIW78UPqT)izi$V7V3~B+=v9>esFRpw?3MOz7LlAjGx=)C0wCi`Z><{p)Yxd zBMQ)04C3nq*E{vTvo*h!EY(sy{Og3*11c}q;A_ZWYsr6U>&u} zs(jL@Oj5rUeU;@vAH`UjEkDPP%NVqLJgtX%cw<4_x;@`{^B?O z<46AFSN`Q^{^oc7=ZF62m;ULe{_59#;m3aG_x)I#ENJi`!h{MJGHmGZA;gFc z-?gh~@nXey8rx~?=<(t_iyh}}6e-XnLW&tZe#FR;rNo#rXVR=`^Cr%m2Ma zjur*-tjBYp$aWzq`YdR4DNBtyr&6tI^(xk^GNTHeXY{Kvv$&rU!ur-76I=!T*vcl^%U(_Gwz5C0+If%rUIr%$hfI z?(F$9UA8DkQxbN71Ju0Lki~=?{S%)?bHBdd0)pMC^ z_}w@ljU4(oC6!fL$<~v5JsIRm6=9cJjsH+mha*g4-6X)3X{wo~lokp(jQK zRX3bypy|0MpMCoIXMy3h$lY=!wKOMWJ|(HwlY_!%Bm4-RyYtmI3 znWUDw`PxUEiaFhg7r4tbqFZE3m-|`zJ~G0U6}0 z0p4ophrv;arb7ZiYY?>4u6b>hwUt?_v8FXAV3)m4#w)1brg|>A>8iUfyY0IBF1+!| zJ8!(ny~Qb0wkAa#zpw>m8DE`#IxN8j8+>qP^i5alQkNAAqrbF?i!j9%TYT|d4x5)2 zM@KP9DY6RF6{V^4ntU?KDXY9P%m3$o>+G(s`gEhMf`T_OxftubGtYQA3F2VhP8yw5 z96J}Wxu-gZEz?b}`Cy@tMl3OlvgNDMgez_~XwO}H{WYNt))<~-dm)IWWHXkWE`iLo z{5ITi%RM*UIJ$>!oGgyUntnAxH5`yF);&1kg&U5tTkO?ktiFN;b}Yxo#wFsvU|W8< z*Fn3b<-&X24J6Js)5bOCrJFwNzvS7)qQ-lpTHT!*>sspRwcF0;OR1*>JEN^t_&2OB z2VHEIhZ}!9^2w*_JB5pBYMtH~&PF@uW0!Y3_SyTHyP1RWzPH|vYt1aJWC>1Sx!SA0 zzFfL{pEyO%`@ZXK?Z9(CJpbdvnsoZ?`@g>XL^htiU59J;v)}z_wJ>w7?N0Zr(Emo( ztNulhGa+i;qiocy0E&hr@K}dCLO3gurRp35iwrzM=#B(dkRs=JAq-*YC47Xgg?(bk zT)M@%ORwrIx<2%v|5wBsNDpojpB zaRL-zgN8QbQyX)5LI20Nr;_)J$2x%UfB+;Q00F>4FzOh?7`DS4*to_w&?EpL@F^kfj0Gx*^}8NM=MQ@dHo+y;}@b>xZnU`I2sFaaA-qZyFs!UKR1 zk9LGmAN#n6JCKNtX_x~a|F|L$t%wg}?o$9EyoWyY@lbbUbDJ`?-~ZZCk8eC-2uHX9 z01V*M9fV;YTWsbu+{w>=8o&Y55NJEDxFprJCvgJApy(i&qYS$7N546bMx3~gI{qO7 zMF=K4{9zAW&i|qr{5S_B*w9vYJmVVn0AfG#ic+Z((i|Uz1RvV^&}^FE5Aa~eJk~+F z+s#8-{?G*gDBunO_`@IXaD*S8@r*YVzyX7B1V4V!)PP3y7jM`?BFrHGr4$rI2Yt@! z9u}5AlEfWreLzJg>kfRxbr$w0!wPsgfeMU*8m2TQ7O{xjf1m>!kZ1xg1F(T-;G?G8 zyvI5kS;1lopc0Y21}1fi0su7P2?QX(JI!H?&Qg~jTY%>Wgt6MzR%Up;`-px%R}XIr zzy=jK$2dY*k9gdJAGq9r4IUAUGMIo3(0N-OV@i>PusKF0;P-7HO^oNAQOj&yfpb2Hb$0H#TfijGP z5QVMd15Nx|;AB-Idg*RtTkI7U06-7^m<9nHuvF1HfQ$5WL}dj)&r0~?93*nuRV4T^ z=~xDk@PIOcsS%HB#^W8;G@(7PVTUe^As#0cvzYZEfM$?^40)Ww1Ew$zZT>-++TAXm zSxiH(yjTzY4D>bL!Bhua;~W$Kzz&i<1PTzq4R3u9>Et|OXmd^4RLyUZ#MP^_9cPZ` z!2gF0CIH}TdfL=~1i}P(NeFxF1I(zF@ILC%<_c_p-Ye)rn?DTaOG8>BQC+c~>%nJV z|02-Xs7F6LJJNPiAOjkZ00%PQhAwiu-&o;H$BYvae!F8Iu;#-!*b!2FK!OaADC-o^ zA&hpvTf%x3fIZ-W4tB8P9{s>3tz}x4h&<*gHtG3PFMJjG9vPhC2pou-n~mmsVbvI}1ku;Q}pyM4Pu+$9CL0g6H^$ zcO8HYekh8bel|zc4KM>N2X*SdXy*xr5cLy$V@a3qlhGhHv$8P~g!(804}2+lJ~U(I zWq5!IAR)xphxs1+_=5>1TF7jc9i-k=Uflcv3kp!*`t=xs102FX)Pp0i00n%&IVeL0 ze84my+%McfJ2}7;l$4|4p9Q)L|IkR)WW)-26in?yyw$_mQNt{J1H09cJLrSTvERG> z!#)_pH|WC$-2+G6gQ5T(4(6Z^?jR5LpbvTlKlB_vJOyRdLqG5YJ`7=!Q2&-WJVQJ5 z1MyW{*8N-$Y6w`&Sy|lRe^k>w3BW7}Kp{N?2~q$gCOCdIjEKZ?4ch@iysD}APyoS7NQ{@A|fVYA`X%v4iY~J5+o|3Bu*kF zR-z?dq9E!a9_nExMj|Jw)(X5K7Ttp=!Xah(njc`%Aqc=AsNyP?A}q$DEY2b=)}k%m zA}+pR0*Kiz_F@A3;x6g{%q3SGvL6t+!yp_&A_%}THUbtkf+I)^Gzx$tK%+HQBQ{>6 zHfAF?ZlgDLBRGDeIEEuRTB86sqconQIyxgeuA@7)BRsyNJjNqE&i|u5)+0XNqdw*% zKknl_UQ-CUly12cJD7tz6r?$zLqZ-?D42skL>TPx13v(f8-^JWsTU(6ks>XT7fq8# zp2J6mBuI{=NR}i?o}@{pBucKNO130OULZ`O%nMxvN6rgvsRr?6L^bW3 z;S&NSG5*6f7(*Z~()BH+&XCHo2+ddoMw~T=3Biyb4w5dwf*e|r9GXKrOym=a8D1fs zGH@a>#Uxs$WlWNhx}1@$cu6>cQw;IsHz-3Q{GI@uT0daJKWITC{DV0Vr4?OdDAXYy zI#W$DrD6gL@$ieNWC(k_Mo7?yMO5Vr(Ip`@f-VR^Gi@bb3jf(J{KGlm6*2Y`EZpH9 zo~2r@CTl8B1Dy)eI1i2do&1c+FkK}f{lXyx<`wbf6GWCR_yccZQ8Sr?BfwxrD&=A> zC-$}F#4OMDMdf5zWgZfeGEC!OUc)~u0RRYq1L%Ti79;FQODKc_G9~9sb_t`55&x_w z8ik6IvFF;j=l--OeUc1Y-e>Ci!X968rvdmFcm}2% zHd8;?!f_g=A1Y;QW~hd)%yOtvIJHgvBn2Byria+(Wzr=!pdllr+OGB5!EOapg@!8BNb7Hq*8guxjM>l*+ouV$;ZZY#HTtG9kD zxQ45^jw`vAtGS*lx~8kPz5=_ptGmAID~N);X8%GZ)T@>{0=_oFAsm7mD8m_4!aO(v z07$?$xPgtuK_WmSzS?UgWI`s4f+)NKEWqn4jKV0etHrYG#KLRFR_w(}EX8)LyKbzz z+QP@St1W;m#lCCGlI+Tk?90Nd%f_tA!mG)$Y|WzV$#(3_V(iEAY{>rX$M&qp%B;71E!5Vn+{P{5>aE?)O_HFY~Hz_xA1iy6^h3FZjZ5 z{E~0_(r^3XuiMJ+{@QQ+_Al?+Zs}^RmL}{b=>Z*{12&{>*50r2J}?AFumn#q1y`^I z>#p*eulSNK!zQdU_<`9v>?q9d@m{bApD+riunMPe2JbE^(CY@rFyk_AC{#iXJHjEv zfgC_1*2=IC|1b~-u@Db25f`x$AOA5DC$SPQF%Y*f?qj9nbOE)qFETO*@;P6#JHInL%l{$}okJzREh@+ZIOlUQ_pu=}vofMyK*Do>V3uS7$afNQX44nbJJuZal=HKBx2| zA2TxtbTSL{KtFRLN3%K~axA9Q7CGT~iZoC6bWm2iR6BJ+6Xj9AAwD$1unH@p`7~FH^gIBy)Cx6GkM&U}wK^lRA`7%rqqQ@ywLA*| zKHzFH8Im5PVnuf~Ucd8Khi)i{HCYce`&Bhd8?|6AwJ}HaEjE)Q_?lx$OB}!g6y~*L zTk~F9ZeRa3S@SeHNB=Sq&BGg917%6eKFnbp?DS-xwj)32{w_*;jxG7Q479s)M>f?qLNKeijL$fY54D4b^@hXZ%l)@CN46D7 z`tpt?+NO^>sfRQW zDTAk*?eV^CLOu6#CfGuamO8KpyE~hME$njcI&3c} z!!;~Bvp2i5KRdKXyR=U`wO6~fUpuyEyS8sTw|Bd@e>=E)`!gs*F97hd4=}o?ySlGC zySKZ$zyCYD$Gg1GJH6Mtz27^&=R3UbI_@T~zyCYH2fV-!Ji!;d!5=)rC%nQhJi|A< z!#_O4N4&)U`wCaQ#a}$eXS~L5JjZvu$A3J?hrGy-Jjs{5$(u03_j19@Ys!m4%fI}= zvwY0E{LI5V!6UB0tNhK=e9rUy%KQAz+x*W9y};}I!EZ0^((V8!JprdX({C@jKfTf~ zebY~U)K|T_OMTX3z0-63)g%4ZgMHVF{ntNz**E>!L;cvBJ=K$a+p~S?YW>=yeZA^} zo7%lD;Cd8K;1_=2AHLorzTyi$<2yd#13u(4zTq!^;ZOeK zH~&86V?N?@{^e_a=2!magMR0e{^yJS={tVuqki5ad6`pn3ktjJpSMKTzU|+>?Mn;p z?>_JMzVH7&@CU!}4?po2zwsYG@+ZIYFF*4SKViSVI1e*o&p!1lcdetc%VB@@Z@+TC zeu-Q6b#uS?ceNZcdHGK{`U`U$in;nf`SaKL_{YCw6El;ewE2_ukh3zIznuK{KR^f& zIFMjLg9i~NRM_v|KLP&s32@lZUqg!*F=o`LF(F2UA3=r`Ig(^alP6K8RJoF+KzQrc zwR<;jo;!B}`pv9&ZeBf~G=1X3H?JMOcRzg!@VT_!JE!fSw(Dnbs>F*DTV~a|mH%s3 zuV1ycn%xtT-T+1n`==+2%@kJb|!l<88M^PD=ZT5#&bhFHM{7Ce}6VZ#F3t-D)K zK)iKw+tuq=j~~=}=IY_C2es$Sw{@A)^!$#WLxTPKTAg^9bxG5$VaIL>k9JbLc!!?* zrVLi1U*?PjzlNFLW|@&eCl}4HqiVpip+}cKy=1?kZ{Nx6sjN|=Mq!u?(W1vq7%gs4 zVKeuRr{?7EadzZLoqm1$(Erg?+IHTrGe?eCVh0pZP{D;8c5q<_E8K9zm~Ui?t1f() z5@@NtPQ%Kg=kBYn!w*3O=^ex*o97!{w76jg7F1vXg%4mn;e!(l9Kwn?9RImSCb=d| z3N#Gk<3~uLh{T6Euck^0q<)H%>&S$rDlSSUaiT1~5V5?kpLvQiOMqtvNwL5aWR!76 zGfzN4K_;|l#2gCW^HC|EfV@(mzcLglO36Mt@=1gyD~Qj8p4{unKeJ3!x||qus-94+ zIAVqv&m_~#83|-z1|z~S2D!OF8|Xp|r~2lXUyM1mmsE{0X|Fm3qS6X2?15FFBbCwP z3^$pymAO!EP{toWG6+QgV{XvJA4C;x7PieO+sP3vo|u7y3_j451s7&;;lOTHNYjNQ zw5a5pA>ph`sX6VmP=GK1h*#ctDey-Cq4;?euGb9f zd4d1{3?RS&H&7dB;3Ng`0{~;s03Z)f|Fklcz8mXk@SPibq;9CRj_#1zwx>_K7 ztP_9*77{L$Y5|@A;0Rr=vE>H<-tdPpukU5-5CC*>SAb9eXv80(P7b`Vf9ipUM|0k| z;R6mh7?+79w9w)VJskNZ6kWC0VR06=_{JxG@FjZA3#lT=3IiA;=$TMjO;~_$t`Xpx zN`$@F94!c_@#iAn%gD8M(?HG~4_;TMf? zzzL>u1OUvS5yr3r0Zyn4D|qY|^}vP!P7sP;I4lkV5&s@P{DA@oxUgzdQNagdmC1n^ z0{|?5#V=wwh>QUM7Nabs5l416D^v|oIGG9)o!G?uNQE-rIKvE1;DR`$ihjaCl@|4P zD*ip;1RNk^an2aJ_u$DO_3+06;fNaARpcLU001@wphp)9Bm*w+hd^SP?g7#8p--mIX!0KjHz8eniF` zXJFwC1~ENd=;D|9)8h0hF|A9IaZBhTQiVw8%2!qiZ46Aiy05HZs&iM}t z{iA0M>DV@lnTR;VArU(uz%%|4t{XT28-#n!KmYhafg3EVAyuKwKRAE_o$_=B2KdL_ zVDS%)Wz~pJD8Lg4$03Bg#-Oq!t4vkK&^M@n149^uEka=nTV!#I`qM=vLa~JxSpj-M z0Ucw4VlW~d4KN+Sikbaud zAAEB|BLJ{UxEQT} zkcGk`EftnzDI4F4g!3B>86-9vQi(WJwnhG!1|k{49Hjn38R(^ELvA2Le;mO9-4jS7 z^l&{=no{

!YHLJ2zTtoj9HJ7qJ3>PU)R2%F z!Ii6J4!l(02VES31px4&0F*(15C1e`S^#(gnYUVIkD+D<8@rdAkzEi99R(llz{VSn zzyvp(!3sO5*%=aXhMsBa2v!Kg5uR{}Utl9zaEkDZYiyMpQ{Wrc`9~rs05K-$!2!ZL z0v=@wQx=RjhV_;n3JOpF16ZLn|Dc%w5-b2)Pq`t?i9@^}Mgcwa%N8dnp%Rf;fV>^T z0Llsl0nY4?b}TNM$wszAD72$*G$Iau5RiawaDyMH$l3?m!4P)9gaaKS5pFPsk>rvt z!4fdt7kP&{7_wTKKByw*C{0m5QbVxui*`taA?N6xYRv&Wi!jNi4rtv# zz}Amz{9;5Fa=KF91o!CSafY1IGN2Hy%9Ov0lAm}peH;*K{H^&69Tk^Eg=33 zEuY4rnUd(DH}x+TF<8ULew7WaHt7z@m*tbLA*E}CAMfyo77VZiY{tqudl{4_`Qkd* zZ6D11;w6-fy_9Lo;MT zb{ruQdhQI)z&y4<5C2ld4Yt7e^dJrn!4X2?89v1TiEh!HVCf$1DTLXHUlq;Vjhg45=gKTDgn&&Y{e>J5J)W)l%^4W;amdC1{DqZ zgmCi`PzTj80q>;pgs}6tZuAmn^p0jB4uS)j@MP*D#=gN3xX=+C;SkI@zzrnl4Z@)1^nm9Q@m!iDnaB`0v&>86wA&eq3RK`)vp%L654&J~7r)>*b@C3s^5A?tfej&dKkR0*wK7^|tAyQC~ zBQnY&Gb-T>-rx z_>M0YPw)`h4LPD^3=>VP2I-sR9MC=_L!8{s|7X7dIkS`3vz!uISGKB7H zY*4J2;~@J%D2ehb>!T<3fhgdiEWGX=LLm&i%@)6L5MGc4&p;Wn<0yKTP#8XG~bKIt2{q&T4BC`=M?gloWN#U4B&IKfje z;Ncv~vK_7g7X08020<5Ct~{Oq=Tu|}m|zPs63{~75N1UW_AFqGqADrVNG=Z}xYG*k zVZhe#KoK-S6?8!vv_T#8K_N6kC3Hd?@F2?K8wzs?j$jDRz!tzP4#HsZHgpJ{U<>;3 z1^)xB5q2Qw6fY5!VK(yxPMQR448mZ1uRy~yN5P^hzQGvy(F%qDL3ZE?yu%Ot;2$@V z_%JdKzR}L!U`27xX2ReQScfclc?+vQaJ7A#_mf#28^yZ>X@c@l&)?+CO?ji>43_joxkgiKR z@k<>QO(k_wDYa59H9@Ij31Uv>x&=XQ;0P|P5scIyr)?1b(7Co?20Zl#aKKM*ZU}Z0 zXZolr+d*NL@EfckSwvAsc{L^eLQ-OmX1rwven2zNAfv9(EnShg z=48%O|1R1(r722d12e)GhfxVd>RXYKFT~YW#1&A!6R2TLXuR;N8++Yc|g=Qp{ST|K#VRZ+V zz~{D(Q0A#uJ$5CcWCskyTgHY(Xe40CWpWJiA0x#D3S?MWz*8l5TBj9I&%hXL^<#Cm zD_%))D#cP@Bxqyi15m(ZWh7?EWJZK1Uur6t=10FW(bVH2sRWz zMif?~6h2)QY_(QC0pxMeHrfK@akO#pp1=xRh*_?7ZdpROzDb4d)*tM_EB{|>U;qa- zP^utMs%q)Ba0|ju!0SpZvt+n$aUIt(%O<>1Lm`+cBr4Z%!Sh=wPqhl`Q8~9?)3va6 z6&)9pbP?2aHv%2kF-;e3J`5st4+3^y*L7RBLdWVmZ3#eVJ%{+4p_#Reizr6VI0#DucYi-ZBi6y|062gJcz_AGfbpw<5jcSr zc!3$XfgSjPAvl61c!DXof-QK0V^{kA0d}sTgFP4dL<*bMVme=m1-`L}SrRCE6!Z@&rr@;2(Iu8fCpAOiOnuOx5-7oSvUUBMWP z?Kdd#_Km+aj^|hy@wj-`H;&)ckK2`v?RZ=TIgj1=kog#q)3|&KIguZtj`J9B<(Q8p zIgazzeft%ABNa^Nqc6UgnvT~TG2)xD7*l`OcSRYMPdSTM_cv1+cv~5G)o^!dH$_xcibJ z_F+;CBn4)`3IstIq(KnW8UyrO2>PH841v0xLA6_(ubsgcxZndQAi)beyj9=_n1H+m z0UgAuo86GTJ##AJi(5do7o@=v>Oi*jd!(J9zyFtkx}%}GS-TvxL9Y|q2Nc`^Knq(= zfCi3$yz2lRGv#0AFN3d+GqEQUFLVF+3!!vEZWsANx1xQ{`KLjX|V2-fA)oha22VGwkh z%NJmz1Kj{dItHL13JN_L5`Eo!9Uag?8oofk!(G88KxvcU!O=k;{)933#uf(R930>b zs=XwR!~uq2Ajq$jHcZ=3#zN(fn62Slj&H(n3(*Mq(euq9$zBm*FfeA>!yB&bs8{pyxzW^{m3aTIq zydVwoAR69X5DY;a(t#b`JsD!a0m7Z|3!7+tAnDQkNVpG)`eq*b!5kc536={X>Hre}qEE7N1k0gAmkyn@IxrkKDB#dQ0}2^V&@fWv+P;1QI`+dS zpb-E^|Nbch;O1XF0Y@@?`2UcBi9L=T{~0^M;bjIrB_$Y9$xnbT06goJJX*5mQ2|Sl zE>+6(UsS0bt6IH^HLKRGT)TSx3O20Rv1Gg2d-9=y0|RRfxP9xkfPo-ik|pbtM^Qm> z1ksgKRAqq!3=rKqq!?p}k!SmYRt?&SKqY?yPP!4WQp=7ZLvC#G*Y6|9XGb;<`O(Op zKMg}L2OWCI-^!~`rBaQG^)}O*RdtvB4LrE;;lzdi!$HA;fVC0Z#w}0)LluE|lSwNl zF1z1yUkDR!tNbvB8A+5iwhDP<$!`EY8};W;DtrO`Y}el{z}~<58IIVShtEHbjO0&% zPVJVIZAne#R8tE2R{vat5>7~Ag;@Ecf&~V@0%#D!4(2)55lD^@;7EMhk@fJy(LAA;^AC|m9?1~}JM5#9Q~(&$ zWP?gA*kG4PA($Y97LG|~nP%3+&j}7lz#LlwJO`bJ1;9XuA=Pk^#);xc!G#UUDXo2Mp6d)K{XjQ%efEE21B~^X@1h@kLMkG?w4H6Q#W z*c4O@sw(E0vd&8DZzxc(A%}0t6<3IL(2=J=*$pd53~V{K)^ZMEzyS+4UKNxdCuA_$ zAOK9psi#?na{q!KA34a6KgvjI#XsK^P%fuhdb#R@uTF(ut@6%G?^Y)?fUjDDcIcr4 zK~#|kz;w_dP>Ru5fx)0L8lWr&7{nk=R{Qni&pz=9KtXE;I>k{*{3JNleewNs1^~)r z*>1aCg1K_5^}Y;qt@fyi?^+GO$gi9*NZ~~qdD4N2A;}n0M-&OexEyp3EsFsR#%yGj zZTR35T7ZW*U`#(BzpC}e3o=OL$MbNY#nfS{eBioadKqiXZof^OJs(JfubUkfKmY+B zIsiiy01IT-U3AcZfddT`u$;q9#{h!{K?IRR#5l5iRA{|mv!B`r;$~@m=hzY;ZtTAM zrMnKg4F7lPstd;g1#AYYcfV3v6-WL&@xu=^FiwIG!wca<6j4CII7HC(9c(gn zcu_?Z9AJle@XBH7plNK9Jvc@UhB=~QkFSSA*pm!$sU)cx3+bGZ-X4% z(m(Veh&m8WfV|@Z9rBO|ym;Yw7|V0igq5GbIx z=>NcQcz#QQ4K+|W|0S;veK?*Jh?hJd%42e;3z=@%wmm6s?n{(Y5P~2W$dYs{i;VQ1 zK9nI1X(&Pv(Fh|Q```*p^uY^3*ww>^*S;Ub09X8TSQH3`2`)&1jZrY66@o|`+w^8D zv8o_%v=uMjI1oa&F`X>&)3!zmb6!Z`WB-E~yc z@!L1>0b?7mqCt?5l+am(grkv=NeiNcgp@-%gps2~q$G4mqrymO21-gy3{X%eEfS-f zJ^S5HocrA8*&qBj&f)C4FWcvRUGEpjp2F1YLlWi4G5^wreyv_C%1RTs$8D5@e#7Sz z|4;DTliczVv4G`*{R(r{B8bWPM$SZ`U@7A`7EFlGMKL9aZAc;&#r77V_tBls8)C zYO}vGU45hWw@5lw?$Vp&CzF=n06(h2|KKhmU-EvnzX~N4yBwN+(x#R~YO?$(^m)g4 z9EGvkV_+A4Uc{1GZh7tLu>~N37-fNuvhF(Me5ItB?xFHp`cPGrlaaJ~PatV38M%abBN^E3`m+yd zjbajR!ujwalRr2j?c}W^A?HP+z)c=a!}M*I*T!+@(*Go?=I?@6lP+9e-WVlFN3*0_ zcSFN534z}OL3*e-wJ8E4&y;=F&O|rNg#>hlkYJ76XbBfAjG=87k~yI#9fyh*Sc<&t zJrO0~O^O<|cY;WX)B-@4qD4JjK%MCGvFoam5kvAAAp<8reIk>r90T|~GLpM7?H5-V znh~m`$tvCL2#w+8_c_s|aTVLQAwG(*=muHpNf#w^t`OMA$=xi)VIZF583D_juIn>3 zv1j={wA1B1mO6n8^%81qI7U-ZT(Tj-|Fp=`tFC(}}um8NaAJAB3$A95Zbfh5g!r}+LMKNwX?Vq*}bMshs02F7OX@imfx z!LuT*dy>&Cgmw(1S-v{PFVxP*X580Ps57Co80#9M*&H~GMrBRwc zvZ)L=CT1Zas9yHoou^XyqU$o&nm<0YJ(ZVp5Z(f`dW~OVGJOFPkaN?{ECwI+8-{OY zRJYAve0nhCaq6KZzBjxknT!XTD+GC8Sjj%x0#> zNNm66$VA0mK4u4{SI-d`-TFS=7<+a$Mgzb;(tHxlRNLG>(WhrAIeuy@g1C%g!NM${RtpV(hV5N zv7IU}QRsgG>879r+#n-Tv5c0Ku&aBBLK1_CJsT|zB1K?+gk@4eN7JxO!dUn&felVz z-X$Tn$o!88%s#FN8x)ZCEYJ|cp+{hRWRJk38Emm2S0w05nsOdEsYaTXRHvWR00~~! z7Pjoa7@`H>_`@JZj@|7A2&FM95kj=d!1%0?O$Ejq^v{_%Xuk-g3d3AfEXt3Kv@zq( z(C})ffV8n7Fb`L|h?|4RebEhIDq6T&#LX3nV5Fwvk>Fhs02K@31#_%oL5B9sjp(N- z1n@3^1D}Q+Co*R)L2N`E!Ol>HzzD=09@D}kYd1i94#VAk0F(@Xq8RT^0PaqBYm=EA zF-&oBOnTJh&q$cob0Ew?iNoIik`zFx94bThKO%8`doFx$`G-rkj))EP zQ=>oEvSzqc|6bzswYJvKF>kQG!=7n=M+Xy}8EKKZca@fTcR<_bN2YzVi6ej3?Pm<_ zIah!vbLX6ASnD{E1BTTs#_J-WjZ&s?DaaUw?K4u-f~vwZ!FJ~yw{Q{k0!~7w_8K$} zp=ZjS#D6_?Am{9DaSI>u_qP$L=U>!qoG+Xehwh3euska~;GWI8;!&98^Wxc_LbA_* z_lhLrM`^}u_RQC@Oj<-pczT>al?fg#EBl=d{+GSh$17mr7U!nd>xBH?AMEfn#o?O( z`XjjRnb3fp*NbN&FLGBT8DvBtg-BSEJ;V>m6lC_yqmYgC!{qOa{C@-1mN+{-O5jE? z5Fg-Xi_JDchk=|iJI%}|32ujXSe_MUM-f1OcxmC5RNyG?WzWD%*r4e-w@VVP2u_(a zGcg2jVj+KG;XkVT2BlE_l1>W5+19O3++hDrBp-EJGRXv7|K(Ut4h#l@h>V5TB^^sTAdtLuL0Oxu|(DiW_KLnk89N; zYmEi^5$Bs)LxA0*_dr(y+pz@#@Yq-AQ=RRzcRv$hNk|ZLXe~?9D|SQRVh9i+P_rM5 zu@tFc|3@@If(NnUi`XKyH?#&D2gDBH-4OvAMM%4kt+fHzL2Q`e{{lbaF|0S~O`t%& zKLK0HkOhi(MomL-DEFy7;-^e)oQUItq*^2L-G`rmc$FF*m3j#MJrQTMmHCP}!=br;(CLt@x z3+Bz?%v6}ohZ^iqQC=-#O{BwB1d=yJ>S40mkgXx>5bahvfNTwpD@+dr?Y<_#)kA3Q zo-4f>#}(R-2U|MH-$*h6>iNT3)PRF{d}MMv?;Yg4a|P_n4lfv{zIS~g^BN3|36u%NEmnZR4;?v z@E5uKbP6br2uT7|S>0u}ldzlrz-aKjichqQ)0$a{Ql*QrQlv6HGi-FgxQ>Kij!2du8-<@@M|l z>Otz~D4Y>x8CYyfEIR_SzNj@p13hg!f|y4r$u29&>^2l|3dzGJ5^;*7eVhi2D%%YR zeQr>Fhv|O+8Qo!a2eb@)>T#gFIyv7`nK$+^ncyGGj?V*HQr}$L^OCIr0tnxfhQFP+ z$=CpV#}h{#ZHW$mDxz$Qj>_QOsh%RwK}!mg9Q6Y&6yuErO%Tr9VZRVg1cDU?A`0>& z)nKV*tqu15i?(5+sTXXL_20H^hgA>pQT`sHr4nj?MGHQw-U$C*D3jtC$K^? zq&(%P#a%EViQNKQOH>=QAh(sO()j|WD!cCvNU$Rcc10r-TH4)R@cM2PVgm*LM`laG zu%r`zM`1z#RK^B8nCFIi>Q4G>k)XzuTF#|0#Of480Q^0GmN7Hj-Lq3T0bt9dK)L~J z(L@s4+r9ljhKOkt1?XL(f9djqF>F?3;yr<_SEPfL zrOJdj{810Qb@H9}!mkf)f1L9B?_-C((;%~G33G!Pqr~@v1ZW)qF`T$kae|2 z8&s#Z-7L=N59zq=n_BPLwOMZ@I7MX6)^5(_CtEwgtIqz(1d=tUy{9D%jrrG6Y50dz zseWOFDejnjSEOZR8A3(PIH#6Q<6vLWumwUXkpMPrBT*`u@1noPwoW%1PuiwhsUYnT z#!WU9P&BqTO1(njcE+Mz#)1emVCDCxv!MHETCFAetC-hFjr!2>Svw=N>PQK*KLP9- zcB!t|kV9+ko`YdSjQ<3reno>fNIk%w7QLkVjH0YPfDiumzytjI9y{pS+ zl>qI=Zg$$U#imRws8feqUV&q+9;U56@&bbAJ0Y>t;LuNdfHO};0WXIeZ@nQrW#`iU zY7}j^T0ekKFV=BzuVE3;*l!#<)8cHYg|)%co;I{`04`xMPFc;_RgP}adYWayg=M}<2RE!vw*Pn0m-5WC2QoL(jq+v7a>GOOiIZx51a!M)532gJ;>%|AV z2Se7jVj<9!MpNohs`k zosHw0i9Sv~UPy)>@4Lncq*BLX5&(n3GLG$s*|!GAXLcYZ!Z)SLoIEQSn?O@Fc;_P+Ro4D}3N5R3R}tBK>Ek){fy zVY;QSg}NAM$NJA)Ws!n?y0&-M@2SD)*(dvdq{c#iclGAjp4kwChmDfEVajvJ*)Q^O zq)5m)_n}mItI%h9FMT@-K`(<&|1ORujQ;BzyyBv?2~7S?7&DNgIi&R)kUYm?gX6FE zF)K9-ZVno)++2Ni#T?Zq^x_WWeW?up&Vef-nkU5Vb;`;^;lSN4*Ox)x3*##9+^exd zRBywyQk8xqKTJ!Eg+)Q$d(TzAv2`qQIpg^m1M4~vC`(xNc$Z&bP4h|1ovFPUkTCas2IFd?KgEPwGAVVzq zbCPbdLHKmJah3a)0t5A;)SSj26Pthkl)ZZU$5gx9Drt+cqd!Y%6q1M6N>z%f}< zzNV?+lKx|8NW48?etFzQH;pLIABfO0iWnk&1}p78?ath=_L?0m$RoeH(PC#j^Xnf{*s24acPb!0nrz3zokk2v?daSt5vEdfUIO(&|uOczZ zOPmZ&mqY9N^c#BL_8NYkecV`?zxflqGF($oCEj?d%{vdJMpZu_EaJ@V^pXFmoDNyYVpI=+~c~Ur|Pg*2ExZiK33?lLGb<)#B z6>o1Mt2jfWTt#{j8uQXnpcO71<5eM7lAhSsSmJ>JP5cf{IDgD@OimNV5??_Xk)Bj^ z&DBFHn((#a!UrCizY`GxTdAn#~R)?3-xSz8NSs|GH>C> z*+0aTA&rs%p-W3djr}p^y1PFin5&kOybZnR2Rs=Y57?w@pS@VTrk$XxvQUphYi-qg z-|6GxYH+jRqF&3As%dAx$}~RbqcM3MI4E;vvbgdLe-F*jQr@JsfFqypKprih!I!OQ z^b>BbsCizNtNB*^ThS)1`r~5@KBJaMaFEm+u7q!l<=B53Nsekfc$HYAw8j)B)y!|+ ztmaajfc%u^1-pv<9&~)nh-oy!>({s0AFTA*z_)TE9Dty&j<`&rQ~@ zr0)rTQ131tApY~2t+``5n8l7+NeUOa6T5%)TvDXcl71x>NuT9pWI&6t$Y>$~B;V^J z7-aa5MB&o_$!DK@J_emp)+tdpg|fgus#mt?v(fk&g}fjdI{USv8pK9kGpI4sgyu`M z!Tg0(FBUO%!F~ypbXu13N3L*3=HCh&Ecg7Pcgh~O>>_D!& za{U8HKPjSewMR;VN$8I{E%w zuK|$Ebb81ln;4v{e+F`6C~RI{>iY|ux$ewsk#PL2o5P=>vm9@7?ke`(M51-RNXSqA zKL7FN$cWJwiC$5iu#BZ=fsI>NuR_Ky{s^WK;*{S8S1A3IQjg@&3Wy3*R)uS>v!v@7 zUlw!Nn$cuNu}E*sC{2Bhms1|Ai$tG~hckfA#PyTYC{&Su(fvilAKWOMYqSLHro6$k zF&Zp}iO(P&-=bq$fW&Ekh(GUI9~r}-{9G(li9y$mqERkUTzdTXuZ~TOVYGgx_~`&= z*43Qb(HJ_p$?dKkr(s&~ZopHZP^YN7GF^l_;U$#68*wF_Q@41%a&c&wf4A%^!!fQ} zz(K~KN(OoL>+3gAjX&d{8KC&ri{~B-y0QqER*I)>7qa|u)rQF8impH44r|et;ACWc z$cN)04b>#VhLNz1i{%t$$H z{d&-z=mUM_AHSOg=R~%2=J;+=-U5)eNI4&XF~s4GPIsw#&i6DCH;jA^kb`C7`v#u@ zYSin)2Pst!VC9vVemCydcNw-VMQJ_#*KQxC5tOx)ukXC#_<6n!pgEvSB8pWR>2siO zS_3|u*9Gu*mpIPB_$>XtYhAB#h@PA2X1z(dq}u#8fyb=~7A%%6r(uz%pH>3uT99az zzQ*vC?_8%lk6&$n3Fkx0auK%S%NnnhYOWs)U{Y%{%8ce^Y!3#lM{2X)56xc)J@{k~ zugmE(TDY8dFywZtE_ZxrL80}4HjGWJ%U?8Fygqp_5;Rixa&Kr+{pes62d^i9jh8e9 z4$1Mi>RgFAx#?k9#kc(Fx0l%3QCT2w!332F=n$#q% z2Pn?I9Va;sfWXHh(G403EUfSZ5iQ~(EX>lZb6Ch5j+vW#vk+;dTlG%}VlT+k)vPVT zu$^p<1`JyFgCwcT{^*aufTj38-tH~CYP85sQ~`Agf-tc zj8~^})Un}YFYj$JxtlTyaP^8f-AI^ZCLy#xiAn4)g=&_rv1_P5v_@oExLysBopu+6tfU2&gRJBwP59JykW+w}@Y2AEEPZ(6#j)P(jGvDu*U z(bL_g(e|}K`j-&u@m5Nt(Ri@%ad-dky^kgxo7tns3*c9K%&!m7#Wy&Y_j(T|Mmu)j zS3k)WE)`DMP^aw$UOe5%qa81qbRPcaSGCeks82hO7fon~leE+Q(azJoQQGMdjRv4^ z)hOYB);LfQ4w8eTPd`B?aPWN`k}r}&DUyrcgAf$SmlJuWDN=AEQfNO?gfHq`PGqT7 zlw?qpbWW5^QQp4(dzrrXucRtr5J7N7`#J_ zeoo9s*ARn=n3b|<3?$a3D`uKE)-ov8Iw#hqDOPbQ=H7m+Jzt!oQrv^3=(|C2ZaM#P z_&g`#u35)n_oKa)@P5|#fFOL3Ta-@|K5POX&W8);i;q%@kFk!A3yP1=iBELHM@+=~ z(DY+d`4W&5h+{x_dQbwBTgWjnA+J1vQWllNm$+S)kZ+w>+MkeNotPCA^Liq2!Id{d z-?z*4&WYR=J{!%n+O_B*Dy4sa* z7saRGnzVz3FWAEwi7CI_;Hwx!UQ;q2Zt%v5he%nVl^M{(858cIPwFibe1V8)4o0RXCHjRR1LD*l#!xpIlgA)l42OAhVaN74 zZDoijCj+8_T|hw?84A44w~JvkL**MbXMKxL?&8g=RE9^`Ge!^)Yh*Z;P|$4k zD%If?dj&%1I^j?x?xIp`i4tPL9x8GtDu^Zg>;b%2I{y`4d`eB00*cwpo@ob(xN!#h z00Xq6f@P_NGyuYmRMJIaGQ%Nen{(+SxlFk^)@0~g78ax1ARP?Q^$?*Ff|#`jqka|y z-cIpEGMd>Vj&V6@6^*q&D{Bt{GY=6t z2|rMp%L2Y(UOQMh}5HSt^7@h3&~t#4d_0f>dTlAfi8&iW=1W>gTn-e|1Dk zS!iar94MaI&pyH@M^FI*m=7O0m}iIXbx`7H~W zrpY3w4Pg@~wsJE2J^{MZl(IyO-c!MVfZ8@Kqvw4U32%GbJSwb6AQl8bAgTV6qs{9tFNef)7(6 zs1U>oxnq_HcS(GC?+`L<|4xyuAjT$u_J*j6Azl|LSfRiL@tvBgAGPm()D8QnF9*2p z${D2yVgB@_?FDxAFs4B~<&b7= zkXz7Rr?2Lc&-h#tL211bF$7Dzd7E&Y!u9O2jM)riL z4yFl$>yvrhG++g({Msvs4~~9wEU^E0D)1NGjozrO^;m*QbuQp;QX^v3<{g z5puX~n2|L6duo_+JUk;fGN(GSaCc-WY-BlqWGOjEN)~WP;@()v-!>W*_k=HD*)A+* z7xf_r$sMc2>SF_6&EfK^bfeplve@uo4{y+}KSvO^@Kv4D|Mi1@b8P5^Q(rx3SH4EK5p-{!~hP$^?ex#chsp z3PKMJpq;P{%ZD**u(x2IuKsIQ2u?R^r#STgl6aVm76aqtAzNtt0J5O`BX`A-oe#>h?#3q2&6oPa;@dj8F8 zX3{w6eZutQK5UT6W|jQ=@=Ns^4$AFQ7(IpPq(VhfDRvc!cdL?WmMGIFunBu;Cz3V9 z9)7AO;;O;0^zNw{oUNBe=&%wZvy6=T|4w{-FmFHdJk%SSfQ6qLGbr6=na0f1P_R_W zLW1}FZv6bsf5lJLpYPgb>IyA{u0f7bKoAPXD+F4gf}+zPh4fGkwY70Z5`B+e{uI~tenR`+RIgoe^Ua!{5RUb^v)S2SVW6@xO<-$8!Tz|V*G#OQTVFjP!zZY0y`(hZcR%%n zck0FwJ!*&&`5pf%-1=MVUrdWNteV?`)LEG;P-|VCv zug?NDOep9mW|)w64(5+$+<$ZU?tRp+nf~7nAHV6Ge!7J5OYIk?^9EV+b{#SNbm|SQDe#Q>66Uo|icscx^k36b;{x^AGZxF{l@{;r_2gRov#hdf4`=?= zuxMTDJp588FU!HY(d$=7tbo-RdIoSZTXT2m<y=T=9CgWfBA1m`>QF{uOiNz zv_9Oh8hG!DI91u&{$|pr_p0-F^Dk>d_q~fX8;q(j(Q?q$6@`;cv+5hPuu1P5UpTms zm)M4{cx$f7e57h_w%JnKRs^?A(7S+ba`(>*$wV~J?)iuouPF3$3wxPLa>pi*q0fzJ z4j{V*EK;Svk2iLR*gNNamwkW=jbX3dlRn1iiapIp*OADUTT|!24_zK?sQOCO>2s9h z=$Em0`*c{|Y}Q2mT0(vL&{^4Jq(17!mn{Q1?l80W!%8zNWtzrgP?}6J#^7qPE^M{0 z7OiHRQKJ2-a=X@0rQ1k)NKz;D=Bh56Z=dN&*v7|e#unIHOci77Uk9~MHgAb3=ckW? zgNKOvoZlW?yLrdA=vv>{nRK!!=bho_D$>p|k0&UJ^WVN*9TqgxVSSUi`Q84hnx)OJ zS~2PfL*6`c{7Qm0ujcjf9R+K%Meb|`_x3gfdV@Sv)3I%zfxQzJTwneB#~L@EiG|OK z;;%SP%WQLDwzxfqXhf>-HF3_=hMpw62dYt88BUyix~h}Ybo-5pnF{q-?aplSqD}Q( z>u)ha||s+Jx0+puH% zP6wye-GIsap;i-IqdO|QlLx{+*AZwUphaBE|SF2t* zSGU>b)$BE1?`2fbop)t^badHckL-HmTY zY3!il37DQ}ay6kr3RL%_#8*rbN*b(|)bQV&xd%;*YO`KXY3F|(QTF0L(Y*9e7MdfoXIIe=R7MK*wO`H(uHzo4h$!DQupCRz{wOZN{^I7XfU)PV zfX>o7$_A!cV;N;~^ODyN;97~bna_+KoI@xNXm&qNugP$hWf>T><48~TmYchvm0;+| z^ChQG+vRd*vyqF!mlvZkE>}yGjqjM&W@XYc#APqu8M56p&8$s!7JtWYq$v}d-=*!W zg#R&g`?^`iT9}l|_`p!mSl!Fsx5c8P6($~ZeXcHFPpSFE@Lg8U^tm~S8xl8-;}pIY z{vU_W6||j}K368Mcyq{hj59xLO6t1*&D-f&UyG%59vbi(kduVC@+Qsab?$`d-|u*w zby;n}c#a!ludlPeO2})4=tjf8Ra*79TdL&_ zTkM+UEpjayDkk2vSmtg=Wt383K72Und3m=~J@zf_R#_tE)?+taV^-u|t&nfJEe795u=IOXbVN-9(w2|CHj zx0-z4{N6ko>#g-j`Nz!btO^S?N!5Bbgpzx9%H({NKr`FD&8+dZMV&_>-&*hOHjcNi z$36<1SGj*U_+IFDfm7(X_3tlZrq7q_@NMK!T6n7g1c>g&`_t!%c-er>) zG7V)8{#eZy9=4#si4VdcpLm^>>DeZyv2BhUM< zT?{&N7tHd^tA%!IIjVeezqKu7|4jeTCcfej+xj`mv~eisom|#Vo2z;tU(LbSOU~no zf65MnJ`e=2q*k>4PlvD5-&x;6*8a+)E8VX=SImc(+@!DE`4ZV%|62Lo@&&EnZ*Q|U z%?m@^B_@NvG6q!KIR;HcuC;JFo0dHfmHVzB{rV z^l`2^TU={(?A5f)EkC{X&f}N+1;gO+F`mGx;R0{}q9gL`y}j1HX0OP{{(Z(zN=#wD z9{OdQk`ff=>ndb%G{gVn@Ufk`IF$YTdZD21jVRokp*5?P<>^-LwU;i|if4*VCAOM0 z)HdQi9cA$U4jTNCk1-i+>}zOHsJidInVL5_J?0%S;_q#r|9)~oiKn@-^~c??Pluf{ zbcgT!vajFcE0fJ~4H+q)ZgZ8{{Guqo37-y2YBO;E1dJdh!9QBhhW?UoWT+ zq)xUx=UU68RVeWrKl-+2M-lfvR{hTY)IUS0{pz(AiaZMZ&tf)tkiowEXn{^y)8*rad7F3FVu#J1iRH;<}l(?#}Cl^h)Cbj*FfpLF>?@cR;J;{Pjp{2SThR$gpLQ%ohSOn zs7QqVhW_y8q!wyDw(QXG_?VaVYa`7{AJk%7qW zD-(DRB_>4_-WQ3x&)4lr!DrU02}5g!wHm3jq$Dx%GoBy?dOLei%$@z{b9AU@0!#}G zDtY(qXn%0J!=hV&~GjY<% zDIE9-eUYCS3C@Z2A>*GA;_jgELFM2;YrM2}=N%>biELE}74J*8r}n{N)T#&q$ddpH zMQW*|A_X6SgE8%sw$cm`W&i=;xrD#$j%PTI^Toz6VsZC#KwIlpTo$R zk2_BV2gc*+ayJJQcMbvyn9#r6q%VNQhY~de?`i}g0l?M)!@+@b9$*a@dc{|9x0fD@Zy@NCk=t)SY(F2U;Fz4%$SYD1qtj%4A(`^4W2 zgmi`X_rS^l^rLS&*CXc^XTKClw|eOEm0e7X4=PTH`6zt|C*yrcQQQzv>WXgGaWt4O+DAGX zVjt~ee^Z6Rpzk(vIUYY#&m<@a)(pb+scLtKnYe8!#iU=`{(5yswe02bfbU16*Fb>U z1m0C-*p~`sSYpOp9p(oBZuFZl#B19U)VJoYEjXGm$(uMEl0mV?RnOZ@qg&nqr9TVc zVZ=yZYrHSoaM2bYkcNMlAFC%FeGU~lx5ALAjrW7Zai!H1XkJ}a` zbQ80{M6#LvfVQ1;ZWfrWl#;Ea@wTD3WQS^0!P9ShLy=t^(i)t18T1K;+|Hl5rK4N` zQ9N#OJ~;4MKfDWe0EjWyfeoxfO-`cK0#sD@wc3LD#v-p?_pBW9H8(x@$|MEr2}v`> ze2jaD#TBb+G68U?Amdkg*BYLG^)32}HB`J;WSlxv=4~i|AeXcU3%gG{AaH z@`QOzm2?}{Bf|`^Q^G&YAu)1~ho;mA44M-@NNb-_yHng_Pw0wR0*jEkE-&Hw9)RbM zqt)onmDguU+z5oiL|dN1-*97GNyc5a20x+VeE>lBc8yr(K9|Xx<~F^1A3?0z&Y_hTa{`1?VF5lxX6XX6!#jLs8yz3xG#Nkw`)MT6!Sf9bDh9z+9BS}QSzBG!1P z1_u2cW)TQZ2>TsxXU%JTt23XmO>oGE+yl0!&(AXnE%mO;X$J=3g`htT(lzPKy$Lt& zk&*>GC@O$&cx)T|6^IjqMCbeC9ui3J?T7+jNOhNMhLD zsv(jSr8?hl^8oDUc3Y09;;O#t(F zB?4f~(}0F)1Kn1Op`)Vws5sZFbRWd-*Q5&V@`cqIurHBGJ-#;xJ4I&zAI0m2D&ZgT z;r;jH9_^F-`M~bf-vROX&4Snj!GQoiHTNK(J0CaorfGD^+c);AC2~(&-tMxR6mXo&7sJTP^(y z-*|%gd0qU^B>tK9CtX$tEyu}1zq@O*(h*35JKf-ji4N1YLAAE>i#kx97S%JBl8SZq zKLzUkoGJgPSp80RJm-QcQHVS#%dkr&9Poi87xBVD9 zOj9_LEI8xneI(Q9*gS1|;oX(l>pV3LEhv<>g87GcGX`d9PEJ_apKE67voa5GvhtlW zZ?z=fNEyx***?&1l+|+4F^E%nZCt84V*XHTmd1F+Lv!5nZY8>^LD{Liq~%Sr)`M%# z^Pf%UbpxDlzMM01pSP}>vw*)dQtyeIynJ!%lHZe=3byjqy0=YCwF*z9RV-Z)vW}*u zazsP3a;*nadDrd3FTpv@p1pR_w4BpFeXDhA-d5L9FZ_Ye+Jg0|3pUQ#R^3@bz~C~6 z>|%*=O4N*1ij2Z9v`<{A)yoHWQ|AmyogX*O8?G(lgq9w6%=@oZ`-Z<^U8yxMszb^4 z(>&lRj{h7V+*)w{zVyMa^v;u>hlaHgSL>wN&Z7dP#TH!Sb{Au_<}(5w>bv~?WVVF$ zewb7GH|F~ypWl+z*7S@)|3f+GG3zCXJ54e}OWA1XTkVox>fBcOz)&?F8r_1%arH$Td6L%$R^p8Pp@d)T z!s~^VH=m@oqTcA#&glI7Fs3VZDY57xW6_1pbKg#1qfEUfK*c{wSAWvy#Clh!dc7{X zuhP`~RwwQiz4@+%;=pO3)@F6r<}BCdUA$*^nQrg_mt4I6s(UX7c>nWWTlv1Wy0Esk zyS5Hmr}C_CNUqO^udT+dZCzMj)?G8gKH95_+0R-(C|y5nTtDhvKmNXcvao)-yG{d9 z0lZWODJmm<&0_D7IflyYN(IsHet0S*o61r~WqnU&>!U))sr0N6zDGrXePF!I=EztM z#SKoq4KAwz4yO%dKrQK`*yiko87 zKEisN60Vz)ftynJP3h4MWZ9<7`%T%tO}X(+`Nd6e*@h9Cda^r!lG?hgxJA37w{_LZ z_c9`uPcPO8&CF!}om#SW{r#3o-@DKKQ z|9(Fw-dK$O?uEbEvDAWJ@f{`myY{Y$!Ad?Jys^PbXTJRn_=ywHYZ3BMl)5|W&xK(2 zld_&93dh#KZR4XAu}o@9v73>5!D)dW)q%GkzVOmW9nz0cM8&~YnQ4kx;Jv`ztqO3k z)kZWe&*f4+C7#PVh^gr>I2ap!k1zL*)V|YbQ0U$cz$P$Yy-yKk9EM@Ny~?Zx!T6X2 z^NjCj31_DAralT{GL#qc#YX$%0;4|o`>qFvl?lh{!3(8AN|o@6=)=hShneHMOfPa` zp9X&!GKrvv@=LK7b_h&AgG*fxzEeaMl~b3P4oXR2{Ec9P=>sk+YN_i{*+s%1w;*Sf zxKn(zya+k})lLYGnfbm?yA|6sJ4f|>R_moe#rSB$@hB_(!=xJl(f31N^<`%BrY>Eh zFU`fs`63}P-nCE@q z?M}Ym$|9?+CtT}czZCfvG!Eu(_;}*|XH5HJ`OH>vcrd1M#;(+ZA8RF=Ynt40bBN6;EfhyPx0s_X+b_=9zrnU%8)k&g1FENm;8l z@7@12X67Y$OSA_5U8bL#R^4xnWZsg1zQ1^n_5sfzWhppbbEp5=FStvX(xZFXs4J1N z3CmZO$glODU+_A-y8N}$s?K}$@Y>2mt?QSnvn^NFrdk5G)>e-csg!O!=SA;hrOmmE z%Ce8vj+M8U#>&j9y-%+1uKaxOyPn$W=SsEj!Sfb`ZvQXF?lLM0zgyt_Fbpu%1SL`q zNSBmIN=k!(h_sZ1pwb;PbPGsGhct+EgF|(Tw~r}?7ijw>N@iDSJzC<<#xh>%5Nz>Ljq3h@{7dZwvLt$a{SB%6uKjRD41+$! zcrp#k`Wtz}l1A3FcTIm-(;Wvy*)m+`Jqt5H=hfIdd`wep*|#_M*|P}L<%<9TZfDS( z;P+G8nXh&UIZ|UUz7*u!3zu-@8(Qt!7V7$OzAbtg^Y(3VXhG_BNr^&xF1AYja!>nILpRU- z%4LQ%NiZ_v84G36w{ARj)-CorcMP0&sWw2 zo^DNbjt+{hbwZzV%?geVN^eP=js9+#giIV9b+QkX3Ev7$K{1mf;#~DNRpY>^$rFi} zoi~ti-oYs7xZJ37-MFnq&`GjZ^X*0RD|epL8Pn#nT7cq*+v-83K%TQPgEZsE^S_U( zg%`uQ+OEnKh<`eZTU+=-gnNQ=heSsu1c#pp%{tdCy-D*G-U$`Nz7rN#hYQYSu^B^! zD`L+>DAj_-!ydd3S`FpjlxO%enw!jXCQ(r8Cvg&fjSH1{B=|^BVxXn6i%fSv8%V^v z$kzpXLYEW#phDtQ{q$(1`r}dVwZ%ut{$|Y6fzc-)p%Tl~lB$$5jJ3;XN*MP>Z2dP^bMk?rHw>$OGyTau_*_ zhTrWHOPAtV;bbA%8cBLMUm$=~RaW-rU-EpUCMbo7dCXyxpxkECoWhVVM?1`h4l7+w1ZIRLRoK}D8T_Xo59 zD@RH;txqoeqIz+%RO(Z!!XUmr;LB!k6P2F@^=7*Cfc)c68N;9Ph@CHlPo@!?{Ks3| zDFv)yr}MIV;7esnMAR=voXxyUOi^-`kV~XJoMC)h!PM(?YwdNHMqD+Ztq!(ytFdL z`FPI@+C&Fl9jNxyvy|~n)O?tgJS)z?7|M_Jucmr}7!mo)NR=kar|(qGo)^5~*c{Kb zd%LSsTu@MgJ*`={yIWe(gTemA*37)!``WNsvRB@6vAg#TjnB1T(M4sqU)jf6x?eRU zytiLHroi>JJWtKrf+Gz)7GC=#(}{?y%wa*36CAQP#X*>IP2N;kBmirA>RB4m3@hg1 zwb-lz{#IS-AsduF6JGzuiBXXsWTi`Bk8K6Qj4D)@mYQLFZ;EX8a&C9YQApP`NUp%(n7NExmD?jN+{Mdul+WvtK}I~KXk9wM$@OPYg;S3>=rKD( zn1c~L$30#3Raz8=(NSZ2jg%haEpUlec=p$%N`=Rb7|}3DqUAKs{D5687GD5dG5Ebw zvm=s;Sg%}nbN=ZN_arW*rXdc1eIM|Xi_r|NXBqryOdn{(1S7*k-;K2#s08s3Cu(b0PZ_~3< zX>*keLgGGp_sE4rVFHU$vk} z*zOf<%gJKDA!QE1@lhgnW0D74wFd5ChBU9%NLq!c6V4=}6f)Mra z4^=KvBxzyrv~%Ad6IOr%A1DAQiUJ@w0BR@WjPYD}vw0$98e)0E^QI%MAr{|6!Saz5 zIkb!f0@!scQ&KR0H{nB$I8{wGMwf&&>7ZB`4R&(Yz6hRScNChoHDj{V12Fn3)|)RP zZFN3xfS;tW6SRSn$oe1X4_wNH?*AeqQOyF#v#ZNinSUT~=_3Il@kRWkQ+-NFNoUwG zFhZM2yU8^3-yH~~u|S?{6i4^`uhS8s`$7+k5y`S1j7lgv-Vk6|&@)z?CqiSuOonH9 zfFeMr;hhtc+vyiBM=D~?^aBoxJwqM}P5@&cg7EA`BKG=*@D`zE2y-Rqk(x4``>#FX z5xvqVnYmb8$0vk>FXs;m?eWmh2Qj!Zc~1x@!tX!T0iaicr%EDV8XfA077=SXVVuX6 zxpom;%v`c#`CV5c(m>o*fC)A>subqJVmRDaM{UJlM$}~JT^=v5@bzLZNTPnBz6lM`1L74e-&cQMTV zvRRs5-GNeI>1)M7BT0_EvkckzRs~fQktdInK9F}pY=%ko;QoiL61^H5KBmU=cdyTC zAKm7@X&pm-kQIqFM(HsXbE96lD{3#-B)no=N_BWGqy{^C8`SBm9H2)zu`-|wY9}54 z9ZbOVa$!>yz11(Haoqzpi0z=z5D)HcXrbQ0C(As+4~ol?X$h zif8*99HAzbd-h@5N3oG51@}8Caeg^d7{`f8ZBXCisVoLpAVVvfiirQ@2}g&+xb5yU zy6U0X6i=5?dfE?}C`s@^xi-)*Z`yR@9?NB$5x&rCV!^oJ?tuWLhCRveUFR-j@9qy? zdhYwi7kobV`_UZaa?QA6)L(IL#oYHr!$8sP^uJEqrcgA%TEGB@z*0iHubtKgC za24`o2~dqYY20?pSTJjNb^@YG6x5xsckv1LyD(1FKH%6sF3{`m{4I4PQ1uXU>DL^&T6 zbeYhap-x>y^4;3k`Fy>xxJeIfwOt4qJ_!4h{j zz}SLRx3!;{nkt$IY9%=6-eY;G3+83D5DTa$_D15{Rq$lR^3Zf?X$uM{TKM!3I3xp} zK%eRO)e5#JI>`o_#3e?M;yiwYhtJo=_frIx4d6|hjSNjR`zu2BSIH8F#oUcSo z!}{1p=~1IJfA$< zXS%hQ8W*y$yWIkGw&&F3C2giijLULVBjtAkABY3@ONu1ENAco%3i5 z>eL)rk0d=_cm^NAjU`@td#{~$`d8E^O8B8H5q0OAJ9fZyfR()aTOgIb6aJ?XC6}h! zH!3VJ?UzJ6bv!mbL{5}?d8ULK7LOJL^g=iEoD}p69RzuV&8Vscg=KL_E^vtO>2cTi z)Wf;U!bHx``O2?&C<`LW8zKq>p3zuDR-?>kWD~yd&YAI)(x1*dl5cy*+}MbAHd|Hc2o zjX^U|B>|zt-t!@>=e4eDdTIcEfSFGlMmDJ$F1&Dp%OXoyph=YLLR5g(tAt4vX!8B; zhpjqUVI$;OFup8Jkpc(8Ia|ZxF~WkC44_OV4gaHbWH#BcswEC-@|bxfUh1$dybLHG8 zAi>xyj516xxG(^GjGK+f8+oZ6Nl3p!2ya*Z0+$gh?i8z#0}xdMY|#Fs{3J;L!2|~q z0kqJjtQ`R;#0M8ZqiMp7)Fjq=MyE-uvYprB6iNe^VoH!wMi7Hg_^I+R7A6B)crKzH ztoaIluNP+hm?T>>+kr@l6oXQ!dg4hkZd-~Z{;(+?HYI*VE$pg-qiB&wsO7jr=D^n{ z)Y}7hnzxLMfK|a9!$A4mam0t(en1rXj$9f4o;?0+{K6TeHx%5~A^^;C98V z2AFa-$PL#CKQPU`9#)$z{z6GEdmdIOCe@5ihpd9ERA2-19vu->?0j%JO#pE=>1Y=m zx>gKw{2F!zt2}yL%J&86ST3Pcf_og#c2s_dZ@gLp!#9=g1OQKUY4;0Y*g_Dm1(9C~ zOeYpc1cYz+3w9&+en$o7jkKLiflW}jL~#OMOREv{KMg>A#5BQ@9!luX!KyzwfZ{-w zB5+)Jd5u}|PK=D*lT*SfPIz;IY<&{E!#M!NXm8v_jF!d=z(KMR>k{UO7zM)?0>0gg zvqS~Kn7DkvD1yN)kWXE%p(36#Aiw75rPLk_bP01JfcG@iP|6vi0i-P}{M#q*f4c}W zz05j#@sfOs&;gf3v6ELIT^Dsie7NQPrs7iT&SDtX3w=c06WY|0@!BNkXQmI2 zttnm1JGjfz{ZBc5mG=E_^Y@#D?|0YV0d#1f1R7+7 z#vWG&r=y8l&?Jj!$PF4s*G?wUPGQte<tK@TU^ePt_32-u!-rFR>&bYojNCO6%tbUo%0J(fm2Rz5v8={;{-dh8c_-rw{%(Dgb= z^tu@Jy7}~ar1yHY^!hCJ`rY&*>G}dB`htx5LVWtd()%JXEq&xS98n~kQFQ(B68#BA z{YgIkpVRwOTl&-O(V1|L47!0_iGe($fdZcaO?!@@{l0Js&MyH26?B8NBm?ca0}tEr zjRE~$>2w-qSiTQFR~@WLXZq{F3PN%IKn>v@v-;$c-Nw?jq{EwxIwWEJ5(vPt1Nno{mmDkeEBhv+di~M(mvMa;rqDgQo^Osrf6_4w_`B+aWctq3gdAq-*M`UaT?N zb(Z}gt?>k_?*x0s1ZV36_s@x+*W*WvWByV1gfKh+W}d#xRmxjFa>ToCfF$f331w>M zC^3VDiSF-I{D#coTjn^7?2%n56=LXJ67f8NVD$a{Uj5PWklfpLyr@`wEi8wcu# z`aZi{m!Qi2e!%?Mhx}%Va7BH6z?Q*{D8SEC5LXg5=DGcu*t5CzI-{vpi-Bmyd%t$WBCR0(+B~n%{>=Fwa(%k|Z--oRl;g1{P zEMzS6%HXSF7c!(tfu?M1dNLhW;sRzTzSBpvx?oK0IvS}Sqg3B zf%)+vfc)U)9HwQ*e-(rODmbg07 zSHN*g*pv?9{p98t1iS>PpojNhb9Rh?ov%BbWK2O!Gr1Y)4=C6Tk`$AT7lYOH(qpwt z-TC8tgFJxQF{rpEpyvp>CB0*RM{DN;!N=LZk;Ca(fliui5}WNBs&SC;?}5kn701LV zj)*594~k=8$s^rzW`{r=Vhmt^M}uikV?Qs3xh#jGm#0UK@o*AGTj4;8i9P(*b+Dvy zu(d+FL;w4Y1o+kgwDZZ~b=Tn}guM-C3FmvajuzBrn5JiiVAJ#%SBB~S5wWrv!{+;$ zLHb=ejM_YCd>bh9J7x@`di3nu3&Len5;PXyYZ4M4p8$~*N^xtNQS*rvP;pbhZ0w=6 zDFhqx3msbzVuUSc&*%o+Q~B7%bPPFgfGFn@|Ayh`96_T20J;OZdFMwk>;hc0|N7h!K9CC9Tcf3b3W83SOH{y*jTXRWpW zQ;xsbRQqo^F6sNFzvOr# z&+DFa{Zp%v46GcdH#oDI$XCz8%JK8JGhdCrhx{YQ=W8+VmU}V`FW)b<`eN`IjIJDh zbw@u?%ryGrv^kt170O`z*JXG5>+9Z3<7>BAOoKnc1Ctw%la1jExhxYiuXEh-Z`Kbm zw=#cDNoRhCl1X*kp6zv7L(vyk*P~K@z!GB;c=s$TWC$Jv9hLgC<~hisxbynN!#U-P zWFgR#*ba!?6il8>kp%t>`toKBL8j_*EKmL--Lad-kbArP9@o4hg6?4ukrZPnbCuG= zkMaV_EXkHt%4}Id0xBFiQJ`L()+AG#mEGIrmnePv*Q zC#+`{%2KCi@$s3k{+r}Cb^6v>!NLZ%h52;`cHg>%4d2yo)ER#Gj`zgKv6rRZ$a(bH z6JyueH}%Hu%fU}f%zg9gO}u{_zcBH=+^9G7!T3%{;{aH%Cj7c7q&oxeDF~T`JeZj@ zBX&K5|9Z+|64zE2Clb%oM$%nswFKXrby1=tH z_3MznQM&ljpVh3!{XfRc1iT`)`N_f!8##d?23tj)mQ9$qYH@X9c8rz6@pfOm&;Ne^ zR+`ylUp=ZI{!Xgbs`*|0M;-C^ja%g>FV2S4erL6uLgGF&F`i#{qrdH2cXYT)w2U;@ z8r^)*pfM^KWOka}r3pj4Kk{I!&q<-ndM^vTk*qeH|+4_QSfc z)otNJucZ6WJ*^CP9HnnYh#|aREetq(1h-d%f)BRS-7-U$5JRE8i>HB0@IL2*uZlL_ zziUSsuJ^v*`|fmi zI;RPOx0YnkLyqN)?bq}hLDnrZ=imH~));ON3)@M_x-bFMplpI$wvNA!eExWUvhM`K zI^dA?fQ#$b`0bZ%o?%dL;q|2pkzVOL_y<&0Y0f78oZLOH-!5bc*(Xb8O)Q7s5aVlR zz?^%nKr+h+9hVjIZ%Psr!VVEX#QP|#sTKHR#v|UyE8QOkD+qld`XLNLu?v2|#e9j^*ITr>`U~7aQ{U6_a!DIQi9JgeB-1sj!o|%vf zjaHJvwSvS4-K;_vaynlo#raT@`~psks2a>nB-MAl;dO0PHMy8b{tnvYd2?UsVHIzD zg3$&dMMUW!Tr26TP_94<^`NQlWa=!Y%SyPmQQiLOWI&-#-mbRj5Ldy8X9;%!e{x^b z0R5-5-$B+A8=}v>AkOhCLRJF$o*LV}r>;9jY|O*T&jYBYvI(Bq2%L+K3?3hTj__gs zGqN)r-t<1a#c*@ukZ}CD+til_c(zK<#I!YfPSV8atU2-iwg!8BNZggkm;3JCE+X^`5yic?; zz$4bl{ySdC)oo`^*{s)Np#7zqxDX?N`aAm-U#Ch+oz-Zvaj3^_raH@b{{X<*UzSAv zb+0T`3QlY=Q#VuVPPx5f;5EepIWH>s$*msu$6)DVrv7vKSKCqptiBF(uRgGSrT^D( zQ+T%VlMv@CS5?DT*fzw63|;~2KSqacv*pN_U!8b7p6SHDXd;h;MB23qpPw7D1oGf{+i_PjS#)M`rN%pj6)R4nkPHpIiSVIbmG}p`9(}d!3u2%}b z>cMf^>*HPWV!EF91 zRyQ;*Dd>?_V#O0FI*fT&oia-)Y7|*BP;xw{7RG zzm4XrfBtoKmLBc5!wf2DJLkD>wz_&+`}I1bM(jMgro;ATo>C1VPt$A+g zDORwR9~m}vt{);pyHJ0QoNE?0w)jF%caNc8?_!-wbQ)i9n6&TSU8f(%yfgb<3H86S zc<|SwS8^S$&qnOIG*4W&6+r*dHOhkSu%ULdBnWDM1AL(HjzzdF?$Fi!WLe_lo{Hez z+>4GihD+++hXsHj-Z>e-anZYh1@A`FwDP&%(xMV|1Rv4Mo%Cxfa?rbMtOoB~6P?|V z7;+2~*=B?!f4iZjbA(U=R!Hwe6gx<4qev`QXl{@#BZ>QmHcoB_bXf$IYciy?Y6t+O zk~AO{7F8dJY1!BVd+yU`IZ^kT%iGkuy2F^faxf-9=beru+oGBsPH}f zfC1e!-~et`pl|k9z{}v>tAG{)lW&ywQXz^C94Ph_)Vkt}ymkd;TX`&{U@1+I8@h=)hBM;HM{Tttrl zOnT?bQ+A)0sp|X(G~n|u$kqOI88EKJRWJ`bfIuWr=5r{W3(|UpVBZl$;S*>JLpm1; zichf`l-5L_2<#9EzZMVm|1A5~1|QVbX1ans1{W&8hXVAq5^08bfI}E6aA=i~AP*#I zL%QSVU{cL)fF4S~qgiSN=VdxTmoC%_5k#OTfltzC5Gab{00L$sZDS>rC9ohnhz)_X zUu^rp7b2t6<%L!_oJ6W!5hy1}sSmITl~&?73H@ZMbG;& z{@bfSN~~1}<1>5)Ah6E!a{vM2ACOIHgA%a8e>;aH1a!}rc3}LCP^Q!bvS68>z)-{) z{|Mo~TsoTIz!3*P9b^s01@a+9l!Cmjf@O3<{2XurD@X-Cd@cZzTqJY~*q_~%5#J<` z72oPH2cQ)REtP8=43~X-h5z_Wn!B&>)li>{Qm7Ok4i<*OmPSRNI`bR0p?NJg}my?AyY%FX$MB!3}Feae;9#> z%_z|vlC%iP0PADW8=kT6W3s_V*r2SaLkB&Z9T9~nsCQT!tgP)#SuN4IDhcUO z`?@9;_G7JHiVN~$5CHH9A>t6jNQ?J^O7ni5)_ihm@h~Ouwdtd}!u1#n^`Iu8y&4cW zQujso-R?i1HNq*E7~}=xe(kJzOUDMDk*OZ;o~9z za_a=$X9TPOz(ZuHKl^tm5--(mQdRajW#puoMZW8btg{Wi5_Uc0Gf)^1K<0t0OAj_< zR=*L#L4lMQN%6@6V^)Yj1MWbM8kB2AXb?B{H-=;YsLFnRTJPMVc3!S=Hb`Fx2jn11JHb_hY-RBBxWl1PZZ(@?y#S`b~QM+Lfmj{qOkf@Om=(*(F(z2L;}Zrl3);1WX7S)%DQzamEe zt55`Iy4Mwcv%0~T;XMDB<@*y=XI`O2g7hnq1m4+AD|-#DdPZHOqP;JlcfEWbi~H0l zW6@pnX}fbvEP0))9YNS6;}#)vSRjM5k4PPA_V7Y9?4pWx8HKDz4^KE z%p`xqq%}cvwd|`aNPJiF+bIw0jzRfAZuM{1*Rckb6z^&}oqjT1^M#4!=iPp587j)& zEw~IWU;CPma1vt{s=yHxIel4$7Ld&&t*`@{1{sxJuh&_I|!u*RY1gxsoyPXY$`w znGSZUkeUFChQz^DmiG4Raf>cyyQe zWAbUtzhJI%81DvZnL{4p=H@4)Ht-WShz3?4JC4>>dd;1 z?i&MvpH3%271b<0D+E5-Z+xVgP(|qm1#kRT-soq(d7b&jgz5!9C4hf=!=m7g(P7;i zt4%96EZN?)N!qk6*nC^JIbOW+dc^9Tf|X%8!3QdOhn~<62y3Sv{7UgHm#14FK8Ls} zY`NdzyN6hN#%y`kZF%)laMf9jDSDUzquLckJ*2QO5tx|u_)!f{|=QhEVQR9SF`roLBMm1{ndq| zS<;dM6aYlgc!HR(Ir)(sy77zV7qWe}+LD*SI^W*@9H=dQg@S#LpjWLc`%#VMW>_|O9U^|{mPX=7CqNJwBQ3{qO&^G_2lH{;rqEA3&&1jzu6Z!%mo>N46 zQ)sd$l7Y6}<3hv;e`rTbb8u*CDfsC`hJ6!dM3Q)bEzy=X6fSD7BGN6ZXD5dkF4S)F;`K6FF@SP+F`Xs-U|>&ytF= zM5YsxpvqQ51&RhhC@R=xr4I9C3g?s~wQ!c^yNGz!WGM#=zog{a%QU2m!Tf>YePBiJ z33)uyAgg{W#}6g)OtPor2sCe*>1SM0QJ0-Pc?O~cM@NG2ds;mN4=J!w5nATl4t)N_ ztl$zNmxr=`OcdJ#4^AhP`O%1}{=jZz)uNBbZW;DKnIi&+;JzgS1yEAcCwB*KDZ#7a7_e-XELp9QxlG7Kb*K!Uuw z-Kd%HaQe-qV!J|p2;gxCMiYd=C|Q5p9K1V>-!CME3NvodZcbjzlvKo+tfRN)516|) zaRT?2R&7bnb1+q$1FXwe2&abzQs+h*LnwX*sM)+%{g z3kmR}-Rvw)Aogj3KU~@m(Od14lL%y|;`R-!MScE&pvy*AvkS;2HOQFYi|SDiodv7D z4_1z64x?lh2vs(bf7zY;5deAfiS{6tZMKU=MqsRT>Lpe_Ykww>7vQ#j-<^WaBcyrR zIlTMwBchfL%&w;uVREvb4A2CX4^d!B6U$DS0H>BYf5{$wxCo|aUhG-P1PpaK5a+kZeveZ8D#P#Agm+vBf^usZ%>4b5Qn=m7$_YleU+M2OcP8g#RJ{}8NejXwE%ey z`@0}M{f{jp6gZul{7&$~JdD`{Q^V17Q&r1_l1w~#JwtX|(cEq{4_gh88U?6iRTKuVsNCOo320+e?l!*_kJV}fbrf95 zJF#g+L3tq^jB!&z95?Z0OzTc*cff7M+Xf``ZZ=9N#zkZHj`Ep%YVh zur5N{FZ`d_s``Q|$S|y21%01hs>Z#99guBPg28#HaX+%II{ZIqAQ#!sb0@3=j77zB zCv50u$m730(v#n&g9GHN5Oyow917epKjkJhpuU_eG@j-0^;?C4m;qlgV*m-ty#Ily zp7tG0{QVr9v9lC**$77x7NNhEALVB}#N(}lY(68r*^|g@7`rUonG%(>4 z4_{Z(dLqXS8sXqs)9zn^$T;;7$~ET}SccO*D*J%-+y$`b6hAV@R(ECY)p#`2{jw>} z_0_sUq0Jggo>c_OJwR&0FHIIQ!ug8y4-<~K$l%OvvB;+eH(E~BYaKG#afrD8O}Cq3 z5BEuY+RZvU=6U15tC5qW=9>+^kBvjt8mFlXH`qB*3P#c^2k|%`0bA7$EK-5jq?)2+g-iUrkVPY^K$RoJyU4&T(8DORod;o&GY8@*^!I7 z=Gy~@kIjo)8kbEAw}&31%}bXfmu=U#zmd?E6@uqi9kh2xVb5EB-5b5?5x+Z*{n)b3 z_WaL);oZsS(U#38qkl%c?@qI!t=o#v|4yXcofSQA-F-Fscc%I7yy9c)zV-9#`Gx-s zm5yF7UEf`zp>0Q@&u@OwVy^oBGgK;$`7`#h?X2+m?XDr_@4rH&qqm3NnClhjcg$7q z^ShJ(9V%@ICy_mKjOVRrXOM`K+B*LTzfomo*hCY6^ z?W4aMI#?JAM1+02q#(!S1o{;D#IgH$$b=QPhiTsnPZSCNUKogL7T#YU>U{-GXZOkO zGvVHL_R@>6H4AhPh0^dxM6QP8q40*sT*^G)WZR*QedHS3WMCU0KYP?LAHI+l4k16} zGMhFG75r+OyrLn(7Yt8{l+Bxc1pmk$q9aSLEl}_b-rP_*(d%x5&KAPi1(KmNXGJd=Jrvu8YON<4dGJm-&i?mzLo_dkJh zpx4>ZznaiXOl$-`3bJfUj9VFTCH*ne?4wl5eSbv40~sWFPUy{8f`%y4AD)PGglTgm z5^5#BP)^kIOf)1+H2wis)q`OV=y;4nl!|Fa8psQkU@DC!H>QvSB=pua30q^$U`*D! z3JuVT(dvcH9YJ+93GW;r);mt_9-rOxX=jiA^9?#kKe^Kyf~okd2msKSl3c)2$g~JY zrM@j5qTH3XB!T*Agl3Q!5%1_RNU}0xMan;YITu2o#3Kl{BS!&yl!GMw=LHyJ3hBuv zZnK6+?)>whJZB05IN)#o>s%apV=4%qUb7X}a|AI15Z}duL1>&!2XN>LIOm91&XKgd zH)801CiW58%K^d;0ASBZ5^%ysv$NX@NwCkyqK zY?crEDEvK}q-TtHZUw-O%$!5t^FigBDMwbkirG3M1)}e@!oD1uLPn2B*&}j+S}`?B zY2|DYSLo!qY?A-zs2!k_fykKpr^3iP6`Z?*5 zN|d$AX?8^3F!lo1t3o7AQGi%ckU>$1S5a7MQAATw6lT6C=5J9fO>w+fae_f{l2`HP z)Z)~p;`I6A%)iCiG$pxWC3yxV1zsgZsU;;%C1vv^<$p^mXiBTZN^1;C>%2-EQcIhf zN?Ybj+y0iKY05gp%DN27dc4Z|Qp*OK%7*64M*fzK(R`f{`#NRtb;j%KTF^zMWdW+f=?kUw-(v{D_l&SnrR#JIaQm0jha=<7{E4;+MA!w_Z z#H*MMt606O*wd;wo2$4Ns(7!f_-LyI#H)o2tA#P%)go!tV$IbO3)N4rtEFjcWW{Ub z4Qmt@s%X+`RGMql7HTxEYcy$VwXZ7`4QqA1YxUA<4X{s)3$-TKwWhRn=HhjhhIK3p zg;r^GZ=36EBkSz1>l|q7oy6;14C~#z>pjxyy_)NN7V7=3>yfk#0pbloh7BR!4Pj{w z5zP%z-nB2T8)9i2zT}4WH8*AKO9F7aB9K8?$Mfa>bkS44VqPn~Kt!N}8L> z7MjYhn<{9VtM;0DG@I+Zn;X)ao0^+j7Mk0xo6)o_9pWurhAlnbEq!S%1I;bHsu5v? zk=|g`6(adoGyj~gb#5Ov2}sCbqUMOG(0PRrPZw3wQZGF?xa<247TlgH>%xl z#cOUori~`kgI>`lyi{rR;zW(vWgNiJIBGCl2{h0V0>pB&bTqIM%gqXYV;c_=?d06# zrw;$-X6dqbD=Gr zKyCo>ekX|pjARjFw)2ITq>F+ZK;{DzH0pd@)9v)BS`Kw`-$2~#do)_webT#BMcQ?eJFxl;cf8#mGlcd~>tQ45 z2Cn9QAnFR|?!qRfqsrQCxO*6f`i1S?KGOAT)AdvDcS`#}ilX{$Tl!%}{dwtqyiGwk zWu1~k=rpxnRi7SHpFyjr&M!W&7g4Zw?xFAYuul7-?y??ile9N#NK0*Klw@dde{j4E zrdKv-L)W8jfKKKnr;7UiA-zwGZh&)sSW>MYMAF_u2aiaH!Ry!3fhn6 zr;qx#j5^$O{M{eDZRx-aje^ui|3nQQFAi$cbxBAJ=0tVktroQIch*RBeJdM`9U8g^ zAI1AQ&Tu=9pr2rpoOnPwM6NzW)QW~LcA63PmM!*fMD;95Ov+%=u{GD^m75;C3>fLp z$)~rI()3fZl2h`=QwqLQ_;me_Edx#x18GL%8oRk^B)yg-{hYh)X7&R@#*?CpL&ERi z2T`tD_Cxk`-Cynd)j0=UeR??!phrh}z?B)$YQD1(?8sr(BV(2Ij2R9lf9{c7tEl&6jPvq`@X=@!(q8nl#=x)HYEUu6)bwvZDWgcUe{!eOrpPH5xtbYpkfr`P&Tn3xvb2) zA$>Su@7DuV>xS-6!;jI7t6S7@zaaZRD@eEbSJ4QJ*)|(a$1(l93PX?G@Qk}(&w_dv z`O=bWdH;E9*XGZib;+enhTYtyZtth&;H>&h*Il0#cB zH8xBc7MnHtULEck9Bc$hY!gdvci!#^kF2(o@1vLY`ZM>24;M5H_FkxuYCP>@znRin znq)a#c8QsiBRTx_^l;teaMSNlI(h`V;t-~>BYw9=n%+Y+lwOpMCgbh5E=L>l9EuKg zUPGq;LfWfaI*ot+_AVch@;myrv~j_E1Xw=$rf~$uU=w-AMBfj{J|5rua0GfV8$drx z@?jf4V_B-~H$Y>cG2@7n^q6V5>ybU|&ZwUs^KD8Hv*aH&db5B3O-x@0{ZBvcA$60% z8vE7i_v_l~UAP~95Ake{LU#Mg_eLP+Q&FqgOWR-k&cCz`*Dn5u*k7wn-zqTaD1W+4 z`DjVc|DrAC;;q!~+o7%}2l*0^7>hQ5TW$p`ouobK5Tuqk2RS`bFA)ylC5{ zz3KTvy1sEh{XJ^2)a-mO>L=fW)mC-%!R>Y<&!u(NrH1k1>tP!04_zqZfqSi+P7*)K zO*#%*7t4PBEr>oXe{fx<4zHqv=hKg6sEubm+Ic^pe~#F%DZfm9blrvd`&?p7-RNfE z(S_K%KJAZ#QgoM!F@rAqt4ue!SK`Z|E#3H-)|(~F?aG5Y4Z5`#&u<@_%!V!ItI=Od zM}41J-j69C{U$NW!*lmfsMLS{T;jYyqZh#c94(ClBqs6*)s${V0m%i@?`fGgyPfYc z`XuwON=H)@QYBFTzeA-jtW;wkNWC2riT$M!bg()7Y0hD()BP!>a83Uh(@6A_G{5xw z{|=RURTZcQ5Q=+E6-`;m$2_~oYk#SM(9fV6bsKK1EHVhx|Bq1VQk-E9ks5KbU3;Wb ze=1L3?3zKK%AO>>5mkw1+dtgQ=*J_aI%5_&o}nLRqn@^uAJv-ARyAh6rU_7G=>LnG z83%CBr`E1#F}o+LhZz9I>N8i}jA$1wu-wenyXVjSgVD%`&X9a1n7L9fh4bEK|51}O zmYba(gj4zSOhw7XkKBrxJ48@bZ?$;3?0eqb-i}U<7Du-{$i+DQue|F| z1NhELJrw>yW6u~vYao5;Ef&!449gt$-8s2wTwf8B9f!>sQC$MuGgbeSn+;K52^w>) z*cq&!jj;^;z-Og6R6~4EqIbl3{)aQ0$Kj3Oe{(aL|IN*Gv?IBhC?;htjjZWCPK0VS zpc3@Zupa~%q7YHnyUY=C2o<52megf|G$>F|Kt3ZTm+qR zRo?$T|An2Z7YwI~IRDrAFCu!Cf1UsO#A!TGQ#@Iy`9&o|rM6_c6e?=^&s2T(n`!5N zP1UjIzv{j&V5jN>8LIW=Kbt*HcYhAne_Q^J#3g3HPSsaC!^pXoRNnFrz9>{7oSXV* zEFSz^bZN-5ES4_Ie|=lcix~w3YG$!&Uf}`?Ql|@kwS>#tCUrA^7nbNhf0vLfZ09@R zb-;@%^5=r;8=*@&hLf|@-p|#YC5#h5$t$j#ly?boI53&a2)91-cr@D*eI$Yb^@CK3 zfHFSN>o=6rRguA;JMS)I^k$ADAl_6Hix4`;%%pnQ3R;SOL^p zp6b{uW^FR(=lMT{m#Y5`&&z*Ke1niKT0&iRtFWt35b9~FaKttM9mGn^#hB#LmAuC% ztdT~N{dv;y0<)UPZ?;4984RVjb$+@S=ArRSOGi1CyW}Jdb#Peqsml61nP&Fj=yR@f!_j&{ zz_+7~;#kq+&GMWF$6M7^4aZ;V+P@udH{wKp?X=83`1Q48qv6-L?!#}tzGJ~+C-{CA zkCWXYfu|>Xqtf3`evE5~o$gPYd7K{1IX^x9`61x@>EUv$*co9h$K&j1v+C*D@lN~q zvtM|e*!ju+tjGB&VdLrf*~#H|V(|=3F#xQI1+n8%6gtHqmLV+pbvzoDR7@(M*-K@K zk6;}wCYK)Sg#_ax;WQ-_8k(=@^YBrEIwe$QL$8>-@X?5*5*laCKK2ECjLc{WBw(oT z;xRrJNmB|tkJaqwVc(6@)G4L+>VTH*_rd$8V!`L)m~aE}NQDkKloXa)Hd-3b;6QS9 z$5u(g(v#zM-SYK_L(~&%y1+g2Qrh8Mby*{5g8yjQ#ls=ojpN-^6iqoCtTm*}zK4m^ zDd%As9#X%)mxf6y=M&Hx*0$VB&mAqlBt1N=7rZBYI9J3bJ_McU*%bk@YEqJ-Qsa_% zsTCitFw_eI?2i6iR7c6b@Wf9GOh@g0BU#y~VBxDziMF1I5mjqzJqAG8VJ- zFabX0nz&P3{k3ruXyZc$qF6_|kHg&K95~$Mmw0A`kg}>3bSbDR`BkmAK?~1{2;EgT zehi<#4LyGL7;svpNa+m?oh~Z|CsQaMqoH2M6&J4^X(*m3O(d**j;H#Blee6Q#D)!& zu>fnP3AQQz%aL51S@3ITw$TPBs~kKc3kYZSTirUVTylaai4)+I<#qgpUqlc|!X_za z#u%QGJ9u8So66lC15*21qv8w1s!A~d$N>Q3WZ?-?y)u?yM67{D*}KA@EnGYbvFG#? zDNP_0z*6L%#xL|(R6!Z%>63o>r18Q!`U5VZtHrXUHW2fDm1;&$6i|7W);=V%YR(`= z1U5$<{s9Y|^Zdd#`iWeDP(lZ)CcOf4NeYevGM{Ub0&du(s8C?(O2(rRkZM!h`Eeg> zundk8fQj>nT45Q4p(HX(j6rRy9B&b^5-YALk}xdU24O&|!7#0?@+s$%!Jt?s-3K=r zB-uKa{2I9&oz)1mbb}BBm_APQkT2t04;+-97N*;-O>H1lYg~R>lH{@Zih0Tfta?Fn zHo%&Aii<1M}+8Lk+d0m??N)zh@+y=4<_6LLVH`6sMuHLZ46Q7u0J? zFdJQAeoh!bq%#VZBCk)CEYpeoBS1ZT>Yrc zP;@V?onuW58Z@eK$2(`1V_iC@Q){Ju_nEaEA48SaxYgbddtNI*cZ25J_*dS^xgosz zv0Y=5^nSHwoV;dc6wNse8O73^+ZOFZvtknd&9Q|%j^Fp^oAe%(&E*G)#h8VTp-_>l9kgk)$49Tc3oi^Fg~mu_zvRFr4is;extMiU{Voy!C~YYn@FB z4{&|*i`{z1Gc{vhMh;V^ONg$zi0IK6@9lkh+=-I1*q6X1tC?Sm!L?p@ACCN5T;0AA z@|F7S-XeqIw+}bYHZsIQ)}_OLyp27ZlH@vF)?Ydr;OgGXc^bOpaefF_JU(AmdE-7A z$*~O5I{i$YYW9)$7iZs{_Wj;J)qlM_h|39Uj`8vc2qQrU_s5z&oDIWX^ZvSVuXW}j zYD0d3Jfy_=UbBEl^))xVS>V&d;9Y0$73tuxScSSvUaWJz6|?AP*}g5{a4gQ}o3lHA zph7jd=dP3Y7qj5*n1>slW?}?i0nLa-pUA)g^mW1Dz(e%*L1e9TSl>^Sq{}@D84rJ! zkfwmJ5{>&;0t2k(A~jhfNDSS|G+?#Yq9qB}T>^bI1foB*J=AnTt*u8q0mr1{V#=!? zhMN6e|3!#J{i*&dHxA@wW^tYywTrvo8xw5UK}>0kb_k3pIt(wEi!UO?7qcdmc7$(f z+=tG2^d3gY%%SgUh5>S8r^zD%t9-^KBd481OJl-B;(~eG(N^XOj|jn0X7csU?!D6C ztgJ(rDTe&zZpFx!mN1j^qz>$%};KW!97xnUpp2lyw)+`{4U8 zS(BUQg1R;1`J_>m{+@%EJYEjDAv@xxWD-v1QqKsf0Ii^h&i6=z+*ViuHE{_y=ltzu zZ1!COYTJTow318O;+TWdSRbXaccyW;rrnIYH!BE$1fT+ABT2nHK}x9yn8>M_G|{7U z1Y3rLY)0H>aC2Mw!MUf~j9_|#^ZnEH0Kpp1N|yjBi%j*POwC7`?D4)Zp>*Y~Oh1(reX69ur42?yCc4wCLeAb=Lw3|ag^z9jft}!<(A_~A+rZrh`Le_($Y)`fv6fxRF zC=)D=YGZjAR^?`Lgz34IgJR2#*ve{|f%vgynrOLQpa@T!OCd4LrV5C>FPocb@hH0{ z^}a=JYVGj{CG@mfJJ(aMP6l4UT7fdj!VGwrM&ncU(PxIvZ`dM+_Y!0c^!}P zqpI_sZ@I=$+Rkr=CFlC$;edgl0)wDrJOFyH!gN3u7Qj@9yIMGDQ8*n`I5S@`*I76} zT(~%2xO`N&V#!vtCR?;_QM4IU^yN{}r+JT^;llCG0-?@~w_32*lu-vkFj#bQvLI|! z=<(6~i^5$>=zKNoH5;+Dmivg5 zj0^w*TmcY&f5?oI!Tg`g4XKxu9o$&X@iNT}p3|zoksIdEeusG8gzJEv@Y;WYc>XE5 zac8unX%&azy;-F5$f4R{ zO~*(kX=azsN8T1qa+xV7HO~~}_UdIP>|-vTA_6HL{GycvsvUOuiTvP*hu&^>4tj{P z7f1XNz`RSRWgxP{#XbsmTVrPW=E zeY83AnXh&Vh;}PGZK!o_DV@s^!JJ{h(+?z*GWZn5U_|AhovCAlfQe%32z;y{>sO!C zweURH6slo3Hrx5<#zW8F%id&Dl9jDXoPhYNoZB%#W#zlj@RcYG?eHsqkwY z_bi`W4yPDmV zeQ3}C`tXp6m%nnP;P!{>1Hvj)0sLMX#c&R1wMt|yS|#j3Ya+4OSjVtaw2X|L{il+! zi8$_zz#J-W)sL|5#4h|WEJkVcg6XlZ1#9jU?nyehLujW5dClrEU8cBU-e{EVcg1R`W*n>Pe=fMUfBpI16DM-`!FTrl;m5$(eUh%sv2$*%Kp%l2_r)|nova}_ zw3iMa_G%c+Er#KNn65Sj%vXQ(^rOM&MsHf30f=8SzmzPn>{8?P`d2b4xTwy9N7v*s zS5w>}F|U`%Y%HE5rAxI5wv;^Fm=|;zr@!p><4=xv6ASIur$+w`kGRn zfqz$S%mQyJQUpSu?W~3;%MbB@_lB?jZ)DqNC0K4mi)euZa(UkXz)-1FMHEO ziuZomMOqm?Z7!$k_8)ChWC*>`WEWL_Qdq*p+Giagadm|@ zJasq?2q1vKanpZ_)1Fgi9VB*aS2p$KUo7Xe_!uh=u}y&jis_ap)Ph4Vs78{S0KNv2 zn{s}l@F@TSBm;3`MZGrM><($lze`dHt30;u1hY29=CI8@y?WMAwi`{eeq zE*YrH37#bT7w~qd?~C2I7fkCI(#PD^p)U8u@Yc>A;!40*SGfkSPafToT$%TI6xZoK z1oxY^DeBy_1Ii7nnaU=V)mQ(Uv<=ItjGq_L4^CYg)uWV1eL%g&x%}puMcxOPXY8-= z?}6G~?PF^G8;Fl==yv8$N*;l6RziC(+F!`pe+%3A6@Rwajs@Qt@VB{;c%EYSigGb0 z`Z=tFC+)CPWA1C=E4h#Brg6Re61!0+??004`cpx}(w50t*0|4EGzV1Th_(O+_uiuG zYq6nkdG>1`di^>8H_rA*oaDK8VhBoYAAMq@9)8-m(+N-)`jH?Py0zpVH}zMD=P5z1 z;e}sSfWq$(Pw$yuZB9>%JrUxW3iE#&aAB2Iap-Np3!iX%j=`-PUmtG2aqw)n-wu!c z)jliwvx4Cd5YOT+NW5bW=h9Khk$ju<#lS$tr9G=Ex%1tZV!v8vA99_uf)$VHPM!*!bDmXe^vu$Q9QWB@#8=~P zeES}>MQj^354d&L%=n#|Kkg7BNgkRs8+0nI{j}Zp)XDR*bATb(CT%02DHaXM4eB`z zI%D=f@Q3aqsF5}#=6LYgGGxCEdRzL|ad89zMLTT({q6~s_lH(wg(ovYrxCQf@Q`1q zNPtWfAP$uUr#T(>ODU!y7l%p_{N>yH4p77x>L}{XhyDVAo?z>bhe2`zw(!G%EU=A# zfVZ)LEq!+MOjS%_JLJ$4ifIJ711O0toYUhp1W(8`3`z_X-bO%{5QeJ;q>gat4{YQH z0umzwnO=q*o)artJ0annfJQ=4%2-1xkX`2Ua_nrILf>V+pSi-L|6ll6>4f7sYb z5g^2}-;HHda4`)tOG18!53Qyjr#Wh4FxoEA`zSj!oh2~qFd&m95CKjYJcN9+f!;=t z5zowi>pq1+9r1dO2pT6_EzOYj}z=e6kuIOu*Cf$B|+1V18nItU)rd$MxAb zjRygOMLDiHhYVqh%BbolersfLvxC!_E-kL9X9|R#mjDl=9ndM zY}qvvY`K0K^9ZGj&ZJ$!!A^6-Q#NBaY@mCGwtO?OTrrS!Pv|#T`r$bsW8KDs7}l|b zk62%ZD9>joxO%YsE;mkOU>lxZa^UoJzypK%1kkdHRdr@*bts2yy0xp_rS%LDApOp8 z7Wtturz@H|E&W$@Dtuihn-w9O8#Npg za~Pr@>)&IZJMWCEFOmnTt4t2@toArAoo#W;j{?jQ?nJvu2 zBG2E#12mD8bd=Y~mj6;PKMWUYMfr&5C{1}ci#tBw>BvrOJs11vQLkCSU{JvjTS(2L zg3{tSY+sh)u%-~4_P9Qt;p9=lffi9vWFh<^csx<7*aCrnR21YyMIrfz zvjC-tInooD=eOcNrO^Jqz+n7^{$~~#$(wJNep3{GUSRx(qWGs57>hOc@CK%J*Zt@X z?ip3-#&8xTgh(-cPRbB-yK~R=hrSJnf)#FnLODkib~>55QO#~W>s)5O%n!hBzwhwT z=kOmU?k&iCeOg6kTkxy0k-T^BOv(J%KxC<~AhfVG<{-gGS1xIFd9KW<=%4Ek_saTy zUl$POxpCvc6(a+SR@}`#zJfuZmd^lM_15ITejkuxfU9OfKgew}x} z1gQQ@;^x3jPLO8-v%gfNv7lwk$$hv{bJ@jb}u`Inb`2p{Ms@s|4s{x|5injwwHRgrE*2RbBUYUXb8>cjrqF^jErKM z3PFwkcSUj2B5XCShvw4x3iqhx&(&NWI!%cTLaNiXy{iQ55ZBx|{T0>0M{f&^$gYjk zOH_NZUvX6z-<_q<$ox^Tt|M@Lw&sn0^N+%BNdod4LT`g7eTv9xa0>e+=Wo?6_H%5) z2Bgm>Qr)Riiq*6P5$Ag;{uFRV5J5vOuSV4eyTW$9j8mm#H;g2oVBTnq5ILKGIgms0 z=gN~r&pv^`I%QlN@J)$$LSpz1F@Xo`qNBjxf9GVCoD_g0_hp~pZY$&5K*T7fI0Aq) zS>STy1&NpQxrV80UEhC0SEBI0uy)d`AEgdzN;*q<`v5pv&&ICezbXL1IT;gE6bQVCq z!`3$Jp#0gr{xFw)_NJ>iIjVc6@ICvBkO6RLtjv`1rHoRZ8V@2%_Xc!^yqrxiF1)Ntb>C$Y z5>;y!B}L0LMi*A`T#O-)w;Vq8Vz`g=L5 zkK?hLmRFvz8%NW%GoYDRLB2n(-i!k2MS1O30HyLfoeRew=2F^PnnYYQ1A4akSUQ!2!ysjhpSb#^h8U?RNzpC0 z;U5^0?}H3tloyZyHP{f9_Ba_Z(1#?7RpZswDGF)9+kg~L6)^)j3ZStvybT}8MGVuG z9O8R7eo?cj^X$NiB>#iPY4E0;zMFSI(f)v5&zFq_kH8Llj$OeBPP`W+;DbE}W)sL4 zF+n0n+D95b)WbQL7M=T+2k-Bqj7UJnI5n0WIlxK2J%lA$07}^oJ#p8w6>|MYR}0QN z$j|NlxKT3JBwS&H`yA}0v2N3S&=Ks@?wcue?^GThtn2k`UR^Yp&OiI{Y{qY6(B-H- znA`$tyR!fSm+oGYClef87Cb>KZ^q{az%-bm=4_}_JSjGoDToPR!6@1#JTc~rI?{$%YJK}; z89WC!Oi*`aXm{yWcX?kK-ZB_eB^{GA6FiigG~DK{IRGOmNvdzB+iv_#>-1ttXk^GP z!)SUNLAMRa2->krK&1Ro5~!4Ng>d|PxIFz7Tq!u&RXa{e&xH_?Zron?Whj#GDN zkf)B*5M_|R4Vb9B98qKrFq&&xR|{+{k~3 z4E?JU_y0zQ{^H@ow3HqM5$g(cLD#eLrd^wzGiz@!Nby@%U^uG6*9_{=NY~8gq|Acw zVgT@cyj&;%aWJhk>~d@OSSLc-)cWaLy@kS)wTg99w}}Y7p0e%ECyaNWzTxDJ|F$dw zIcKnu?>jR-8nIAGMSlOI698i$qH{!Azw+L;&Uc2<+XpBKW0D$z z11@gs;&NdeAvmB?6K0=Mtj{p>lTuTNAkyE?Z_*+b%p?hm=l&|ek>Df???rNq2GU;! z5u9vPNyr7qQ{192A%$oxKp)h|S18KOWa#&Mk!+rr-V8_w94V@Jb$-<{%Ov2F(p{?k zf;fD%v;89%h$;z_o($c(Qh5dCMNuj$#tHx<%4^ie+uNB^89@o}6ZiV*dXWsI1@A+I zNW9}WtF7L12}r&~^(s!E_Ank}rhwDFQs6%@BBc8>3M`g`(K0ADY05Qrr>Q?Tx@Wdv zGnYYPA1X2KuU>D61-St)BTHm^=Eudm^h`8>-4m!xVE4Nf=BB5Vz+z*4>+P%-P;|mn zA*jH01KD>!$V5Dg+3zdMGWvBbz?NqytNX@$4h-1s4Q>GZqQZPL+3(G}gt)n~cIBlJ z`)ef<8;AAU67|!diMoMHA(qIxlFPddHXj1XfF)DW~9 zqyU=QRVl<&%IM|TP|}DMV$5l#VOoon^Q^9Qm@SetZIO^Cl2UNjTfZ3PRG)pnU-YT% z-yRwI7bouOld@#kR;d#4S zJkF~t0KP{o3=}pT-APuWpEXAPr43_M zVfz*5XcbXImymZ~U`i%d@r74PIE*2i{;I9QLJ3Wn{3n)k8L+gE>%=p<9~ImmZ^|X@ zLYWMf*@ZYSN$bz)B1vQFJ#J^onK$Y-;iy@00HO-6kN}Y=SX?m|O5HPgRFjA=L1U z3boWb5`ghIk*<;%z^$>f-ECfz0)0T#5hUCJAfjYnN zrxX!@4fw=hP`XhG;}$m#KdFwDtu(ZDgtY@CZ8oJxOJ?W?n>kmL-R!eUZkM;M_JHEu zD38$4kkLK%$<}DmM)B0(Zlh?QH4V9j-Eoi6GOjSS%alhzQ{Xa5uZY5@3mY<{=ECN$ zmPY^QOx!nq9lb?CT8hECo5~lC$K&)`N?FD>)#Z*SdT$Aq_jG4Oj;>CEf?_N61(({n`ZWCW2;Okb^QA^${2AJ~!iE+eJ2&RKWc^8N8l$D7uMfH61WCwVbtcS@?| z3SEIGUEDZw+h$Jso#Gu5u13?vW_{(I^x{08sm542(#F&vonHY<>n&=C`#YXx{hU8B zORZd`U;NrhxppKEk=J$IgY=_m95fFVpgdo~e*IbkKs&HtJ$%H4lVytU?dEZ}zvfHH zbKiy`86tr60StW0RK0=9QYo;M9~YL{z(Lig^%Jotpu@M~^* zpXf&R7d);<$}hNKh0;;9Aak5sbw140YF6;71~Dz{KW)1|4-x+w2;itn3z9(mb%<#D z;}Eeq<^g&@;pzN42tan0_&ay}e>g<^4gz#Ge{QQKE$A9eXS$3o)YkpdqUA08rrIN2 z`@ZCFX&g2hi~T@=TNaj-orne?iD-b6&vL!r!ENih*w`^Yxdwjv{`|+J{Dp4&U*;-q zrMk;KKTP3xk$65ENNi!;-BdE7XT6C%P95iA)AV3Fs=%;yO^IDWqmuSO(=p>tznBDx z1v-MZmjTEwm3s^=FpfA$c{P*82a9Qb#CQunwCOG4oxCO%%D{Wbu(s?WO^RhNaD)tI}!j&3|ar`|SO=*~t-B)FPg> zDd18$xL_2=!m}_TZvS%)^mMY+QnYztkyJ!QJ61 zrYe$_O>=y$eD%~|f;WGXM+(Ul$uUBw^h{K@E^f#3xyYR>+3&g13itm51o&IqZaIqO z0pU}eKm%bVN%|XM6{8_~w3hjA%^fptfvLFmQp2ko!_EL7slVeQ2?t2Ps`)?Uj{mtK zf(~_9U8ryp0|n|hBJO{9Pje&zEN+EKKw(Jv89|g#zl!r|ZW%ShEz%1+D)3!FG=Q*~ z!A#io<0n=llkY{SSvmkN3HDtmoTWietH8$$%GGw1XwjRiysPH8uaGo~BpROJV1g!x z=Ol&3^j>z`D8Fbx&FedRdpR#?E+JxtM(yZ*a!DqLrki1^V^});n`W8p2QOMH&-F*e z4l0r>pHf*H`lCP6R7sOaX36B0UHnclaP^uii+V(VzK_nVz%()1 z_}K3yE^8Y_N=22t6RasH$!zi>FL5VBnM_*X6vc%xD8AyqloPDmVY zC7nW27xo$lYqf?6>txI(D45)EQ&I0808qZqby?)Ggaj2}CB&xqt0%YG1@Dyg)-CGz-%E=LXhy;cr-Zaj>l z@^6NS?K{7YXLG}DK3SF6L2n+-)x3~wJ}kgEN?zc8qvzl9W5+$_iX878+*Kw0R6)_9 zDid~81{fMo;^1kPed{80t&JY`pD#FZ9Q_-V@4w-4NUDjFz`e}zJIZ&p`tPB9|McSR zPc}fvUu=LXz5Hvx*#NsW!^O^F5YAhgkSRrPz7$6-65!&piu|CJ#!-8iSDN^DCEX+I;0fcU3Ay zFYqY>>%bt9;$sSD^$7@L7#)gj$muDNy@rLP9op!uua3i^ zES!Rv7~9anL}m~-iyiRVkCXsTxpoZb;N2iWlx*|xdfF1Rf=?i zV4t{R1M6!P62cb=IMOw-HLb0VSWVoQJ$Nr*^uUkmvT*PKRjj5XAOcXQ!)o$ScX-Ai z=e8@u;w@vNcMe8wjE%@!nJ8ZY#N!W)WfpEQd>)ks8^T&dYgoW2ZSoY)VRBc#mLd4! zyYwo6#X|q8<+wE!F-Fz=(=9%&Fyqg<>B7dyTFG6zc)&o?`9N>wy?4xRw$q<^VCi=z z;IPzu^4CBz7aGZpyBXs=Gxd<3E~ZAX5cSN(56S&;4HZV2OOc>B&2406zcO{cIg=T^ z;G`3^p>R){Ahz8B=tG$Y!go!0Sa(H}vu;jYU=s85eLjQw8BDrv*-{-}YW(}6?3uFM z_^UfL5heCuBbs+jU;KBx66>tfzv14|sWpdn2gZIMo=uaGc#XjQ`33i}mqHysvwLz< z>01{ykvxpzX_sMG#o#~&247o_7gj*nB_Rww1uBzq9!qjIuKFFlmkBCSrzRaA ziBD1y1a;svR(7>l_)F$US-O71XhYriX-Ooa{aQ2=Q~n*8+;bcbztCZNQyX5?v$eE zD_3egtRjZ9{D?N=a@Yjm8or}7r|D`m!N^a4hvijMcIkhHZ1vD(w6><87Fy0u0* zBh!`F4{8jOYmKY4-_=?k)S8dgnzoO;YY0AgVnh4H9H%|goOe*?qWi>hc4Vfl>!98< z`HA(0_H5U}K||o!lRJkavoDSho}y^$Y`{0?Ua|jdjMJ^NV|hI{c>QM+Cb`Z*;O6{@ z<p7|5i`g!R- zm?CxYm3<4Aw!t&@=7$yb!;T@{2JalVTXSb(?Ry#ZK9mw4W4cLNNzo4oEpl`_rBAz> zuHJPEpnm`HhHBfh3Q8p|vxR-({%&gVr*1tD@9cNw!0{p@!H%(aqFQD;H*8$)krnID zQfPZ!LR4%r%c^5X<`ljb=D%fsqyYwgS2kUMeZ?hFJ zBZ_tvsiBO0?Ero``J+kaI8DnJ+3XgWOOeLxA4)q|(3bxIiPU ztnL%FS#F6sU84v1qg7fXFP{qI5QGdsiOwvc0dZG(jW%JJJqUeN>J%l3lg?=5>?C;i z>vi>y@BO682cjW3e<*oek)_4-YJ0bL=b*!JH(zK86C;DpDI5a3*F>x%K z#oPsyi|%_+^I>nhu}^fKUlefUUH5kP-cVT2FO6@DeQxLOqAyO=wrBMR=#j%GLFl>< z4^^QTLYz#WTzW>O%anQ2t?Y@60JPAyENbR6`Aj?@zbJ?dyZ=d@LF_q2@v`;rOg;O; z8X%N@SHoO@-ZJXKz3djIyW&Kqp6I`PGi<@v@UDM}c4R zYZLLuGi+udTi#Lvoe;El5`d9{jaSKQWb4WcQLpFRv7|pb-an>%zVV=Mw%%K;zg9tK zcYxKoZg-F)U}qNxkG--t#Fyi~H!OH+aCs#8vxe~Nl-*L3Iz7${X%WVCG~%M|RGyVL z+Z3*TRmmLsAcUB?p~@>2M|=OW@&PD*Q{}|M?&_%dIiufiXT1lrHnAc<=N$flNB=SK z-(FtVjVKaHj=qof93=5L^PhBoIO|pJ(W!{aeFFdI&U%07;-hBdO1~fXs)os={l?i- zkpa~BEqCM0Radt2HdVv+%MxvNN&#;qFkue6NzNZuSb93t1y;%~5;l2mtgvcCBGM9c zRLd?3%ykL0d8K&Q#lk1`_C$(vE=j_>mI}5b+jDKDZ$?S)MmKnrSO%rv*t0L;aZ2P1!@)MI zoSxPjj8%KOBKN)}{;0!AXHICLzf2Ss$>XHgm4;;6B#ZGoAGo$^Xngc`3%S%vshVt4 z!jIG7jE*iFZL%6l52m@8>z6O-3upP**kiWK*9}~cCL0VS?Mv!#@|kE_ePPK;a1C5B zWJ^C|g`vD{ZG=>PUA?BLkM(QrGN(`+uH=$;X~j-0KV7qN$%D^8zU?i!X4jM+H~&N-bncayAuOJ#h*l8UeK4jz5EFv>5KkzQO3&A9c{`=cxtK( zLSq|-H1U|ArV^EGv0y^VC5aE4o)@jQeI2TQ5b*l_2fGS3(C%eD5eeEW^(eS5D^B4j zaC(-!En+<|lB-fK?#soMuDP)W|ECwaF7YAZK+SIo`)GArC&OoR<0?Ee@8f=UwfCgB zsD^A@z6+Fj^@32Ja1qP1bT)bT@{AUN0$*7MF%YoidWZ-Xj^(hqKF)O{?y9>Nbk=D% zv02K)hL-qTF8gEX9Lp5de?RMOUMyLT-`!IW996lvj*6B&nV7C=Sxt8Ryy`=SeD{Gl zyHI$vM(?p*YAWNSn-K*Xau2Af?RC_u4W%|X-lu6q={R0|8R#gts5E*1dQ-N6y1Si- z^br5!gBQl~V%G?}qymps&T*vTt5fXSbeoNkWuekhh zfPg02h@q92;LbVax&k`a&?L7ClRT4N3Q`WkN_jOF3$XD zwG3U?6rYZT^jY5r8^!hCH0_9APmEd$!)fZBvW?l1YSoOVUOPURU-5T*MY&{Wr-B$i zaLghG#W+4uw49M#pgph3Li+keM4G)~eY-5(9KM6I?wgv=+$P{&((T=yi&*PI4JfJ? z0zn2?RBI4guFGKXa+>a3TwdnalEg3XJT43y-HF^P z@${X2sRRUJ?aHJSDpIpVoGcUcaG1TTk|B;AGCfVZS@@>KcSaNavV^UF@*3Xo0yLwcd5p=JrG1X^SNtmGj1fC5~d zk->FIOkd8Ib4gMt_3b3aK9l~^n74A)^SWM{Q_H7E(q|SJa%1kH0L~kkG=6H976FAC z#!7>x#g`lwRm0UXQB)l$nmH7NfP%52>1EK2=4j?XG;1!Jy#viLhrUQa!&xJEWFq*? zBQ6C-2P~q{M93Dmw&z39EjIZrTsGCb@AS5)hCN|3? zwwNcjQK)ofCA4=WazA6}+LU`qL5G=(H=Q7}_q2?YOt4ZSckpyTMrbL0N(@k<7{fyJ z_Mp8(4D)l$tbBlQIE=`>Osmk60!cy06i`Xh1BSo71SKKbN7w$!Z3`MiqG)s|{(kTb zFV6qs-wU4cjnl`36UX(6ev@YR~B z$`Oze`jT*vlN;~c?5@zM9-X{(Fc(v2V2Z&US<>78%r6;&MWZB9KoWN(n=2UZv;Cpy^lpkzT= z(m4L*^kJIg3bWg&nnGnZhb9W=$7Y)4&RSmV1IjSbCp5mrmXE%+P>VeRO0t0IJuyn; z^o{)qDvYp>@p!5VW#aCqQS;*ED(eVKOYprj7jm7664;=Gbr+T~!Pe*lAEsB<)NmUpgH92( zw_wT@nwC6N#w+G`DQ?1~zRUU*8P&D5ZW0%j+FOS2C9)F3$BLM?kvu7^B9=W&Q|4aD z_i&hc`--4(Fk`Ve&5LNNtOm=37dJ5^_r3ykvD%!x*z}znoz9g`S8LOIXsn1qIgPdR z%!r(hgf-3nHWO}E67FE4>qNolW<{Uk&Mwp$D2N=sWhjvZphdaj9q!eX+6=1ATb35V z7&tw>YK4ixGam{;E+aB3J$K%jI{zhj=D$v;(CApe=eCbVZ6vz2jO^F+eUs>C^3Dsj z%Mqax2ASP+*^DzJLfkN{9mx%2@e}SB83Q!)B3N-O-kWIXrG6#YQ_%|t*!ZRVUmHC0 z4;DZ&YN5uTxkUDH2N685@E!YTd893r6alFftY za2_4udhLu;`X_>CGK#IO6o<@T8G2(fK}r<>0yj$e4koK6ieKfJ`!%{_58XUUb;ITn zQ`n9~cB^r*5ZNp3kbQ6X0qcQ%`A`>du5zc2r%mpA-do^-bZzOtCHseL%}VpZ1hY+A{Wy2!$MX|K`;k-lDO31 z(N#9$V5`oR{x;YqvOt)#Sdk1f>LF-f${VeD#dGjRiDSSf!M)l|qd; z%@$nu5%s-7tl(b0_2`W;4-rYZmj1{nI>bbTiuS_Q?OlkY4M~zxmgbFJbg~bhPflyn z<ke1U~9)Bes|7xtJxo+o-WHH}dYTstNBAjk8?Ry?330{_eUTaW`Jr(u8mN z@u+aRY5zDfKbz+jnC?&$+c8{7Tzkejh`=GI<8@!3m+AtqHR5iN=BI_^t{%Vu4TPa&{9AyVrHa zf@hyB{%kgTPH0@c>TU>qv?$T}?Zo{?lX!9g=GLPpG}>JGrBJcK=`}a zucOF}J&wk+K|h}y`Cir(+JFo8;3)pR{^X87qA~^={)c&hN!_aIM$G zDnBf13P4zCb0k$Dlfa=gwsAGAM340X)8qP<1;Lzdhv$tZ{oC&Sl4rJh(5K$)=LVUw zCtkJ@b9Bu5oEvhG{OL0Vi$YMN8t<8{oul2Ob25NTuk^9kr--vvwyf$W$U*Cwq%cCL zXmm56XoBK);Jf~l+-9oGA83!LcW>6KqY~eGL0Gx6;N_>1zd*_B9{Z(q{Cc8UP2DaZ zq>d+^(vn@_2{st9%L^9`1!un8rMZo=Ow#&{yL#5-0%8OJs>pX_ZM;@9R-)dz>NcOH z3%NQphhGp08tT?Wf@Y^-&JYL^1mvd<@VD2?eY9e&;DfKg()>?KY&!G z_nC?SPBgTnHZ>)T(L%dZA@raaaB`OZVw7e)xt623qbCt~MLjfG^$p{pGv^LvBe*~aYscf`5lQ(vBJ{3&>b82`nJ0?D9A%~9lmD2m+w zz6o_xp>FMF0WN67M~}KK(&h(*$~H<|3aZ`Vj1ExJ4OG5BPKQ2>Vp#J~-wa}misD2^ z^Or|cshaWup>~@#m{fk zV~7lkI|8!F4MPODFs2ch$KWsw9Oh_1&f^dO5+?%{(~u~|y!g}9_}{*CME+y;_}@6L z@T<>>R1;_!shz7vLTPCsfI;zw8qtWcPs}bNX}ld1f)Ia=CXD?{G@-2wUCh^d9vgv6 z!ZDAKh5d6T(I8p@0GN#eucR+!G`EUEl5b_lfwXMOFq)9e{2-A@b-lIr18jWbc z;}bA{W*J%g=WI9y!YUo(=Qxt9{8V1%kxq*mx&K2ZJO&@l1t-hNccwVoUy^W{+D(($on>tkh7b1DWg zeeWTr6zSS?Em%gy$iB5G%1$j3X=2LemJH&w*D7s&u~w_%txdL#M}=WpT&%QV7)HU(rbK;QL@2S9bdgCa^*S!AjL%{1QCd`9-ZjDg!mF8=s?) zsbN&KQ4GKgmIkQOEgezcF!uYZk!^Bwi9fQFOtCk>BKza2Ecf>(GzIGS|0b^R{=qx* ze>gS%DL>?Yvac!Dl4^L$THbb}|6Foh@$A=aXfTch*uN_HtmE#tIV9~v{2O%l1spJ- zJ!O%sF^p9wk3=B1w`=R^KNnY+mae#XU;yB9C_FnS#zVk)`r%3^Tw8l)s_6Z)c*-Ci zWl@6crM<{_l3turiy$CGig?pOTD(EyttRA6mvF$U$<|6x12P&W6_oKPzKKf>BE~*Y z2F0?>Z>sWoe~SfuvX^_o4e)6xyLdv-P{bRi`sA)&*qAFrCJ3qtTc*S*t!XH{_-z(y zh8wr6N-v6QT#cDXPv^CRcg{iFLsm16sco*1NepS$HlG>Jz%;Mz&ewAQC7Wd0ob(Ve2XPgD1rGR0%S| z8+O55bps*x^3HF6bQg#3M){O0$6zUVh2ly+5YM~S#%h;v5u1mr8C8al?ghgLtDUZU z^Q|ewbBgKuWE!vqR>gRi1L)h-#!_H)%4t@v``+d=^2^=et)^kpf5fe+VVm;tS)Me!V$qdij( zm|FJ&x#Xv`Kymw0kc>Fk^uD!~cU+OX*>38o(KW+|R!j{QEydKn(L4nm3^?Lkai6XA zE8jha!I~@cgUb%IZ_3`aB142p^bv5#!C<6E5W9}{ZM_ucu4OtwpQB5kmg%;cQ@zz{ z1TEmg^*a?8vK2+L|t{!9}T ziy!5 z-PVhzlaGqjjb(557)0w&ndxl3du&q8;!m|@Lb@>RuJJz@0@VKxLV*66sxj}3o{9=p zp4K($ONfw%8#v^}1m8_5#Pw%#ByDF|#*l2wzR&%Quu^`F*?yI-mm91ue0B5Hne`L@ z^R?fvea!%r898sj=VutTJ)}@2jhQIPB_3|=b{hQ<8bZxS5y)*QgAVAYSa*^#3Aqg3 zBDEMJR`R>2r1VR35EoQ#B=u*~;m<|hKR3L7+La(`)%h2b`v2ER+_l2OZ3e+Q*_JC0 z@BYPy)0e^f5`4Hze)GQ^lSOz?Jz&n{>*qxuScl$X@RY&xI6mO$C$-ev8{!v-HD_N@ z@D9}nG93H9;F8<(EOc- z>&*HC4M(XN7*Bcr?=sxUuQc4?lO%f%y*MzLMZt}*!n-_|O|J^*i9HwRT{R87MhrZJ zmJk@Y>ujBuNO)WTeiMQKHpC8W*Bjd9N z8pI{mm}=G`rz(J*?47(=i}s~@nM{)un@0kls(L4qI}^64YE|m8Won*baXrg`Hd`=? zbU>8MboW-O{@Xhr{hoJf`GVPq*)?z?*i^5(u&(IGWUdB85<+g}%H(OT1N%I_l8Kce zt1p7IzdZ{p*T4J^iahmQqH=3>o0*sPiZ-Gb$u}S*9`KT{_r^00BVwt*l_&3q>fl?E zHwWrBzw4bcQhG!!YE`{9EN04P#?ub((6CC1Zh+pL{6Aq*|D`n;Mk#cJn?BcF8vXIs z7TSbGgI>GcAN7^6US6E_??&Q&H>qR$&@>eD818+1Fp*v&fz7- zYkJc_*mG&1+~;Jqh{9syz#2TcC_`$e>03J|MBf@8wE4;M1O}?80$Yi;}wl_m6 zLfqI%BtRYi2^mIc0!I6YswOUpww>vX(J`qI$Kj1^g!jdw@0icC92VzDk%@QTshLlD zE@>`6OgQrN=1O}(q0P`lb#neTCo+9EHAptGR5y5do_VqUqdY0N^YCdYp?Yk^l#S^H z8b4y6EPN{TZCuf4WS*4}Nv8;dp&SS|SQ~l4XOhV1j^AxFcWwsr3Qiy$ZW?BH?mj)8 zq%?HAOeFToF<6{;!Z66VjD1YQPF_lL;OMPnZe2~gV!15Bw=gdDj!E9A!t;nbd;U4p zCA(!3i<^_bzXONEp}44Zgjhfvk*3L4Cn*V_Q7xrr?redS`^R(QN+ zbFz|Wo4ir=@GF9VXQng%Hvvz>%3_9tP_9{f?Gw=Kdb*P3*a^^2|QWkb)>Uaq{LO ziWv^ZLGionqlAeyq#qh6lZ9IPy*2pl?dQnTgyHpvuLddzll;>Uz7>2p-u`uXJuV1% zUR9?5GQ*FR9!GfNq&P;JTP1t9CTCk?<4ocN4R*JN;*DPMrmQ~=G5H?veuJ7$g$JrQ zf$hB)QJyzq)G9k!GIl#kyjoxOwz^wk?uTR|x+guBhWldYeK2uZ#CVj9m%+eG5NFrUx5*<+dre!rdd> zdIw1WP+m{8>(y+k3ei@n5PQegMwe%MDe7mZ9d)e^8&PAoNu}>iu@EMH#EYA5HOe>P zF!GtP)Wfg)i>S|zbgoRt3X+~n1ItG@FpQ(3L9&O0QLpIxci@wHNs&k1ieaytSej{o zR$|L=>@XJ*-=11N^A?37x8FPQT=$Hg=l0L4-@lt!UzdpB0DerNuPG1#_spZPGMqHy zbaHWq9p<40FXL%8gvA0~D6In;S-v_oql;z%;E;1+43k&z@V+C({j>+>FH144x?`@( zmNiQrU{E|RI+O1EV0r2(1(Vx#!PSSG6U~*vafD`KJs42lQ#bh5^XZ1ob^|Nx?Tdo9 zbpxpAa`*OHrFt{}M$}zrxZA1YKa&KrY z*iRCy`6mhXx66c|Bv=;JU+TyI95Vc0L4s*leVLDcP1CN(WUq2{(Exa}z=Lq@h_*a- z;e1m*D;&;`j3Izny*F}1Eh=?-HtF^(w96^=@;YC zj^aDXb8fR|zBeFT6dTO~n4*+g8GgFV?mC5&NgT)-&A$QC_=N344ic zvb*DO91N4vnsZ9@S-z5Y-Xr#%Jre1O28451K*HW(>)F-u9(RSf>{F7@fC=ZwJ2jH2 zfz2yAbsEHD3^>gbTy^*=1X@m?BeP4T2%(81ipWAa03jw8kfq9l=J_l7; zSfp#=m(+E6{_9;-h=$CIjK0ElYR8#Zo{{Lbp%EZ0Z+SPq;oj5$&|(vApc) zLBo!C$73x}>>H2g5beaTDL=T6ib?e^+rJTlVH%9O$6!P7*MiL120}cVm0vM7d?Fml z2V*HL2~A5Cn5|gQ!?C7<_YXoe(ldiqxU*1^G9g^+BT#k8y#{!cXuv6E$-mRy3S3h!>m6h9)=cXrJrE@jsYB*_k%y_wlkYRkq%FU~h zp}aNf>akyX>s+RS#VqvUAwx=l0tnD^vMZI|PU_5qTwn&z`+LO)>>H_Zx%t|R%=!1T zi&DaX@MYiRCR8iKD`2>Dgl31)fB&%cG!ZFs6ToVp@Kf%0)w9lNDIsUTJ2d zes^FLB*NtT9`kyK>1YoCbjs{a4W(%=T;o%A4%k3FJ zSQ$0awc;ye^C)ea zl>e7R(hlw8NC&5LG>7+^IdTbACBu9r?2Ak+xroi%TB*;jOV1QkRzB3H(JP*A;&wi{Hj@t^i4FCh`o9e@LI(Mn-%mUaVOP0Fs!(&8@#++N! zrzpEdrU#|!c_S8O?|1c77DyDH2_{ZhYtUJVH!g;-YUu7e!)0AZGLg>TC^8=oJUNkQ zITPo2BJX=0f4x>Ac;V&KgVDa@uWwF{{`c08|8n_JOvdI0G;jkS1QtU$LRB^Z)jKi> zR723Mc4ZenPnoh?JxCXkVi;JVn|qJNW@r3l;U0peoy}6N9!1d zfbSU0-F6j?OQDDc#QkOJ2V-7`vYSx6vz+8&P|k zxhfL_Clx-M^G|?_xmWiFqI|mNSxNSDm3lMj0&SWzgS@yDYsC;g!`ZASiP=i`Ea4zg znt(k5sT%JT`Ow_R-9^V<>(e&EJI;uRU4|4Zv8t4CJP!f%e09X0U!bknWjY!=uj{U5 z_+-NEO!wf5j+9p;;g99KaqiLk?rcEQs|*|w#;J)!0C-`TCCd9nMF@+$z(i_~Xl(+RsqI&@9ha?{{at71hb0!YQytP6%`e=tS0^ z79dO4Ci$(CbSpBz zLrF1iKp#{-&-w*zamTEH+jo{zk#2TbBN<+m^H9b)U{X5$qz?&bMa1zwa%F;@dZPWiGFP zvsD5}p7Y9BTO=EYZ*Z;{$tor#?gOr2eJl$8%+2`zhiVoggFLR@?7Je)e;hQAR zO~hCk%IjUp#8<9B&XL>@#b~*M0Pic)&otTX>G`8E$oewk?X^W>$iFU9{Bv_d9@RgX zQu==~rT!g9um7=dsj5=zh99QX`#+mf&aqk#{$NV2{neC`y7sFnb>$aRD*HE6s^k|_ z%02prDfQu3Q%d;{rqsjVOsO+}GNq7zGNls#ktsFx|7}Wz{=t+Q`_+^h|6xk;199+3 zKI^+iFytKO)HTiPF=QV_yB~b#SmA*pOrL7m+(>Jjzr`-Pf=@+V3S{Ab=GlQ1&fS&F z0m3TP!fFbC4W`wTD&q_`RdM7~nY*$dvA>v7l|M|W?20c0Q|k8brj+fkrqtdkyJwx9 z1XGHaU`pLMSn$J~S~a~DHnI4NDb<{N!8u;=(;rN!yFW~+WD-87znM~^#-j(?Mj|gr z&Js*1qA&9~R@R%?c-m+5e=()H{!LR#0{4uojvkE*0B+AM}dDm%l2RE`>4KUQ1RwpXrs5@!{=W;9YM6xMo*ok7LXX@ zWv7yj*~B8{=v2_RXmI2opy$L^2hjHpvsjmW5m=acMDQ>d`;#RlABX|4BN`0Ua%lS1 z_(!?1a4EL)om1!CX3-E+Kf5{*O*d!7wuE1hZQg4ajTiUY%Oho7+M;wU_h-N3{Sm{t zAL;I4fDQ>rXZ>aB=O5@r6T&Dv9(5Kvl%_Pdn0xyw^N8mx?4Zmd$lZXP^XKC5DOedPzkm&lEirB zVhlJxvhI1`(3&*(o4%F0`iKrgE7rQquSOCUX*@@ikKxh&akA=LV_rzdh$HJnj!uqQ zMbq(rROaW$8>K6w&)RECKrHn@lFEg2C8Sc2tmxgf()+_%dgIjWz&i_VXAi`pkK)BMo*D(IPR3kR4}1O6ghNoHJ!N>K9-MRkko1=# z2v-(J$!mMo#{#}#BNd~enl2{5G4KwC$^B#umOd___L5%Oq9o>;OQ1+jC)rZh^fM z8Yn?Lx1b|n;Mr-{eEMKu0=<)cB5k_3Ed#mJmf?n6$k`41#ZTX zk=^X}Cs`$naEH9udbL+2+qIb#S0t5QePM9B1;yZGcIMj+#nk!Obc{6!u{|A+xTPZq zv%qCbwn-j0w~B6rvEq+WUr;u&6WlO6?s*f}^7DtYP!PdA4XB_5Q2+ovPMjucFHmf5 zd^XM7BLdoMCU8oYk}wM#^tV%wPulghb^D%05K+qcJ&iR6C6iOSr9W5n+_Hks&_{ZZ z5?|enoCs)SD2c2nBAZ+jw@UH+BqM|+-W))sG{HX1w9x@h0j`8d<4i&xF?4dlLC|Qr zDn-4K7_FHjPeiAFavPH2n@wSD=biVs{9caod-<3reLhgxzfJ^nk;@w+z z8ogUxwl>$!9lUvT>$?9tk%vKCKyknWnd;Hc3d>B7KGzt-7g#sYRboA}wyx;!%u{!_ zSqLhC)!f1PejvKHMSYL063IH| zJHzF-U*`Myk@4`OYpnW4s@A^$@aT1V0Irnhhq3c{d{K^TPeCQ*#}R-*X#jB}i4{(H zqlqBQ!^4OI!+3sM{a-WG{B89ggb4jp2j*9Aj1Z#@JpqWJEHeLG2j(Adh5hu#etKg+ zy|Hhfzi-r&o<7`croVHz)qd)KQP9tSn>R*?4jsI}es3LWcu1<+3IUv?CCC}#3HjYN;yX#b5xkPm z_|>?DtL^Gd%oL4wAL+0PvY%M?f;{2>0whI&%PuMM$;R!iFEdd@GcmbjsmIf`7f z-HwwO-Oe&q{Gr-8h+ee&As0Tn@cKDIw}Hnyn=s(xQ2hS2CoFbb_>eFd+?xex2_ZWK z)lR8IKbitCC;3vZuE8T$=XEtZ2as7&znt9vjgp#qM|9=6jVJ=oMw5ARgI)7H3^$rF z{Oo9N<+~#XPOZEt2g0|ixzrHtKIW9Q_$CN&bcVVjU*(Y?>nSG&hIGW=J?JCsho{4U zN9i+6L!zy+gaCIvBZ3re{6wE{P+@H}#|p1(IHU8N+^nVn5t^sM7hpm0^;HuKSd>)S zYl~7)-iRD9_mkbt&@pCcV(9eXIhe-c?;KjPoe-`7BCr6_Rl9$+)Zn^CUiL_QmMq3fq6FZ*~~ zF)b3vggf7BqhT3@(+Lu3rI^w5IpwsCH>)!H&QawGTs0q9mQ>%J(e<5~XT8y)Zm>gE zS0DfhgT7)H-D&^d67&=DFFPzAbF<2 z3RY+?na1?dEhgM1R7xKC_YTbEp4Cfl4&D_Zm znD<}2u_sJFyfMySy|Fj{mN#bpkG-+Nf8dRc6TC6MAKuvKzj|Z#Y=7{^%oiP6J#%%tPHx~Y9Z;a`W-k9GX zys?5mdSjG-_Qr&N@y3>Zcw;F9Z>;NwHd^( zEr$GG^Tyi0w<#W2RNjxULT@p2DWKc`?v2?cE5hg{>Hh=^{pOej7GNCdM8k#&={sZ@CM^tI0G*dDLXH z?Xt=SG)uRj{>(B%Ts5#qMUNDg{rr}=VwkKgSaaJ6_G3N~= zL^@6@7Hvg+BBWrGV0i^1Z6oe|v5(~Ix zd|9dlAqZqKM)TuQBWlUX<}L+r@?$}Obx-5jW}JSgEAmm|sd|EQO-TRnZel1#hKNSk z!X20ASV_hj&QuJMU#Y<&f(d@Mn+1h$Wr+vkD2T3h3n7Ticgz3{7-A7lXthesQieeJrgW!6GcqT^s<0d}psk%8?()L2s~(=>>_TZ;?B4gMkZs zZ4#F{YCMg0nT?MEW#bwUj)YUh4LkL-@xchGdxnfd^=f=RTaoVV)DdkG7K(e$@FImK zmR*_aVYg zBVRb$YEKecFJCJvdw%i8rVqZp{woIB^?p(ATUCE#k=rxvsa4Z&zj$M>yQV&SeS0%Q z`O>3JdwM(hTg~$MmtLb?)Bh~z4WyGQiBvth(yQEvTFB3)bP}x5{FiSd!Q!NOrqLqs`#S1>vvl;AgxV^sTvlYn0E$~M zlpb-vxIey3hfTzJiIn7PHl9UOWt`AUw`3|yY?uERP_~vU`bKlxY1>hRkH=2RVLQ3v z#6YxrH&I0Wy7{?U0(vw&&w7Nm(lbwLxSMQ6wm8#vcCh25+T&p8iAR2i)S?AIU+MZ} z_dQy%cmNJep;MtBmx%9fMc&KN01ywB6f3G4RO&6+_yqvqHX+am9p|69=`YKNPl*W= z%VIiIO_MuaTZut2LIG3rvOo425`h*EN1Y226Sge+*@u$ffL){KrylVA!mV9iTOE* z3*3=!p1yC7SQ-uj1ZR{PKZugrpH8H8Ju#nWetJY~y(V_iwcM(Ju6xmrxF2qB2$FwT0<)^~!e&R|v6HWAo5)QIg9=_NnUQyI03V;ck%bK^5P-SCTo9 z8qgdHYhKNL@_&QG{x9es|D6rg~|MWm2ZY#nj8Hw*lQro4FJKk1gOL=W) zMeHSkgTVy*Dm6|w{b+Fa414wa1)=NoVc1lEFfi7juvnt)Uo3vNm7)1e24l|y?xE!3 z6g8d-GGJsqgKgM|cfB~1+||htJ$Se%e(_u6b@{SXqH&Nyzvqe8=z}JP&k!7j%p7O8 zTFO>)V@h!&iHp{Jp0S9KwKzeDkuLhoa^gq|3c~1GEh{0s7y{T?^+QLJlnLqFezFH! z5J0|x#cPuwQE!o3B^oj2x~cH_fB@3rAv$m|KQ=eB`cbViJs~~v+-(d_G9uZWcp{B%0+AQB7I!%hfSA%&~e50dAZ!7{;skF&u;^LeI4nc%C$;+?}=*|GYB zVSAhyrQ`Z8^G=>R@Ac7WV0%8NjsPpJ#?*P%7O}ldZR4iylsggLiH(2DDihvL$gB8Y z{Y3rkGn_;-QbMb6$Bb+{3Qm554Q(@}a{skO5Kg8!U+|;6hDi<8d{kBgb)mV04h_T5 z-=C=8_u4S^DI-|qU^yq@{|d(YUn*|MZO0JWx7?>RJG4x< zW0i(Td1a~MyJ!3zNn*MoB;uXAHk%-DNbotf*#^$BjBxv_4XW#UB(aGZ!_wnPr2oZxvqSii(7LN#H*7Uu@r&nvYP6&_KdG;+83W>AgdQyQ(^e6S|=cZBp zl*d`g+IDS9AM>kyjCZr>o_0x)Y(;|K*R$_d2tNP?fX6{@Idq3XVr~=3>3&8zTaYeD;7vFw68B90X+EI#ypNQSet7=r zkL@WO$FOpi^xX{E2*RP|=V0Ow9zkLg4biUML`m8$0-z`y0dfbJpkLo4%0_iSsOAds1RWe!!ClNmH+k_G!YT{h5N8tpDoYD?WX-?!-`VQ?Vy*GOkP-EL|ivpv1T zpqCp-W?F#~iMV{3R$QxAUVdYcShMo^J%%smjgA`Ji%o@FSxhs6@7$A3I;$m|LE`57_L6LM-#U_2v9BB19gk?w<+8|>n7@5Qkgl2& zvA7@}3D?zyF$1)a-yus8O}oXjfou)xTJ6qq{w4=9#J+^Fi}_3cF+RYl^Hl)>!RIFl z^sxCb7I>Hos}#TiVb3k*O@+{}i>5Lu>l#?|D$Gp-?tg+2G88x4@Ilmqiwqtmx@O>r zt43>TIFMqLgu}FBsWY~Z_%)|Id2*S(FFajFuEz`QJ5p>rx5k{ZGal~Yu*SCc@^$}| z#T_E{+vV3k4>q6qD!AV#<5EwmUEwV&>h3Zo_~QD85N>}ba3q-NWVH53^6KJ8SDy>Z z-**mnH|M*aT&Sx(`o6cb_Mxw?j)32i@Xg>LbapeoP~N;5KMLvP8Goc2-)sQQB|8p_ zoU3^j4$lJacJdb%mvUh9uaeGTSXI)HB^8q3X2bE!XqI{|@5h>UWTcyj>wqXf`l;!}Co3JFGS{3>u*J*H^ zc!zpIswFJVkJG4|7jj<7FO}^DKaL-q#*Y!RjpqY|uftBtc~l6uo(}$6HChZz&=(v4 zDH=($sG8vPT#s88kJb~e(lHoT7Z+_NQ@UWPc2j8p)*o6z+$*4$O+<_20bJzto?g|^ z<45MdOuKT^4)XRAO%dy)H`k>n^08o=#3ZlDMsRt_ZfMS4ufO?r#c`LZW72_>-#=N)R z0bBNU+tR&`w-(!qDDUDaEOZIoF|;~gf5bk8u4j`!i%F2y7z-o+91j8(a6U|xlj)_l zC@<^Vr=E%$Y|6yKE;9zuL&Axlleh?m$7T6n5|5{T9!OGH0;gz08^3~Jh?!K@+&ICi zLv%_N0Uo-*Xm&i{5g>j0yr^D?~pTWK|-7lQJ%VL}=a#Sjfl7(pj&__y*+|OJ(GOt8wBv#0` z3(|6S+uU;&WjD29ekjXe#+eg2vaUgVMnd~K3BQV0g!QRSJ0z!%>tknGLrKMQ6`iah zK~eEsol;qbvsBGgYML=@Ru(7NsY*Tr&2mGr1;zw-udO6Hj%8NG(Jl@zsu^X_06({!VVqCPohPD?Q-ua3pQ!~Ha(tx5I*IXJHKyf! zHnuDv=WEm`nSsX2hd}&j75xPavyfE~gA4j$28EWPtXyVXRW9wp9{kTCTPx}=7Q^B7 z?>LzQ+b_GiP+TKJdljt4VY%@yTOw}1WY%0$4hcre&ty5|%3WqPpii*a3;}q%OqHm* zXeE^{k?{((mt|OlK0RRyEF%tmF}*&h5aQjad&M)h5~A1SU%1I>egg_X`_Cuk&~XGx zbxPB_K#+PPX!pB~oD^_P~ZpV;9JC1aQ<4fHH~o29-`?YOfFL9NuR{gfqpZT%;lq0+_{SHM=KRRz-y;xw zY#PX^HIlaKz7yB4lw9gA1EI@a9W;CL8m6l9_)cgB++p(_+oIFV3%{&qF|k14crX%4 zC(@hCANbL3-P(Wirnbc6(6FZ=iU+heK(&pR)ujcP?h6EBKycc6%J_zU+Ph(SU0SNFP%mXQKW9Di&9l)d4Ss$e1M;H95 zto(AOW%@YWfxI0=tG0Rb9vOF79OqS&l|X53mMVpw$I{wdRJS6WZrvo~Fo`9LeQ)`N z-!7*UlykQNFFP|wosSg4GHl5&YHi)4G#TPUZToxE2hbs+5JC3cNJeW@JlZV8fNZez z)PvcM@)Ng^myr62J}Uj$`x=jxIA3x5Wz1IQI8if+kt>y_foW2~Ox&AnPRTRb6$c((wC!&(<1H~Gd|;d zcV9AO!nE@#C#*Aga_-cMT&ZNBUyOO79k&RTE_o^AeX%&FYeY4NA4E?jas^+`U7(&* zzr>f?MT`QB5i>{5j7kt6lkvr=(nvSj?CuLDDG?`|a-6ZY z3&B>ali#NW2{DM8_t-PT$WQjJ&9*${qxD{(R%<=tAl^;8a5NbnlD_#qBYIVcQ=4X$ z%0RvSB*G|~=HiVv2bu%z%Tl!x31LS|cDr}Q^%y36!<*BQk}eWCvP^(_ae zGe4D+FIfYW9Y>=|=Qn#7Dd2%jzH9**km@a?ZIR+7`9d7o=pGD|6U4QgMhV5kgr^2^~ZkbB(CPK7fMOUO%h5xOd0j2>>wGp z7&&+9z<2IfPnE!y)ZH0MWId3sy7jO_Nxrp~yU+$`VZFSPxonM+Eh#9REaoyC1hbDv zu6IVZ z@}_zxSzwEjN<=YB>Q0o(+PJ`yIFSJwp2T8&X?XsbZ{mBB!gLLh_pNY{ddOhBXGdIQ z<6sQ9KG<1|%f=YlEXmDjkKEys)kW}hM-0bFVgwlfP-gs* z!u}%+W1Ny~oQg@DnrECwQk+&*oX&Wh?tYve<6{Ha$3`ZPFL^#TPI_!w_4w-e<7@km z%^Bk@W#ey{#M^kr+a<-{tcrIWkH5Vi@5GqkBAei5l5o#6!6PZbt17{JJi%u_0mqo= zCz}{xk{INf7?PA2R+Shro*1>Ch-XZSl}(B>Ns9MON=!;hu1ZQBPfFiU%3w^+l1IG?QqP#$D4W`BlG^H- z+Mbl!S(Vy7p4z*g+RvCaD4RBHk~ZR*HkOn&QI+<7JZ*YEZH6&@?nE|y!6bdrGkrNJ zeYGlmeLVg1e)=ZklWo~2yCzS*dOq1pdU8LIB`kq^*%fXFPfbm)LGdbcG zq>vJ@AwGv0Lz@P%V@brf z0NLl%Tj<+9ZCK+{G4tYy}`jlJ}r5plsf&zifvw6`#L&j4UEXmhR#DN}I z8cqGZIO&=Ik{OM>CP&N!f>;;lgZnd%_3~csL%|Ktz?dBH41%&c|6wxfo*u~!bWUD= zuI2;+Yr#TPf;cG7H9kNd)+6dW5gah;vj}XX^jU@?X}WBB&T*H7YbP*$=6b52N1*hh~dmk7r9idGhP1#QV>;Co>bUB0VgV< zp+ps8Ig0CKQT+#$OQJMus6u{FX?Z9m=Sek+U%L#TDv{Zz8Uj$Xpcm&#SXvnKYMfE5 zf=K!MDcah|ez~&qYsnunD9#8{>xcV<3UF{cz~#;&7e!H4v&Ciw$$fgSn0zTu3jm!0 zSyuO18MR5ShQ+mJlrs;MP=gAa8=kYHXoS)EtazHtFl3K;Hmosk-nkeNL-hd-M93i> zzO&D7vSIowHGFe<>q-3`Do6(_AQmOauBxUjgyvc{bc@u{oW@uWSzL|2?122RNyXU3 z-o}KYMOKQ*A$d1RPx|v8nV)#{f6XKYUqe5?Ajc7X zzk)~%O5_Y3BWDi=P~rVh=t&H8?kqC27)mklc2N)++7F#dfsUW8rJSvuV&q)_4v;k3XE;cye>z=YUBS05JVDq9pj6{AyT=C~<_n1YqiHWt1U%;FcT zhM|i0aER}Ei0}1{=k4K3$h_k4M^@U!#N=qB$trqhx@sELat1Q%x<9JLaXB*|yu> z$QK34p5Dlf;^K#g@Q}lns;W)^%?R;jB$|ajM%R-KR9*;AtxQGgi81Y=yJ|IAE6kB~ zqOXa?x`~|OIYOnaH7QHzj!ZqWvjWKRt4QfLo#1}Bc1)vqK~*h3g|r}$XhD2&i*ov~ z8w~0K>mmA08w(ioLd0l3;hVi28^L09Us8(eLSJv|l(#8(Nfllv;X8E*phm}y;m|XKQ(;(-$L2k1_-UowxX@df92Zg2vMUDnVS%<{W z4N0Du4M{&3l1UqqdpjgQHKcGfgkc?4IybChHmvqwSR-v%>+P`4)UfW+upa9>gLChU z%-&sk@Xk2xo$1?mSEt@xJ9=l%I%0Wl7tNCQ&LVt}jPO}{ zkvUe~xx=2k$nY7;%(<;X8nAgOZ%SW|JR-z#=ClG*>hly7^})PhK5%xP8MKhgu|RvJ zL)K?rrZ-RNGjj3#ysl4@b}w>v9jRV~)GwOfNKN>VHmBb3kxuO6+x3Nuw?FQfec1do zZRfMNoVI9vJm>Iv(Yki=CVa_}ZAm+G(Zy%U)@R;McWL$0l55n`y{H9Z{g1LfA8(&T zAth_)y?sz|;mi2_rSGX9-%>1C=`OQ_R%GCF&Q%K==vi%r#RPbJM8Qg`Lec@tJc-51 zB{tOLA&QQ94T)MK){Wo9_q_I5gJiBT>(5e@EN^(PoY!9y;aH=vSSR;g7kR!8#jdsW zuJ?Sd>eF3MBmYEt>r;!!rw-kwZ@1!a^W>8}djjRl<@IT# zfa0{5_cAMJoo%&=$+uPiL!2&rJB|%S_wqyVI_lfzDmb(CO%!Sji8yt$M0q3b1M4QT zA+Pz`?xiP;PKxooYhM^2et~5!sL#S7pszljGXk|ckXoc>YNI@SCQM}U`!Q`iuN@#W_ue_b5%q;{T;tGYBMo{_i&6X-eSH=u-x=_-hx)jutPWL_^)Nf98dY!w z`E3TiiF`}8@fGHKOqO|Ebc|eoh}^h?tV*v4onahuf3ut)|F(sQy zB67CI^UJE3ksaQ=Ib@0NnvNaHO2z$iw?4PB*fo`#UtzKK(!Cj-5j1_T?lTVY=p-}I zwib>TP4%RncDGs2FSG1RlDP#wzkC5#`ha1LwRvBHv&MC;uqc~P4|gHp!Wp{M5K;6W zH+sQ@w(XhUPf>qs+j2@ui$;k*gmG!5YLsNDh9B{5Q|oPHwMC-|*`>0-nUo)`0d=Dl+(}5x*4{TiNG>{PoXM;+@wjtv4ea0)0o`Y-xV0!Zg>CMwmqdpq5V5F za(@W-Sj};s4nk<#p7%LfU!Cgu_Oz~!X6GxbPGxcPLqD?HQirA2>zX6Dnsg{kNB`}3=c~(ChVl#xuJu&ES{p64>PkQVrsC6NrR&;s&zsj9AL{+d*>!6w zw?+v(iCp?)+5%m$+~ee7d+HtE{JiG|cW>_B1$ES2IFYn=yYC)0{b1=w2BUyfUfaUbD#%eeV`lT(jMRt9rfr63}J zT))NX3-&7Iwcr4t%9}XIB%V*T0n<_#!>-B=b<+xd<*U^12No)32kqz=b6nCwZhmkC zXo_b=m1)Z7G+xEYq)>y~alsgpocI7Ah%hdWQ;@NKn5`b#kgcQ+b6dPglS8KEU*laF zA1F>MLFQ9aZcLM=Tx72wEFtQiO99?v92AwFwOhW%58qVCd{#VUP#N zj7Vi-eTuL+A`uI@1dN=imVO9_XRtPR&gT=_@CUR#9QAnWl4`Wk^Ts%vWNHu)_hLI! zD;+59&KnI*&{M(U$dUw*r)$`DT2xO4_(yTJX_^V;V6wA%B565b7++g}V1JHy=B$;@ zl+=}&iib=&;7VAD68Y=PE!!*hxhxJyk$l)L3)aBP?U_<}|JqCHU5h zh8#;J=-%&%(iAFIJ!DhSK1Iwttoe)+tBq0+p+Ph~u8QJRY z`Ix=%jMC)YX<5_9TyC8M_JN-(v_SVCH-Hsou*B57WN{!Yf8Fqu%d@`qDbK1$cfUD) z@#K+w4l@&XnITC~BVULQRG@lcc7&XJ2Vsq#UaYyphH9^TsS5Lnm1Q67ye{jA%*0(* zfvr%LAPkl}Li>!}x4CvtVOSNQ8*Ld4x^^V1B(XI_VB0FYFzt_1}Z*s?RRVOrvQ zt#xYoM^f-pe9TZjuTw}8mCw|kne z9v{<}`sGaR^2#MzSq{|`CuDS?J7sGi+U7xdP-6YsJY8d+*mMwb7U!zb<6tPDK5{IpiFxt zM+`16ygL&g)KSloou^?61855QTDZO$;7(|I(JMq9wQ~&ASO$Ibme^3DD4Oo-;zma> z>LW(2Jc}-K+Y)Nh!gkA2ELR96teA0`%ELn5->!)(xiO3J9i;13yFom}xgNpf*7J7V z*Nmw=i{#w)NkgWS=6Pcs{j(;Iin==B9A6+8O`T>%ufhXp+)VKlgL&~bKHO#rLg!Z@ zRA&R0+htjdOuF!~4Zg+TsOgncTo5Xbrw`cfT8v%cwj7vi zY?1p~lDX2ac6umH7x==HuP1Qhj?4J!10{4?qKepVaJ->g1&_htx{X!rfWLA1nS!y8 zH!Tdp4NhvLIcT0jNx`8>SMhV@Wk)@1y68BYt&8%jSIKmG#MPn&D$qveS`Pl-V=cJP z@RfUf)^RC7Ho$T;S7XWCN$&@3sV!EY9yiE=%mq;23ajSc;(Vatcg z=oFP>0UA&8hSvhWNVh;V8KGfv|H}pQ_KaH5su!v^Hi?-un)3mfrW|QEbu?QJ4cVus zfh9b6Da;P~GE<%ho#Yc{|AsGPyK@kF#-v8YD z_J=sXb@txtS&O9C-~q&h!5?4#d}`h~j(VX@1qNqUOCIVI({9?4?XhGw3x8r-R&_`2 zIF|%7&2y}RGI&Bh9dd#W>w){Vr&Wi|&MelikV~A!Es`dK69hNFN1PIQd4{U&g{LZk zy3>W+9Iu8%wA`<_4ZAh=KFWK2ZIEwNu+rhen(3=g&zpuHRNoj{v-te!1%{-dCj7#> zHN)r0KCOnj^r3Zo>CZ1m;u`8pFKjqn`aCr`+|bZCv~kVv^Q#$>#-`p2@7=RMzh2R5 zYSe6c&qgW<-9ABR2!e*XLxAZ^0nYi$N$!+oI_n;z2)Z-z-9 z&BEfFy12ErqAnfH(LQbJ5g*=)^E;Y{lQ#FMXl*BDA1&~lTx=dN8s1K8Jz5lsZyt2e z+R1u#v?TGgdHBZgPVVQUWdv!cy6^^x@qS>El)H_?Gcft-Xp%$M1}v zwmfef-mCUIUb7@^o$S@xuggAOcf8m-^@1rAwxnW)DtRl^N{74?!uT(9BgPt6&LQnz#5AhF0JQ4k1HA zcoI4w0%4MmGsbep!Bu3WQ|U0h8Q-!}QX~&~NhyxYObA#g`0Z9O*e$rmiWJTRvxA2T zq5UAE!4&wxggT)LXk1)S00|(jC-o#A=oScMgSB4$pF$MR<;L ze-0adHos4_53PhtmMYou2+8uzTmp117$99n+!i2%0e>A92(W0p@Xu)cX9C*acsza@ z7XIS#_-R;Bt1IeH=F$7>u<)BUv%kR|q_T!r7~gk#^V6`<8O8LMVc|(b)vHF=`GFh_ ztjD9(X9qhhG~Rpr2!(SB>+z_Wy;DSTOUA1r1$7}u{lYuNgOs@^8R>-mwTCKkgL!Ak zdElsBM{uxsfTfd(bHzxuYRDJkL1CaX`TXnLsx5LylCo^P7cI{4E7N^vNG>b+__)XR zmMUN8{Vb`n928D~x%OsmH)!OG`w6#%8e;7|(T!fd2#1-2jzMI;T)Cro2lzvWd(Fj! zL;vK;A|*O`btp0z@PO6~_%c=1QW0~Q8N5M&qIT7U+iW>lf+>ByrV+IqT!=87{^dj) zT5BaF9=|;t4Nzw6T7}~1VBR8GsvFf&IsOucq35wzfdqw7i4g-8dpO34|G^SOL7BWu zJ>`U~hcMEhWN!{Z4sX`wk0Z`lG*R=B)b>itOBrys$$c;&46#FTP=WpDE@$rqEHUJs zpy5Eaf0jy-a)qmLGB2v9s0aunNuA}cP)y}gYl2Ze$>XbaS1&}rq0@KMb}Ehyf=}BH zcsToG`)y03^n1Z&pc8h8Vv2FbGw!E!o8&ie0ik^PL${DswYvgQ7BvD@AfhvTM3fft z8=;ED8mF+;m?dvA9Y<*RLmPV)5+#Z`k~PTnc}p``qv-)32}evUTSqICJ|lnBLO~Bn z{Q&QzX>S##YtRtdZ&ae->2R>$N8%LKQp&RwUd5oGfd*2PbKUY^xcZK zBr2rsRqYYU+KO@1Ec{KI*`xJBo@1Emr(NN$Td)O|z{)}j2R9YQIyC+Mq!rr@i8!Bi zS0)*vA~?5No1#=w(#|t>F7f_;E#K|ryx-t|za$42^E;?LF`e2@YZ@#TywU%};?s7z zPBT70^HL#jQV4+XqJd3NqMI!`gbRj|_=1dx#AXD1PO!zlstr+*s>3C&?c_8V3*wF0 z2|Nu137;ys5OUiiMJr)p9~i>?vqv^Ke-4IoV&xX20`Mv$w>m7BoN6i$l6wi zpLJJ0d<$QQTYWUjbhm(Zs7#r_0}Es;gzp@bk*sx$#AfXl@mwfZHyRjAYuPOpiY?c4 zP=A&+wOb-FRIYVn;92gc-BJW`g?705cme%hnd*fK-SmO+5~;m%?br(aQuT=n)4dAg zp$fysfr)D0y}Opgca3}1pVwvWRXSd{Yx-i~c|*%ym22!>vt{)cEmM2dK0|jcJ`TKi z_-XGRin!7eUt{ty{eDfvg-UChCzCzcVId*5(w1A}<$&pa-A`z|N$a*kvV=>xs&wn) z(dn-G<7^c*ozF=(+JeLH*=?LyXe3XnCjA(VPrtQ+;AA<$woQyY=S{H9b(sLiGqiNF z_P?3-xUU-~vWp0Ff%YIv;D8HshVkw9P}}$7a`;A>FV<@;r$g<>bH<^%QR z&q}om)pOJzRA4tzSaC5G#=#m0{|RyFjG#DeG1#>AMn8_dFoYi)d0Q?SxB#oWxy3~S z2;SmHAP}oyJZwWGB6Zx@pa9>UCzi^{*fK{`x+a)$n@fOrPwQ14}C*Z^)P-hP_ z6CHc@ZJCVoUTS6O4bS0&4B-9LS&I`E+V?e{!C2#d5Rq(~{8T03FrCkI`*Exf5iJLh zTNU;NTvJDQxpLuo%2ikMBp8)w9~@u?qvWGib|N_;_#DuLH;CF8TY@v)+T*N99C}Z} zOSmMIa|llF6ov>(NjM0}IOwSBPd_U$!iCp>o9%nbWG*Wjq`TLRV1cD{gvsW(vmv!A zsEVz{rX3a)>3qD3{TQ_oI8<5^Zra`@E{6=bkXbNMtZ5J{D#$)64RQu-T#yiK*TYL6 zbmQUbc*>>nZFZA9BEB(vQ^Eubd9emZuG{vjJmkrqajDA&7o%`+?d)F&O+xK2rh70UZ+NNLKf9Y6SwLj(3*#4T7`K(wt z$J?v2mXELDm$(_=uAM-7gcDb|4g&8~3w+R2hbHVOw_*m#+&#~xG*#|{?iVQVo&t!q zFeA+(O6kG%>NBU9?sJVlksKaL_GZpWU1Ob9Dke%Kl9~aA^rN7!knFprn!{AA6qG2(45N_2D zLetG4+QB?L@$Yh1R3DRPZHDk@{;}MZ-?HU>e_vdrrncgI1`C-#_Vu3sG%9q0EkS>G zgS2)XComNIy%4zf$^F{6pD|eU&x%XpM(Z6TBCf0 z1{k0sClRE>HlgnqR1s=*s+RP-dC&`G@-zb@Vb_Y8cC;PH)>uc`<`gnWu;L;<@U;P{ z5KdgKs-ixY^q(d!X+_5p_GE8$MtkeFn3P;pq!XG>6LzJuK zh=JmKoP>w<<0Qr6G!ILQ2hO4i;Fc%^2%N!SF)T%Qm)9)+>C(1oWeT?D9DC9rcAMm^ zZiP_i4N-|1kF*7MzHU!#a;?V1pT2m-U$R3Dtkq49=r6wB{;>4A_i(%I&H^Qs`N;=n zG3xS?%GcD?TEP%}5C^p6qFO~p&mlyoP(U_YJ`7EM^n&~r&8#@g7MvpwH_zcOdv0qA z-OUZ5bKPXd<%43PFUAsZ-9g*jq-DT`5n%1(V3g`~6meqTTr`y=JcL4DC?Bnmhbb$B z;8cNQk>uK-AxEjYgW!NQGEpm%&IRKlWUV9j>oB}?a2PI}aXwF{;^;wYka2+4>be zT{1~#9WQ>^C?C%!{Wp4a`aCG|UJ23J1g%8ZH}nvck-mp&`6pXNO`?v+S5#KmZWlc6$WkLp6zL768P zjJ3V$p;<3DR{|mQj}wb^>FWSO&+IOrD(dKTo*b}xw|qXRr^+6$Tce5OX_$ja{eqZ~ zP6`n_0;l)d>9=Q`j zo?Dz<3KKQgDv;Y?irv|j(>+UJd?6f-%j|YbNTNH3Am>) zrA(3YywEnjSUu#_sY(op~tsy5_gx|20ISR&TgKXlD^CwqpdRH9dH*gb3K_KIey)QkRM@0OjM&6rY|Wwoci zQ#-i_gQe#`_K!ae{IqiiATC4TtB(YICnQq4`LNhB#qXw+e?dr;Ls?kSR?-<)^!Y>{ zl&jth2XZ4H*{Yx8)(zm(|M8Ua#(mhc6AHs`OsmZRd>Km^n>yLNOxSb{Muunx@VPP!8Gq|;Lw!p_dDl%Qe7tV?G48e_<-}lo?1KbM#!e8NzAXtyA{qUC$irK3X%lbZ z**RKUq-{P=yvC#4osVoHO9A22%`Bl#ffu%)#Ryk$(m4<@>vJFn%~e@^*aTNOkfPeN zArvailvByCX2F_BaY6)$wwE!&&MghTn*@k3dMswl>L3yzB1G&Zx(e>aQG8xeVxTwZR{aa$Kpun0+_Esv)2L?fpd<@DZYmqlXbie<}>8{8&k z+~I)C(ib*`&TKX_T*n^}wg`lGwByOX60vzt*M*D_m+QB9x@2N4GBU8IBI={SQnfp# zDZa7$Oj|`@Z(QH#>fVI0!`Fx2@73N5Q#9S^b$!ee(_wnF{I;h0ZquUn)Op3okXQLo zO<^)G@~KzS<|lLPLT#Q&R>ER(o{fN-O?{1gG)>V;^(*9X!ma$FQz?t&&CvbJ)KT^O zOaH$?ednyduy%*-+Q55S@s0O&{>h2qM-M${+a?Hv$@?0v%%?korxekP{Ib=Tm(byR z8j$CfF6d9R%=ev#_wf)|t3_GbBz>x}WTSUWQYK>ab$7H~Gwmm{c(yuc7asci|054Qb{!?Y7Ji2NfW(1~3MJJ%BV9m0k*j$wcmsx!d6+(t zJ2+o)DWKwq>nLZRmX;o4!qjSa12to;Y5Di>xa3bi?3@4WJ6?bXqRaT@9e?%xJHERh z4ibkno&LJ{DLBdfZu9dG{jmSw9j~45O<>o^Wi&}e>7}UESu54(ef^hL(@Jgj)X*)_ zTl#7pTIZ6JJu(iVOt)d!f$q(9i_T;ka(b&;vsPOz-IrrGd8*x-NWDZ?a zAy4>lS4-1^PN%XVgxe~+(GW)41T=)(>UqB%P2#o%U&hrj0td9$;~8a!q{#`IQ=vvF zQIMRb=k_U9s@ix*i^ecqso~y21z_KJDjuw8tQ{)vi_b1ENo4ajP;?kS2!I+EN7>ot zu+7`B%&a7&e=t#E#&?_a# z5=uV6^^^M2bu(xXx`z=A)l98FnJ!PzEVIdrx=i zf)?d!oic{!4cRjo-SItM26-HP;jUsLGSRjeABxi)Yklv-=;EowRqfe_3{t$8tA05v zpzs9`WS0Bv9h`&FWPf!s&Tu3pxcDR_~P<^;``^NkKjgbw*pYr9yj^0uVICUvUJl<1bS^+H9ELXXA^!F^V@N-^u)! ze%J^9C*Eqx4I877=Y`DF^ z{QRTt#!ap-7rfYQiYX!m>gL{Uq~dJFrN><&u5Oc@F&Hk?xTDqXd%-b>n^=<*Nb!pB z!K*%bPxR*V$B21Jg%=D@gr6-uUk)ioK9;x^RO#Krm%(z?J}q-gH^zw4*3uG>9Ew2e zT9U1oy;abS=yA(H11y`Kthbg^9j%QBNH~z;-1|KRI0Av`b4a=x zi3DC@>ju!Y6k=Xl`_!O zo0`o%+NtJOp1rxCsb#>S>)h2t$;l!B2ZZk2uD3REh9y|&;E6uqRz1(RkK>_o9I5Za zGyyIJbh7kq;&9O>2~@I5;8p!F`mev#eWlA*j55Bw$jd~O%=8fKFLnMo+*L|qoQacz zl}bi!RF9DJr*i}Xw9UMz+#py8AM)WRTLQg0`mQz0n1wN&+L(^UJb)=m9mZKZB5!{= zkN=5|YbA49)HN1D%MGhG9Z6m86493w^p+vqSG3y3ksCI~bxP40>`RLMLSRvtQypYa zy5iyqoxff+zWDm4b*0(dMrS;MlCWEwWBU8>{=0bIar zE?rZ?P!FnjWhbDge#$^{5M|B@)ZbkV=X&v*1g@oazxkWJ;d|iVfu# zVH;YZp~x=i9+BYU4$q;?VU!UWNN7XDgAd-w5RwzgLvUD*CRH|HACSqDkFl%s7XETK z#tAn2eg$-Jj-N~A|0Pf%LN1Y$cfVz+X5M!@PiZV)IKQ&fQ9 zpHsC60_VX;V!sSh?N=JM4{yA%=65~^U!TJlrrjvbRpaU>=@ z08hQ;-hxqWL=SbQfLi8rZi9(hz?>FZb4rWSHIG|i#Mqq*|Jj5N5TGa^zLH`iDVzYC zJ2%0Q@B}NW5cM7&`rBieuPU*?KabuSM;~QO;=uW z`Zz&uH#ZP+z0TyoF3ejIvwjA`O?AAPSzBU|0b#Iqo(L`| zGJ9T8ZCD%ZVX4S3Z)3>KbZLASsTiz|g$Gt0`X|NHne@x-f4bUk?7wpD{lELPBSBy0 zS&lPa%k~H-_{7+;FnxEm4T;vbR&9Ze{V_{WBi(`@1{d zK0`27SrU=X#J$2e^R@_Piyl(g_I&(IaJM7`6MtjZhS@_iM)rK2Di5y$u!n7&{-hIs zb4J*&r>yHdwtSQ`qcGu3r!sr>7OBf%Cm=YZB0J@#wibXx9XEq7Hk}9pUL#UBU?}2y z4kUKiX6?6*__$EZCl}t^rca#37Yj^;8V}lJ#JAYVPLHauX3jG_MTN2q3Tpze9lS3Y zC4yBBanAIGWXl*5;YTL%>V`Wv7b#I9@@^!AP}Dg{-UP|i)(MHf@dw5w7)IPPQ41I+ z$DRBdbw>8sS^ooLFg7ghxfO~D8>|K#gbGaOg)2xr_Wj`4E6MSR_;kiRiy?ra7|ah> zmcaH*m03vJJCWFo&$D1Ny0L8;SgQ<%T9_$9fx!K%ljx>072?dR{OH@mHu%7ZylkMb ze(2zQ*?_ZyEM9rcWtn-Jx2h1J5*67+|7<#GxLm>1HvS)ebRbImBw;52VYJ;LUV0nyPB1M{iCSg3z@$g zMcVuSvMuAMxV4u4w0lg(#Wi7#_mj6bI6Ci0JB3Fk&5~U|=;G0;jWQaXqi#Lu7W$6J7XqHYGe{R$2phs@C_P|{-{`E{N>lMs(mUdj39QSzOyY(}ug&{vpqO@@Y9FeDCnm`XP~ai)7Z7uYlk8{aa^Q$)9CPce zB%WLmRwNxltr$qXiuHhttf-{&6^2s5GpFn}(Te0KI3`+eQH9Xa!cg%^igbW$5pXD( zg3K_AOFyM}caX=>4`%|J97?g(#A296w43h`lb2GYMQ_{eprFFMv!c)Ox)Bewa}JkC zf2O#I=L!J<_Jn+)5|lv9FZ9+6+= zMTqJ_Y;{cOc@qUp8KmI{AVBn;j<487#|cxMJbmRg5^zQd^SZKDnb?8&Auz!`#9flG ztF7djK@KIRzG?SNNrQx8xq4f=;fU<*OH{ngw+9vtzTJieDi|_5R|6{Yvv%Dp7hJ=l zuwzSd4%=Ns2~o_px8NiGogeI_c1INFW5R(h>YOn@2yq1^J^4k?81m)q+v<5j0U`+r zZ6iygg3xHn9fUfRqk71g)Ic-P=Ax(iE9$+M3D3ZcI7DZzhsW+;!5up(-?gy&BJh87 zFZKH-DE?1n19F5b@h@b}rTrB7m`pX<0R#ne0At{1H3z)^>2oU1{sYeJY2Uw_AyxNKg^{#*%>;=(0oextv znl~tVyexiXMH1+Lk4aKET&*@gCJnqx^JoNDm&!W&RtVPif_jJV?Hgz3O`5YT5w88H zcFckDL6(4d-Qq4ua zONRr-!*ywmgNuTGhfgd??q~FBE{S9x4mxVx&w4SqB-VNu{9n~HUie*MpN zPal{b7JGjAL`S9d_C3?_ZoRJdJGlf~-y20*gi?|ft3TB=KKLygcTsWtp%!~huz8AA z`XY1j*?q=DeUx!Y#JKeE`YD zPYJDJeHz)4W!_RU>w@T#fYZyy{syyiPmo-tQg1jnR@m}MnYj?s-f?2K04eIPy( zWM14zZc7q~MNSyMAt$$OXBDX%8VON3F~$t`e0)mz2;&ayp0R3ccP>QyQ|Wx1bpTHS zM0mT;h8#)gnZqd`*f=1JV+Ui$k|kr8lcdA&7*l0};0PCEspqM@W=o=l06G2M40nZU zXc6|PughhlN9bjyAgNUx3mmtXC-Xk3B4d`nyBSHrNd(^OcgLfBa9Ksbx_PYNeEYJa z!7l4==*2`$da9xd5EhNYn=zurKbsV#o%qF^590?R)YrHnxq4DgNeq@;EdomB_(p`& zpe?UGAuxCZ&`rbvFA}fH)UO7IszxXD>j*FD41m1|Zk%WC;t#0o^G$E0jT|uMTYZ^D z+hmn5tX-_+hN>V0J4s=gkinN_(c7P>tsfrkuf4ke#i>U<2Snqt*#YIQ+@FVG32m;BN&(jlfeq1eGC-1gQjPV}4g=P^< zCfdC)#uY!I+~v@wV_r9@0iMowH-Vh_!QKD&1~05r_O$LVWivF7{OMBfFT?ZSBAuLpyxNq zg%glOS|rHGP6WwTvv1{a96ho~^{AsOrBB!gm)~-W_JA~y$NdJOttIlIPUP&KLew%e zRG@@a1}}@9vPK&lJ8c!`F{l89>E{SQ@}eU&3(0GQdd?Z&jPpKt&(Kg7A{et3W6)5? zbkFn68GAJiT|q_KE>Zh4%ZY>2bT;&3F1^z4bV&Uzb>LhaZ^SvaiCk=Vn08jU@1ah@^U*>M&MOMnRmQ+2DM_d8Ry7<5+cMMi zOZZ}WKUnf5WKWY6@~H7H`3#V&k;k*_&8SEV61D}6ThsW3mCbdQJvbd!Qvib|-m=Tpj?$Tr&%`;pt>FhPbR%L=hW)nWMiBV2B_!PrSz! znrgDcW$w&IT>hGBjxD|{B7C#*c#mfC09UROz;;^MRNk6+b2IuCiHq4hjl+SmH0p_T z;7nomv17Qf{}mz|ps}^)tQEGDn&^`8M0SiCwik{B$ie(G=GQAN*~~fR)F*zT7ci?iX=i zSXICDX)I&7zC?UzRm<Z@tN{2q;gfrEThJ zDp8Pd%pglG8?r;4zO92}e8&74@_9zMaJTK$T$ndX<_v#Y2P>{T<7Fc0nm3iRwzm#c zyp{qoR^sA?;Zu$vLMgQ1^*Oxik5xJlO@IPhk|i|3GW9iQM>LSe&k+ph2lc-}+xs5s zCzzFsWSis-z8u3>C9KJn=ekz5knS+lloV%^l*(l&8^@WG$Ggaj$R`HTPjKU;;#2WN zPIX1N3KOe^rX|W7yh33#aXYQ?>ndNt};lEXYMpM?NWeXK%dYQ_m3Tec zN|H)kk%cjXj&^_%$rM61TxN-{&oG@7+6^jIywQ%gE2vDJ73}cIocKRv+xY!>`~w

1C%j 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 diff --git a/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/highlight.css.scss b/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/highlight.css.scss deleted file mode 100644 index 7bc1f29..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/highlight.css.scss +++ /dev/null @@ -1,63 +0,0 @@ -/* Credit to https://gist.github.com/wataru420/2048287 */ - -.highlight { - .c { color: #999988; font-style: italic } /* Comment */ - .err { color: #a61717; background-color: #e3d2d2 } /* Error */ - .k { color: #000000; font-weight: bold } /* Keyword */ - .o { color: #000000; font-weight: bold } /* Operator */ - .cm { color: #999988; font-style: italic } /* Comment.Multiline */ - .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ - .c1 { color: #999988; font-style: italic } /* Comment.Single */ - .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ - .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ - .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ - .ge { color: #000000; font-style: italic } /* Generic.Emph */ - .gr { color: #aa0000 } /* Generic.Error */ - .gh { color: #999999 } /* Generic.Heading */ - .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ - .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ - .go { color: #888888 } /* Generic.Output */ - .gp { color: #555555 } /* Generic.Prompt */ - .gs { font-weight: bold } /* Generic.Strong */ - .gu { color: #aaaaaa } /* Generic.Subheading */ - .gt { color: #aa0000 } /* Generic.Traceback */ - .kc { color: #000000; font-weight: bold } /* Keyword.Constant */ - .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ - .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ - .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ - .kt { color: #445588; } /* Keyword.Type */ - .m { color: #009999 } /* Literal.Number */ - .s { color: #d14 } /* Literal.String */ - .na { color: #008080 } /* Name.Attribute */ - .nb { color: #0086B3 } /* Name.Builtin */ - .nc { color: #445588; font-weight: bold } /* Name.Class */ - .no { color: #008080 } /* Name.Constant */ - .ni { color: #800080 } /* Name.Entity */ - .ne { color: #990000; font-weight: bold } /* Name.Exception */ - .nf { color: #990000; } /* Name.Function */ - .nn { color: #555555 } /* Name.Namespace */ - .nt { color: #000080 } /* Name.Tag */ - .nv { color: #008080 } /* Name.Variable */ - .ow { color: #000000; font-weight: bold } /* Operator.Word */ - .w { color: #bbbbbb } /* Text.Whitespace */ - .mf { color: #009999 } /* Literal.Number.Float */ - .mh { color: #009999 } /* Literal.Number.Hex */ - .mi { color: #009999 } /* Literal.Number.Integer */ - .mo { color: #009999 } /* Literal.Number.Oct */ - .sb { color: #d14 } /* Literal.String.Backtick */ - .sc { color: #d14 } /* Literal.String.Char */ - .sd { color: #d14 } /* Literal.String.Doc */ - .s2 { color: #d14 } /* Literal.String.Double */ - .se { color: #d14 } /* Literal.String.Escape */ - .sh { color: #d14 } /* Literal.String.Heredoc */ - .si { color: #d14 } /* Literal.String.Interpol */ - .sx { color: #d14 } /* Literal.String.Other */ - .sr { color: #009926 } /* Literal.String.Regex */ - .s1 { color: #d14 } /* Literal.String.Single */ - .ss { color: #990073 } /* Literal.String.Symbol */ - .bp { color: #999999 } /* Name.Builtin.Pseudo */ - .vc { color: #008080 } /* Name.Variable.Class */ - .vg { color: #008080 } /* Name.Variable.Global */ - .vi { color: #008080 } /* Name.Variable.Instance */ - .il { color: #009999 } /* Literal.Number.Integer.Long */ -} diff --git a/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/jazzy.css.scss b/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/jazzy.css.scss deleted file mode 100644 index d07661e..0000000 --- a/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/css/jazzy.css.scss +++ /dev/null @@ -1,580 +0,0 @@ -// =========================================================================== -// -// Variables -// -// =========================================================================== - -$body_background: #fff; -$body_font: 16px/1.7 'Helvetica Neue', Helvetica, Arial, sans-serif; -$text_color: #333; -$gray_border: 1px solid #ddd; - -$heading_weight: 700; -$light_heading_color: #777; - -$quote_color: #858585; -$quote_border: 4px solid #e5e5e5; - -$link_color: #4183c4; - -$table_alt_row_color: #fbfbfb; -$table_border_color: #ddd; - -$code_bg_color: #f7f7f7; -$code_font: Consolas, "Liberation Mono", Menlo, Courier, monospace; - - -// ----- Layout - -$gutter: 16px; -$navigation_max_width: 300px; - - -// ----- Header - -$header_bg_color: #444; -$header_link_color: #fff; -$doc_coverage_color: #999; - - -// ----- Breadcrumbs - -$breadcrumbs_bg_color: #fbfbfb; -$breadcrumbs_border_color: #ddd; - - -// ----- Navigation - -$navigation_max_width: 300px; -$navigation_bg_color: #fbfbfb; -$navigation_border_color: #ddd; -$navigation_title_color: #333; -$navigation_task_color: #808080; - -// ----- Content - -$declaration_title_language_color: #4183c4; -$declaration_language_border: 4px solid #cde9f4; -$declaration_bg_color: #fff; -$declaration_border_color: #ddd; - -$aside_color: #aaa; -$aside_border: 4px solid lighten($aside_color, 20%); -$aside_warning_color: #ff0000; -$aside_warning_border: 4px solid lighten($aside_warning_color, 20%); - -// ----- Footer - -$footer_bg_color: #444; -$footer_text_color: #ddd; -$footer_link_color: #fff; - -// ----- Theme customisation - -$link_color: #CA3522; -$doc_coverage_color: #ccc; -$declaration_title_language_color: #CA3522; -$declaration_language_border: 4px solid #CA3522; - -$footer_link_color: #FB9C44; -$declaration_border: 4px solid $declaration_border_color; - - -// =========================================================================== -// -// Base -// -// =========================================================================== - -*, *:before, *:after { - box-sizing: inherit; -} - -body { - margin: 0; - background: $body_background; - color: $text_color; - font: $body_font; - letter-spacing: .2px; - -webkit-font-smoothing: antialiased; - box-sizing: border-box; -} - -// ----- Block elements - -@mixin heading($font-size: 1rem, $margin: 1.275em 0 0.85em) { - font-size: $font-size; - font-weight: $heading_weight; - margin: $margin; -} - -h1 { - @include heading(2rem, 1.275em 0 0.6em); -} - -h2 { - @include heading(1.75rem, 1.275em 0 0.3em); -} - -h3 { - @include heading(1.5rem, 1em 0 0.3em); -} - -h4 { - @include heading(1.25rem); -} - -h5 { - @include heading; -} - -h6 { - @include heading; - color: $light_heading_color; -} - -p { - margin: 0 0 1em; -} - -ul, ol { - padding: 0 0 0 2em; - margin: 0 0 0.85em; -} - -blockquote { - margin: 0 0 0.85em; - padding: 0 15px; - color: $quote_color; - border-left: $quote_border; -} - - -// ----- Inline elements - -svg, img { - max-width: 100%; -} - -a { - color: $link_color; - text-decoration: none; - - &:hover, &:focus { - outline: 0; - text-decoration: underline; - } -} - - -// ----- Tables - -table { - background: $body_background; - width: 100%; - border-collapse: collapse; - border-spacing: 0; - overflow: auto; - margin: 0 0 0.85em; -} - -tr { - &:nth-child(2n) { - background-color: $table_alt_row_color; - } -} - -th, td { - padding: 6px 13px; - border: 1px solid $table_border_color; -} - - -// ----- Code - -pre { - margin: 0 0 1.275em; - padding: .85em 1em; - overflow: auto; - background: $code_bg_color; - font-size: .85em; - font-family: $code_font; -} - -code { - font-family: $code_font; -} - -p, li { - > code { - background: $code_bg_color; - padding: .2em; - &:before, &:after { - letter-spacing: -.2em; - content: "\00a0"; - } - } -} - -pre code { - padding: 0; - white-space: pre; -} - - -// =========================================================================== -// -// Layout -// -// =========================================================================== - -.content-wrapper { - display: flex; - flex-direction: column; - @media (min-width: 768px) { - flex-direction: row; - } -} - - -// =========================================================================== -// -// Header -// -// =========================================================================== - -.header { - display: flex; - padding: $gutter/2; - font-size: 0.875em; - background: $header_bg_color; - color: $doc_coverage_color; -} - -.header-col { - margin: 0; - padding: 0 $gutter/2 -} - -.header-col--primary { - flex: 1; -} - -.header-link { - color: $header_link_color; -} - -.header-icon { - padding-right: 6px; - vertical-align: -4px; - height: 16px; -} - - - -// =========================================================================== -// -// Breadcrumbs -// -// =========================================================================== - -.breadcrumbs { - font-size: 0.875em; - padding: $gutter / 2 $gutter; - margin: 0; - background: $breadcrumbs_bg_color; - border-bottom: 1px solid $breadcrumbs_border_color; -} - -.carat { - height: 10px; - margin: 0 5px; -} - - -// =========================================================================== -// -// Navigation -// -// =========================================================================== - -.navigation { - order: 2; - - @media (min-width: 768px) { - order: 1; - width: 25%; - max-width: $navigation_max_width; - padding-bottom: $gutter*4; - overflow: hidden; - word-wrap: normal; - background: $navigation_bg_color; - border-right: 1px solid $navigation_border_color; - } -} - -.nav-groups { - list-style-type: none; - padding-left: 0; -} - -.nav-group-name { - border-bottom: 1px solid $navigation_border_color; - padding: $gutter/2 0 $gutter/2 $gutter; -} - -.nav-group-name-link { - color: $navigation_title_color; -} - -.nav-group-tasks { - margin: $gutter/2 0; - padding: 0 0 0 $gutter/2; -} - -.nav-group-task { - font-size: 1em; - list-style-type: none; -} - -.nav-group-task-link { - color: $navigation_task_color; -} - -.current-page { - color: $link_color; -} - -// =========================================================================== -// -// Content -// -// =========================================================================== - -.main-content { - order: 1; - @media (min-width: 768px) { - order: 2; - flex: 1; - padding-bottom: 60px; - } -} - -.section { - padding: 0 $gutter * 2; - border-bottom: 1px solid $navigation_border_color; -} - -.section-content { - max-width: 834px; - margin: 0 auto; - padding: $gutter 0; -} - -.section-name { - color: #666; - display: block; -} - -.declaration .highlight { - overflow-x: initial; // This allows the scrollbar to show up inside declarations - padding: $gutter/2 0; - margin: 0; - background-color: transparent; - border: none; -} - -.task-group-section { - border-top: $gray_border; -} - -.task-group { - padding-top: 0px; -} - -.task-name-container { - a[name] { - &:before { - content: ""; - display: block; - } - } -} - -.item-container { - padding: 0; -} - -.item { - padding-top: 8px; - width: 100%; - list-style-type: none; - - a[name] { - &:before { - content: ""; - display: block; - } - } - - .token { - padding-left: 3px; - margin-left: 0px; - font-size: 1.1rem; - } - - .declaration-note { - font-size: .85em; - color: #808080; - font-style: italic; - } -} - -.item-heading { - padding: $gutter / 2 0; - border-bottom: 1px solid #eee; - - position: relative; - &:before { - position: absolute; - content: ''; - width: 20px; - height: 20px; - left: -47px; - top: 50%; - margin-top: -10px; - border-right: 4px solid #999; - border-top: 4px solid #999; - transform: rotate(45deg); - transition: opacity 0.3s; - opacity: 0; - } -} -.item:hover .item-heading:before { - opacity: 1; -} - -.pointer-container, -.pointer { - display: none; -} - -.height-container { - .section { - border: none; - margin: $gutter / 2 $gutter / 4 $gutter * 2; - padding: $gutter / 2 0; - } -} - -.aside, .language { - padding: 6px 12px; - margin: 12px 0; - border-left: $aside_border; - overflow-y: hidden; - .aside-title { - font-size: 9px; - letter-spacing: 2px; - text-transform: uppercase; - padding-bottom: 0; - margin: 0; - color: $aside_color; - -webkit-user-select: none; - } - p:last-child { - margin-bottom: 0; - } -} - -.language { - border-left: $declaration_language_border; - .aside-title { - color: $declaration_title_language_color; - } -} - -.aside-warning { - border-left: $aside_warning_border; - .aside-title { - color: $aside_warning_color; - } -} - -.graybox { - border-collapse: collapse; - width: 100%; - p { - margin: 0; - word-break: break-word; - min-width: 50px; - } - td { - border: $gray_border; - padding: 5px 25px 5px 10px; - vertical-align: middle; - } - tr td:first-of-type { - text-align: right; - padding: 7px; - vertical-align: top; - word-break: normal; - width: 40px; - } -} - -.slightly-smaller { - font-size: 0.9em; -} - -.button { - border: 1px solid #CA3522; - display: inline-block; - padding: 2px 10px; - margin-right: 4px; - transition: all 0.3s; - &:hover, &:focus { - text-decoration: none; - border-color: #333; - color: #333; - } -} - - -// =========================================================================== -// -// Footer -// -// =========================================================================== - -.footer { - padding: $gutter/2 $gutter; - background: $footer_bg_color; - color: $footer_text_color; - font-size: 0.8em; - - p { - margin: $gutter/2 0; - } - - a { - color: $footer_link_color; - } -} - - -// =========================================================================== -// -// Dash -// -// =========================================================================== - -html.dash { - - .header, .breadcrumbs, .navigation, .footer { - display: none; - } - - .height-container { - display: block; - } -} diff --git a/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/carat.png b/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/carat.png deleted file mode 100755 index 29d2f7fd4955fca6bc6fb740e0373a2c358c398e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF diff --git a/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/dash.png b/Carthage/Checkouts/ReSwift/Docs/jazzy-theme/assets/img/dash.png deleted file mode 100755 index 6f694c7a012b417908da3687a0a39aa182e91c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1338 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 ShohtYzipXxh2)4xTka?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="

",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; -if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("

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

+Fd0c62q;zyp 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 VEJ{ntng#~?dnc(NQ7on(@ISR)ww3?@ diff --git a/Carthage/Checkouts/ListKit/Readme_Resources/simple_list.png b/Carthage/Checkouts/ListKit/Readme_Resources/simple_list.png deleted file mode 100644 index 43cd398d058f5f23bf910ebd3eb9c82413c815ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29092 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 diff --git a/Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE b/Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE deleted file mode 100644 index 85e591e..0000000 --- a/Carthage/Checkouts/Nimble/.github/ISSUE_TEMPLATE +++ /dev/null @@ -1,36 +0,0 @@ -- [ ] I have read [CONTRIBUTING](https://github.com/Quick/Nimble/blob/master/CONTRIBUTING.md) and have done my best to follow them. - -### What did you do? - -Please replace this with what you did. - -### What did you expect to happen? - -Please replace this with what you expected to happen. - -### What actually happened instead? - -Please replace this with what happened instead. - -### Environment - -List the software versions you're using: - - - Quick: *?.?.?* - - Nimble: *?.?.?* - - Xcode Version: *?.? (????)* (Open Xcode; In menubar: Xcode > About Xcode) - - Swift Version: *?.?* (Open Xcode Preferences; Components > Toolchains. If none, use `Xcode Default`.) - -Please also mention which package manager you used and its version. Delete the -other package managers in this list: - - - Cocoapods: *?.?.?* (Use `pod --version` in Terminal) - - Carthage: *?.?* (Use `carthage version` in Terminal) - - Swift Package Manager *?.?.? (swiftpm-???)* (Use `swift build --version` in Terminal) - -### Project that demonstrates the issue - -Please link to a project we can download that reproduces the issue. Feel free -to delete this section if it's not relevant to the issue (eg - feature request). - -The project should be [short, self-contained, and correct example](http://sscce.org/). diff --git a/Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE b/Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE deleted file mode 100644 index 20e40c8..0000000 --- a/Carthage/Checkouts/Nimble/.github/PULL_REQUEST_TEMPLATE +++ /dev/null @@ -1,14 +0,0 @@ -The PR should summarize what was changed and why. Here are some questions to -help you if you're not sure: - - - What behavior was changed? - - What code was refactored / updated to support this change? - - What issues are related to this PR? Or why was this change introduced? - -Checklist - While not every PR needs it, new features should consider this list: - - - [ ] Does this have tests? - - [ ] Does this have documentation? - - [ ] Does this break the public API (Requires major version bump)? - - [ ] Is this a new feature (Requires minor version bump)? - diff --git a/Carthage/Checkouts/Nimble/.gitignore b/Carthage/Checkouts/Nimble/.gitignore deleted file mode 100644 index e50906d..0000000 --- a/Carthage/Checkouts/Nimble/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -**/xcuserdata/* -**/*.xccheckout -**/*.xcscmblueprint -build/ -.idea -DerivedData/ -Nimble.framework.zip - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -.build/ diff --git a/Carthage/Checkouts/Nimble/.hound.yml b/Carthage/Checkouts/Nimble/.hound.yml deleted file mode 100644 index b867fd9..0000000 --- a/Carthage/Checkouts/Nimble/.hound.yml +++ /dev/null @@ -1,2 +0,0 @@ -swift: - config_file: .swiftlint.yml diff --git a/Carthage/Checkouts/Nimble/.swift-version b/Carthage/Checkouts/Nimble/.swift-version deleted file mode 100644 index 9f55b2c..0000000 --- a/Carthage/Checkouts/Nimble/.swift-version +++ /dev/null @@ -1 +0,0 @@ -3.0 diff --git a/Carthage/Checkouts/Nimble/.swiftlint.yml b/Carthage/Checkouts/Nimble/.swiftlint.yml deleted file mode 100644 index 973705d..0000000 --- a/Carthage/Checkouts/Nimble/.swiftlint.yml +++ /dev/null @@ -1,19 +0,0 @@ -disabled_rules: - - line_length - - todo - - variable_name - - force_try - - function_parameter_count - - force_cast - - type_name - - large_tuple - -included: - - Sources - - Tests - -excluded: - - Sources/Lib - -trailing_comma: - mandatory_comma: true diff --git a/Carthage/Checkouts/Nimble/.travis.yml b/Carthage/Checkouts/Nimble/.travis.yml deleted file mode 100644 index 3e2f896..0000000 --- a/Carthage/Checkouts/Nimble/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -osx_image: xcode8 -language: generic -matrix: - include: - - os: osx - sudo: required - env: TYPE=podspec - - os: osx - env: TYPE=ios NIMBLE_RUNTIME_IOS_SDK_VERSION=10.0 - - os: osx - env: TYPE=tvos NIMBLE_RUNTIME_TVOS_SDK_VERSION=10.0 - - os: osx - env: TYPE=macos - - os: osx - env: TYPE=swiftpm - - os: linux - dist: trusty - sudo: required - env: TYPE=swiftpm - install: - - eval "$(curl -sL https://gist.githubusercontent.com/kylef/5c0475ff02b7c7671d2a/raw/9f442512a46d7a2af7b850d65a7e9bd31edfb09b/swiftenv-install.sh)" -install: - - if [[ "$TYPE" == "podspec" ]]; then sudo gem install bundler; bundle install; fi -script: - - ./test $TYPE diff --git a/Carthage/Checkouts/Nimble/CONTRIBUTING.md b/Carthage/Checkouts/Nimble/CONTRIBUTING.md deleted file mode 100644 index d9c4ba6..0000000 --- a/Carthage/Checkouts/Nimble/CONTRIBUTING.md +++ /dev/null @@ -1,120 +0,0 @@ - - - -- [Welcome to Nimble!](#welcome-to-nimble!) - - [Reporting Bugs](#reporting-bugs) - - [Building the Project](#building-the-project) - - [Pull Requests](#pull-requests) - - [Style Conventions](#style-conventions) - - [Core Members](#core-members) - - [Code of Conduct](#code-of-conduct) - - - -# Welcome to Nimble! - -We're building a testing framework for a new generation of Swift and -Objective-C developers. - -Nimble should be easy to use and easy to maintain. Let's keep things -simple and well-tested. - -**tl;dr:** If you've added a file to the project, make sure it's -included in both the OS X and iOS targets. - -## Reporting Bugs - -Nothing is off-limits. If you're having a problem, we want to hear about -it. - -- See a crash? File an issue. -- Code isn't compiling, but you don't know why? Sounds like you should - submit a new issue, bud. -- Went to the kitchen, only to forget why you went in the first place? - Better submit an issue. - -Be sure to include in your issue: - -- Your Xcode version (eg - Xcode 7.0.1 7A1001) -- Your version of Nimble (eg - v2.0.0 or git sha `20a3f3b4e63cc8d97c92c4164bf36f2a2c9a6e1b`) -- What are the steps to reproduce this issue? -- What platform are you using? (eg - OS X, iOS, watchOS, tvOS) -- If the problem is on a UI Testing Bundle, Unit Testing Bundle, or some other target configuration -- Are you using carthage or cocoapods? - -## Building the Project - -- Use `Nimble.xcodeproj` to work on Nimble. - -## Running the Swift Package Manager tests - -1. Install `swiftenv` by running a line from the build script (`.travis.yml`): - - eval "$(curl -sL https://gist.githubusercontent.com/kylef/5c0475ff02b7c7671d2a/raw/02090c7ede5a637b76e6df1710e83cd0bbe7dcdf/swiftenv-install.sh)" - -2. Run `./test swiftpm` - -## Pull Requests - -- Nothing is trivial. Submit pull requests for anything: typos, - whitespace, you name it. -- Not all pull requests will be merged, but all will be acknowledged. If - no one has provided feedback on your request, ping one of the owners - by name. -- Make sure your pull request includes any necessary updates to the - README or other documentation. -- Be sure the unit tests for both the OS X and iOS targets of Nimble - before submitting your pull request. You can run all the OS X & iOS unit - tests using `./test`. -- If you've added a file to the project, make sure it's included in both - the OS X and iOS targets. -- The `master` branch will always support the stable Xcode version. Other - branches will point to their corresponding versions they support. -- If you're making a configuration change, make sure to edit both the xcode - project and the podspec file. - -### Style Conventions - -- Indent using 4 spaces. -- Keep lines 100 characters or shorter. Break long statements into - shorter ones over multiple lines. -- In Objective-C, use `#pragma mark -` to mark public, internal, - protocol, and superclass methods. - -## Core Members - -If a few of your pull requests have been merged, and you'd like a -controlling stake in the project, file an issue asking for write access -to the repository. - -### Code of Conduct - -Your conduct as a core member is your own responsibility, but here are -some "ground rules": - -- Feel free to push whatever you want to master, and (if you have - ownership permissions) to create any repositories you'd like. - - Ideally, however, all changes should be submitted as GitHub pull - requests. No one should merge their own pull request, unless no - other core members respond for at least a few days. - - If you'd like to create a new repository, it'd be nice if you created - a GitHub issue and gathered some feedback first. - -- It'd be awesome if you could review, provide feedback on, and close - issues or pull requests submitted to the project. Please provide kind, - constructive feedback. Please don't be sarcastic or snarky. - -### Creating a Release - -The process is relatively straight forward, but here's is a useful checklist for tagging: - -- Look at changes from the previously tagged release and write release notes: `git log v0.4.0...HEAD` -- Run the release script: `./script/release A.B.C release-notes-file` -- The script will prompt you to create a new [GitHub release](https://github.com/Quick/Nimble/releases). - - Use the same release notes you created for the tag, but tweak up formatting for GitHub. -- Update [Quick](https://github.com/Quick/Quick) - - Update Quick's submodule reference to the newly released Nimble version - - Update Nimble version in `README.md` and Documentation in [Quick](https://github.com/Quick/Quick) if it's not a patch version update. -- Announce! diff --git a/Carthage/Checkouts/Nimble/Dockerfile.test b/Carthage/Checkouts/Nimble/Dockerfile.test deleted file mode 100644 index a995ae2..0000000 --- a/Carthage/Checkouts/Nimble/Dockerfile.test +++ /dev/null @@ -1,3 +0,0 @@ -FROM swift:latest -COPY . . -CMD ./test swiftpm diff --git a/Carthage/Checkouts/Nimble/Gemfile b/Carthage/Checkouts/Nimble/Gemfile deleted file mode 100644 index 0211a92..0000000 --- a/Carthage/Checkouts/Nimble/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# A sample Gemfile -source "https://rubygems.org" - -gem 'cocoapods', '1.2.0' diff --git a/Carthage/Checkouts/Nimble/Gemfile.lock b/Carthage/Checkouts/Nimble/Gemfile.lock deleted file mode 100644 index edde6bb..0000000 --- a/Carthage/Checkouts/Nimble/Gemfile.lock +++ /dev/null @@ -1,73 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (2.3.5) - activesupport (4.2.8) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - claide (1.0.1) - cocoapods (1.2.0) - activesupport (>= 4.0.2, < 5) - claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.2.0) - cocoapods-deintegrate (>= 1.0.1, < 2.0) - cocoapods-downloader (>= 1.1.3, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.1.2, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored (~> 1.2) - escape (~> 0.0.4) - fourflusher (~> 2.0.1) - gh_inspector (~> 1.0) - molinillo (~> 0.5.5) - nap (~> 1.0) - ruby-macho (~> 0.2.5) - xcodeproj (>= 1.4.1, < 2.0) - cocoapods-core (1.2.0) - activesupport (>= 4.0.2, < 5) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - cocoapods-deintegrate (1.0.1) - cocoapods-downloader (1.1.3) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.0) - cocoapods-stats (1.0.0) - cocoapods-trunk (1.1.2) - nap (>= 0.8, < 2.0) - netrc (= 0.7.8) - cocoapods-try (1.1.0) - colored (1.2) - escape (0.0.4) - fourflusher (2.0.1) - fuzzy_match (2.0.4) - gh_inspector (1.0.3) - i18n (0.8.1) - minitest (5.10.1) - molinillo (0.5.6) - nanaimo (0.2.3) - nap (1.1.0) - netrc (0.7.8) - ruby-macho (0.2.6) - thread_safe (0.3.6) - tzinfo (1.2.2) - thread_safe (~> 0.1) - xcodeproj (1.4.2) - CFPropertyList (~> 2.3.3) - activesupport (>= 3) - claide (>= 1.0.1, < 2.0) - colored (~> 1.2) - nanaimo (~> 0.2.3) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (= 1.2.0) - -BUNDLED WITH - 1.14.5 diff --git a/Carthage/Checkouts/Nimble/LICENSE b/Carthage/Checkouts/Nimble/LICENSE deleted file mode 100644 index 82b84bf..0000000 --- a/Carthage/Checkouts/Nimble/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 Quick Team - - 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. diff --git a/Carthage/Checkouts/Nimble/LICENSE.md b/Carthage/Checkouts/Nimble/LICENSE.md deleted file mode 100644 index 0f3eb71..0000000 --- a/Carthage/Checkouts/Nimble/LICENSE.md +++ /dev/null @@ -1,201 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2014 Quick Team - - 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. diff --git a/Carthage/Checkouts/Nimble/Nimble.podspec b/Carthage/Checkouts/Nimble/Nimble.podspec deleted file mode 100644 index 47b9d5a..0000000 --- a/Carthage/Checkouts/Nimble/Nimble.podspec +++ /dev/null @@ -1,49 +0,0 @@ -Pod::Spec.new do |s| - s.name = "Nimble" - s.version = "7.0.0" - s.summary = "A Matcher Framework for Swift and Objective-C" - s.description = <<-DESC - Use Nimble to express the expected outcomes of Swift or Objective-C expressions. Inspired by Cedar. - DESC - s.homepage = "https://github.com/Quick/Nimble" - s.license = { :type => "Apache 2.0", :file => "LICENSE" } - s.author = "Quick Contributors" - s.ios.deployment_target = "8.0" - s.osx.deployment_target = "10.10" - s.tvos.deployment_target = "9.0" - s.source = { :git => "https://github.com/Quick/Nimble.git", - :tag => "v#{s.version}" } - - s.source_files = "Sources/**/*.{swift,h,m,c}" - - s.osx.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPosix.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h", - ] - s.ios.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h", - ] - s.tvos.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift", - "Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift", - "Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m", - "Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h", - ] - - s.private_header_files = "Sources/NimbleObjectiveC/CurrentTestCaseTracker.h" - - s.exclude_files = "Sources/Nimble/Adapters/NonObjectiveC/*.swift" - s.weak_framework = "XCTest" - s.requires_arc = true - s.compiler_flags = '-DPRODUCT_NAME=Nimble/Nimble' - s.pod_target_xcconfig = { - 'ENABLE_BITCODE' => 'NO', - 'OTHER_LDFLAGS' => '-weak-lswiftXCTest', - 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"', - } -end diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj deleted file mode 100644 index a92ae6c..0000000 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2297 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - A8F2B2541E79A4AB005BDD17 /* SwiftLint */ = { - isa = PBXAggregateTarget; - buildConfigurationList = A8F2B2571E79A4AC005BDD17 /* Build configuration list for PBXAggregateTarget "SwiftLint" */; - buildPhases = ( - A8F2B2581E79A4B0005BDD17 /* ShellScript */, - ); - dependencies = ( - ); - name = SwiftLint; - productName = SwiftLint; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 1F0648CC19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; - 1F0648CD19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; - 1F0648D41963AAB2001F9C46 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; - 1F0648D51963AAB2001F9C46 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; - 1F12BE941E778F70006952EC /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */; }; - 1F12BE951E778F70006952EC /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BE981E778F70006952EC /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */; }; - 1F12BE991E778F70006952EC /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */; }; - 1F12BE9B1E778F70006952EC /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */; }; - 1F12BE9D1E778F70006952EC /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BE9F1E778F8F006952EC /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */; }; - 1F12BEA01E778F90006952EC /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */; }; - 1F12BEA11E778FA9006952EC /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BEA21E778FBA006952EC /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE881E778F70006952EC /* mach_excServer.c */; }; - 1F12BEA31E778FFA006952EC /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BEA41E77900A006952EC /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */; }; - 1F12BEA51E77900A006952EC /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */; }; - 1F12BEA61E779012006952EC /* CwlCatchBadInstructionPOSIX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8D1E778F70006952EC /* CwlCatchBadInstructionPOSIX.swift */; }; - 1F12BEA71E779018006952EC /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */; }; - 1F12BEA81E77902A006952EC /* CwlPreconditionTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE931E778F70006952EC /* CwlPreconditionTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BEDC1E7791B9006952EC /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED71E7791B9006952EC /* CwlCatchException.swift */; }; - 1F12BEDD1E7791B9006952EC /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED71E7791B9006952EC /* CwlCatchException.swift */; }; - 1F12BEDF1E7791B9006952EC /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED91E7791B9006952EC /* CwlCatchException.m */; }; - 1F12BEE01E7791B9006952EC /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BED91E7791B9006952EC /* CwlCatchException.m */; }; - 1F12BEE21E7791B9006952EC /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BEE31E7791B9006952EC /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F12BEE91E779784006952EC /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1F12BE881E778F70006952EC /* mach_excServer.c */; }; - 1F12BEEA1E77ABE3006952EC /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */; }; - 1F14FB64194180C5009F2A08 /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; - 1F1871C51CA89EDB00A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; - 1F1871C71CA89EDB00A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871C81CA89EDB00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; }; - 1F1871C91CA89EDB00A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871CA1CA89EDB00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; }; - 1F1871CB1CA89EDB00A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; }; - 1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; }; - 1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; - 1F1871D31CA89EEE00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; }; - 1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; }; - 1F1871D61CA89EEF00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; - 1F1871D71CA89EEF00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; }; - 1F1871D81CA89EEF00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; }; - 1F1871D91CA89EF100A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; }; - 1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; }; - 1F1871DB1CA89EF100A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; }; - 1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; }; - 1F1871DD1CA89EF500A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871DE1CA89EF500A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871DF1CA89EF500A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E01CA89EF600A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E11CA89EF600A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E21CA89EF600A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E41CA89FB600A34BF2 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */; }; - 1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; }; - 1F1871E71CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */; }; - 1F1871E81CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */; }; - 1F1871E91CA8A18700A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; }; - 1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; }; - 1F1A742F1940169200FFFC47 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1A74351940169200FFFC47 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F1A74291940169200FFFC47 /* Nimble.framework */; }; - 1F1B5AD41963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; - 1F1B5AD51963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; - 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F43728A1A1B343800EB80F8 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; - 1F43728B1A1B343900EB80F8 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; - 1F43728C1A1B343C00EB80F8 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; - 1F43728D1A1B343D00EB80F8 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; - 1F43728E1A1B343F00EB80F8 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD281968AB07008ED995 /* Stringers.swift */; }; - 1F43728F1A1B344000EB80F8 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD281968AB07008ED995 /* Stringers.swift */; }; - 1F4999A61DBF2DD100BF8877 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F4A56661A3B305F009E1637 /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; }; - 1F4A56671A3B305F009E1637 /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; }; - 1F4A566A1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; }; - 1F4A566B1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; }; - 1F4A566D1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */; }; - 1F4A566E1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */; }; - 1F4A56701A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */; }; - 1F4A56711A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */; }; - 1F4A56731A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */; }; - 1F4A56741A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */; }; - 1F4A56761A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */; }; - 1F4A56771A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */; }; - 1F4A56791A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */; }; - 1F4A567A1A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */; }; - 1F4A567C1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */; }; - 1F4A567D1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */; }; - 1F4A567F1A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */; }; - 1F4A56801A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */; }; - 1F4A56821A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */; }; - 1F4A56831A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */; }; - 1F4A56851A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */; }; - 1F4A56861A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */; }; - 1F4A56881A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */; }; - 1F4A56891A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */; }; - 1F4A568B1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */; }; - 1F4A568C1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */; }; - 1F4A568E1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */; }; - 1F4A568F1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */; }; - 1F4A56911A3B344A009E1637 /* ObjCBeNilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */; }; - 1F4A56921A3B344A009E1637 /* ObjCBeNilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */; }; - 1F4A56941A3B346F009E1637 /* ObjCContainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */; }; - 1F4A56951A3B346F009E1637 /* ObjCContainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */; }; - 1F4A56971A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */; }; - 1F4A56981A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */; }; - 1F4A569A1A3B3539009E1637 /* ObjCEqualTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */; }; - 1F4A569B1A3B3539009E1637 /* ObjCEqualTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */; }; - 1F4A569D1A3B3565009E1637 /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; - 1F4A569E1A3B3565009E1637 /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; - 1F4A56A01A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - 1F4A56A11A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - 1F4BB8B61DACA0E30048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F4BB8B71DACA0E40048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F4BB8B81DACAACF0048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F5DF15F1BDCA0CE00C3A531 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */; }; - 1F5DF16C1BDCA0F500C3A531 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; - 1F5DF16D1BDCA0F500C3A531 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; - 1F5DF16E1BDCA0F500C3A531 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */; }; - 1F5DF16F1BDCA0F500C3A531 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; - 1F5DF1701BDCA0F500C3A531 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD081968AB07008ED995 /* DSL.swift */; }; - 1F5DF1711BDCA0F500C3A531 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */; }; - 1F5DF1721BDCA0F500C3A531 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD091968AB07008ED995 /* Expectation.swift */; }; - 1F5DF1741BDCA0F500C3A531 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0A1968AB07008ED995 /* Expression.swift */; }; - 1F5DF1751BDCA0F500C3A531 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */; }; - 1F5DF1761BDCA0F500C3A531 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB1BC781A92235600F743C3 /* AllPass.swift */; }; - 1F5DF1771BDCA0F500C3A531 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */; }; - 1F5DF1781BDCA0F500C3A531 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */; }; - 1F5DF1791BDCA0F500C3A531 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */; }; - 1F5DF17A1BDCA0F500C3A531 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD101968AB07008ED995 /* BeEmpty.swift */; }; - 1F5DF17B1BDCA0F500C3A531 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD111968AB07008ED995 /* BeginWith.swift */; }; - 1F5DF17C1BDCA0F500C3A531 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */; }; - 1F5DF17D1BDCA0F500C3A531 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */; }; - 1F5DF17E1BDCA0F500C3A531 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */; }; - 1F5DF17F1BDCA0F500C3A531 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD151968AB07008ED995 /* BeLessThan.swift */; }; - 1F5DF1801BDCA0F500C3A531 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */; }; - 1F5DF1811BDCA0F500C3A531 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD171968AB07008ED995 /* BeLogical.swift */; }; - 1F5DF1821BDCA0F500C3A531 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD181968AB07008ED995 /* BeNil.swift */; }; - 1F5DF1831BDCA0F500C3A531 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1A1968AB07008ED995 /* Contain.swift */; }; - 1F5DF1841BDCA0F500C3A531 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1B1968AB07008ED995 /* EndWith.swift */; }; - 1F5DF1851BDCA0F500C3A531 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1C1968AB07008ED995 /* Equal.swift */; }; - 1F5DF1861BDCA0F500C3A531 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1341B9E085700C7B8DA /* HaveCount.swift */; }; - 1F5DF1871BDCA0F500C3A531 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EC19FE43C200E9D9FE /* Match.swift */; }; - 1F5DF1881BDCA0F500C3A531 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */; }; - 1F5DF1891BDCA0F500C3A531 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */; }; - 1F5DF18A1BDCA0F500C3A531 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; - 1F5DF18B1BDCA0F500C3A531 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; - 1F5DF18C1BDCA0F500C3A531 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; - 1F5DF18D1BDCA0F500C3A531 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; - 1F5DF18E1BDCA0F500C3A531 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD281968AB07008ED995 /* Stringers.swift */; }; - 1F5DF1921BDCA10200C3A531 /* AsynchronousTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE5195C121200ED456B /* AsynchronousTest.swift */; }; - 1F5DF1931BDCA10200C3A531 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; - 1F5DF1941BDCA10200C3A531 /* UserDescriptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */; }; - 1F5DF1951BDCA10200C3A531 /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; - 1F5DF1961BDCA10200C3A531 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; - 1F5DF1971BDCA10200C3A531 /* AllPassTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD72EC631A93874A002F7651 /* AllPassTest.swift */; }; - 1F5DF1981BDCA10200C3A531 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; - 1F5DF1991BDCA10200C3A531 /* BeAnInstanceOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */; }; - 1F5DF19A1BDCA10200C3A531 /* BeCloseToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF5195C147800ED456B /* BeCloseToTest.swift */; }; - 1F5DF19B1BDCA10200C3A531 /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F5DF19C1BDCA10200C3A531 /* BeginWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFB195C186800ED456B /* BeginWithTest.swift */; }; - 1F5DF19D1BDCA10200C3A531 /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; - 1F5DF19E1BDCA10200C3A531 /* BeGreaterThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */; }; - 1F5DF19F1BDCA10200C3A531 /* BeIdenticalToObjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */; }; - 1F5DF1A01BDCA10200C3A531 /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; - 1F5DF1A11BDCA10200C3A531 /* BeLessThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */; }; - 1F5DF1A21BDCA10200C3A531 /* BeLessThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */; }; - 1F5DF1A31BDCA10200C3A531 /* BeLogicalTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEE195C136500ED456B /* BeLogicalTest.swift */; }; - 1F5DF1A41BDCA10200C3A531 /* BeNilTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF8195C175000ED456B /* BeNilTest.swift */; }; - 1F5DF1A51BDCA10200C3A531 /* ContainTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F01195C189500ED456B /* ContainTest.swift */; }; - 1F5DF1A61BDCA10200C3A531 /* EndWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFE195C187600ED456B /* EndWithTest.swift */; }; - 1F5DF1A71BDCA10200C3A531 /* EqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F04195C18B700ED456B /* EqualTest.swift */; }; - 1F5DF1A81BDCA10200C3A531 /* HaveCountTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */; }; - 1F5DF1A91BDCA10200C3A531 /* MatchTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */; }; - 1F5DF1AA1BDCA10200C3A531 /* RaisesExceptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */; }; - 1F5DF1AB1BDCA10200C3A531 /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; - 1F8A37B01B7C5042001C8357 /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; }; - 1F8A37B11B7C5042001C8357 /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; }; - 1F91DD2D1C74BF36002C309F /* BeVoidTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */; }; - 1F91DD2E1C74BF36002C309F /* BeVoidTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */; }; - 1F91DD2F1C74BF36002C309F /* BeVoidTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */; }; - 1F91DD311C74BF61002C309F /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD301C74BF61002C309F /* BeVoid.swift */; }; - 1F91DD321C74BF61002C309F /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD301C74BF61002C309F /* BeVoid.swift */; }; - 1F91DD331C74BF61002C309F /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD301C74BF61002C309F /* BeVoid.swift */; }; - 1F925EB8195C0D6300ED456B /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F925EAD195C0D6300ED456B /* Nimble.framework */; }; - 1F925EC7195C0DD100ED456B /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F925EE2195C0DFD00ED456B /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; - 1F925EE6195C121200ED456B /* AsynchronousTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE5195C121200ED456B /* AsynchronousTest.swift */; }; - 1F925EE7195C121200ED456B /* AsynchronousTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE5195C121200ED456B /* AsynchronousTest.swift */; }; - 1F925EE9195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */; }; - 1F925EEA195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */; }; - 1F925EEC195C12C800ED456B /* RaisesExceptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */; }; - 1F925EED195C12C800ED456B /* RaisesExceptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */; }; - 1F925EEF195C136500ED456B /* BeLogicalTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEE195C136500ED456B /* BeLogicalTest.swift */; }; - 1F925EF0195C136500ED456B /* BeLogicalTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEE195C136500ED456B /* BeLogicalTest.swift */; }; - 1F925EF6195C147800ED456B /* BeCloseToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF5195C147800ED456B /* BeCloseToTest.swift */; }; - 1F925EF7195C147800ED456B /* BeCloseToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF5195C147800ED456B /* BeCloseToTest.swift */; }; - 1F925EF9195C175000ED456B /* BeNilTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF8195C175000ED456B /* BeNilTest.swift */; }; - 1F925EFA195C175000ED456B /* BeNilTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF8195C175000ED456B /* BeNilTest.swift */; }; - 1F925EFC195C186800ED456B /* BeginWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFB195C186800ED456B /* BeginWithTest.swift */; }; - 1F925EFD195C186800ED456B /* BeginWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFB195C186800ED456B /* BeginWithTest.swift */; }; - 1F925EFF195C187600ED456B /* EndWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFE195C187600ED456B /* EndWithTest.swift */; }; - 1F925F00195C187600ED456B /* EndWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFE195C187600ED456B /* EndWithTest.swift */; }; - 1F925F02195C189500ED456B /* ContainTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F01195C189500ED456B /* ContainTest.swift */; }; - 1F925F03195C189500ED456B /* ContainTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F01195C189500ED456B /* ContainTest.swift */; }; - 1F925F05195C18B700ED456B /* EqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F04195C18B700ED456B /* EqualTest.swift */; }; - 1F925F06195C18B700ED456B /* EqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F04195C18B700ED456B /* EqualTest.swift */; }; - 1F925F08195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */; }; - 1F925F09195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */; }; - 1F925F0B195C18E100ED456B /* BeLessThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */; }; - 1F925F0C195C18E100ED456B /* BeLessThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */; }; - 1F925F0E195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */; }; - 1F925F0F195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */; }; - 1F925F11195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; - 1F925F12195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; - 1F9DB8FB1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; - 1F9DB8FC1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; - 1FA0C3FF1E30B14500623165 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA0C3FE1E30B14500623165 /* Predicate.swift */; }; - 1FA0C4001E30B14500623165 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA0C3FE1E30B14500623165 /* Predicate.swift */; }; - 1FA0C4011E30B14500623165 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA0C3FE1E30B14500623165 /* Predicate.swift */; }; - 1FB90098195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; - 1FB90099195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; - 1FC494AA1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; - 1FC494AB1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; - 1FC494AC1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; - 1FCF914F1C61C85A00B15DCB /* PostNotificationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */; }; - 1FCF91501C61C85A00B15DCB /* PostNotificationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */; }; - 1FCF91511C61C85A00B15DCB /* PostNotificationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */; }; - 1FCF91531C61C8A400B15DCB /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF91521C61C8A400B15DCB /* PostNotification.swift */; }; - 1FCF91541C61C8A400B15DCB /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF91521C61C8A400B15DCB /* PostNotification.swift */; }; - 1FCF91551C61C8A400B15DCB /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF91521C61C8A400B15DCB /* PostNotification.swift */; }; - 1FD8CD2E1968AB07008ED995 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; - 1FD8CD2F1968AB07008ED995 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; - 1FD8CD301968AB07008ED995 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; - 1FD8CD311968AB07008ED995 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; - 1FD8CD321968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */; }; - 1FD8CD331968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */; }; - 1FD8CD341968AB07008ED995 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD081968AB07008ED995 /* DSL.swift */; }; - 1FD8CD351968AB07008ED995 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD081968AB07008ED995 /* DSL.swift */; }; - 1FD8CD361968AB07008ED995 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD091968AB07008ED995 /* Expectation.swift */; }; - 1FD8CD371968AB07008ED995 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD091968AB07008ED995 /* Expectation.swift */; }; - 1FD8CD381968AB07008ED995 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0A1968AB07008ED995 /* Expression.swift */; }; - 1FD8CD391968AB07008ED995 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0A1968AB07008ED995 /* Expression.swift */; }; - 1FD8CD3A1968AB07008ED995 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */; }; - 1FD8CD3B1968AB07008ED995 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */; }; - 1FD8CD3C1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */; }; - 1FD8CD3D1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */; }; - 1FD8CD3E1968AB07008ED995 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */; }; - 1FD8CD3F1968AB07008ED995 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */; }; - 1FD8CD401968AB07008ED995 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */; }; - 1FD8CD411968AB07008ED995 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */; }; - 1FD8CD421968AB07008ED995 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD101968AB07008ED995 /* BeEmpty.swift */; }; - 1FD8CD431968AB07008ED995 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD101968AB07008ED995 /* BeEmpty.swift */; }; - 1FD8CD441968AB07008ED995 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD111968AB07008ED995 /* BeginWith.swift */; }; - 1FD8CD451968AB07008ED995 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD111968AB07008ED995 /* BeginWith.swift */; }; - 1FD8CD461968AB07008ED995 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */; }; - 1FD8CD471968AB07008ED995 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */; }; - 1FD8CD481968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */; }; - 1FD8CD491968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */; }; - 1FD8CD4A1968AB07008ED995 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */; }; - 1FD8CD4B1968AB07008ED995 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */; }; - 1FD8CD4C1968AB07008ED995 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD151968AB07008ED995 /* BeLessThan.swift */; }; - 1FD8CD4D1968AB07008ED995 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD151968AB07008ED995 /* BeLessThan.swift */; }; - 1FD8CD4E1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */; }; - 1FD8CD4F1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */; }; - 1FD8CD501968AB07008ED995 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD171968AB07008ED995 /* BeLogical.swift */; }; - 1FD8CD511968AB07008ED995 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD171968AB07008ED995 /* BeLogical.swift */; }; - 1FD8CD521968AB07008ED995 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD181968AB07008ED995 /* BeNil.swift */; }; - 1FD8CD531968AB07008ED995 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD181968AB07008ED995 /* BeNil.swift */; }; - 1FD8CD561968AB07008ED995 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1A1968AB07008ED995 /* Contain.swift */; }; - 1FD8CD571968AB07008ED995 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1A1968AB07008ED995 /* Contain.swift */; }; - 1FD8CD581968AB07008ED995 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1B1968AB07008ED995 /* EndWith.swift */; }; - 1FD8CD591968AB07008ED995 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1B1968AB07008ED995 /* EndWith.swift */; }; - 1FD8CD5A1968AB07008ED995 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1C1968AB07008ED995 /* Equal.swift */; }; - 1FD8CD5B1968AB07008ED995 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1C1968AB07008ED995 /* Equal.swift */; }; - 1FD8CD5C1968AB07008ED995 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */; }; - 1FD8CD5D1968AB07008ED995 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */; }; - 1FD8CD5E1968AB07008ED995 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */; }; - 1FD8CD5F1968AB07008ED995 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */; }; - 1FD8CD6A1968AB07008ED995 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; - 1FD8CD6B1968AB07008ED995 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; - 1FDBD8671AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; - 1FDBD8681AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; - 1FE661571E6574E30035F243 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE661561E6574E20035F243 /* ExpectationMessage.swift */; }; - 1FE661581E6574E30035F243 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE661561E6574E20035F243 /* ExpectationMessage.swift */; }; - 1FE661591E6574E30035F243 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE661561E6574E20035F243 /* ExpectationMessage.swift */; }; - 29EA59631B551ED2002D767E /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; - 29EA59641B551ED2002D767E /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; - 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; - 29EA59671B551EE6002D767E /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; - 347155CA1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */; }; - 347155CB1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */; }; - 347155CC1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */; }; - 472FD1351B9E085700C7B8DA /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1341B9E085700C7B8DA /* HaveCount.swift */; }; - 472FD1391B9E0A9700C7B8DA /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1341B9E085700C7B8DA /* HaveCount.swift */; }; - 472FD13A1B9E0A9F00C7B8DA /* HaveCountTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */; }; - 472FD13B1B9E0CFE00C7B8DA /* HaveCountTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */; }; - 4793854D1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */; }; - 4793854E1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */; }; - 6CAEDD0A1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; - 6CAEDD0B1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; - 6CAEDD0C1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; - 7A0A26231E7F52360092A34E /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A26221E7F52360092A34E /* ToSucceed.swift */; }; - 7A6AB2C21E7F547E00A2F694 /* ToSucceedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */; }; - 7A6AB2C31E7F547E00A2F694 /* ToSucceedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */; }; - 7A6AB2C41E7F547E00A2F694 /* ToSucceedTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */; }; - 7A6AB2C51E7F628900A2F694 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A26221E7F52360092A34E /* ToSucceed.swift */; }; - 7A6AB2C61E7F628A00A2F694 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A0A26221E7F52360092A34E /* ToSucceed.swift */; }; - 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; - 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; - 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; - 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; - 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; - 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; - 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; - 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; - 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; - 7B5358BA1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; - 7B5358BB1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; - 7B5358BC1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; - 7B5358BE1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 7B5358BF1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 964CFEFD1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; - 964CFEFE1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; - 964CFEFF1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; - 965B0D091B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */; }; - 965B0D0A1B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */; }; - 965B0D0C1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */; }; - 965B0D0D1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */; }; - AE4BA9AD1C88DDB500B73906 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE4BA9AC1C88DDB500B73906 /* Errors.swift */; }; - AE4BA9AE1C88DDB500B73906 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE4BA9AC1C88DDB500B73906 /* Errors.swift */; }; - AE4BA9AF1C88DDB500B73906 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE4BA9AC1C88DDB500B73906 /* Errors.swift */; }; - AE7ADE451C80BF8000B94CD3 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE441C80BF8000B94CD3 /* MatchError.swift */; }; - AE7ADE461C80BF8000B94CD3 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE441C80BF8000B94CD3 /* MatchError.swift */; }; - AE7ADE471C80BF8000B94CD3 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE441C80BF8000B94CD3 /* MatchError.swift */; }; - AE7ADE491C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */; }; - AE7ADE4A1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */; }; - AE7ADE4B1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */; }; - CD79C99E1D2CC832004B6F9A /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; }; - CD79C99F1D2CC835004B6F9A /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; }; - CD79C9A01D2CC839004B6F9A /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; }; - CD79C9A11D2CC83B004B6F9A /* ObjCBeCloseToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */; }; - CD79C9A21D2CC83E004B6F9A /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; - CD79C9A31D2CC841004B6F9A /* ObjCBeFalseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */; }; - CD79C9A41D2CC848004B6F9A /* ObjCBeFalsyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */; }; - CD79C9A51D2CC848004B6F9A /* ObjCBeginWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */; }; - CD79C9A61D2CC848004B6F9A /* ObjCBeGreaterThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */; }; - CD79C9A71D2CC848004B6F9A /* ObjCBeGreaterThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */; }; - CD79C9A81D2CC848004B6F9A /* ObjCBeIdenticalToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */; }; - CD79C9A91D2CC848004B6F9A /* ObjCBeKindOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */; }; - CD79C9AA1D2CC848004B6F9A /* ObjCBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */; }; - CD79C9AB1D2CC848004B6F9A /* ObjCBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */; }; - CD79C9AC1D2CC848004B6F9A /* ObjCBeNilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */; }; - CD79C9AD1D2CC848004B6F9A /* ObjCBeTrueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */; }; - CD79C9AE1D2CC848004B6F9A /* ObjCBeTruthyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */; }; - CD79C9AF1D2CC848004B6F9A /* ObjCContainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */; }; - CD79C9B01D2CC848004B6F9A /* ObjCEndWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */; }; - CD79C9B11D2CC848004B6F9A /* ObjCEqualTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */; }; - CD79C9B21D2CC848004B6F9A /* ObjCHaveCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */; }; - CD79C9B31D2CC848004B6F9A /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; - CD79C9B41D2CC848004B6F9A /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - CD79C9B51D2CC848004B6F9A /* ObjCUserDescriptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */; }; - CD79C9B61D2CC848004B6F9A /* ObjCAllPassTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */; }; - CD79C9B71D2CC848004B6F9A /* ObjCSatisfyAnyOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */; }; - DA9E8C821A414BB9002633C2 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */; }; - DA9E8C831A414BB9002633C2 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */; }; - DD72EC641A93874A002F7651 /* AllPassTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD72EC631A93874A002F7651 /* AllPassTest.swift */; }; - DD72EC651A93874A002F7651 /* AllPassTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD72EC631A93874A002F7651 /* AllPassTest.swift */; }; - DD9A9A8F19CF439B00706F49 /* BeIdenticalToObjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */; }; - DD9A9A9019CF43AD00706F49 /* BeIdenticalToObjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */; }; - DDB1BC791A92235600F743C3 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB1BC781A92235600F743C3 /* AllPass.swift */; }; - DDB1BC7A1A92235600F743C3 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB1BC781A92235600F743C3 /* AllPass.swift */; }; - DDB4D5ED19FE43C200E9D9FE /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EC19FE43C200E9D9FE /* Match.swift */; }; - DDB4D5EE19FE43C200E9D9FE /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EC19FE43C200E9D9FE /* Match.swift */; }; - DDB4D5F019FE442800E9D9FE /* MatchTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */; }; - DDB4D5F119FE442800E9D9FE /* MatchTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */; }; - DDEFAEB41A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */; }; - DDEFAEB51A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */; }; - F8A1BE2F1CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */; }; - F8A1BE301CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */; }; - F8A1BE311CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1F1A74361940169200FFFC47 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = "Nimble-iOS"; - }; - 1F5DF1601BDCA0CE00C3A531 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F5DF1541BDCA0CE00C3A531; - remoteInfo = "Nimble-tvOS"; - }; - 1F6BB82A1968BFF9009F1DBB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = "Nimble-iOS"; - }; - 1F925EA4195C0C8500ED456B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = Nimble; - }; - 1F925EA6195C0C8500ED456B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = Nimble; - }; - 1F925EB9195C0D6300ED456B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; - 1F9B7BFD1968AD760094EB8F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; - 1F9B7BFF1968AD760094EB8F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; - 1F9B7C011968AD820094EB8F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectWithLazyProperty.swift; sourceTree = ""; }; - 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronousTests.swift; sourceTree = ""; }; - 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CwlMachBadInstructionHandler.m; sourceTree = ""; }; - 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlMachBadInstructionHandler.h; sourceTree = ""; }; - 1F12BE881E778F70006952EC /* mach_excServer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mach_excServer.c; sourceTree = ""; }; - 1F12BE891E778F70006952EC /* mach_excServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_excServer.h; sourceTree = ""; }; - 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlBadInstructionException.swift; sourceTree = ""; }; - 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstruction.swift; sourceTree = ""; }; - 1F12BE8D1E778F70006952EC /* CwlCatchBadInstructionPOSIX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchBadInstructionPOSIX.swift; sourceTree = ""; }; - 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlDarwinDefinitions.swift; sourceTree = ""; }; - 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlPreconditionTesting.h; sourceTree = ""; }; - 1F12BE931E778F70006952EC /* CwlPreconditionTesting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlPreconditionTesting.h; sourceTree = ""; }; - 1F12BED71E7791B9006952EC /* CwlCatchException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CwlCatchException.swift; sourceTree = ""; }; - 1F12BED91E7791B9006952EC /* CwlCatchException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CwlCatchException.m; sourceTree = ""; }; - 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CwlCatchException.h; sourceTree = ""; }; - 1F14FB63194180C5009F2A08 /* utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = utils.swift; sourceTree = ""; }; - 1F1871BC1CA89EDB00A34BF2 /* DSL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DSL.h; sourceTree = ""; }; - 1F1871BD1CA89EDB00A34BF2 /* DSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DSL.m; sourceTree = ""; }; - 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMBExceptionCapture.h; sourceTree = ""; }; - 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMBExceptionCapture.m; sourceTree = ""; }; - 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMBStringify.h; sourceTree = ""; }; - 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMBStringify.m; sourceTree = ""; }; - 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = ""; }; - 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = ""; }; - 1F1871CD1CA89EE000A34BF2 /* ExceptionCapture.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = ""; }; - 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsyncMatcherWrapper.swift; sourceTree = ""; }; - 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = ""; }; - 1F1A74291940169200FFFC47 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F1A742D1940169200FFFC47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1F1A742E1940169200FFFC47 /* Nimble.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Nimble.h; sourceTree = ""; }; - 1F1A74341940169200FFFC47 /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F1A743A1940169200FFFC47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeAKindOfTest.swift; sourceTree = ""; }; - 1F2752D119445B8400052A26 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; lineEnding = 0; path = README.md; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.markdown; }; - 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeEmptyTest.swift; sourceTree = ""; }; - 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCAsyncTest.m; sourceTree = ""; }; - 1F4A56681A3B3074009E1637 /* NimbleSpecHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NimbleSpecHelper.h; sourceTree = ""; }; - 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeAnInstanceOfTest.m; sourceTree = ""; }; - 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeKindOfTest.m; sourceTree = ""; }; - 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeCloseToTest.m; sourceTree = ""; }; - 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeginWithTest.m; sourceTree = ""; }; - 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeGreaterThanTest.m; sourceTree = ""; }; - 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeGreaterThanOrEqualToTest.m; sourceTree = ""; }; - 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeIdenticalToTest.m; sourceTree = ""; }; - 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeLessThanTest.m; sourceTree = ""; }; - 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeLessThanOrEqualToTest.m; sourceTree = ""; }; - 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeTruthyTest.m; sourceTree = ""; }; - 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeFalsyTest.m; sourceTree = ""; }; - 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeTrueTest.m; sourceTree = ""; }; - 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeFalseTest.m; sourceTree = ""; }; - 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeNilTest.m; sourceTree = ""; }; - 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCContainTest.m; sourceTree = ""; }; - 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCEndWithTest.m; sourceTree = ""; }; - 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCEqualTest.m; sourceTree = ""; }; - 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCMatchTest.m; sourceTree = ""; }; - 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCRaiseExceptionTest.m; sourceTree = ""; }; - 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowAssertionTest.swift; sourceTree = ""; }; - 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCSyncTest.m; sourceTree = ""; }; - 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeVoidTest.swift; sourceTree = ""; }; - 1F91DD301C74BF61002C309F /* BeVoid.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeVoid.swift; sourceTree = ""; }; - 1F925EAD195C0D6300ED456B /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F925EB7195C0D6300ED456B /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F925EE5195C121200ED456B /* AsynchronousTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsynchronousTest.swift; sourceTree = ""; }; - 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOfTest.swift; sourceTree = ""; }; - 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RaisesExceptionTest.swift; sourceTree = ""; }; - 1F925EEE195C136500ED456B /* BeLogicalTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLogicalTest.swift; sourceTree = ""; }; - 1F925EF5195C147800ED456B /* BeCloseToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeCloseToTest.swift; sourceTree = ""; }; - 1F925EF8195C175000ED456B /* BeNilTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeNilTest.swift; sourceTree = ""; }; - 1F925EFB195C186800ED456B /* BeginWithTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeginWithTest.swift; sourceTree = ""; }; - 1F925EFE195C187600ED456B /* EndWithTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EndWithTest.swift; sourceTree = ""; }; - 1F925F01195C189500ED456B /* ContainTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainTest.swift; sourceTree = ""; }; - 1F925F04195C18B700ED456B /* EqualTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EqualTest.swift; sourceTree = ""; }; - 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeGreaterThanTest.swift; sourceTree = ""; }; - 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLessThanTest.swift; sourceTree = ""; }; - 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqualToTest.swift; sourceTree = ""; }; - 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualToTest.swift; sourceTree = ""; }; - 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeEmptyTest.m; sourceTree = ""; }; - 1FA0C3FE1E30B14500623165 /* Predicate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Predicate.swift; sourceTree = ""; }; - 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeIdenticalToTest.swift; sourceTree = ""; }; - 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; - 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostNotificationTest.swift; sourceTree = ""; }; - 1FCF91521C61C8A400B15DCB /* PostNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostNotification.swift; sourceTree = ""; }; - 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssertionRecorder.swift; sourceTree = ""; }; - 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdapterProtocols.swift; sourceTree = ""; }; - 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NimbleXCTestHandler.swift; sourceTree = ""; }; - 1FD8CD081968AB07008ED995 /* DSL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - 1FD8CD091968AB07008ED995 /* Expectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Expectation.swift; sourceTree = ""; }; - 1FD8CD0A1968AB07008ED995 /* Expression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Expression.swift; sourceTree = ""; }; - 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FailureMessage.swift; sourceTree = ""; }; - 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOf.swift; sourceTree = ""; }; - 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeAKindOf.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeCloseTo.swift; sourceTree = ""; }; - 1FD8CD101968AB07008ED995 /* BeEmpty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeEmpty.swift; sourceTree = ""; }; - 1FD8CD111968AB07008ED995 /* BeginWith.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeginWith.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeGreaterThan.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeGreaterThanOrEqualTo.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeIdenticalTo.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD151968AB07008ED995 /* BeLessThan.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeLessThan.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeLessThanOrEqual.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD171968AB07008ED995 /* BeLogical.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeLogical.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD181968AB07008ED995 /* BeNil.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeNil.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD1A1968AB07008ED995 /* Contain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Contain.swift; sourceTree = ""; }; - 1FD8CD1B1968AB07008ED995 /* EndWith.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EndWith.swift; sourceTree = ""; }; - 1FD8CD1C1968AB07008ED995 /* Equal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = Equal.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatcherProtocols.swift; sourceTree = ""; }; - 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = RaisesException.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD251968AB07008ED995 /* Functional.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Functional.swift; sourceTree = ""; }; - 1FD8CD261968AB07008ED995 /* Async.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; - 1FD8CD271968AB07008ED995 /* SourceLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; - 1FD8CD281968AB07008ED995 /* Stringers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; - 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; - 1FE661561E6574E20035F243 /* ExpectationMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExpectationMessage.swift; sourceTree = ""; }; - 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowErrorTest.swift; sourceTree = ""; }; - 29EA59651B551EE6002D767E /* ThrowError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; - 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseProvider.swift; sourceTree = ""; }; - 472FD1341B9E085700C7B8DA /* HaveCount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HaveCount.swift; sourceTree = ""; }; - 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HaveCountTest.swift; sourceTree = ""; }; - 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCHaveCount.m; sourceTree = ""; }; - 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinuxSupport.swift; sourceTree = ""; }; - 7A0A26221E7F52360092A34E /* ToSucceed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToSucceed.swift; sourceTree = ""; }; - 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToSucceedTest.swift; sourceTree = ""; }; - 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; - 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCContainElementSatisfying.m; sourceTree = ""; }; - 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfyingTest.swift; sourceTree = ""; }; - 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOfTest.swift; sourceTree = ""; }; - 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; - 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCSatisfyAnyOfTest.m; sourceTree = ""; }; - 8DF1C3F61C94FC75004B2D36 /* ObjcStringersTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjcStringersTest.m; sourceTree = ""; }; - 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; - 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCUserDescriptionTest.m; sourceTree = ""; }; - 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDescriptionTest.swift; sourceTree = ""; }; - AE4BA9AC1C88DDB500B73906 /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - AE7ADE441C80BF8000B94CD3 /* MatchError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchError.swift; sourceTree = ""; }; - AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchErrorTest.swift; sourceTree = ""; }; - DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DSL+Wait.swift"; sourceTree = ""; }; - DD72EC631A93874A002F7651 /* AllPassTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AllPassTest.swift; sourceTree = ""; }; - DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeIdenticalToObjectTest.swift; sourceTree = ""; }; - DDB1BC781A92235600F743C3 /* AllPass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AllPass.swift; sourceTree = ""; }; - DDB4D5EC19FE43C200E9D9FE /* Match.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = Match.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchTest.swift; sourceTree = ""; }; - DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCAllPassTest.m; sourceTree = ""; }; - F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XCTestObservationCenter+Register.m"; sourceTree = ""; }; - F8A1BE321CB3777F00031679 /* CurrentTestCaseTracker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CurrentTestCaseTracker.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1F1A74251940169200FFFC47 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F1A74311940169200FFFC47 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F1A74351940169200FFFC47 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1511BDCA0CE00C3A531 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF15B1BDCA0CE00C3A531 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F5DF15F1BDCA0CE00C3A531 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EA9195C0D6300ED456B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EB4195C0D6300ED456B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F925EB8195C0D6300ED456B /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1F12BE841E778F70006952EC /* CwlMachBadInstructionHandler */ = { - isa = PBXGroup; - children = ( - 1F12BE851E778F70006952EC /* CwlMachBadInstructionHandler.m */, - 1F12BE861E778F70006952EC /* include */, - 1F12BE881E778F70006952EC /* mach_excServer.c */, - 1F12BE891E778F70006952EC /* mach_excServer.h */, - ); - path = CwlMachBadInstructionHandler; - sourceTree = ""; - }; - 1F12BE861E778F70006952EC /* include */ = { - isa = PBXGroup; - children = ( - 1F12BE871E778F70006952EC /* CwlMachBadInstructionHandler.h */, - ); - path = include; - sourceTree = ""; - }; - 1F12BE8A1E778F70006952EC /* CwlPreconditionTesting */ = { - isa = PBXGroup; - children = ( - 1F12BE8B1E778F70006952EC /* CwlBadInstructionException.swift */, - 1F12BE8C1E778F70006952EC /* CwlCatchBadInstruction.swift */, - 1F12BE8D1E778F70006952EC /* CwlCatchBadInstructionPOSIX.swift */, - 1F12BE8E1E778F70006952EC /* CwlDarwinDefinitions.swift */, - 1F12BE901E778F70006952EC /* Mach */, - 1F12BE921E778F70006952EC /* Posix */, - ); - path = CwlPreconditionTesting; - sourceTree = ""; - }; - 1F12BE901E778F70006952EC /* Mach */ = { - isa = PBXGroup; - children = ( - 1F12BE911E778F70006952EC /* CwlPreconditionTesting.h */, - ); - path = Mach; - sourceTree = ""; - }; - 1F12BE921E778F70006952EC /* Posix */ = { - isa = PBXGroup; - children = ( - 1F12BE931E778F70006952EC /* CwlPreconditionTesting.h */, - ); - path = Posix; - sourceTree = ""; - }; - 1F12BED61E7791B9006952EC /* CwlCatchException */ = { - isa = PBXGroup; - children = ( - 1F12BED71E7791B9006952EC /* CwlCatchException.swift */, - ); - path = CwlCatchException; - sourceTree = ""; - }; - 1F12BED81E7791B9006952EC /* CwlCatchExceptionSupport */ = { - isa = PBXGroup; - children = ( - 1F12BED91E7791B9006952EC /* CwlCatchException.m */, - 1F12BEDA1E7791B9006952EC /* include */, - ); - path = CwlCatchExceptionSupport; - sourceTree = ""; - }; - 1F12BEDA1E7791B9006952EC /* include */ = { - isa = PBXGroup; - children = ( - 1F12BEDB1E7791B9006952EC /* CwlCatchException.h */, - ); - path = include; - sourceTree = ""; - }; - 1F14FB61194180A7009F2A08 /* Helpers */ = { - isa = PBXGroup; - children = ( - 1F14FB63194180C5009F2A08 /* utils.swift */, - 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */, - 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 1F1871B91CA89E1B00A34BF2 /* NimbleObjectiveC */ = { - isa = PBXGroup; - children = ( - F8A1BE321CB3777F00031679 /* CurrentTestCaseTracker.h */, - 1F1871BC1CA89EDB00A34BF2 /* DSL.h */, - 1F1871BD1CA89EDB00A34BF2 /* DSL.m */, - 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */, - 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */, - 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */, - 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */, - F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */, - ); - name = NimbleObjectiveC; - path = Sources/NimbleObjectiveC; - sourceTree = ""; - }; - 1F1871BA1CA89E2500A34BF2 /* NonObjectiveC */ = { - isa = PBXGroup; - children = ( - 1F1871CD1CA89EE000A34BF2 /* ExceptionCapture.swift */, - ); - path = NonObjectiveC; - sourceTree = ""; - }; - 1F1A741F1940169200FFFC47 = { - isa = PBXGroup; - children = ( - 1F2752D119445B8400052A26 /* README.md */, - 1F1A742B1940169200FFFC47 /* Nimble */, - 1F1871B91CA89E1B00A34BF2 /* NimbleObjectiveC */, - 1F1A74381940169200FFFC47 /* NimbleTests */, - 9630C0081C6D0AB3000693EE /* Lib */, - 1F1A742A1940169200FFFC47 /* Products */, - ); - indentWidth = 4; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 1F1A742A1940169200FFFC47 /* Products */ = { - isa = PBXGroup; - children = ( - 1F1A74291940169200FFFC47 /* Nimble.framework */, - 1F1A74341940169200FFFC47 /* NimbleTests.xctest */, - 1F925EAD195C0D6300ED456B /* Nimble.framework */, - 1F925EB7195C0D6300ED456B /* NimbleTests.xctest */, - 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */, - 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 1F1A742B1940169200FFFC47 /* Nimble */ = { - isa = PBXGroup; - children = ( - 1FD8CD041968AB07008ED995 /* Adapters */, - 1FD8CD081968AB07008ED995 /* DSL.swift */, - DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */, - 1FD8CD091968AB07008ED995 /* Expectation.swift */, - 1FD8CD0A1968AB07008ED995 /* Expression.swift */, - 1FE661561E6574E20035F243 /* ExpectationMessage.swift */, - 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */, - 1F1A742D1940169200FFFC47 /* Info.plist */, - 1FD8CD0C1968AB07008ED995 /* Matchers */, - 1F1A742E1940169200FFFC47 /* Nimble.h */, - 1FD8CD241968AB07008ED995 /* Utils */, - ); - name = Nimble; - path = Sources/Nimble; - sourceTree = ""; - }; - 1F1A74381940169200FFFC47 /* NimbleTests */ = { - isa = PBXGroup; - children = ( - 1F925EE5195C121200ED456B /* AsynchronousTest.swift */, - 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */, - 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */, - 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */, - 1FFD729A1963FC8200CD29A2 /* objc */, - 1F14FB61194180A7009F2A08 /* Helpers */, - 1F925EE3195C11B000ED456B /* Matchers */, - 1F1A74391940169200FFFC47 /* Supporting Files */, - ); - name = NimbleTests; - path = Tests/NimbleTests; - sourceTree = ""; - }; - 1F1A74391940169200FFFC47 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 1F1A743A1940169200FFFC47 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 1F925EE3195C11B000ED456B /* Matchers */ = { - isa = PBXGroup; - children = ( - DD72EC631A93874A002F7651 /* AllPassTest.swift */, - 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */, - 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */, - 1F925EF5195C147800ED456B /* BeCloseToTest.swift */, - 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */, - 1F925EFB195C186800ED456B /* BeginWithTest.swift */, - 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */, - 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */, - DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */, - 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */, - 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */, - 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */, - 1F925EEE195C136500ED456B /* BeLogicalTest.swift */, - 1F925EF8195C175000ED456B /* BeNilTest.swift */, - 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */, - 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */, - 1F925F01195C189500ED456B /* ContainTest.swift */, - 1F925EFE195C187600ED456B /* EndWithTest.swift */, - 1F925F04195C18B700ED456B /* EqualTest.swift */, - 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */, - DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */, - 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */, - 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */, - 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */, - 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */, - AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */, - 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */, - 7A6AB2C11E7F547E00A2F694 /* ToSucceedTest.swift */, - ); - path = Matchers; - sourceTree = ""; - }; - 1FD8CD041968AB07008ED995 /* Adapters */ = { - isa = PBXGroup; - children = ( - 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */, - 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */, - 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */, - 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */, - 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */, - 1F1871BA1CA89E2500A34BF2 /* NonObjectiveC */, - 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */, - 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */, - ); - path = Adapters; - sourceTree = ""; - }; - 1FD8CD0C1968AB07008ED995 /* Matchers */ = { - isa = PBXGroup; - children = ( - DDB1BC781A92235600F743C3 /* AllPass.swift */, - 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */, - 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */, - 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */, - 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */, - 1FD8CD101968AB07008ED995 /* BeEmpty.swift */, - 1FD8CD111968AB07008ED995 /* BeginWith.swift */, - 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */, - 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */, - 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */, - 1FD8CD151968AB07008ED995 /* BeLessThan.swift */, - 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */, - 1FD8CD171968AB07008ED995 /* BeLogical.swift */, - 1FD8CD181968AB07008ED995 /* BeNil.swift */, - 1F91DD301C74BF61002C309F /* BeVoid.swift */, - 1FD8CD1A1968AB07008ED995 /* Contain.swift */, - 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */, - 1FD8CD1B1968AB07008ED995 /* EndWith.swift */, - 1FD8CD1C1968AB07008ED995 /* Equal.swift */, - 472FD1341B9E085700C7B8DA /* HaveCount.swift */, - DDB4D5EC19FE43C200E9D9FE /* Match.swift */, - 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */, - 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */, - AE7ADE441C80BF8000B94CD3 /* MatchError.swift */, - 1FCF91521C61C8A400B15DCB /* PostNotification.swift */, - 1FA0C3FE1E30B14500623165 /* Predicate.swift */, - 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */, - 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */, - 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */, - 29EA59651B551EE6002D767E /* ThrowError.swift */, - 7A0A26221E7F52360092A34E /* ToSucceed.swift */, - ); - path = Matchers; - sourceTree = ""; - }; - 1FD8CD241968AB07008ED995 /* Utils */ = { - isa = PBXGroup; - children = ( - 1FD8CD251968AB07008ED995 /* Functional.swift */, - 1FD8CD261968AB07008ED995 /* Async.swift */, - 1FD8CD271968AB07008ED995 /* SourceLocation.swift */, - 1FD8CD281968AB07008ED995 /* Stringers.swift */, - AE4BA9AC1C88DDB500B73906 /* Errors.swift */, - ); - path = Utils; - sourceTree = ""; - }; - 1FFD729A1963FC8200CD29A2 /* objc */ = { - isa = PBXGroup; - children = ( - 1F4A56681A3B3074009E1637 /* NimbleSpecHelper.h */, - 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */, - 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */, - 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */, - 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */, - 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */, - 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */, - 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */, - 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */, - 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */, - 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */, - 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */, - 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */, - 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */, - 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */, - 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */, - 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */, - 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */, - 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */, - 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */, - 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */, - 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */, - 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */, - 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */, - 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */, - 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */, - DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */, - 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */, - 8DF1C3F61C94FC75004B2D36 /* ObjcStringersTest.m */, - ); - path = objc; - sourceTree = ""; - }; - 9630C0081C6D0AB3000693EE /* Lib */ = { - isa = PBXGroup; - children = ( - 9630C0091C6D0ABA000693EE /* CwlPreconditionTesting */, - ); - name = Lib; - path = Sources/Lib; - sourceTree = ""; - }; - 9630C0091C6D0ABA000693EE /* CwlPreconditionTesting */ = { - isa = PBXGroup; - children = ( - 1F12BED61E7791B9006952EC /* CwlCatchException */, - 1F12BED81E7791B9006952EC /* CwlCatchExceptionSupport */, - 1F12BE841E778F70006952EC /* CwlMachBadInstructionHandler */, - 1F12BE8A1E778F70006952EC /* CwlPreconditionTesting */, - ); - path = CwlPreconditionTesting; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 1F1A74261940169200FFFC47 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F12BEA31E778FFA006952EC /* CwlPreconditionTesting.h in Headers */, - 1F12BEA11E778FA9006952EC /* CwlMachBadInstructionHandler.h in Headers */, - 1F1871C91CA89EDB00A34BF2 /* NMBStringify.h in Headers */, - 1F1871C51CA89EDB00A34BF2 /* DSL.h in Headers */, - 1F1871C71CA89EDB00A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F1A742F1940169200FFFC47 /* Nimble.h in Headers */, - 1F12BEE31E7791B9006952EC /* CwlCatchException.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1521BDCA0CE00C3A531 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F1871E21CA89EF600A34BF2 /* NMBStringify.h in Headers */, - 1F1871E01CA89EF600A34BF2 /* DSL.h in Headers */, - 1F1871E11CA89EF600A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F12BEA81E77902A006952EC /* CwlPreconditionTesting.h in Headers */, - 1F12BEEA1E77ABE3006952EC /* CwlMachBadInstructionHandler.h in Headers */, - 1F4999A61DBF2DD100BF8877 /* Nimble.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EAA195C0D6300ED456B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F12BE951E778F70006952EC /* CwlMachBadInstructionHandler.h in Headers */, - 1F1871DF1CA89EF500A34BF2 /* NMBStringify.h in Headers */, - 1F12BE9D1E778F70006952EC /* CwlPreconditionTesting.h in Headers */, - 1F1871DD1CA89EF500A34BF2 /* DSL.h in Headers */, - 1F1871DE1CA89EF500A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F925EC7195C0DD100ED456B /* Nimble.h in Headers */, - 1F12BEE21E7791B9006952EC /* CwlCatchException.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 1F1A74281940169200FFFC47 /* Nimble-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F1A743F1940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOS" */; - buildPhases = ( - 1F1A74241940169200FFFC47 /* Sources */, - 1F1A74251940169200FFFC47 /* Frameworks */, - 1F1A74261940169200FFFC47 /* Headers */, - 1F1A74271940169200FFFC47 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Nimble-iOS"; - productName = "Nimble-iOS"; - productReference = 1F1A74291940169200FFFC47 /* Nimble.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F1A74331940169200FFFC47 /* Nimble-iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F1A74421940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOSTests" */; - buildPhases = ( - 1F1A74301940169200FFFC47 /* Sources */, - 1F1A74311940169200FFFC47 /* Frameworks */, - 1F1A74321940169200FFFC47 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F1A74371940169200FFFC47 /* PBXTargetDependency */, - 1F925EA5195C0C8500ED456B /* PBXTargetDependency */, - 1F925EA7195C0C8500ED456B /* PBXTargetDependency */, - 1F6BB82B1968BFF9009F1DBB /* PBXTargetDependency */, - ); - name = "Nimble-iOSTests"; - productName = "Nimble-iOSTests"; - productReference = 1F1A74341940169200FFFC47 /* NimbleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F5DF16A1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOS" */; - buildPhases = ( - 1F5DF1501BDCA0CE00C3A531 /* Sources */, - 1F5DF1511BDCA0CE00C3A531 /* Frameworks */, - 1F5DF1521BDCA0CE00C3A531 /* Headers */, - 1F5DF1531BDCA0CE00C3A531 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Nimble-tvOS"; - productName = "Nimble-tvOS"; - productReference = 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F5DF15D1BDCA0CE00C3A531 /* Nimble-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F5DF16B1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOSTests" */; - buildPhases = ( - 1F5DF15A1BDCA0CE00C3A531 /* Sources */, - 1F5DF15B1BDCA0CE00C3A531 /* Frameworks */, - 1F5DF15C1BDCA0CE00C3A531 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F5DF1611BDCA0CE00C3A531 /* PBXTargetDependency */, - ); - name = "Nimble-tvOSTests"; - productName = "Nimble-tvOSTests"; - productReference = 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 1F925EAC195C0D6300ED456B /* Nimble-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F925EC0195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOS" */; - buildPhases = ( - 1F925EA8195C0D6300ED456B /* Sources */, - 1F925EA9195C0D6300ED456B /* Frameworks */, - 1F925EAA195C0D6300ED456B /* Headers */, - 1F925EAB195C0D6300ED456B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Nimble-macOS"; - productName = "Nimble-macOS"; - productReference = 1F925EAD195C0D6300ED456B /* Nimble.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F925EB6195C0D6300ED456B /* Nimble-macOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F925EC3195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOSTests" */; - buildPhases = ( - 1F925EB3195C0D6300ED456B /* Sources */, - 1F925EB4195C0D6300ED456B /* Frameworks */, - 1F925EB5195C0D6300ED456B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F925EBA195C0D6300ED456B /* PBXTargetDependency */, - 1F9B7BFE1968AD760094EB8F /* PBXTargetDependency */, - 1F9B7C001968AD760094EB8F /* PBXTargetDependency */, - 1F9B7C021968AD820094EB8F /* PBXTargetDependency */, - ); - name = "Nimble-macOSTests"; - productName = "Nimble-OSXTests"; - productReference = 1F925EB7195C0D6300ED456B /* NimbleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 1F1A74201940169200FFFC47 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0820; - ORGANIZATIONNAME = "Jeff Hui"; - TargetAttributes = { - 1F1A74281940169200FFFC47 = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - }; - 1F1A74331940169200FFFC47 = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - TestTargetID = 1F1A74281940169200FFFC47; - }; - 1F5DF1541BDCA0CE00C3A531 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 1F5DF15D1BDCA0CE00C3A531 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 1F925EAC195C0D6300ED456B = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - }; - 1F925EB6195C0D6300ED456B = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - TestTargetID = 1F925EAC195C0D6300ED456B; - }; - A8F2B2541E79A4AB005BDD17 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 1F1A74231940169200FFFC47 /* Build configuration list for PBXProject "Nimble" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 1F1A741F1940169200FFFC47; - productRefGroup = 1F1A742A1940169200FFFC47 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1F925EAC195C0D6300ED456B /* Nimble-macOS */, - 1F925EB6195C0D6300ED456B /* Nimble-macOSTests */, - 1F1A74281940169200FFFC47 /* Nimble-iOS */, - 1F1A74331940169200FFFC47 /* Nimble-iOSTests */, - 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */, - 1F5DF15D1BDCA0CE00C3A531 /* Nimble-tvOSTests */, - A8F2B2541E79A4AB005BDD17 /* SwiftLint */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1F1A74271940169200FFFC47 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F1A74321940169200FFFC47 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1531BDCA0CE00C3A531 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF15C1BDCA0CE00C3A531 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EAB195C0D6300ED456B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EB5195C0D6300ED456B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - A8F2B2581E79A4B0005BDD17 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1F1A74241940169200FFFC47 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1FD8CD401968AB07008ED995 /* BeCloseTo.swift in Sources */, - 1F12BEA51E77900A006952EC /* CwlCatchBadInstruction.swift in Sources */, - 1F1871C81CA89EDB00A34BF2 /* NMBExceptionCapture.m in Sources */, - 1FD8CD361968AB07008ED995 /* Expectation.swift in Sources */, - 1FD8CD321968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */, - 1F43728F1A1B344000EB80F8 /* Stringers.swift in Sources */, - 1F12BEA41E77900A006952EC /* CwlBadInstructionException.swift in Sources */, - 1F43728D1A1B343D00EB80F8 /* SourceLocation.swift in Sources */, - 1FD8CD4E1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */, - 1FDBD8671AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */, - 1F43728A1A1B343800EB80F8 /* Functional.swift in Sources */, - AE4BA9AD1C88DDB500B73906 /* Errors.swift in Sources */, - 1FD8CD3C1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */, - 7A6AB2C51E7F628900A2F694 /* ToSucceed.swift in Sources */, - 1FD8CD501968AB07008ED995 /* BeLogical.swift in Sources */, - 1F1871CB1CA89EDB00A34BF2 /* NMBExpectation.swift in Sources */, - DA9E8C821A414BB9002633C2 /* DSL+Wait.swift in Sources */, - DDB1BC791A92235600F743C3 /* AllPass.swift in Sources */, - 1FD8CD3E1968AB07008ED995 /* BeAKindOf.swift in Sources */, - DDB4D5ED19FE43C200E9D9FE /* Match.swift in Sources */, - 1F12BE9F1E778F8F006952EC /* CwlMachBadInstructionHandler.m in Sources */, - 1F91DD311C74BF61002C309F /* BeVoid.swift in Sources */, - 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */, - 1FCF91531C61C8A400B15DCB /* PostNotification.swift in Sources */, - 1FD8CD2E1968AB07008ED995 /* AssertionRecorder.swift in Sources */, - 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */, - 1FD8CD5A1968AB07008ED995 /* Equal.swift in Sources */, - 1FD8CD4C1968AB07008ED995 /* BeLessThan.swift in Sources */, - 1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */, - 1FD8CD461968AB07008ED995 /* BeGreaterThan.swift in Sources */, - F8A1BE2F1CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, - 1F12BEA21E778FBA006952EC /* mach_excServer.c in Sources */, - 1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */, - 1FD8CD301968AB07008ED995 /* AdapterProtocols.swift in Sources */, - 1F12BEA71E779018006952EC /* CwlDarwinDefinitions.swift in Sources */, - 1F12BEE01E7791B9006952EC /* CwlCatchException.m in Sources */, - AE7ADE451C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1FC494AA1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, - 1FD8CD5E1968AB07008ED995 /* RaisesException.swift in Sources */, - 1FD8CD561968AB07008ED995 /* Contain.swift in Sources */, - 1FD8CD481968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */, - 1FD8CD441968AB07008ED995 /* BeginWith.swift in Sources */, - 1FD8CD4A1968AB07008ED995 /* BeIdenticalTo.swift in Sources */, - 1FE661581E6574E30035F243 /* ExpectationMessage.swift in Sources */, - 1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */, - 1FD8CD421968AB07008ED995 /* BeEmpty.swift in Sources */, - 1F1871E41CA89FB600A34BF2 /* AsyncMatcherWrapper.swift in Sources */, - 1F1871CA1CA89EDB00A34BF2 /* NMBStringify.m in Sources */, - 1FD8CD521968AB07008ED995 /* BeNil.swift in Sources */, - 1FD8CD6A1968AB07008ED995 /* Async.swift in Sources */, - 1FD8CD581968AB07008ED995 /* EndWith.swift in Sources */, - 1FD8CD5C1968AB07008ED995 /* MatcherProtocols.swift in Sources */, - 1FD8CD341968AB07008ED995 /* DSL.swift in Sources */, - 1F12BEDD1E7791B9006952EC /* CwlCatchException.swift in Sources */, - 7B5358BE1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, - 1FD8CD381968AB07008ED995 /* Expression.swift in Sources */, - 1FD8CD3A1968AB07008ED995 /* FailureMessage.swift in Sources */, - 472FD1351B9E085700C7B8DA /* HaveCount.swift in Sources */, - 9630C0301C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */, - 1FA0C4001E30B14500623165 /* Predicate.swift in Sources */, - 9630C0231C6D0B82000693EE /* mach_excServer.c in Sources */, - 9630C01F1C6D0B2F000693EE /* CwlCatchException.swift in Sources */, - 9630C0131C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */, - 9630C01C1C6D0B2F000693EE /* CwlCatchException.m in Sources */, - 9630C02C1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */, - 964CFEFD1C4FF48900513336 /* ThrowAssertion.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F1A74301940169200FFFC47 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F4A569A1A3B3539009E1637 /* ObjCEqualTest.m in Sources */, - 1F925EEC195C12C800ED456B /* RaisesExceptionTest.swift in Sources */, - 1F925EFF195C187600ED456B /* EndWithTest.swift in Sources */, - 1F1B5AD41963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */, - 1F925F0E195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */, - 1F4A56661A3B305F009E1637 /* ObjCAsyncTest.m in Sources */, - 1F925EFC195C186800ED456B /* BeginWithTest.swift in Sources */, - 1F14FB64194180C5009F2A08 /* utils.swift in Sources */, - DDB4D5F019FE442800E9D9FE /* MatchTest.swift in Sources */, - 1F4A56731A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, - 1F4A56821A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, - 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, - 1F925F02195C189500ED456B /* ContainTest.swift in Sources */, - 1F4A56881A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, - 1F4A568E1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, - 1F925F11195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */, - 1F925EEF195C136500ED456B /* BeLogicalTest.swift in Sources */, - 1F4A56A01A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */, - 1F925F0B195C18E100ED456B /* BeLessThanTest.swift in Sources */, - 1F9DB8FB1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */, - 1FB90098195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */, - 1F91DD2D1C74BF36002C309F /* BeVoidTest.swift in Sources */, - 1F4A56761A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */, - 1F925EF9195C175000ED456B /* BeNilTest.swift in Sources */, - 7A6AB2C31E7F547E00A2F694 /* ToSucceedTest.swift in Sources */, - 1F4A56701A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */, - 1F4A56971A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */, - 1F4A567C1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */, - 965B0D0C1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */, - 1FCF914F1C61C85A00B15DCB /* PostNotificationTest.swift in Sources */, - 965B0D091B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */, - 1F4A56911A3B344A009E1637 /* ObjCBeNilTest.m in Sources */, - 1F8A37B01B7C5042001C8357 /* ObjCSyncTest.m in Sources */, - 1F4A56941A3B346F009E1637 /* ObjCContainTest.m in Sources */, - 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */, - 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, - 1F925EF6195C147800ED456B /* BeCloseToTest.swift in Sources */, - 1F4A56791A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, - AE7ADE491C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, - 1F4A568B1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */, - DDEFAEB41A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */, - 1F4A567F1A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */, - 1F925EE6195C121200ED456B /* AsynchronousTest.swift in Sources */, - 1F0648CC19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */, - 1F4A56851A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */, - DD9A9A8F19CF439B00706F49 /* BeIdenticalToObjectTest.swift in Sources */, - 1F4BB8B71DACA0E40048464B /* ThrowAssertionTest.swift in Sources */, - 1F0648D41963AAB2001F9C46 /* SynchronousTests.swift in Sources */, - 347155CA1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, - 4793854D1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */, - 1F925F08195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */, - 7B5358BA1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */, - 1F925F05195C18B700ED456B /* EqualTest.swift in Sources */, - 1F4A566D1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */, - DD72EC641A93874A002F7651 /* AllPassTest.swift in Sources */, - 1F4A569D1A3B3565009E1637 /* ObjCMatchTest.m in Sources */, - 1F925EE9195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */, - 29EA59631B551ED2002D767E /* ThrowErrorTest.swift in Sources */, - 6CAEDD0A1CAEA86F003F1584 /* LinuxSupport.swift in Sources */, - 1F4A566A1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */, - 472FD13B1B9E0CFE00C7B8DA /* HaveCountTest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1501BDCA0CE00C3A531 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F5DF1791BDCA0F500C3A531 /* BeCloseTo.swift in Sources */, - 1F5DF16C1BDCA0F500C3A531 /* AssertionRecorder.swift in Sources */, - 1F1871D71CA89EEF00A34BF2 /* NMBExceptionCapture.m in Sources */, - 1F5DF1881BDCA0F500C3A531 /* MatcherProtocols.swift in Sources */, - 1F5DF16E1BDCA0F500C3A531 /* NimbleXCTestHandler.swift in Sources */, - 7A6AB2C61E7F628A00A2F694 /* ToSucceed.swift in Sources */, - 1F5DF1751BDCA0F500C3A531 /* FailureMessage.swift in Sources */, - 1F5DF1801BDCA0F500C3A531 /* BeLessThanOrEqual.swift in Sources */, - 1F1871E81CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */, - 1F5DF18A1BDCA0F500C3A531 /* ThrowError.swift in Sources */, - 1F5DF1891BDCA0F500C3A531 /* RaisesException.swift in Sources */, - 1F5DF1761BDCA0F500C3A531 /* AllPass.swift in Sources */, - AE4BA9AF1C88DDB500B73906 /* Errors.swift in Sources */, - 1F5DF1861BDCA0F500C3A531 /* HaveCount.swift in Sources */, - 1F5DF1811BDCA0F500C3A531 /* BeLogical.swift in Sources */, - 1F1871DB1CA89EF100A34BF2 /* NMBExpectation.swift in Sources */, - 1F5DF1741BDCA0F500C3A531 /* Expression.swift in Sources */, - 1F5DF1781BDCA0F500C3A531 /* BeAnInstanceOf.swift in Sources */, - 1F12BEA01E778F90006952EC /* CwlMachBadInstructionHandler.m in Sources */, - 1F5DF1771BDCA0F500C3A531 /* BeAKindOf.swift in Sources */, - 1F5DF17F1BDCA0F500C3A531 /* BeLessThan.swift in Sources */, - 1F5DF17C1BDCA0F500C3A531 /* BeGreaterThan.swift in Sources */, - 1F91DD331C74BF61002C309F /* BeVoid.swift in Sources */, - 1FCF91551C61C8A400B15DCB /* PostNotification.swift in Sources */, - 1F5DF1831BDCA0F500C3A531 /* Contain.swift in Sources */, - 1F5DF1851BDCA0F500C3A531 /* Equal.swift in Sources */, - 1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */, - F8A1BE311CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, - 1FE661591E6574E30035F243 /* ExpectationMessage.swift in Sources */, - 1FA0C4011E30B14500623165 /* Predicate.swift in Sources */, - 1F5DF1711BDCA0F500C3A531 /* DSL+Wait.swift in Sources */, - 1F1871D61CA89EEF00A34BF2 /* DSL.m in Sources */, - 1F5DF17D1BDCA0F500C3A531 /* BeGreaterThanOrEqualTo.swift in Sources */, - AE7ADE471C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1FC494AC1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, - 1F5DF18E1BDCA0F500C3A531 /* Stringers.swift in Sources */, - 1F5DF16D1BDCA0F500C3A531 /* AdapterProtocols.swift in Sources */, - 1F5DF17B1BDCA0F500C3A531 /* BeginWith.swift in Sources */, - 1F5DF17E1BDCA0F500C3A531 /* BeIdenticalTo.swift in Sources */, - 1F1871E91CA8A18700A34BF2 /* MatcherFunc.swift in Sources */, - 1F5DF17A1BDCA0F500C3A531 /* BeEmpty.swift in Sources */, - 1F5DF18C1BDCA0F500C3A531 /* Async.swift in Sources */, - 1F1871D81CA89EEF00A34BF2 /* NMBStringify.m in Sources */, - 1F5DF1821BDCA0F500C3A531 /* BeNil.swift in Sources */, - 1F5DF16F1BDCA0F500C3A531 /* AssertionDispatcher.swift in Sources */, - 964CFEFF1C4FF48900513336 /* ThrowAssertion.swift in Sources */, - 1F5DF1841BDCA0F500C3A531 /* EndWith.swift in Sources */, - 1F5DF18D1BDCA0F500C3A531 /* SourceLocation.swift in Sources */, - 1F5DF1701BDCA0F500C3A531 /* DSL.swift in Sources */, - 1F5DF1721BDCA0F500C3A531 /* Expectation.swift in Sources */, - 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, - 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */, - 1F5DF18B1BDCA0F500C3A531 /* Functional.swift in Sources */, - 1F5DF1871BDCA0F500C3A531 /* Match.swift in Sources */, - 1F12BEA61E779012006952EC /* CwlCatchBadInstructionPOSIX.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF15A1BDCA0CE00C3A531 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD79C9AD1D2CC848004B6F9A /* ObjCBeTrueTest.m in Sources */, - CD79C9B41D2CC848004B6F9A /* ObjCRaiseExceptionTest.m in Sources */, - 1F5DF1A31BDCA10200C3A531 /* BeLogicalTest.swift in Sources */, - 1F5DF1951BDCA10200C3A531 /* utils.swift in Sources */, - CD79C9B01D2CC848004B6F9A /* ObjCEndWithTest.m in Sources */, - CD79C9B21D2CC848004B6F9A /* ObjCHaveCount.m in Sources */, - CD79C9A41D2CC848004B6F9A /* ObjCBeFalsyTest.m in Sources */, - 1F5DF1981BDCA10200C3A531 /* BeAKindOfTest.swift in Sources */, - 1F5DF19B1BDCA10200C3A531 /* BeEmptyTest.swift in Sources */, - 7B5358BC1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */, - 1F5DF1A11BDCA10200C3A531 /* BeLessThanOrEqualToTest.swift in Sources */, - 1F5DF1961BDCA10200C3A531 /* ObjectWithLazyProperty.swift in Sources */, - 1F5DF1AB1BDCA10200C3A531 /* ThrowErrorTest.swift in Sources */, - CD79C9A91D2CC848004B6F9A /* ObjCBeKindOfTest.m in Sources */, - 1F5DF1A51BDCA10200C3A531 /* ContainTest.swift in Sources */, - 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, - AE7ADE4B1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, - 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, - CD79C9B31D2CC848004B6F9A /* ObjCMatchTest.m in Sources */, - 1F5DF19E1BDCA10200C3A531 /* BeGreaterThanTest.swift in Sources */, - 1F5DF1A21BDCA10200C3A531 /* BeLessThanTest.swift in Sources */, - CD79C9AB1D2CC848004B6F9A /* ObjCBeLessThanTest.m in Sources */, - CD79C9A81D2CC848004B6F9A /* ObjCBeIdenticalToTest.m in Sources */, - CD79C9AE1D2CC848004B6F9A /* ObjCBeTruthyTest.m in Sources */, - 1F5DF1921BDCA10200C3A531 /* AsynchronousTest.swift in Sources */, - 1F5DF1A91BDCA10200C3A531 /* MatchTest.swift in Sources */, - 1F5DF1A81BDCA10200C3A531 /* HaveCountTest.swift in Sources */, - 1F5DF1971BDCA10200C3A531 /* AllPassTest.swift in Sources */, - CD79C9A61D2CC848004B6F9A /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, - CD79C99F1D2CC835004B6F9A /* ObjCSyncTest.m in Sources */, - 1FCF91511C61C85A00B15DCB /* PostNotificationTest.swift in Sources */, - CD79C9B51D2CC848004B6F9A /* ObjCUserDescriptionTest.m in Sources */, - 1F5DF19C1BDCA10200C3A531 /* BeginWithTest.swift in Sources */, - 1F5DF1A01BDCA10200C3A531 /* BeIdenticalToTest.swift in Sources */, - 1F5DF19A1BDCA10200C3A531 /* BeCloseToTest.swift in Sources */, - 1F5DF1A61BDCA10200C3A531 /* EndWithTest.swift in Sources */, - CD79C9A31D2CC841004B6F9A /* ObjCBeFalseTest.m in Sources */, - 1F5DF1A71BDCA10200C3A531 /* EqualTest.swift in Sources */, - CD79C9AA1D2CC848004B6F9A /* ObjCBeLessThanOrEqualToTest.m in Sources */, - 1F5DF1931BDCA10200C3A531 /* SynchronousTests.swift in Sources */, - CD79C9A11D2CC83B004B6F9A /* ObjCBeCloseToTest.m in Sources */, - 1F5DF19D1BDCA10200C3A531 /* BeGreaterThanOrEqualToTest.swift in Sources */, - 1F5DF1A41BDCA10200C3A531 /* BeNilTest.swift in Sources */, - 7A6AB2C41E7F547E00A2F694 /* ToSucceedTest.swift in Sources */, - CD79C9A71D2CC848004B6F9A /* ObjCBeGreaterThanTest.m in Sources */, - CD79C9A51D2CC848004B6F9A /* ObjCBeginWithTest.m in Sources */, - 347155CC1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, - 1F5DF1AA1BDCA10200C3A531 /* RaisesExceptionTest.swift in Sources */, - 1F5DF1941BDCA10200C3A531 /* UserDescriptionTest.swift in Sources */, - CD79C9AF1D2CC848004B6F9A /* ObjCContainTest.m in Sources */, - 1F5DF19F1BDCA10200C3A531 /* BeIdenticalToObjectTest.swift in Sources */, - CD79C99E1D2CC832004B6F9A /* ObjCAsyncTest.m in Sources */, - 1F91DD2F1C74BF36002C309F /* BeVoidTest.swift in Sources */, - 6CAEDD0C1CAEA86F003F1584 /* LinuxSupport.swift in Sources */, - 1F4BB8B81DACAACF0048464B /* ThrowAssertionTest.swift in Sources */, - CD79C9B71D2CC848004B6F9A /* ObjCSatisfyAnyOfTest.m in Sources */, - 1F5DF1991BDCA10200C3A531 /* BeAnInstanceOfTest.swift in Sources */, - CD79C9B11D2CC848004B6F9A /* ObjCEqualTest.m in Sources */, - CD79C9A21D2CC83E004B6F9A /* ObjCBeEmptyTest.m in Sources */, - CD79C9AC1D2CC848004B6F9A /* ObjCBeNilTest.m in Sources */, - CD79C9A01D2CC839004B6F9A /* ObjCBeAnInstanceOfTest.m in Sources */, - CD79C9B61D2CC848004B6F9A /* ObjCAllPassTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EA8195C0D6300ED456B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1FD8CD411968AB07008ED995 /* BeCloseTo.swift in Sources */, - 1F12BE991E778F70006952EC /* CwlCatchBadInstruction.swift in Sources */, - 1F1871D31CA89EEE00A34BF2 /* NMBExceptionCapture.m in Sources */, - 1FD8CD371968AB07008ED995 /* Expectation.swift in Sources */, - 1FD8CD331968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */, - 1F43728E1A1B343F00EB80F8 /* Stringers.swift in Sources */, - 1F12BE981E778F70006952EC /* CwlBadInstructionException.swift in Sources */, - 1F43728C1A1B343C00EB80F8 /* SourceLocation.swift in Sources */, - 1FD8CD4F1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */, - 1F1871E71CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */, - 1FDBD8681AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */, - 1F43728B1A1B343900EB80F8 /* Functional.swift in Sources */, - AE4BA9AE1C88DDB500B73906 /* Errors.swift in Sources */, - 1FD8CD3D1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */, - 1F12BEDF1E7791B9006952EC /* CwlCatchException.m in Sources */, - 1FD8CD511968AB07008ED995 /* BeLogical.swift in Sources */, - 1F1871D91CA89EF100A34BF2 /* NMBExpectation.swift in Sources */, - DA9E8C831A414BB9002633C2 /* DSL+Wait.swift in Sources */, - DDB1BC7A1A92235600F743C3 /* AllPass.swift in Sources */, - 1FD8CD3F1968AB07008ED995 /* BeAKindOf.swift in Sources */, - 1F12BE941E778F70006952EC /* CwlMachBadInstructionHandler.m in Sources */, - 1FD8CD2F1968AB07008ED995 /* AssertionRecorder.swift in Sources */, - 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */, - 1F91DD321C74BF61002C309F /* BeVoid.swift in Sources */, - 1FCF91541C61C8A400B15DCB /* PostNotification.swift in Sources */, - DDB4D5EE19FE43C200E9D9FE /* Match.swift in Sources */, - 29EA59671B551EE6002D767E /* ThrowError.swift in Sources */, - 1FD8CD5B1968AB07008ED995 /* Equal.swift in Sources */, - 1F12BEE91E779784006952EC /* mach_excServer.c in Sources */, - 1FD8CD4D1968AB07008ED995 /* BeLessThan.swift in Sources */, - 1FD8CD471968AB07008ED995 /* BeGreaterThan.swift in Sources */, - F8A1BE301CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, - 1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */, - 1FD8CD311968AB07008ED995 /* AdapterProtocols.swift in Sources */, - 1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */, - AE7ADE461C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1FC494AB1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, - 1FD8CD5F1968AB07008ED995 /* RaisesException.swift in Sources */, - 1FD8CD571968AB07008ED995 /* Contain.swift in Sources */, - 7A0A26231E7F52360092A34E /* ToSucceed.swift in Sources */, - 1FD8CD491968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */, - 1FE661571E6574E30035F243 /* ExpectationMessage.swift in Sources */, - 1FD8CD451968AB07008ED995 /* BeginWith.swift in Sources */, - 1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */, - 1FD8CD4B1968AB07008ED995 /* BeIdenticalTo.swift in Sources */, - 1FD8CD431968AB07008ED995 /* BeEmpty.swift in Sources */, - 1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */, - 1FD8CD531968AB07008ED995 /* BeNil.swift in Sources */, - 1F12BEDC1E7791B9006952EC /* CwlCatchException.swift in Sources */, - 1FD8CD6B1968AB07008ED995 /* Async.swift in Sources */, - 964CFEFE1C4FF48900513336 /* ThrowAssertion.swift in Sources */, - 1FD8CD591968AB07008ED995 /* EndWith.swift in Sources */, - 1FD8CD5D1968AB07008ED995 /* MatcherProtocols.swift in Sources */, - 1FD8CD351968AB07008ED995 /* DSL.swift in Sources */, - 7B5358BF1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, - 1F12BE9B1E778F70006952EC /* CwlDarwinDefinitions.swift in Sources */, - 1FD8CD391968AB07008ED995 /* Expression.swift in Sources */, - 1FD8CD3B1968AB07008ED995 /* FailureMessage.swift in Sources */, - 1FA0C3FF1E30B14500623165 /* Predicate.swift in Sources */, - 472FD1391B9E0A9700C7B8DA /* HaveCount.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EB3195C0D6300ED456B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F4A569B1A3B3539009E1637 /* ObjCEqualTest.m in Sources */, - 1F925EED195C12C800ED456B /* RaisesExceptionTest.swift in Sources */, - 1F925F00195C187600ED456B /* EndWithTest.swift in Sources */, - 1F1B5AD51963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */, - 1F925F0F195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */, - 1F4A56671A3B305F009E1637 /* ObjCAsyncTest.m in Sources */, - 1F925EFD195C186800ED456B /* BeginWithTest.swift in Sources */, - 1F925EE2195C0DFD00ED456B /* utils.swift in Sources */, - DDB4D5F119FE442800E9D9FE /* MatchTest.swift in Sources */, - 1F4A56741A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, - 1F4A56831A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, - 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */, - 1F925F03195C189500ED456B /* ContainTest.swift in Sources */, - 1F4A56891A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, - 1F4A568F1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, - 1F925F12195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */, - 1F925EF0195C136500ED456B /* BeLogicalTest.swift in Sources */, - 1F4A56A11A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */, - 1F925F0C195C18E100ED456B /* BeLessThanTest.swift in Sources */, - 1F9DB8FC1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */, - 1FB90099195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */, - 1F91DD2E1C74BF36002C309F /* BeVoidTest.swift in Sources */, - 1F4A56771A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */, - 1F925EFA195C175000ED456B /* BeNilTest.swift in Sources */, - 7A6AB2C21E7F547E00A2F694 /* ToSucceedTest.swift in Sources */, - 1F4A56711A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */, - 1F4A56981A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */, - 1F4A567D1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */, - 965B0D0D1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */, - 1FCF91501C61C85A00B15DCB /* PostNotificationTest.swift in Sources */, - 965B0D0A1B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */, - 1F4A56921A3B344A009E1637 /* ObjCBeNilTest.m in Sources */, - 1F8A37B11B7C5042001C8357 /* ObjCSyncTest.m in Sources */, - 1F4A56951A3B346F009E1637 /* ObjCContainTest.m in Sources */, - 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */, - 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */, - 1F925EF7195C147800ED456B /* BeCloseToTest.swift in Sources */, - 1F4A567A1A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, - AE7ADE4A1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, - 1F4A568C1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */, - DDEFAEB51A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */, - 1F4A56801A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */, - 1F925EE7195C121200ED456B /* AsynchronousTest.swift in Sources */, - 1F0648CD19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */, - 1F4A56861A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */, - DD9A9A9019CF43AD00706F49 /* BeIdenticalToObjectTest.swift in Sources */, - 1F4BB8B61DACA0E30048464B /* ThrowAssertionTest.swift in Sources */, - 1F0648D51963AAB2001F9C46 /* SynchronousTests.swift in Sources */, - 347155CB1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, - 4793854E1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */, - 1F925F09195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */, - 7B5358BB1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */, - 1F925F06195C18B700ED456B /* EqualTest.swift in Sources */, - 1F4A566E1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */, - DD72EC651A93874A002F7651 /* AllPassTest.swift in Sources */, - 1F4A569E1A3B3565009E1637 /* ObjCMatchTest.m in Sources */, - 1F925EEA195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */, - 29EA59641B551ED2002D767E /* ThrowErrorTest.swift in Sources */, - 6CAEDD0B1CAEA86F003F1584 /* LinuxSupport.swift in Sources */, - 1F4A566B1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */, - 472FD13A1B9E0A9F00C7B8DA /* HaveCountTest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1F1A74371940169200FFFC47 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F1A74361940169200FFFC47 /* PBXContainerItemProxy */; - }; - 1F5DF1611BDCA0CE00C3A531 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */; - targetProxy = 1F5DF1601BDCA0CE00C3A531 /* PBXContainerItemProxy */; - }; - 1F6BB82B1968BFF9009F1DBB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F6BB82A1968BFF9009F1DBB /* PBXContainerItemProxy */; - }; - 1F925EA5195C0C8500ED456B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F925EA4195C0C8500ED456B /* PBXContainerItemProxy */; - }; - 1F925EA7195C0C8500ED456B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F925EA6195C0C8500ED456B /* PBXContainerItemProxy */; - }; - 1F925EBA195C0D6300ED456B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F925EB9195C0D6300ED456B /* PBXContainerItemProxy */; - }; - 1F9B7BFE1968AD760094EB8F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F9B7BFD1968AD760094EB8F /* PBXContainerItemProxy */; - }; - 1F9B7C001968AD760094EB8F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F9B7BFF1968AD760094EB8F /* PBXContainerItemProxy */; - }; - 1F9B7C021968AD820094EB8F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F9B7C011968AD820094EB8F /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1F1A743D1940169200FFFC47 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_IDENTITY = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.9; - METAL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 1F1A743E1940169200FFFC47 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_IDENTITY = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.9; - METAL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 1F1A74401940169200FFFC47 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - ONLY_ACTIVE_ARCH = NO; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 1F1A74411940169200FFFC47 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - 1F1A74431940169200FFFC47 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 1F1A74441940169200FFFC47 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - 1F5DF1661BDCA0CE00C3A531 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 1F5DF1671BDCA0CE00C3A531 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; - 1F5DF1681BDCA0CE00C3A531 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 1F5DF1691BDCA0CE00C3A531 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = appletvos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; - 1F925EC1195C0D6300ED456B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - FRAMEWORK_VERSION = A; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VALID_ARCHS = x86_64; - }; - name = Debug; - }; - 1F925EC2195C0D6300ED456B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - FRAMEWORK_VERSION = A; - GCC_PREPROCESSOR_DEFINITIONS = ( - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALID_ARCHS = x86_64; - }; - name = Release; - }; - 1F925EC4195C0D6300ED456B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 1F925EC5195C0D6300ED456B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - A8F2B2551E79A4AB005BDD17 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = macosx; - }; - name = Debug; - }; - A8F2B2561E79A4AB005BDD17 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = macosx; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1F1A74231940169200FFFC47 /* Build configuration list for PBXProject "Nimble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F1A743D1940169200FFFC47 /* Debug */, - 1F1A743E1940169200FFFC47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F1A743F1940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F1A74401940169200FFFC47 /* Debug */, - 1F1A74411940169200FFFC47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F1A74421940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F1A74431940169200FFFC47 /* Debug */, - 1F1A74441940169200FFFC47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F5DF16A1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F5DF1661BDCA0CE00C3A531 /* Debug */, - 1F5DF1671BDCA0CE00C3A531 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F5DF16B1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F5DF1681BDCA0CE00C3A531 /* Debug */, - 1F5DF1691BDCA0CE00C3A531 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F925EC0195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F925EC1195C0D6300ED456B /* Debug */, - 1F925EC2195C0D6300ED456B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F925EC3195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F925EC4195C0D6300ED456B /* Debug */, - 1F925EC5195C0D6300ED456B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A8F2B2571E79A4AC005BDD17 /* Build configuration list for PBXAggregateTarget "SwiftLint" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A8F2B2551E79A4AB005BDD17 /* Debug */, - A8F2B2561E79A4AB005BDD17 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 1F1A74201940169200FFFC47 /* Project object */; -} diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index a822b74..0000000 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme deleted file mode 100644 index ef8ccf6..0000000 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme deleted file mode 100644 index 9ff8f0d..0000000 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme b/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme deleted file mode 100644 index 9f5340b..0000000 --- a/Carthage/Checkouts/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Nimble/Package.swift b/Carthage/Checkouts/Nimble/Package.swift deleted file mode 100644 index 46d1ff6..0000000 --- a/Carthage/Checkouts/Nimble/Package.swift +++ /dev/null @@ -1,10 +0,0 @@ -import PackageDescription - -let package = Package( - name: "Nimble", - exclude: [ - "Sources/Lib", - "Sources/NimbleObjectiveC", - "Tests/NimbleTests/objc", - ] -) diff --git a/Carthage/Checkouts/Nimble/README.md b/Carthage/Checkouts/Nimble/README.md deleted file mode 100644 index 796a845..0000000 --- a/Carthage/Checkouts/Nimble/README.md +++ /dev/null @@ -1,1691 +0,0 @@ -# Nimble - -[![Build Status](https://travis-ci.org/Quick/Nimble.svg?branch=master)](https://travis-ci.org/Quick/Nimble) -[![CocoaPods](https://img.shields.io/cocoapods/v/Nimble.svg)](https://cocoapods.org/pods/Nimble) -[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Platforms](https://img.shields.io/cocoapods/p/Nimble.svg)](https://cocoapods.org/pods/Nimble) - -Use Nimble to express the expected outcomes of Swift -or Objective-C expressions. Inspired by -[Cedar](https://github.com/pivotal/cedar). - -```swift -// Swift -expect(1 + 1).to(equal(2)) -expect(1.2).to(beCloseTo(1.1, within: 0.1)) -expect(3) > 2 -expect("seahorse").to(contain("sea")) -expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi")) -expect(ocean.isClean).toEventually(beTruthy()) -``` - -# How to Use Nimble - - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Some Background: Expressing Outcomes Using Assertions in XCTest](#some-background-expressing-outcomes-using-assertions-in-xctest) -- [Nimble: Expectations Using `expect(...).to`](#nimble-expectations-using-expectto) - - [Custom Failure Messages](#custom-failure-messages) - - [Type Safety](#type-safety) - - [Operator Overloads](#operator-overloads) - - [Lazily Computed Values](#lazily-computed-values) - - [C Primitives](#c-primitives) - - [Asynchronous Expectations](#asynchronous-expectations) - - [Objective-C Support](#objective-c-support) - - [Disabling Objective-C Shorthand](#disabling-objective-c-shorthand) -- [Built-in Matcher Functions](#built-in-matcher-functions) - - [Type Checking](#type-checking) - - [Equivalence](#equivalence) - - [Identity](#identity) - - [Comparisons](#comparisons) - - [Types/Classes](#typesclasses) - - [Truthiness](#truthiness) - - [Swift Assertions](#swift-assertions) - - [Swift Error Handling](#swift-error-handling) - - [Exceptions](#exceptions) - - [Collection Membership](#collection-membership) - - [Strings](#strings) - - [Checking if all elements of a collection pass a condition](#checking-if-all-elements-of-a-collection-pass-a-condition) - - [Verify collection count](#verify-collection-count) - - [Verify a notification was posted](#verifying-a-notification-was-posted) - - [Matching a value to any of a group of matchers](#matching-a-value-to-any-of-a-group-of-matchers) - - [Custom Validation](#custom-validation) -- [Writing Your Own Matchers](#writing-your-own-matchers) - - [Lazy Evaluation](#lazy-evaluation) - - [Type Checking via Swift Generics](#type-checking-via-swift-generics) - - [Customizing Failure Messages](#customizing-failure-messages) - - [Supporting Objective-C](#supporting-objective-c) - - [Properly Handling `nil` in Objective-C Matchers](#properly-handling-nil-in-objective-c-matchers) -- [Installing Nimble](#installing-nimble) - - [Installing Nimble as a Submodule](#installing-nimble-as-a-submodule) - - [Installing Nimble via CocoaPods](#installing-nimble-via-cocoapods) - - [Using Nimble without XCTest](#using-nimble-without-xctest) - - - -# Some Background: Expressing Outcomes Using Assertions in XCTest - -Apple's Xcode includes the XCTest framework, which provides -assertion macros to test whether code behaves properly. -For example, to assert that `1 + 1 = 2`, XCTest has you write: - -```swift -// Swift - -XCTAssertEqual(1 + 1, 2, "expected one plus one to equal two") -``` - -Or, in Objective-C: - -```objc -// Objective-C - -XCTAssertEqual(1 + 1, 2, @"expected one plus one to equal two"); -``` - -XCTest assertions have a couple of drawbacks: - -1. **Not enough macros.** There's no easy way to assert that a string - contains a particular substring, or that a number is less than or - equal to another. -2. **It's hard to write asynchronous tests.** XCTest forces you to write - a lot of boilerplate code. - -Nimble addresses these concerns. - -# Nimble: Expectations Using `expect(...).to` - -Nimble allows you to express expectations using a natural, -easily understood language: - -```swift -// Swift - -import Nimble - -expect(seagull.squawk).to(equal("Squee!")) -``` - -```objc -// Objective-C - -@import Nimble; - -expect(seagull.squawk).to(equal(@"Squee!")); -``` - -> The `expect` function autocompletes to include `file:` and `line:`, - but these parameters are optional. Use the default values to have - Xcode highlight the correct line when an expectation is not met. - -To perform the opposite expectation--to assert something is *not* -equal--use `toNot` or `notTo`: - -```swift -// Swift - -import Nimble - -expect(seagull.squawk).toNot(equal("Oh, hello there!")) -expect(seagull.squawk).notTo(equal("Oh, hello there!")) -``` - -```objc -// Objective-C - -@import Nimble; - -expect(seagull.squawk).toNot(equal(@"Oh, hello there!")); -expect(seagull.squawk).notTo(equal(@"Oh, hello there!")); -``` - -## Custom Failure Messages - -Would you like to add more information to the test's failure messages? Use the `description` optional argument to add your own text: - -```swift -// Swift - -expect(1 + 1).to(equal(3)) -// failed - expected to equal <3>, got <2> - -expect(1 + 1).to(equal(3), description: "Make sure libKindergartenMath is loaded") -// failed - Make sure libKindergartenMath is loaded -// expected to equal <3>, got <2> -``` - -Or the *WithDescription version in Objective-C: - -```objc -// Objective-C - -@import Nimble; - -expect(@(1+1)).to(equal(@3)); -// failed - expected to equal <3.0000>, got <2.0000> - -expect(@(1+1)).toWithDescription(equal(@3), @"Make sure libKindergartenMath is loaded"); -// failed - Make sure libKindergartenMath is loaded -// expected to equal <3.0000>, got <2.0000> -``` - -## Type Safety - -Nimble makes sure you don't compare two types that don't match: - -```swift -// Swift - -// Does not compile: -expect(1 + 1).to(equal("Squee!")) -``` - -> Nimble uses generics--only available in Swift--to ensure - type correctness. That means type checking is - not available when using Nimble in Objective-C. :sob: - -## Operator Overloads - -Tired of so much typing? With Nimble, you can use overloaded operators -like `==` for equivalence, or `>` for comparisons: - -```swift -// Swift - -// Passes if squawk does not equal "Hi!": -expect(seagull.squawk) != "Hi!" - -// Passes if 10 is greater than 2: -expect(10) > 2 -``` - -> Operator overloads are only available in Swift, so you won't be able - to use this syntax in Objective-C. :broken_heart: - -## Lazily Computed Values - -The `expect` function doesn't evaluate the value it's given until it's -time to match. So Nimble can test whether an expression raises an -exception once evaluated: - -```swift -// Swift - -// Note: Swift currently doesn't have exceptions. -// Only Objective-C code can raise exceptions -// that Nimble will catch. -// (see https://github.com/Quick/Nimble/issues/220#issuecomment-172667064) -let exception = NSException( - name: NSInternalInconsistencyException, - reason: "Not enough fish in the sea.", - userInfo: ["something": "is fishy"]) -expect { exception.raise() }.to(raiseException()) - -// Also, you can customize raiseException to be more specific -expect { exception.raise() }.to(raiseException(named: NSInternalInconsistencyException)) -expect { exception.raise() }.to(raiseException( - named: NSInternalInconsistencyException, - reason: "Not enough fish in the sea")) -expect { exception.raise() }.to(raiseException( - named: NSInternalInconsistencyException, - reason: "Not enough fish in the sea", - userInfo: ["something": "is fishy"])) -``` - -Objective-C works the same way, but you must use the `expectAction` -macro when making an expectation on an expression that has no return -value: - -```objc -// Objective-C - -NSException *exception = [NSException exceptionWithName:NSInternalInconsistencyException - reason:@"Not enough fish in the sea." - userInfo:nil]; -expectAction(^{ [exception raise]; }).to(raiseException()); - -// Use the property-block syntax to be more specific. -expectAction(^{ [exception raise]; }).to(raiseException().named(NSInternalInconsistencyException)); -expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInternalInconsistencyException). - reason("Not enough fish in the sea")); -expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInternalInconsistencyException). - reason("Not enough fish in the sea"). - userInfo(@{@"something": @"is fishy"})); - -// You can also pass a block for custom matching of the raised exception -expectAction(exception.raise()).to(raiseException().satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(beginWith(NSInternalInconsistencyException)); -})); -``` - -## C Primitives - -Some testing frameworks make it hard to test primitive C values. -In Nimble, it just works: - -```swift -// Swift - -let actual: CInt = 1 -let expectedValue: CInt = 1 -expect(actual).to(equal(expectedValue)) -``` - -In fact, Nimble uses type inference, so you can write the above -without explicitly specifying both types: - -```swift -// Swift - -expect(1 as CInt).to(equal(1)) -``` - -> In Objective-C, Nimble only supports Objective-C objects. To - make expectations on primitive C values, wrap then in an object - literal: - - ```objc - expect(@(1 + 1)).to(equal(@2)); - ``` - -## Asynchronous Expectations - -In Nimble, it's easy to make expectations on values that are updated -asynchronously. Just use `toEventually` or `toEventuallyNot`: - -```swift -// Swift - -dispatch_async(dispatch_get_main_queue()) { - ocean.add("dolphins") - ocean.add("whales") -} -expect(ocean).toEventually(contain("dolphins", "whales")) -``` - - -```objc -// Objective-C -dispatch_async(dispatch_get_main_queue(), ^{ - [ocean add:@"dolphins"]; - [ocean add:@"whales"]; -}); -expect(ocean).toEventually(contain(@"dolphins", @"whales")); -``` - -Note: toEventually triggers its polls on the main thread. Blocking the main -thread will cause Nimble to stop the run loop. This can cause test pollution -for whatever incomplete code that was running on the main thread. Blocking the -main thread can be caused by blocking IO, calls to sleep(), deadlocks, and -synchronous IPC. - -In the above example, `ocean` is constantly re-evaluated. If it ever -contains dolphins and whales, the expectation passes. If `ocean` still -doesn't contain them, even after being continuously re-evaluated for one -whole second, the expectation fails. - -Sometimes it takes more than a second for a value to update. In those -cases, use the `timeout` parameter: - -```swift -// Swift - -// Waits three seconds for ocean to contain "starfish": -expect(ocean).toEventually(contain("starfish"), timeout: 3) - -// Evaluate someValue every 0.2 seconds repeatedly until it equals 100, or fails if it timeouts after 5.5 seconds. -expect(someValue).toEventually(equal(100), timeout: 5.5, pollInterval: 0.2) -``` - -```objc -// Objective-C - -// Waits three seconds for ocean to contain "starfish": -expect(ocean).withTimeout(3).toEventually(contain(@"starfish")); -``` - -You can also provide a callback by using the `waitUntil` function: - -```swift -// Swift - -waitUntil { done in - // do some stuff that takes a while... - NSThread.sleepForTimeInterval(0.5) - done() -} -``` - -```objc -// Objective-C - -waitUntil(^(void (^done)(void)){ - // do some stuff that takes a while... - [NSThread sleepForTimeInterval:0.5]; - done(); -}); -``` - -`waitUntil` also optionally takes a timeout parameter: - -```swift -// Swift - -waitUntil(timeout: 10) { done in - // do some stuff that takes a while... - NSThread.sleepForTimeInterval(1) - done() -} -``` - -```objc -// Objective-C - -waitUntilTimeout(10, ^(void (^done)(void)){ - // do some stuff that takes a while... - [NSThread sleepForTimeInterval:1]; - done(); -}); -``` - -Note: waitUntil triggers its timeout code on the main thread. Blocking the main -thread will cause Nimble to stop the run loop to continue. This can cause test -pollution for whatever incomplete code that was running on the main thread. -Blocking the main thread can be caused by blocking IO, calls to sleep(), -deadlocks, and synchronous IPC. - -In some cases (e.g. when running on slower machines) it can be useful to modify -the default timeout and poll interval values. This can be done as follows: - -```swift -// Swift - -// Increase the global timeout to 5 seconds: -Nimble.AsyncDefaults.Timeout = 5 - -// Slow the polling interval to 0.1 seconds: -Nimble.AsyncDefaults.PollInterval = 0.1 -``` - -## Objective-C Support - -Nimble has full support for Objective-C. However, there are two things -to keep in mind when using Nimble in Objective-C: - -1. All parameters passed to the `expect` function, as well as matcher - functions like `equal`, must be Objective-C objects or can be converted into - an `NSObject` equivalent: - - ```objc - // Objective-C - - @import Nimble; - - expect(@(1 + 1)).to(equal(@2)); - expect(@"Hello world").to(contain(@"world")); - - // Boxed as NSNumber * - expect(2).to(equal(2)); - expect(1.2).to(beLessThan(2.0)); - expect(true).to(beTruthy()); - - // Boxed as NSString * - expect("Hello world").to(equal("Hello world")); - - // Boxed as NSRange - expect(NSMakeRange(1, 10)).to(equal(NSMakeRange(1, 10))); - ``` - -2. To make an expectation on an expression that does not return a value, - such as `-[NSException raise]`, use `expectAction` instead of - `expect`: - - ```objc - // Objective-C - - expectAction(^{ [exception raise]; }).to(raiseException()); - ``` - -The following types are currently converted to an `NSObject` type: - - - **C Numeric types** are converted to `NSNumber *` - - `NSRange` is converted to `NSValue *` - - `char *` is converted to `NSString *` - -For the following matchers: - -- `equal` -- `beGreaterThan` -- `beGreaterThanOrEqual` -- `beLessThan` -- `beLessThanOrEqual` -- `beCloseTo` -- `beTrue` -- `beFalse` -- `beTruthy` -- `beFalsy` -- `haveCount` - -If you would like to see more, [file an issue](https://github.com/Quick/Nimble/issues). - -## Disabling Objective-C Shorthand - -Nimble provides a shorthand for expressing expectations using the -`expect` function. To disable this shorthand in Objective-C, define the -`NIMBLE_DISABLE_SHORT_SYNTAX` macro somewhere in your code before -importing Nimble: - -```objc -#define NIMBLE_DISABLE_SHORT_SYNTAX 1 - -@import Nimble; - -NMB_expect(^{ return seagull.squawk; }, __FILE__, __LINE__).to(NMB_equal(@"Squee!")); -``` - -> Disabling the shorthand is useful if you're testing functions with - names that conflict with Nimble functions, such as `expect` or - `equal`. If that's not the case, there's no point in disabling the - shorthand. - -# Built-in Matcher Functions - -Nimble includes a wide variety of matcher functions. - -## Type Checking - -Nimble supports checking the type membership of any kind of object, whether -Objective-C conformant or not: - -```swift -// Swift - -protocol SomeProtocol{} -class SomeClassConformingToProtocol: SomeProtocol{} -struct SomeStructConformingToProtocol: SomeProtocol{} - -// The following tests pass -expect(1).to(beAKindOf(Int.self)) -expect("turtle").to(beAKindOf(String.self)) - -let classObject = SomeClassConformingToProtocol() -expect(classObject).to(beAKindOf(SomeProtocol.self)) -expect(classObject).to(beAKindOf(SomeClassConformingToProtocol.self)) -expect(classObject).toNot(beAKindOf(SomeStructConformingToProtocol.self)) - -let structObject = SomeStructConformingToProtocol() -expect(structObject).to(beAKindOf(SomeProtocol.self)) -expect(structObject).to(beAKindOf(SomeStructConformingToProtocol.self)) -expect(structObject).toNot(beAKindOf(SomeClassConformingToProtocol.self)) -``` - -```objc -// Objective-C - -// The following tests pass -NSMutableArray *array = [NSMutableArray array]; -expect(array).to(beAKindOf([NSArray class])); -expect(@1).toNot(beAKindOf([NSNull class])); -``` - -Objects can be tested for their exact types using the `beAnInstanceOf` matcher: -```swift -// Swift - -protocol SomeProtocol{} -class SomeClassConformingToProtocol: SomeProtocol{} -struct SomeStructConformingToProtocol: SomeProtocol{} - -// Unlike the 'beKindOf' matcher, the 'beAnInstanceOf' matcher only -// passes if the object is the EXACT type requested. The following -// tests pass -- note its behavior when working in an inheritance hierarchy. -expect(1).to(beAnInstanceOf(Int.self)) -expect("turtle").to(beAnInstanceOf(String.self)) - -let classObject = SomeClassConformingToProtocol() -expect(classObject).toNot(beAnInstanceOf(SomeProtocol.self)) -expect(classObject).to(beAnInstanceOf(SomeClassConformingToProtocol.self)) -expect(classObject).toNot(beAnInstanceOf(SomeStructConformingToProtocol.self)) - -let structObject = SomeStructConformingToProtocol() -expect(structObject).toNot(beAnInstanceOf(SomeProtocol.self)) -expect(structObject).to(beAnInstanceOf(SomeStructConformingToProtocol.self)) -expect(structObject).toNot(beAnInstanceOf(SomeClassConformingToProtocol.self)) -```` - -## Equivalence - -```swift -// Swift - -// Passes if actual is equivalent to expected: -expect(actual).to(equal(expected)) -expect(actual) == expected - -// Passes if actual is not equivalent to expected: -expect(actual).toNot(equal(expected)) -expect(actual) != expected -``` - -```objc -// Objective-C - -// Passes if actual is equivalent to expected: -expect(actual).to(equal(expected)) - -// Passes if actual is not equivalent to expected: -expect(actual).toNot(equal(expected)) -``` - -Values must be `Equatable`, `Comparable`, or subclasses of `NSObject`. -`equal` will always fail when used to compare one or more `nil` values. - -## Identity - -```swift -// Swift - -// Passes if actual has the same pointer address as expected: -expect(actual).to(beIdenticalTo(expected)) -expect(actual) === expected - -// Passes if actual does not have the same pointer address as expected: -expect(actual).toNot(beIdenticalTo(expected)) -expect(actual) !== expected -``` - -Its important to remember that `beIdenticalTo` only makes sense when comparing types with reference semantics, which have a notion of identity. In Swift, that means a `class`. This matcher will not work with types with value semantics such as `struct` or `enum`. If you need to compare two value types, you can either compare individual properties or if it makes sense to do so, make your type implement `Equatable` and use Nimble's equivalence matchers instead. - - -```objc -// Objective-C - -// Passes if actual has the same pointer address as expected: -expect(actual).to(beIdenticalTo(expected)); - -// Passes if actual does not have the same pointer address as expected: -expect(actual).toNot(beIdenticalTo(expected)); -``` - -## Comparisons - -```swift -// Swift - -expect(actual).to(beLessThan(expected)) -expect(actual) < expected - -expect(actual).to(beLessThanOrEqualTo(expected)) -expect(actual) <= expected - -expect(actual).to(beGreaterThan(expected)) -expect(actual) > expected - -expect(actual).to(beGreaterThanOrEqualTo(expected)) -expect(actual) >= expected -``` - -```objc -// Objective-C - -expect(actual).to(beLessThan(expected)); -expect(actual).to(beLessThanOrEqualTo(expected)); -expect(actual).to(beGreaterThan(expected)); -expect(actual).to(beGreaterThanOrEqualTo(expected)); -``` - -> Values given to the comparison matchers above must implement - `Comparable`. - -Because of how computers represent floating point numbers, assertions -that two floating point numbers be equal will sometimes fail. To express -that two numbers should be close to one another within a certain margin -of error, use `beCloseTo`: - -```swift -// Swift - -expect(actual).to(beCloseTo(expected, within: delta)) -``` - -```objc -// Objective-C - -expect(actual).to(beCloseTo(expected).within(delta)); -``` - -For example, to assert that `10.01` is close to `10`, you can write: - -```swift -// Swift - -expect(10.01).to(beCloseTo(10, within: 0.1)) -``` - -```objc -// Objective-C - -expect(@(10.01)).to(beCloseTo(@10).within(0.1)); -``` - -There is also an operator shortcut available in Swift: - -```swift -// Swift - -expect(actual) ≈ expected -expect(actual) ≈ (expected, delta) - -``` -(Type Option-x to get ≈ on a U.S. keyboard) - -The former version uses the default delta of 0.0001. Here is yet another way to do this: - -```swift -// Swift - -expect(actual) ≈ expected ± delta -expect(actual) == expected ± delta - -``` -(Type Option-Shift-= to get ± on a U.S. keyboard) - -If you are comparing arrays of floating point numbers, you'll find the following useful: - -```swift -// Swift - -expect([0.0, 2.0]) ≈ [0.0001, 2.0001] -expect([0.0, 2.0]).to(beCloseTo([0.1, 2.1], within: 0.1)) - -``` - -> Values given to the `beCloseTo` matcher must be coercable into a - `Double`. - -## Types/Classes - -```swift -// Swift - -// Passes if instance is an instance of aClass: -expect(instance).to(beAnInstanceOf(aClass)) - -// Passes if instance is an instance of aClass or any of its subclasses: -expect(instance).to(beAKindOf(aClass)) -``` - -```objc -// Objective-C - -// Passes if instance is an instance of aClass: -expect(instance).to(beAnInstanceOf(aClass)); - -// Passes if instance is an instance of aClass or any of its subclasses: -expect(instance).to(beAKindOf(aClass)); -``` - -> Instances must be Objective-C objects: subclasses of `NSObject`, - or Swift objects bridged to Objective-C with the `@objc` prefix. - -For example, to assert that `dolphin` is a kind of `Mammal`: - -```swift -// Swift - -expect(dolphin).to(beAKindOf(Mammal)) -``` - -```objc -// Objective-C - -expect(dolphin).to(beAKindOf([Mammal class])); -``` - -> `beAnInstanceOf` uses the `-[NSObject isMemberOfClass:]` method to - test membership. `beAKindOf` uses `-[NSObject isKindOfClass:]`. - -## Truthiness - -```swift -// Passes if actual is not nil, true, or an object with a boolean value of true: -expect(actual).to(beTruthy()) - -// Passes if actual is only true (not nil or an object conforming to Boolean true): -expect(actual).to(beTrue()) - -// Passes if actual is nil, false, or an object with a boolean value of false: -expect(actual).to(beFalsy()) - -// Passes if actual is only false (not nil or an object conforming to Boolean false): -expect(actual).to(beFalse()) - -// Passes if actual is nil: -expect(actual).to(beNil()) -``` - -```objc -// Objective-C - -// Passes if actual is not nil, true, or an object with a boolean value of true: -expect(actual).to(beTruthy()); - -// Passes if actual is only true (not nil or an object conforming to Boolean true): -expect(actual).to(beTrue()); - -// Passes if actual is nil, false, or an object with a boolean value of false: -expect(actual).to(beFalsy()); - -// Passes if actual is only false (not nil or an object conforming to Boolean false): -expect(actual).to(beFalse()); - -// Passes if actual is nil: -expect(actual).to(beNil()); -``` - -## Swift Assertions - -If you're using Swift, you can use the `throwAssertion` matcher to check if an assertion is thrown (e.g. `fatalError()`). This is made possible by [@mattgallagher](https://github.com/mattgallagher)'s [CwlPreconditionTesting](https://github.com/mattgallagher/CwlPreconditionTesting) library. - -```swift -// Swift - -// Passes if somethingThatThrows() throws an assertion, such as calling fatalError() or precondition fails: -expect { () -> Void in fatalError() }.to(throwAssertion()) -expect { precondition(false) }.to(throwAssertion()) - -// Passes if throwing a NSError is not equal to throwing an assertion: -expect { throw NSError(domain: "test", code: 0, userInfo: nil) }.toNot(throwAssertion()) - -// Passes if the post assertion code is not run: -var reachedPoint1 = false -var reachedPoint2 = false -expect { - reachedPoint1 = true - precondition(false, "condition message") - reachedPoint2 = true -}.to(throwAssertion()) - -expect(reachedPoint1) == true -expect(reachedPoint2) == false -``` - -Notes: - -* This feature is only available in Swift. -* It is only supported for `x86_64` binaries, meaning _you cannot run this matcher on iOS devices, only simulators_. -* The tvOS simulator is supported, but using a different mechanism, requiring you to turn off the `Debug executable` scheme setting for your tvOS scheme's Test configuration. - -## Swift Error Handling - -If you're using Swift 2.0+, you can use the `throwError` matcher to check if an error is thrown. - -```swift -// Swift - -// Passes if somethingThatThrows() throws an ErrorProtocol: -expect{ try somethingThatThrows() }.to(throwError()) - -// Passes if somethingThatThrows() throws an error with a given domain: -expect{ try somethingThatThrows() }.to(throwError { (error: ErrorProtocol) in - expect(error._domain).to(equal(NSCocoaErrorDomain)) -}) - -// Passes if somethingThatThrows() throws an error with a given case: -expect{ try somethingThatThrows() }.to(throwError(NSCocoaError.PropertyListReadCorruptError)) - -// Passes if somethingThatThrows() throws an error with a given type: -expect{ try somethingThatThrows() }.to(throwError(errorType: NimbleError.self)) -``` - -If you are working directly with `ErrorProtocol` values, as is sometimes the case when using `Result` or `Promise` types, you can use the `matchError` matcher to check if the error is the same error is is supposed to be, without requiring explicit casting. - -```swift -// Swift - -let actual: ErrorProtocol = … - -// Passes if actual contains any error value from the NimbleErrorEnum type: -expect(actual).to(matchError(NimbleErrorEnum)) - -// Passes if actual contains the Timeout value from the NimbleErrorEnum type: -expect(actual).to(matchError(NimbleErrorEnum.Timeout)) - -// Passes if actual contains an NSError equal to the given one: -expect(actual).to(matchError(NSError(domain: "err", code: 123, userInfo: nil))) -``` - -Note: This feature is only available in Swift. - -## Exceptions - -```swift -// Swift - -// Passes if actual, when evaluated, raises an exception: -expect(actual).to(raiseException()) - -// Passes if actual raises an exception with the given name: -expect(actual).to(raiseException(named: name)) - -// Passes if actual raises an exception with the given name and reason: -expect(actual).to(raiseException(named: name, reason: reason)) - -// Passes if actual raises an exception and it passes expectations in the block -// (in this case, if name begins with 'a r') -expect { exception.raise() }.to(raiseException { (exception: NSException) in - expect(exception.name).to(beginWith("a r")) -}) -``` - -```objc -// Objective-C - -// Passes if actual, when evaluated, raises an exception: -expect(actual).to(raiseException()) - -// Passes if actual raises an exception with the given name -expect(actual).to(raiseException().named(name)) - -// Passes if actual raises an exception with the given name and reason: -expect(actual).to(raiseException().named(name).reason(reason)) - -// Passes if actual raises an exception and it passes expectations in the block -// (in this case, if name begins with 'a r') -expect(actual).to(raiseException().satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(beginWith(@"a r")); -})); -``` - -Note: Swift currently doesn't have exceptions (see [#220](https://github.com/Quick/Nimble/issues/220#issuecomment-172667064)). Only Objective-C code can raise -exceptions that Nimble will catch. - -## Collection Membership - -```swift -// Swift - -// Passes if all of the expected values are members of actual: -expect(actual).to(contain(expected...)) - -// Passes if actual is an empty collection (it contains no elements): -expect(actual).to(beEmpty()) -``` - -```objc -// Objective-C - -// Passes if expected is a member of actual: -expect(actual).to(contain(expected)); - -// Passes if actual is an empty collection (it contains no elements): -expect(actual).to(beEmpty()); -``` - -> In Swift `contain` takes any number of arguments. The expectation - passes if all of them are members of the collection. In Objective-C, - `contain` only takes one argument [for now](https://github.com/Quick/Nimble/issues/27). - -For example, to assert that a list of sea creature names contains -"dolphin" and "starfish": - -```swift -// Swift - -expect(["whale", "dolphin", "starfish"]).to(contain("dolphin", "starfish")) -``` - -```objc -// Objective-C - -expect(@[@"whale", @"dolphin", @"starfish"]).to(contain(@"dolphin")); -expect(@[@"whale", @"dolphin", @"starfish"]).to(contain(@"starfish")); -``` - -> `contain` and `beEmpty` expect collections to be instances of - `NSArray`, `NSSet`, or a Swift collection composed of `Equatable` elements. - -To test whether a set of elements is present at the beginning or end of -an ordered collection, use `beginWith` and `endWith`: - -```swift -// Swift - -// Passes if the elements in expected appear at the beginning of actual: -expect(actual).to(beginWith(expected...)) - -// Passes if the the elements in expected come at the end of actual: -expect(actual).to(endWith(expected...)) -``` - -```objc -// Objective-C - -// Passes if the elements in expected appear at the beginning of actual: -expect(actual).to(beginWith(expected)); - -// Passes if the the elements in expected come at the end of actual: -expect(actual).to(endWith(expected)); -``` - -> `beginWith` and `endWith` expect collections to be instances of - `NSArray`, or ordered Swift collections composed of `Equatable` - elements. - - Like `contain`, in Objective-C `beginWith` and `endWith` only support - a single argument [for now](https://github.com/Quick/Nimble/issues/27). - -For code that returns collections of complex objects without a strict -ordering, there is the `containElementSatisfying` matcher: - -```swift -struct Turtle { - var color: String! -} - -var turtles = functionThatReturnsSomeTurtlesInAnyOrder() - -// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] -// or [{color: "green"}, {color: "blue"}] -expect(turtles).to(containElementSatisfying({ turtle in - return turtle.color == "green" -})) -expect(turtles).to(containElementSatisfying({ turtle in - return turtle.color == "blue" -}, "that is a turtle with color 'blue'")) - -// The second matcher will incorporate the provided string in the error message -// should it fail -``` - -```objc -@interface Turtle: NSObject -@property(nonatomic) NSString *color; -@end -@implementation Turtle @end - -NSArray *turtles = functionThatReturnsSomeTurtlesInAnyOrder(); - -// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] -// or [{color: "green"}, {color: "blue"}] -expect(turtles).to(containElementSatisfying(^BOOL(id object) { - return [turtle.color isEqualToString:@"green"]; -})); -expect(turtles).to(containElementSatisfying(^BOOL(id object) { - return [turtle.color isEqualToString:@"blue"]; -})); -``` - -## Strings - -```swift -// Swift - -// Passes if actual contains substring expected: -expect(actual).to(contain(expected)) - -// Passes if actual begins with substring: -expect(actual).to(beginWith(expected)) - -// Passes if actual ends with substring: -expect(actual).to(endWith(expected)) - -// Passes if actual is an empty string, "": -expect(actual).to(beEmpty()) - -// Passes if actual matches the regular expression defined in expected: -expect(actual).to(match(expected)) -``` - -```objc -// Objective-C - -// Passes if actual contains substring expected: -expect(actual).to(contain(expected)); - -// Passes if actual begins with substring: -expect(actual).to(beginWith(expected)); - -// Passes if actual ends with substring: -expect(actual).to(endWith(expected)); - -// Passes if actual is an empty string, "": -expect(actual).to(beEmpty()); - -// Passes if actual matches the regular expression defined in expected: -expect(actual).to(match(expected)) -``` - -## Checking if all elements of a collection pass a condition - -```swift -// Swift - -// with a custom function: -expect([1,2,3,4]).to(allPass({$0 < 5})) - -// with another matcher: -expect([1,2,3,4]).to(allPass(beLessThan(5))) -``` - -```objc -// Objective-C - -expect(@[@1, @2, @3,@4]).to(allPass(beLessThan(@5))); -``` - -For Swift the actual value has to be a Sequence, e.g. an array, a set or a custom seqence type. - -For Objective-C the actual value has to be a NSFastEnumeration, e.g. NSArray and NSSet, of NSObjects and only the variant which -uses another matcher is available here. - -## Verify collection count - -```swift -// Swift - -// passes if actual collection's count is equal to expected -expect(actual).to(haveCount(expected)) - -// passes if actual collection's count is not equal to expected -expect(actual).notTo(haveCount(expected)) -``` - -```objc -// Objective-C - -// passes if actual collection's count is equal to expected -expect(actual).to(haveCount(expected)) - -// passes if actual collection's count is not equal to expected -expect(actual).notTo(haveCount(expected)) -``` - -For Swift the actual value must be a `Collection` such as array, dictionary or set. - -For Objective-C the actual value has to be one of the following classes `NSArray`, `NSDictionary`, `NSSet`, `NSHashTable` or one of their subclasses. - -## Foundation - -### Verifying a Notification was posted - -```swift -// Swift -let testNotification = Notification(name: "Foo", object: nil) - -// passes if the closure in expect { ... } posts a notification to the default -// notification center. -expect { - NotificationCenter.default.postNotification(testNotification) -}.to(postNotifications(equal([testNotification])) - -// passes if the closure in expect { ... } posts a notification to a given -// notification center -let notificationCenter = NotificationCenter() -expect { - notificationCenter.postNotification(testNotification) -}.to(postNotifications(equal([testNotification]), fromNotificationCenter: notificationCenter)) -``` - -> This matcher is only available in Swift. - -## Matching a value to any of a group of matchers - -```swift -// Swift - -// passes if actual is either less than 10 or greater than 20 -expect(actual).to(satisfyAnyOf(beLessThan(10), beGreaterThan(20))) - -// can include any number of matchers -- the following will pass -// **be careful** -- too many matchers can be the sign of an unfocused test -expect(6).to(satisfyAnyOf(equal(2), equal(3), equal(4), equal(5), equal(6), equal(7))) - -// in Swift you also have the option to use the || operator to achieve a similar function -expect(82).to(beLessThan(50) || beGreaterThan(80)) -``` - -```objc -// Objective-C - -// passes if actual is either less than 10 or greater than 20 -expect(actual).to(satisfyAnyOf(beLessThan(@10), beGreaterThan(@20))) - -// can include any number of matchers -- the following will pass -// **be careful** -- too many matchers can be the sign of an unfocused test -expect(@6).to(satisfyAnyOf(equal(@2), equal(@3), equal(@4), equal(@5), equal(@6), equal(@7))) -``` - -Note: This matcher allows you to chain any number of matchers together. This provides flexibility, - but if you find yourself chaining many matchers together in one test, consider whether you - could instead refactor that single test into multiple, more precisely focused tests for - better coverage. - -## Custom Validation - -```swift -// Swift - -// passes if .succeed is returned from the closure -expect({ - guard case .enumCaseWithAssociatedValueThatIDontCareAbout = actual else { - return .failed("wrong enum case") - } - - return .succeeded -}).to(succeed()) - -// passes if .failed is returned from the closure -expect({ - guard case .enumCaseWithAssociatedValueThatIDontCareAbout = actual else { - return .failed("wrong enum case") - } - - return .succeeded -}).notTo(succeed()) -``` - -The `String` provided with `.failed()` is shown when the test fails. - -When using `toEventually()` be careful not to make state changes or run process intensive code since this closure will be ran many times. - -# Writing Your Own Matchers - -In Nimble, matchers are Swift functions that take an expected -value and return a `Predicate` closure. Take `equal`, for example: - -```swift -// Swift - -public func equal(expectedValue: T?) -> MatcherFunc { - // Can be shorted to: - // Predicate { actual in ... } - // - // But shown with types here for clarity - return Predicate { (actual: Expression) throws -> PredicateResult in - let msg = ExpectationMessage.expectedActualValueTo("equal <\(expectedValue)>") - if let actualValue = try actualExpression.evaluate() { - return PredicateResult( - bool: actualValue == expectedValue!, - message: msg - ) - } else { - return PredicateResult( - status: .fail, - message: msg.appendedBeNilHint() - ) - } - } -} -``` - -The return value of a `Predicate` closure is a `PredicateResult` that indicates -whether the actual value matches the expectation and what error message to -display on failure. - -> The actual `equal` matcher function does not match when - `expected` are nil; the example above has been edited for brevity. - -Since matchers are just Swift functions, you can define them anywhere: -at the top of your test file, in a file shared by all of your tests, or -in an Xcode project you distribute to others. - -> If you write a matcher you think everyone can use, consider adding it - to Nimble's built-in set of matchers by sending a pull request! Or - distribute it yourself via GitHub. - -For examples of how to write your own matchers, just check out the -[`Matchers` directory](https://github.com/Quick/Nimble/tree/master/Sources/Nimble/Matchers) -to see how Nimble's built-in set of matchers are implemented. You can -also check out the tips below. - -## PredicateResult - -`PredicateResult` is the return struct that `Predicate` return to indicate -success and failure. A `PredicateResult` is made up of two values: -`PredicateStatus` and `ExpectationMessage`. - -Instead of a boolean, `PredicateStatus` captures a trinary set of values: - -```swift -// Swift - -public enum PredicateStatus { -// The predicate "passes" with the given expression -// eg - expect(1).to(equal(1)) -case matches - -// The predicate "fails" with the given expression -// eg - expect(1).toNot(equal(1)) -case doesNotMatch - -// The predicate never "passes" with the given expression, even if negated -// eg - expect(nil as Int?).toNot(equal(1)) -case fail - -// ... -} -``` - -Meanwhile, `ExpectationMessage` provides messaging semantics for error reporting. - -```swift -// Swift - -public indirect enum ExpectationMessage { -// Emits standard error message: -// eg - "expected to , got " -case expectedActualValueTo(/* message: */ String) - -// Allows any free-form message -// eg - "" -case fail(/* message: */ String) - -// ... -} -``` - -Predicates should usually depend on either `.expectedActualValueTo(..)` or -`.fail(..)` when reporting errors. Special cases can be used for the other enum -cases. - -Finally, if your Predicate utilizes other Predicates, you can utilize -`.appended(details:)` and `.appended(message:)` methods to annotate an existing -error with more details. - -A common message to append is failing on nils. For that, `.appendedBeNilHint()` -can be used. - -## Lazy Evaluation - -`actualExpression` is a lazy, memoized closure around the value provided to the -`expect` function. The expression can either be a closure or a value directly -passed to `expect(...)`. In order to determine whether that value matches, -custom matchers should call `actualExpression.evaluate()`: - -```swift -// Swift - -public func beNil() -> Predicate { - // Predicate.simpleNilable(..) automatically generates ExpectationMessage for - // us based on the string we provide to it. Also, the 'Nilable' postfix indicates - // that this Predicate supports matching against nil actualExpressions, instead of - // always resulting in a PredicateStatus.fail result -- which is true for - // Predicate.simple(..) - return Predicate.simpleNilable("be nil") { actualExpression in - let actualValue = try actualExpression.evaluate() - return PredicateStatus(bool: actualValue == nil) - } -} -``` - -In the above example, `actualExpression` is not `nil` -- it is a closure -that returns a value. The value it returns, which is accessed via the -`evaluate()` method, may be `nil`. If that value is `nil`, the `beNil` -matcher function returns `true`, indicating that the expectation passed. - -## Type Checking via Swift Generics - -Using Swift's generics, matchers can constrain the type of the actual value -passed to the `expect` function by modifying the return type. - -For example, the following matcher, `haveDescription`, only accepts actual -values that implement the `Printable` protocol. It checks their `description` -against the one provided to the matcher function, and passes if they are the same: - -```swift -// Swift - -public func haveDescription(description: String) -> Predicate { - return Predicate.simple("have description") { actual in - return PredicateStatus(bool: actual.evaluate().description == description) - } -} -``` - -## Customizing Failure Messages - -When using `Predicate.simple(..)` or `Predicate.simpleNilable(..)`, Nimble -outputs the following failure message when an expectation fails: - -```swift -// where `message` is the first string argument and -// `actual` is the actual value received in `expect(..)` -"expected to \(message), got <\(actual)>" -``` - -You can customize this message by modifying the way you create a `Predicate`. - -### Basic Customication - -For slightly more complex error messaging, receive the created failure message -with `Predicate.define(..)`: - -```swift -// Swift -public func equal(_ expectedValue: T?) -> Predicate { - return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in - let actualValue = try actualExpression.evaluate() - let matches = actualValue == expectedValue && expectedValue != nil - if expectedValue == nil || actualValue == nil { - if expectedValue == nil && actualValue != nil { - return PredicateResult( - status: .fail, - message: msg.appendedBeNilHint() - ) - } - return PredicateResult(status: .fail, message: msg) - } - return PredicateResult(bool: matches, message: msg) - } -} -``` - -In the example above, `msg` is defined based on the string given to -`Predicate.define`. The code looks akin to: - -```swift -// Swift -let msg = ExpectationMessage.expectedActualValueTo("equal <\(stringify(expectedValue))>") -``` - -### Full Customization - -To fully customize the behavior of the Predicate, use the overload that expects -a `PredicateResult` to be returned. - -Along with `PredicateResult`, there are other `ExpectationMessage` enum values you can use: - -```swift -public indirect enum ExpectationMessage { -// Emits standard error message: -// eg - "expected to , got " -case expectedActualValueTo(/* message: */ String) - -// Allows any free-form message -// eg - "" -case fail(/* message: */ String) - -// Emits standard error message with a custom actual value instead of the default. -// eg - "expected to , got " -case expectedCustomValueTo(/* message: */ String, /* actual: */ String) - -// Emits standard error message without mentioning the actual value -// eg - "expected to " -case expectedTo(/* message: */ String, /* actual: */ String) - -// ... -} -``` - -For matchers that compose other matchers, there are a handful of helper -functions to annotate messages. - -`appended(message: String)` is used to append to the original failure message: - -```swift -// produces "expected to be true, got (use beFalse() for inverse)" -// appended message do show up inline in Xcode. -.expectedActualValueTo("be true").appended(message: " (use beFalse() for inverse)") -``` - -For a more comprehensive message that spans multiple lines, use -`appended(details: String)` instead: - -```swift -// produces "expected to be true, got \n\nuse beFalse() for inverse\nor use beNil()" -// details do not show inline in Xcode, but do show up in test logs. -.expectedActualValueTo("be true").appended(details: "use beFalse() for inverse\nor use beNil()") -``` - -## Supporting Objective-C - -To use a custom matcher written in Swift from Objective-C, you'll have -to extend the `NMBObjCMatcher` class, adding a new class method for your -custom matcher. The example below defines the class method -`+[NMBObjCMatcher beNilMatcher]`: - -```swift -// Swift - -extension NMBObjCMatcher { - public class func beNilMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualBlock, failureMessage, location in - let block = ({ actualBlock() as NSObject? }) - let expr = Expression(expression: block, location: location) - return beNil().matches(expr, failureMessage: failureMessage) - } - } -} -``` - -The above allows you to use the matcher from Objective-C: - -```objc -// Objective-C - -expect(actual).to([NMBObjCMatcher beNilMatcher]()); -``` - -To make the syntax easier to use, define a C function that calls the -class method: - -```objc -// Objective-C - -FOUNDATION_EXPORT id beNil() { - return [NMBObjCMatcher beNilMatcher]; -} -``` - -### Properly Handling `nil` in Objective-C Matchers - -When supporting Objective-C, make sure you handle `nil` appropriately. -Like [Cedar](https://github.com/pivotal/cedar/issues/100), -**most matchers do not match with nil**. This is to bring prevent test -writers from being surprised by `nil` values where they did not expect -them. - -Nimble provides the `beNil` matcher function for test writer that want -to make expectations on `nil` objects: - -```objc -// Objective-C - -expect(nil).to(equal(nil)); // fails -expect(nil).to(beNil()); // passes -``` - -If your matcher does not want to match with nil, you use `NonNilMatcherFunc` -and the `canMatchNil` constructor on `NMBObjCMatcher`. Using both types will -automatically generate expected value failure messages when they're nil. - -```swift - -public func beginWith(startingElement: T) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - if let actualValue = actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - return actualGenerator.next() == startingElement - } - return false - } -} - -extension NMBObjCMatcher { - public class func beginWithMatcher(expected: AnyObject) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = actualExpression.evaluate() - let expr = actualExpression.cast { $0 as? NMBOrderedCollection } - return beginWith(expected).matches(expr, failureMessage: failureMessage) - } - } -} -``` - -## Migrating from the Old Matcher API - -Previously (`<7.0.0`), Nimble supported matchers via the following types: - -- `Matcher` -- `NonNilMatcherFunc` -- `MatcherFunc` - -All of those types have been replaced by `Predicate`. While migrating can be a -lot of work, Nimble currently provides several steps to aid migration of your -custom matchers: - -### Minimal Step - Use `.predicate` - -Nimble provides an extension to the old types that automatically naively -converts those types to the newer `Predicate`. - -```swift -// Swift -public func beginWith(startingElement: T) -> Predicate { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - if let actualValue = actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - return actualGenerator.next() == startingElement - } - return false - }.predicate -} -``` - -This is the simpliest way to externally support `Predicate` which allows easier -composition than the old Nimble matcher interface, with minimal effort to change. - -### Convert to use `Predicate` Type with Old Matcher Constructor - -The second most convenient step is to utilize special constructors that -`Predicate` supports that closely align to the constructors of the old Nimble -matcher types. - -```swift -// Swift -public func beginWith(startingElement: T) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - if let actualValue = actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - return actualGenerator.next() == startingElement - } - return false - } -} -``` - -This allows you to completely drop the old types from your code, although the -intended behavior may alter slightly to what is desired. - -### Convert to `Predicate` Type with Preferred Constructor - -Finally, you can convert to the native `Predicate` format using one of the -constructors not used to assist in the migration. - -### Deprecation Roadmap - -Nimble 7 introduces `Predicate` but will support the old types with warning -deprecations. A couple major releases of Nimble will remain backwards -compatible with the old matcher api, although new features may not be -backported. - -The deprecating plan is a 3 major versions removal. Which is as follows: - - 1. Introduce new `Predicate` API, deprecation warning for old matcher APIs. - (Nimble `v7.x.x`) - 2. Introduce warnings on migration-path features (`.predicate`, - `Predicate`-constructors with similar arguments to old API). (Nimble - `v8.x.x`) - 3. Remove old API. (Nimble `v9.x.x`) - - -# Installing Nimble - -> Nimble can be used on its own, or in conjunction with its sister - project, [Quick](https://github.com/Quick/Quick). To install both - Quick and Nimble, follow [the installation instructions in the Quick - Documentation](https://github.com/Quick/Quick/blob/master/Documentation/en-us/InstallingQuick.md). - -Nimble can currently be installed in one of two ways: using CocoaPods, or with -git submodules. - -## Installing Nimble as a Submodule - -To use Nimble as a submodule to test your macOS, iOS or tvOS applications, follow -these 4 easy steps: - -1. Clone the Nimble repository -2. Add Nimble.xcodeproj to the Xcode workspace for your project -3. Link Nimble.framework to your test target -4. Start writing expectations! - -For more detailed instructions on each of these steps, -read [How to Install Quick](https://github.com/Quick/Quick#how-to-install-quick). -Ignore the steps involving adding Quick to your project in order to -install just Nimble. - -## Installing Nimble via CocoaPods - -To use Nimble in CocoaPods to test your macOS, iOS or tvOS applications, add -Nimble to your podfile and add the ```use_frameworks!``` line to enable Swift -support for CocoaPods. - -```ruby -platform :ios, '8.0' - -source 'https://github.com/CocoaPods/Specs.git' - -# Whatever pods you need for your app go here - -target 'YOUR_APP_NAME_HERE_Tests', :exclusive => true do - use_frameworks! - pod 'Nimble', '~> 6.0.0' -end -``` - -Finally run `pod install`. - -## Using Nimble without XCTest - -Nimble is integrated with XCTest to allow it work well when used in Xcode test -bundles, however it can also be used in a standalone app. After installing -Nimble using one of the above methods, there are two additional steps required -to make this work. - -1. Create a custom assertion handler and assign an instance of it to the - global `NimbleAssertionHandler` variable. For example: - -```swift -class MyAssertionHandler : AssertionHandler { - func assert(assertion: Bool, message: FailureMessage, location: SourceLocation) { - if (!assertion) { - print("Expectation failed: \(message.stringValue)") - } - } -} -``` -```swift -// Somewhere before you use any assertions -NimbleAssertionHandler = MyAssertionHandler() -``` - -2. Add a post-build action to fix an issue with the Swift XCTest support - library being unnecessarily copied into your app - * Edit your scheme in Xcode, and navigate to Build -> Post-actions - * Click the "+" icon and select "New Run Script Action" - * Open the "Provide build settings from" dropdown and select your target - * Enter the following script contents: -``` -rm "${SWIFT_STDLIB_TOOL_DESTINATION_DIR}/libswiftXCTest.dylib" -``` - -You can now use Nimble assertions in your code and handle failures as you see -fit. diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore deleted file mode 100644 index 5b05d7e..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -project.xcworkspace/ -xcuserdata/ diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift deleted file mode 100644 index 196ee9a..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// CwlCatchException.swift -// CwlAssertionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -#if SWIFT_PACKAGE -import CwlCatchExceptionSupport -#endif - -private func catchReturnTypeConverter(_ instance: T, block: () -> Void) -> T? { - // Get the type from an *instance*, instead of a receiving the type directly - return catchExceptionOfKind(T.self, block) as? T -} - -extension NSException { - public static func catchException(in block: () -> Void) -> Self? { - // Use a dummy instance of Self to provide the type - return catchReturnTypeConverter(self.init(), block: block) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h deleted file mode 100644 index 6ec6a29..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// CwlCatchException.h -// CwlCatchException -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import - -//! Project version number for CwlCatchException. -FOUNDATION_EXPORT double CwlCatchExceptionVersionNumber; - -//! Project version string for CwlCatchException. -FOUNDATION_EXPORT const unsigned char CwlCatchExceptionVersionString[]; - -__attribute__((visibility("hidden"))) -NSException* __nullable catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()); diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m deleted file mode 100644 index 4f9772c..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m +++ /dev/null @@ -1,35 +0,0 @@ -// -// CwlCatchException.m -// CwlAssertionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import "CwlCatchException.h" - -__attribute__((visibility("hidden"))) -NSException* catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()) { - @try { - inBlock(); - } @catch (NSException *exception) { - if ([exception isKindOfClass:type]) { - return exception; - } else { - @throw; - } - } - return nil; -} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift deleted file mode 100644 index b44a232..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// CwlCatchException.swift -// CwlAssertionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -// We can't simply cast to Self? in the catchInBlock method so we need this generic function wrapper to do the conversion for us. Mildly annoying. -private func catchReturnTypeConverter(_ type: T.Type, block: () -> Void) -> T? { - return catchExceptionOfKind(type, block) as? T -} - -extension NSException { - public static func catchException(in block: () -> Void) -> Self? { - return catchReturnTypeConverter(self, block: block) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist deleted file mode 100644 index f14cf1e..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Matt Gallagher. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m deleted file mode 100644 index 738d43c..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/CwlCatchException.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// CwlCatchException.m -// CwlAssertionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import "CwlCatchException.h" - -#if !SWIFT_PACKAGE && NON_SWIFT_PACKAGE -__attribute__((visibility("hidden"))) -#endif -NSException* catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()) { - @try { - inBlock(); - } @catch (NSException *exception) { - if ([exception isKindOfClass:type]) { - return exception; - } else { - @throw; - } - } - return nil; -} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h deleted file mode 100644 index cc4c4fb..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchExceptionSupport/include/CwlCatchException.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// CwlCatchException.h -// CwlCatchException -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import - -//! Project version number for CwlCatchException. -FOUNDATION_EXPORT double CwlCatchExceptionVersionNumber; - -//! Project version string for CwlCatchException. -FOUNDATION_EXPORT const unsigned char CwlCatchExceptionVersionString[]; - -#if !SWIFT_PACKAGE && NON_SWIFT_PACKAGE -__attribute__((visibility("hidden"))) -#endif -NSException* __nullable catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()); diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m deleted file mode 100644 index 8183196..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// CwlMachBadExceptionHandler.m -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#if defined(__x86_64__) - - #import "mach_excServer.h" - #import "CwlMachBadInstructionHandler.h" - - @protocol BadInstructionReply - +(NSNumber *)receiveReply:(NSValue *)value; - @end - - /// A basic function that receives callbacks from mach_exc_server and relays them to the Swift implemented BadInstructionException.catch_mach_exception_raise_state. - kern_return_t catch_mach_exception_raise_state(mach_port_t exception_port, exception_type_t exception, const mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, const thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { - bad_instruction_exception_reply_t reply = { exception_port, exception, code, codeCnt, flavor, old_state, old_stateCnt, new_state, new_stateCnt }; - Class badInstructionClass = NSClassFromString(@"BadInstructionException"); - NSValue *value = [NSValue valueWithBytes: &reply objCType: @encode(bad_instruction_exception_reply_t)]; - return [[badInstructionClass performSelector: @selector(receiveReply:) withObject: value] intValue]; - } - - // The mach port should be configured so that this function is never used. - kern_return_t catch_mach_exception_raise(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt) { - assert(false); - return KERN_FAILURE; - } - - // The mach port should be configured so that this function is never used. - kern_return_t catch_mach_exception_raise_state_identity(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { - assert(false); - return KERN_FAILURE; - } - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h deleted file mode 100644 index 5755bfc..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h +++ /dev/null @@ -1,70 +0,0 @@ -// -// CwlMachBadExceptionHandler.h -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -extern boolean_t mach_exc_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -// The request_mach_exception_raise_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. -typedef struct -{ - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; -} request_mach_exception_raise_t; - -// The reply_mach_exception_raise_state_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. -typedef struct -{ - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; -} reply_mach_exception_raise_state_t; - -typedef struct -{ - mach_port_t exception_port; - exception_type_t exception; - mach_exception_data_type_t const * _Nullable code; - mach_msg_type_number_t codeCnt; - int32_t * _Nullable flavor; - natural_t const * _Nullable old_state; - mach_msg_type_number_t old_stateCnt; - thread_state_t _Nullable new_state; - mach_msg_type_number_t * _Nullable new_stateCnt; -} bad_instruction_exception_reply_t; - -NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c deleted file mode 100644 index 733c564..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.c +++ /dev/null @@ -1,537 +0,0 @@ -/* - * IDENTIFICATION: - * stub generated Sun Jan 29 19:05:29 2017 - * with a MiG generated by bootstrap_cmds-96.20.2 - * OPTIONS: - */ - -#if defined(__x86_64__) - -/* Module mach_exc */ - -#define __MIG_check__Request__mach_exc_subsystem__ 1 - -#include "mach_excServer.h" - -#ifndef mig_internal -#define mig_internal static __inline__ -#endif /* mig_internal */ - -#ifndef mig_external -#define mig_external -#endif /* mig_external */ - -#if !defined(__MigTypeCheck) && defined(TypeCheck) -#define __MigTypeCheck TypeCheck /* Legacy setting */ -#endif /* !defined(__MigTypeCheck) */ - -#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_) -#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */ -#endif /* !defined(__MigKernelSpecificCode) */ - -#ifndef LimitCheck -#define LimitCheck 0 -#endif /* LimitCheck */ - -#ifndef min -#define min(a,b) ( ((a) < (b))? (a): (b) ) -#endif /* min */ - -#if !defined(_WALIGN_) -#define _WALIGN_(x) (((x) + 3) & ~3) -#endif /* !defined(_WALIGN_) */ - -#if !defined(_WALIGNSZ_) -#define _WALIGNSZ_(x) _WALIGN_(sizeof(x)) -#endif /* !defined(_WALIGNSZ_) */ - -#ifndef UseStaticTemplates -#define UseStaticTemplates 0 -#endif /* UseStaticTemplates */ - -#ifndef __DeclareRcvRpc -#define __DeclareRcvRpc(_NUM_, _NAME_) -#endif /* __DeclareRcvRpc */ - -#ifndef __BeforeRcvRpc -#define __BeforeRcvRpc(_NUM_, _NAME_) -#endif /* __BeforeRcvRpc */ - -#ifndef __AfterRcvRpc -#define __AfterRcvRpc(_NUM_, _NAME_) -#endif /* __AfterRcvRpc */ - -#ifndef __DeclareRcvSimple -#define __DeclareRcvSimple(_NUM_, _NAME_) -#endif /* __DeclareRcvSimple */ - -#ifndef __BeforeRcvSimple -#define __BeforeRcvSimple(_NUM_, _NAME_) -#endif /* __BeforeRcvSimple */ - -#ifndef __AfterRcvSimple -#define __AfterRcvSimple(_NUM_, _NAME_) -#endif /* __AfterRcvSimple */ - -#define novalue void - -#define msgh_request_port msgh_local_port -#define MACH_MSGH_BITS_REQUEST(bits) MACH_MSGH_BITS_LOCAL(bits) -#define msgh_reply_port msgh_remote_port -#define MACH_MSGH_BITS_REPLY(bits) MACH_MSGH_BITS_REMOTE(bits) - -#define MIG_RETURN_ERROR(X, code) {\ - ((mig_reply_error_t *)X)->RetCode = code;\ - ((mig_reply_error_t *)X)->NDR = NDR_record;\ - return;\ - } - -/* Forward Declarations */ - - -mig_internal novalue _Xmach_exception_raise - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -mig_internal novalue _Xmach_exception_raise_state - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -mig_internal novalue _Xmach_exception_raise_state_identity - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_t__defined) -#define __MIG_check__Request__mach_exception_raise_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_t(__attribute__((__unused__)) __Request__mach_exception_raise_t *In0P) -{ - - typedef __Request__mach_exception_raise_t __Request; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (In0P->msgh_body.msgh_descriptor_count != 2) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 16)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->thread.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->task.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined */ -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 16)) / 8 < In0P->codeCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 16) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise */ -mig_internal novalue _Xmach_exception_raise - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_t __Request; - typedef __Reply__mach_exception_raise_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_t__defined */ - - __DeclareRcvRpc(2405, "mach_exception_raise") - __BeforeRcvRpc(2405, "mach_exception_raise") - -#if defined(__MIG_check__Request__mach_exception_raise_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_t((__Request *)In0P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_t__defined) */ - - OutP->RetCode = catch_mach_exception_raise(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt); - - OutP->NDR = NDR_record; - - - __AfterRcvRpc(2405, "mach_exception_raise") -} - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) -#define __MIG_check__Request__mach_exception_raise_state_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_t **In1PP) -{ - - typedef __Request__mach_exception_raise_state_t __Request; - __Request *In1P; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - unsigned int msgh_size_delta; - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if ((In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined */ - msgh_size_delta = (8 * In0P->codeCnt); -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; - msgh_size -= msgh_size_delta; -#endif /* __MigTypeCheck */ - - *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined */ -#if __MigTypeCheck - if ( In1P->old_stateCnt > 224 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise_state */ -mig_internal novalue _Xmach_exception_raise_state - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_state_t __Request; - typedef __Reply__mach_exception_raise_state_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Request *In1P; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_state_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_state_t__defined */ - - __DeclareRcvRpc(2406, "mach_exception_raise_state") - __BeforeRcvRpc(2406, "mach_exception_raise_state") - -#if defined(__MIG_check__Request__mach_exception_raise_state_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_state_t((__Request *)In0P, (__Request **)&In1P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ - - OutP->new_stateCnt = 224; - - OutP->RetCode = catch_mach_exception_raise_state(In0P->Head.msgh_request_port, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); - if (OutP->RetCode != KERN_SUCCESS) { - MIG_RETURN_ERROR(OutP, OutP->RetCode); - } - - OutP->NDR = NDR_record; - - - OutP->flavor = In1P->flavor; - OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); - - __AfterRcvRpc(2406, "mach_exception_raise_state") -} - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) -#define __MIG_check__Request__mach_exception_raise_state_identity_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_identity_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t **In1PP) -{ - - typedef __Request__mach_exception_raise_state_identity_t __Request; - __Request *In1P; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - unsigned int msgh_size_delta; - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (In0P->msgh_body.msgh_descriptor_count != 2) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->thread.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->task.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined */ - msgh_size_delta = (8 * In0P->codeCnt); -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; - msgh_size -= msgh_size_delta; -#endif /* __MigTypeCheck */ - - *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined */ -#if __MigTypeCheck - if ( In1P->old_stateCnt > 224 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise_state_identity */ -mig_internal novalue _Xmach_exception_raise_state_identity - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_state_identity_t __Request; - typedef __Reply__mach_exception_raise_state_identity_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Request *In1P; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_state_identity_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_state_identity_t__defined */ - - __DeclareRcvRpc(2407, "mach_exception_raise_state_identity") - __BeforeRcvRpc(2407, "mach_exception_raise_state_identity") - -#if defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_state_identity_t((__Request *)In0P, (__Request **)&In1P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ - - OutP->new_stateCnt = 224; - - OutP->RetCode = catch_mach_exception_raise_state_identity(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); - if (OutP->RetCode != KERN_SUCCESS) { - MIG_RETURN_ERROR(OutP, OutP->RetCode); - } - - OutP->NDR = NDR_record; - - - OutP->flavor = In1P->flavor; - OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); - - __AfterRcvRpc(2407, "mach_exception_raise_state_identity") -} - - - -/* Description of this subsystem, for use in direct RPC */ -const struct catch_mach_exc_subsystem catch_mach_exc_subsystem = { - mach_exc_server_routine, - 2405, - 2408, - (mach_msg_size_t)sizeof(union __ReplyUnion__catch_mach_exc_subsystem), - (vm_address_t)0, - { - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise, 6, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_t)}, - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise_state, 9, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_t)}, - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise_state_identity, 11, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_identity_t)}, - } -}; - -mig_external boolean_t mach_exc_server - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - register mig_routine_t routine; - - OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0); - OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port; - /* Minimal size: routine() will update it if different */ - OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t); - OutHeadP->msgh_local_port = MACH_PORT_NULL; - OutHeadP->msgh_id = InHeadP->msgh_id + 100; - OutHeadP->msgh_reserved = 0; - - if ((InHeadP->msgh_id > 2407) || (InHeadP->msgh_id < 2405) || - ((routine = catch_mach_exc_subsystem.routine[InHeadP->msgh_id - 2405].stub_routine) == 0)) { - ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record; - ((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID; - return FALSE; - } - (*routine) (InHeadP, OutHeadP); - return TRUE; -} - -mig_external mig_routine_t mach_exc_server_routine - (mach_msg_header_t *InHeadP) -{ - register int msgh_id; - - msgh_id = InHeadP->msgh_id - 2405; - - if ((msgh_id > 2) || (msgh_id < 0)) - return 0; - - return catch_mach_exc_subsystem.routine[msgh_id].stub_routine; -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h deleted file mode 100644 index 52e53ae..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlMachBadInstructionHandler/mach_excServer.h +++ /dev/null @@ -1,321 +0,0 @@ -#ifndef _mach_exc_server_ -#define _mach_exc_server_ - -/* Module mach_exc */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* BEGIN VOUCHER CODE */ - -#ifndef KERNEL -#if defined(__has_include) -#if __has_include() -#ifndef USING_VOUCHERS -#define USING_VOUCHERS -#endif -#ifndef __VOUCHER_FORWARD_TYPE_DECLS__ -#define __VOUCHER_FORWARD_TYPE_DECLS__ -#ifdef __cplusplus -extern "C" { -#endif - extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import)); -#ifdef __cplusplus -} -#endif -#endif // __VOUCHER_FORWARD_TYPE_DECLS__ -#endif // __has_include() -#endif // __has_include -#endif // !KERNEL - -/* END VOUCHER CODE */ - - -/* BEGIN MIG_STRNCPY_ZEROFILL CODE */ - -#if defined(__has_include) -#if __has_include() -#ifndef USING_MIG_STRNCPY_ZEROFILL -#define USING_MIG_STRNCPY_ZEROFILL -#endif -#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ -#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ -#ifdef __cplusplus -extern "C" { -#endif - extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import)); -#ifdef __cplusplus -} -#endif -#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */ -#endif /* __has_include() */ -#endif /* __has_include */ - -/* END MIG_STRNCPY_ZEROFILL CODE */ - - -#ifdef AUTOTEST -#ifndef FUNCTION_PTR_T -#define FUNCTION_PTR_T -typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); -typedef struct { - char *name; - function_ptr_t function; -} function_table_entry; -typedef function_table_entry *function_table_t; -#endif /* FUNCTION_PTR_T */ -#endif /* AUTOTEST */ - -#ifndef mach_exc_MSG_COUNT -#define mach_exc_MSG_COUNT 3 -#endif /* mach_exc_MSG_COUNT */ - -#include -#include -#include -#include - -#ifdef __BeforeMigServerHeader -__BeforeMigServerHeader -#endif /* __BeforeMigServerHeader */ - - -/* Routine mach_exception_raise */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise -( - mach_port_t exception_port, - mach_port_t thread, - mach_port_t task, - exception_type_t exception, - mach_exception_data_t code, - mach_msg_type_number_t codeCnt -); - -/* Routine mach_exception_raise_state */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise_state -( - mach_port_t exception_port, - exception_type_t exception, - const mach_exception_data_t code, - mach_msg_type_number_t codeCnt, - int *flavor, - const thread_state_t old_state, - mach_msg_type_number_t old_stateCnt, - thread_state_t new_state, - mach_msg_type_number_t *new_stateCnt -); - -/* Routine mach_exception_raise_state_identity */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise_state_identity -( - mach_port_t exception_port, - mach_port_t thread, - mach_port_t task, - exception_type_t exception, - mach_exception_data_t code, - mach_msg_type_number_t codeCnt, - int *flavor, - thread_state_t old_state, - mach_msg_type_number_t old_stateCnt, - thread_state_t new_state, - mach_msg_type_number_t *new_stateCnt -); - -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -boolean_t mach_exc_server( - mach_msg_header_t *InHeadP, - mach_msg_header_t *OutHeadP); - -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -mig_routine_t mach_exc_server_routine( - mach_msg_header_t *InHeadP); - - -/* Description of this subsystem, for use in direct RPC */ -extern const struct catch_mach_exc_subsystem { - mig_server_routine_t server; /* Server routine */ - mach_msg_id_t start; /* Min routine number */ - mach_msg_id_t end; /* Max routine number + 1 */ - unsigned int maxsize; /* Max msg size */ - vm_address_t reserved; /* Reserved */ - struct routine_descriptor /*Array of routine descriptors */ - routine[3]; -} catch_mach_exc_subsystem; - -/* typedefs for all requests */ - -#ifndef __Request__mach_exc_subsystem__defined -#define __Request__mach_exc_subsystem__defined - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - } __Request__mach_exception_raise_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - } __Request__mach_exception_raise_state_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - } __Request__mach_exception_raise_state_identity_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif -#endif /* !__Request__mach_exc_subsystem__defined */ - - -/* union of all requests */ - -#ifndef __RequestUnion__catch_mach_exc_subsystem__defined -#define __RequestUnion__catch_mach_exc_subsystem__defined -union __RequestUnion__catch_mach_exc_subsystem { - __Request__mach_exception_raise_t Request_mach_exception_raise; - __Request__mach_exception_raise_state_t Request_mach_exception_raise_state; - __Request__mach_exception_raise_state_identity_t Request_mach_exception_raise_state_identity; -}; -#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ -/* typedefs for all replies */ - -#ifndef __Reply__mach_exc_subsystem__defined -#define __Reply__mach_exc_subsystem__defined - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - } __Reply__mach_exception_raise_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; - } __Reply__mach_exception_raise_state_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; - } __Reply__mach_exception_raise_state_identity_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif -#endif /* !__Reply__mach_exc_subsystem__defined */ - - -/* union of all replies */ - -#ifndef __ReplyUnion__catch_mach_exc_subsystem__defined -#define __ReplyUnion__catch_mach_exc_subsystem__defined -union __ReplyUnion__catch_mach_exc_subsystem { - __Reply__mach_exception_raise_t Reply_mach_exception_raise; - __Reply__mach_exception_raise_state_t Reply_mach_exception_raise_state; - __Reply__mach_exception_raise_state_identity_t Reply_mach_exception_raise_state_identity; -}; -#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ - -#ifndef subsystem_to_name_map_mach_exc -#define subsystem_to_name_map_mach_exc \ - { "mach_exception_raise", 2405 },\ - { "mach_exception_raise_state", 2406 },\ - { "mach_exception_raise_state_identity", 2407 } -#endif - -#ifdef __AfterMigServerHeader -__AfterMigServerHeader -#endif /* __AfterMigServerHeader */ - -#endif /* _mach_exc_server_ */ diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift deleted file mode 100644 index 91e5d4d..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift +++ /dev/null @@ -1,89 +0,0 @@ -// -// CwlBadInstructionException.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -#if SWIFT_PACKAGE - import CwlMachBadInstructionHandler -#endif - -private func raiseBadInstructionException() { - BadInstructionException().raise() -} - -/// A simple NSException subclass. It's not required to subclass NSException (since the exception type is represented in the name) but this helps for identifying the exception through runtime type. -@objc(BadInstructionException) -public class BadInstructionException: NSException { - static var name: String = "com.cocoawithlove.BadInstruction" - - init() { - super.init(name: NSExceptionName(rawValue: BadInstructionException.name), reason: nil, userInfo: nil) - } - - required public init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } - - /// An Objective-C callable function, invoked from the `mach_exc_server` callback function `catch_mach_exception_raise_state` to push the `raiseBadInstructionException` function onto the stack. - @objc(receiveReply:) - public class func receiveReply(_ value: NSValue) -> NSNumber { - #if arch(x86_64) - var reply = bad_instruction_exception_reply_t(exception_port: 0, exception: 0, code: nil, codeCnt: 0, flavor: nil, old_state: nil, old_stateCnt: 0, new_state: nil, new_stateCnt: nil) - withUnsafeMutablePointer(to: &reply) { value.getValue(UnsafeMutableRawPointer($0)) } - - let old_state: UnsafePointer = reply.old_state! - let old_stateCnt: mach_msg_type_number_t = reply.old_stateCnt - let new_state: thread_state_t = reply.new_state! - let new_stateCnt: UnsafeMutablePointer = reply.new_stateCnt! - - // Make sure we've been given enough memory - if old_stateCnt != x86_THREAD_STATE64_COUNT || new_stateCnt.pointee < x86_THREAD_STATE64_COUNT { - return NSNumber(value: KERN_INVALID_ARGUMENT) - } - - // Read the old thread state - var state = old_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { return $0.pointee } - - // 1. Decrement the stack pointer - state.__rsp -= __uint64_t(MemoryLayout.size) - - // 2. Save the old Instruction Pointer to the stack. - if let pointer = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(state.__rsp)) { - pointer.pointee = state.__rip - } else { - return NSNumber(value: KERN_INVALID_ARGUMENT) - } - - // 3. Set the Instruction Pointer to the new function's address - var f: @convention(c) () -> Void = raiseBadInstructionException - withUnsafePointer(to: &f) { - state.__rip = $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { return $0.pointee } - } - - // Write the new thread state - new_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { $0.pointee = state } - new_stateCnt.pointee = x86_THREAD_STATE64_COUNT - - return NSNumber(value: KERN_SUCCESS) - #else - fatalError("Unavailable for this CPU architecture") - #endif - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h deleted file mode 100644 index 0333ed2..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// CwlCatchBadInstruction.h -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#if defined(__x86_64__) - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -// The request_mach_exception_raise_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. -typedef struct -{ - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; -} request_mach_exception_raise_t; - -// The reply_mach_exception_raise_state_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. -typedef struct -{ - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; -} reply_mach_exception_raise_state_t; - -extern boolean_t mach_exc_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -NS_ASSUME_NONNULL_END - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m deleted file mode 100644 index 22c1377..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// CwlCatchBadInstruction.m -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#if defined(__x86_64__) - -#import "CwlCatchBadInstruction.h" - -// Assuming the "PRODUCT_NAME" macro is defined, this will create the name of the Swift generated header file -#define STRINGIZE_NO_EXPANSION(A) #A -#define STRINGIZE_WITH_EXPANSION(A) STRINGIZE_NO_EXPANSION(A) -#define SWIFT_INCLUDE STRINGIZE_WITH_EXPANSION(PRODUCT_NAME-Swift.h) - -// Include the Swift generated header file -#import SWIFT_INCLUDE - -/// A basic function that receives callbacks from mach_exc_server and relays them to the Swift implemented BadInstructionException.catch_mach_exception_raise_state. -kern_return_t catch_mach_exception_raise_state(mach_port_t exception_port, exception_type_t exception, const mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, const thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { - return [BadInstructionException catch_mach_exception_raise_state:exception_port exception:exception code:code codeCnt:codeCnt flavor:flavor old_state:old_state old_stateCnt:old_stateCnt new_state:new_state new_stateCnt:new_stateCnt]; -} - -// The mach port should be configured so that this function is never used. -kern_return_t catch_mach_exception_raise(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt) { - assert(false); - return KERN_FAILURE; -} - -// The mach port should be configured so that this function is never used. -kern_return_t catch_mach_exception_raise_state_identity(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { - assert(false); - return KERN_FAILURE; -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift deleted file mode 100644 index 98eefb8..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift +++ /dev/null @@ -1,199 +0,0 @@ -// -// CwlCatchBadInstruction.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -#if SWIFT_PACKAGE - import CwlCatchException - import CwlMachBadInstructionHandler -#endif - -#if arch(x86_64) - - private enum PthreadError: Error { case code(Int32) } - private enum MachExcServer: Error { case code(kern_return_t) } - - /// A quick function for converting Mach error results into Swift errors - private func kernCheck(_ f: () -> Int32) throws { - let r = f() - guard r == KERN_SUCCESS else { - throw NSError(domain: NSMachErrorDomain, code: Int(r), userInfo: nil) - } - } - - extension execTypesCountTuple { - mutating func pointer(in block: (UnsafeMutablePointer) -> R) -> R { - return withUnsafeMutablePointer(to: &self) { p -> R in - return p.withMemoryRebound(to: T.self, capacity: EXC_TYPES_COUNT) { ptr -> R in - return block(ptr) - } - } - } - } - - extension request_mach_exception_raise_t { - mutating func withMsgHeaderPointer(in block: (UnsafeMutablePointer) -> R) -> R { - return withUnsafeMutablePointer(to: &self) { p -> R in - return p.withMemoryRebound(to: mach_msg_header_t.self, capacity: 1) { ptr -> R in - return block(ptr) - } - } - } - } - - extension reply_mach_exception_raise_state_t { - mutating func withMsgHeaderPointer(in block: (UnsafeMutablePointer) -> R) -> R { - return withUnsafeMutablePointer(to: &self) { p -> R in - return p.withMemoryRebound(to: mach_msg_header_t.self, capacity: 1) { ptr -> R in - return block(ptr) - } - } - } - } - - /// A structure used to store context associated with the Mach message port - private struct MachContext { - var masks = execTypesCountTuple() - var count: mach_msg_type_number_t = 0 - var ports = execTypesCountTuple() - var behaviors = execTypesCountTuple() - var flavors = execTypesCountTuple() - var currentExceptionPort: mach_port_t = 0 - var handlerThread: pthread_t? = nil - - mutating func withUnsafeMutablePointers(in block: (UnsafeMutablePointer, UnsafeMutablePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> R) -> R { - return masks.pointer { masksPtr in - return ports.pointer { portsPtr in - return behaviors.pointer { behaviorsPtr in - return flavors.pointer { flavorsPtr in - return block(masksPtr, portsPtr, behaviorsPtr, flavorsPtr) - } - } - } - } - } - } - - /// A function for receiving mach messages and parsing the first with mach_exc_server (and if any others are received, throwing them away). - private func machMessageHandler(_ arg: UnsafeMutableRawPointer) -> UnsafeMutableRawPointer? { - let context = arg.assumingMemoryBound(to: MachContext.self).pointee - var request = request_mach_exception_raise_t() - var reply = reply_mach_exception_raise_state_t() - - var handledfirstException = false - repeat { do { - // Request the next mach message from the port - request.Head.msgh_local_port = context.currentExceptionPort - request.Head.msgh_size = UInt32(MemoryLayout.size) - try kernCheck { request.withMsgHeaderPointer { requestPtr in - mach_msg(requestPtr, MACH_RCV_MSG | MACH_RCV_INTERRUPT, 0, request.Head.msgh_size, context.currentExceptionPort, 0, UInt32(MACH_PORT_NULL)) - } } - - // Prepare the reply structure - reply.Head.msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(request.Head.msgh_bits), 0) - reply.Head.msgh_local_port = UInt32(MACH_PORT_NULL) - reply.Head.msgh_remote_port = request.Head.msgh_remote_port - reply.Head.msgh_size = UInt32(MemoryLayout.size) - reply.NDR = NDR_record - - if !handledfirstException { - // Use the MiG generated server to invoke our handler for the request and fill in the rest of the reply structure - guard request.withMsgHeaderPointer(in: { requestPtr in reply.withMsgHeaderPointer { replyPtr in - mach_exc_server(requestPtr, replyPtr) - } }) != 0 else { throw MachExcServer.code(reply.RetCode) } - - handledfirstException = true - } else { - // If multiple fatal errors occur, don't handle subsquent errors (let the program crash) - reply.RetCode = KERN_FAILURE - } - - // Send the reply - try kernCheck { reply.withMsgHeaderPointer { replyPtr in - mach_msg(replyPtr, MACH_SEND_MSG, reply.Head.msgh_size, 0, UInt32(MACH_PORT_NULL), 0, UInt32(MACH_PORT_NULL)) - } } - } catch let error as NSError where (error.domain == NSMachErrorDomain && (error.code == Int(MACH_RCV_PORT_CHANGED) || error.code == Int(MACH_RCV_INVALID_NAME))) { - // Port was already closed before we started or closed while we were listening. - // This means the controlling thread shut down. - return nil - } catch { - // Should never be reached but this is testing code, don't try to recover, just abort - fatalError("Mach message error: \(error)") - } } while true - } - - /// Run the provided block. If a mach "BAD_INSTRUCTION" exception is raised, catch it and return a BadInstructionException (which captures stack information about the throw site, if desired). Otherwise return nil. - /// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a "BAD_INSTRUCTION" exception is raised, the block will be exited before completion via Objective-C exception. The risks associated with an Objective-C exception apply here: most Swift/Objective-C functions are *not* exception-safe. Memory may be leaked and the program will not necessarily be left in a safe state. - /// - parameter block: a function without parameters that will be run - /// - returns: if an EXC_BAD_INSTRUCTION is raised during the execution of `block` then a BadInstructionException will be returned, otherwise `nil`. - public func catchBadInstruction(in block: () -> Void) -> BadInstructionException? { - var context = MachContext() - var result: BadInstructionException? = nil - do { - var handlerThread: pthread_t? = nil - defer { - // 8. Wait for the thread to terminate *if* we actually made it to the creation point - // The mach port should be destroyed *before* calling pthread_join to avoid a deadlock. - if handlerThread != nil { - pthread_join(handlerThread!, nil) - } - } - - try kernCheck { - // 1. Create the mach port - mach_port_allocate(mach_task_self_, MACH_PORT_RIGHT_RECEIVE, &context.currentExceptionPort) - } - defer { - // 7. Cleanup the mach port - mach_port_destroy(mach_task_self_, context.currentExceptionPort) - } - - try kernCheck { - // 2. Configure the mach port - mach_port_insert_right(mach_task_self_, context.currentExceptionPort, context.currentExceptionPort, MACH_MSG_TYPE_MAKE_SEND) - } - - try kernCheck { context.withUnsafeMutablePointers { masksPtr, portsPtr, behaviorsPtr, flavorsPtr in - // 3. Apply the mach port as the handler for this thread - thread_swap_exception_ports(mach_thread_self(), EXC_MASK_BAD_INSTRUCTION, context.currentExceptionPort, Int32(bitPattern: UInt32(EXCEPTION_STATE) | MACH_EXCEPTION_CODES), x86_THREAD_STATE64, masksPtr, &context.count, portsPtr, behaviorsPtr, flavorsPtr) - } } - - defer { context.withUnsafeMutablePointers { masksPtr, portsPtr, behaviorsPtr, flavorsPtr in - // 6. Unapply the mach port - _ = thread_swap_exception_ports(mach_thread_self(), EXC_MASK_BAD_INSTRUCTION, 0, EXCEPTION_DEFAULT, THREAD_STATE_NONE, masksPtr, &context.count, portsPtr, behaviorsPtr, flavorsPtr) - } } - - try withUnsafeMutablePointer(to: &context) { c throws in - // 4. Create the thread - let e = pthread_create(&handlerThread, nil, machMessageHandler, c) - guard e == 0 else { throw PthreadError.code(e) } - - // 5. Run the block - result = BadInstructionException.catchException(in: block) - } - } catch { - // Should never be reached but this is testing code, don't try to recover, just abort - fatalError("Mach port error: \(error)") - } - return result - } - -#endif - diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift deleted file mode 100644 index eb9bc19..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift +++ /dev/null @@ -1,108 +0,0 @@ -// -// CwlCatchBadInstructionPosix.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 8/02/2016. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -#if arch(x86_64) - - // This file is an alternative implementation to CwlCatchBadInstruction.swift that uses a SIGILL signal action and setenv/longjmp instead of a Mach exception handler and Objective-C exception raising. - // - // WARNING: - // This code is quick and dirty. It's a proof of concept for using a SIGILL handler and setjmp/longjmp where Mach exceptions and the Obj-C runtime aren't available. I ran the automated tests when I first wrote this code but I don't personally use it at all so by the time you're reading this comment, it probably broke and I didn't notice. - // Obvious limitations: - // * It doesn't work when debugging with lldb. - // * It doesn't scope correctly to the thread (it's global) - // * In violation of rules for signal handlers, it writes to the "red zone" on the stack - // * It isn't re-entrant - // * Plus all of the same caveats as the Mach exceptions version (doesn't play well with other handlers, probably leaks ARC memory, etc) - // Treat it like a loaded shotgun. Don't point it at your face. - - // This function is called from the signal handler to shut down the thread and return 1 (indicating a SIGILL was received). - private func callThreadExit() { - pthread_exit(UnsafeMutableRawPointer(bitPattern: 1)) - } - - // When called, this signal handler simulates a function call to `callThreadExit` - private func sigIllHandler(code: Int32, info: UnsafeMutablePointer<__siginfo>?, uap: UnsafeMutableRawPointer?) -> Void { - guard let context = uap?.assumingMemoryBound(to: ucontext64_t.self) else { return } - - // 1. Decrement the stack pointer - context.pointee.uc_mcontext64.pointee.__ss.__rsp -= __uint64_t(MemoryLayout.size) - - // 2. Save the old Instruction Pointer to the stack. - let rsp = context.pointee.uc_mcontext64.pointee.__ss.__rsp - if let ump = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(rsp)) { - ump.pointee = rsp - } - - // 3. Set the Instruction Pointer to the new function's address - var f: @convention(c) () -> Void = callThreadExit - withUnsafePointer(to: &f) { $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { ptr in - context.pointee.uc_mcontext64.pointee.__ss.__rip = ptr.pointee - } } - } - - /// Without Mach exceptions or the Objective-C runtime, there's nothing to put in the exception object. It's really just a boolean – either a SIGILL was caught or not. - public class BadInstructionException { - } - - /// Run the provided block. If a POSIX SIGILL is received, handle it and return a BadInstructionException (which is just an empty object in this POSIX signal version). Otherwise return nil. - /// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a SIGILL is received, the block will be interrupted using a C `longjmp`. The risks associated with abrupt jumps apply here: most Swift functions are *not* interrupt-safe. Memory may be leaked and the program will not necessarily be left in a safe state. - /// - parameter block: a function without parameters that will be run - /// - returns: if an SIGILL is raised during the execution of `block` then a BadInstructionException will be returned, otherwise `nil`. - public func catchBadInstruction(block: @escaping () -> Void) -> BadInstructionException? { - // Construct the signal action - var sigActionPrev = sigaction() - let action = __sigaction_u(__sa_sigaction: sigIllHandler) - var sigActionNew = sigaction(__sigaction_u: action, sa_mask: sigset_t(), sa_flags: SA_SIGINFO) - - // Install the signal action - if sigaction(SIGILL, &sigActionNew, &sigActionPrev) != 0 { - fatalError("Sigaction error: \(errno)") - } - - defer { - // Restore the previous signal action - if sigaction(SIGILL, &sigActionPrev, nil) != 0 { - fatalError("Sigaction error: \(errno)") - } - } - - var b = block - let caught: Bool = withUnsafeMutablePointer(to: &b) { blockPtr in - // Run the block on its own thread - var handlerThread: pthread_t? = nil - let e = pthread_create(&handlerThread, nil, { arg in - (arg.assumingMemoryBound(to: (() -> Void).self).pointee)() - return nil - }, blockPtr) - precondition(e == 0, "Unable to create thread") - - // Wait for completion and get the result. It will be either `nil` or bitPattern 1 - var rawResult: UnsafeMutableRawPointer? = nil - let e2 = pthread_join(handlerThread!, &rawResult) - precondition(e2 == 0, "Thread join failed") - return Int(bitPattern: rawResult) != 0 - } - - return caught ? BadInstructionException() : nil - } - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift deleted file mode 100644 index 8d99d5e..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// CwlDarwinDefinitions.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Darwin - -#if arch(x86_64) - - // From /usr/include/mach/message.h - // #define MACH_MSG_TYPE_MAKE_SEND 20 /* Must hold receive right */ - // #define MACH_MSGH_BITS_REMOTE(bits) \ - // ((bits) & MACH_MSGH_BITS_REMOTE_MASK) - // #define MACH_MSGH_BITS(remote, local) /* legacy */ \ - // ((remote) | ((local) << 8)) - public let MACH_MSG_TYPE_MAKE_SEND: UInt32 = 20 - public func MACH_MSGH_BITS_REMOTE(_ bits: UInt32) -> UInt32 { return bits & UInt32(MACH_MSGH_BITS_REMOTE_MASK) } - public func MACH_MSGH_BITS(_ remote: UInt32, _ local: UInt32) -> UInt32 { return ((remote) | ((local) << 8)) } - - // From /usr/include/mach/exception_types.h - // #define EXC_BAD_INSTRUCTION 2 /* Instruction failed */ - // #define EXC_MASK_BAD_INSTRUCTION (1 << EXC_BAD_INSTRUCTION) - public let EXC_BAD_INSTRUCTION: UInt32 = 2 - public let EXC_MASK_BAD_INSTRUCTION: UInt32 = 1 << EXC_BAD_INSTRUCTION - - // From /usr/include/mach/i386/thread_status.h - // #define x86_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \ - // ( sizeof (x86_thread_state64_t) / sizeof (int) )) - public let x86_THREAD_STATE64_COUNT = UInt32(MemoryLayout.size / MemoryLayout.size) - - public let EXC_TYPES_COUNT = 14 - public struct execTypesCountTuple { - // From /usr/include/mach/i386/exception.h - // #define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ - public var value: (T, T, T, T, T, T, T, T, T, T, T, T, T, T) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - public init() { - } - } - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist deleted file mode 100644 index f14cf1e..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Matt Gallagher. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h deleted file mode 100644 index f9dbedd..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Mach/CwlPreconditionTesting.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// CwlPreconditionTesting.h -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import - -//! Project version number for CwlUtils. -FOUNDATION_EXPORT double CwlPreconditionTestingVersionNumber; - -//! Project version string for CwlUtils. -FOUNDATION_EXPORT const unsigned char CwlAssertingTestingVersionString[]; - -#include "CwlMachBadInstructionHandler.h" -#include "CwlCatchException.h" diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h deleted file mode 100644 index 710afae..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Posix/CwlPreconditionTesting.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// CwlPreconditionTesting.h -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import - -//! Project version number for CwlUtils. -FOUNDATION_EXPORT double CwlPreconditionTestingVersionNumber; - -//! Project version string for CwlUtils. -FOUNDATION_EXPORT const unsigned char CwlAssertingTestingVersionString[]; diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c deleted file mode 100644 index 2334538..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c +++ /dev/null @@ -1,537 +0,0 @@ -/* - * IDENTIFICATION: - * stub generated Mon Jan 11 00:24:26 2016 - * with a MiG generated by bootstrap_cmds-93 - * OPTIONS: - */ - -/* Module mach_exc */ - -#if defined(__x86_64__) - -#define __MIG_check__Request__mach_exc_subsystem__ 1 - -#include "mach_excServer.h" - -#ifndef mig_internal -#define mig_internal static __inline__ -#endif /* mig_internal */ - -#ifndef mig_external -#define mig_external -#endif /* mig_external */ - -#if !defined(__MigTypeCheck) && defined(TypeCheck) -#define __MigTypeCheck TypeCheck /* Legacy setting */ -#endif /* !defined(__MigTypeCheck) */ - -#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_) -#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */ -#endif /* !defined(__MigKernelSpecificCode) */ - -#ifndef LimitCheck -#define LimitCheck 0 -#endif /* LimitCheck */ - -#ifndef min -#define min(a,b) ( ((a) < (b))? (a): (b) ) -#endif /* min */ - -#if !defined(_WALIGN_) -#define _WALIGN_(x) (((x) + 3) & ~3) -#endif /* !defined(_WALIGN_) */ - -#if !defined(_WALIGNSZ_) -#define _WALIGNSZ_(x) _WALIGN_(sizeof(x)) -#endif /* !defined(_WALIGNSZ_) */ - -#ifndef UseStaticTemplates -#define UseStaticTemplates 0 -#endif /* UseStaticTemplates */ - -#ifndef __DeclareRcvRpc -#define __DeclareRcvRpc(_NUM_, _NAME_) -#endif /* __DeclareRcvRpc */ - -#ifndef __BeforeRcvRpc -#define __BeforeRcvRpc(_NUM_, _NAME_) -#endif /* __BeforeRcvRpc */ - -#ifndef __AfterRcvRpc -#define __AfterRcvRpc(_NUM_, _NAME_) -#endif /* __AfterRcvRpc */ - -#ifndef __DeclareRcvSimple -#define __DeclareRcvSimple(_NUM_, _NAME_) -#endif /* __DeclareRcvSimple */ - -#ifndef __BeforeRcvSimple -#define __BeforeRcvSimple(_NUM_, _NAME_) -#endif /* __BeforeRcvSimple */ - -#ifndef __AfterRcvSimple -#define __AfterRcvSimple(_NUM_, _NAME_) -#endif /* __AfterRcvSimple */ - -#define novalue void - -#define msgh_request_port msgh_local_port -#define MACH_MSGH_BITS_REQUEST(bits) MACH_MSGH_BITS_LOCAL(bits) -#define msgh_reply_port msgh_remote_port -#define MACH_MSGH_BITS_REPLY(bits) MACH_MSGH_BITS_REMOTE(bits) - -#define MIG_RETURN_ERROR(X, code) {\ - ((mig_reply_error_t *)X)->RetCode = code;\ - ((mig_reply_error_t *)X)->NDR = NDR_record;\ - return;\ - } - -/* Forward Declarations */ - - -mig_internal novalue _Xmach_exception_raise - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -mig_internal novalue _Xmach_exception_raise_state - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -mig_internal novalue _Xmach_exception_raise_state_identity - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_t__defined) -#define __MIG_check__Request__mach_exception_raise_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_t(__attribute__((__unused__)) __Request__mach_exception_raise_t *In0P) -{ - - typedef __Request__mach_exception_raise_t __Request; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (In0P->msgh_body.msgh_descriptor_count != 2) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 16)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->thread.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->task.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined */ -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 16)) / 8 < In0P->codeCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 16) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise */ -mig_internal novalue _Xmach_exception_raise - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_t __Request; - typedef __Reply__mach_exception_raise_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_t__defined */ - - __DeclareRcvRpc(2405, "mach_exception_raise") - __BeforeRcvRpc(2405, "mach_exception_raise") - -#if defined(__MIG_check__Request__mach_exception_raise_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_t((__Request *)In0P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_t__defined) */ - - OutP->RetCode = catch_mach_exception_raise(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt); - - OutP->NDR = NDR_record; - - - __AfterRcvRpc(2405, "mach_exception_raise") -} - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) -#define __MIG_check__Request__mach_exception_raise_state_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_t **In1PP) -{ - - typedef __Request__mach_exception_raise_state_t __Request; - __Request *In1P; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - unsigned int msgh_size_delta; - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if ((In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined */ - msgh_size_delta = (8 * In0P->codeCnt); -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; - msgh_size -= msgh_size_delta; -#endif /* __MigTypeCheck */ - - *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined */ -#if __MigTypeCheck - if ( In1P->old_stateCnt > 224 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise_state */ -mig_internal novalue _Xmach_exception_raise_state - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_state_t __Request; - typedef __Reply__mach_exception_raise_state_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Request *In1P; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_state_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_state_t__defined */ - - __DeclareRcvRpc(2406, "mach_exception_raise_state") - __BeforeRcvRpc(2406, "mach_exception_raise_state") - -#if defined(__MIG_check__Request__mach_exception_raise_state_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_state_t((__Request *)In0P, (__Request **)&In1P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ - - OutP->new_stateCnt = 224; - - OutP->RetCode = catch_mach_exception_raise_state(In0P->Head.msgh_request_port, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); - if (OutP->RetCode != KERN_SUCCESS) { - MIG_RETURN_ERROR(OutP, OutP->RetCode); - } - - OutP->NDR = NDR_record; - - - OutP->flavor = In1P->flavor; - OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); - - __AfterRcvRpc(2406, "mach_exception_raise_state") -} - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) -#define __MIG_check__Request__mach_exception_raise_state_identity_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_identity_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t **In1PP) -{ - - typedef __Request__mach_exception_raise_state_identity_t __Request; - __Request *In1P; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - unsigned int msgh_size_delta; - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (In0P->msgh_body.msgh_descriptor_count != 2) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->thread.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->task.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined */ - msgh_size_delta = (8 * In0P->codeCnt); -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; - msgh_size -= msgh_size_delta; -#endif /* __MigTypeCheck */ - - *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined */ -#if __MigTypeCheck - if ( In1P->old_stateCnt > 224 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise_state_identity */ -mig_internal novalue _Xmach_exception_raise_state_identity - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_state_identity_t __Request; - typedef __Reply__mach_exception_raise_state_identity_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Request *In1P; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_state_identity_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_state_identity_t__defined */ - - __DeclareRcvRpc(2407, "mach_exception_raise_state_identity") - __BeforeRcvRpc(2407, "mach_exception_raise_state_identity") - -#if defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_state_identity_t((__Request *)In0P, (__Request **)&In1P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ - - OutP->new_stateCnt = 224; - - OutP->RetCode = catch_mach_exception_raise_state_identity(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); - if (OutP->RetCode != KERN_SUCCESS) { - MIG_RETURN_ERROR(OutP, OutP->RetCode); - } - - OutP->NDR = NDR_record; - - - OutP->flavor = In1P->flavor; - OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); - - __AfterRcvRpc(2407, "mach_exception_raise_state_identity") -} - - - -/* Description of this subsystem, for use in direct RPC */ -const struct catch_mach_exc_subsystem catch_mach_exc_subsystem = { - mach_exc_server_routine, - 2405, - 2408, - (mach_msg_size_t)sizeof(union __ReplyUnion__catch_mach_exc_subsystem), - (vm_address_t)0, - { - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise, 6, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_t)}, - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise_state, 9, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_t)}, - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise_state_identity, 11, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_identity_t)}, - } -}; - -mig_external boolean_t mach_exc_server - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - register mig_routine_t routine; - - OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0); - OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port; - /* Minimal size: routine() will update it if different */ - OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t); - OutHeadP->msgh_local_port = MACH_PORT_NULL; - OutHeadP->msgh_id = InHeadP->msgh_id + 100; - - if ((InHeadP->msgh_id > 2407) || (InHeadP->msgh_id < 2405) || - ((routine = catch_mach_exc_subsystem.routine[InHeadP->msgh_id - 2405].stub_routine) == 0)) { - ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record; - ((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID; - return FALSE; - } - (*routine) (InHeadP, OutHeadP); - return TRUE; -} - -mig_external mig_routine_t mach_exc_server_routine - (mach_msg_header_t *InHeadP) -{ - register int msgh_id; - - msgh_id = InHeadP->msgh_id - 2405; - - if ((msgh_id > 2) || (msgh_id < 0)) - return 0; - - return catch_mach_exc_subsystem.routine[msgh_id].stub_routine; -} - -#endif - diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h deleted file mode 100644 index 766ba11..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h +++ /dev/null @@ -1,298 +0,0 @@ -#ifndef _mach_exc_server_ -#define _mach_exc_server_ - -/* Module mach_exc */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* BEGIN VOUCHER CODE */ - -#ifndef KERNEL -#if defined(__has_include) -#if __has_include() -#ifndef USING_VOUCHERS -#define USING_VOUCHERS -#endif -#ifndef __VOUCHER_FORWARD_TYPE_DECLS__ -#define __VOUCHER_FORWARD_TYPE_DECLS__ -#ifdef __cplusplus -extern "C" { -#endif - extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import)); -#ifdef __cplusplus -} -#endif -#endif // __VOUCHER_FORWARD_TYPE_DECLS__ -#endif // __has_include() -#endif // __has_include -#endif // !KERNEL - -/* END VOUCHER CODE */ - - -#ifdef AUTOTEST -#ifndef FUNCTION_PTR_T -#define FUNCTION_PTR_T -typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); -typedef struct { - char *name; - function_ptr_t function; -} function_table_entry; -typedef function_table_entry *function_table_t; -#endif /* FUNCTION_PTR_T */ -#endif /* AUTOTEST */ - -#ifndef mach_exc_MSG_COUNT -#define mach_exc_MSG_COUNT 3 -#endif /* mach_exc_MSG_COUNT */ - -#include -#include -#include -#include - -#ifdef __BeforeMigServerHeader -__BeforeMigServerHeader -#endif /* __BeforeMigServerHeader */ - - -/* Routine mach_exception_raise */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise -( - mach_port_t exception_port, - mach_port_t thread, - mach_port_t task, - exception_type_t exception, - mach_exception_data_t code, - mach_msg_type_number_t codeCnt -); - -/* Routine mach_exception_raise_state */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise_state -( - mach_port_t exception_port, - exception_type_t exception, - const mach_exception_data_t code, - mach_msg_type_number_t codeCnt, - int *flavor, - const thread_state_t old_state, - mach_msg_type_number_t old_stateCnt, - thread_state_t new_state, - mach_msg_type_number_t *new_stateCnt -); - -/* Routine mach_exception_raise_state_identity */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise_state_identity -( - mach_port_t exception_port, - mach_port_t thread, - mach_port_t task, - exception_type_t exception, - mach_exception_data_t code, - mach_msg_type_number_t codeCnt, - int *flavor, - thread_state_t old_state, - mach_msg_type_number_t old_stateCnt, - thread_state_t new_state, - mach_msg_type_number_t *new_stateCnt -); - -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -boolean_t mach_exc_server( - mach_msg_header_t *InHeadP, - mach_msg_header_t *OutHeadP); - -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -mig_routine_t mach_exc_server_routine( - mach_msg_header_t *InHeadP); - - -/* Description of this subsystem, for use in direct RPC */ -extern const struct catch_mach_exc_subsystem { - mig_server_routine_t server; /* Server routine */ - mach_msg_id_t start; /* Min routine number */ - mach_msg_id_t end; /* Max routine number + 1 */ - unsigned int maxsize; /* Max msg size */ - vm_address_t reserved; /* Reserved */ - struct routine_descriptor /*Array of routine descriptors */ - routine[3]; -} catch_mach_exc_subsystem; - -/* typedefs for all requests */ - -#ifndef __Request__mach_exc_subsystem__defined -#define __Request__mach_exc_subsystem__defined - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - } __Request__mach_exception_raise_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - } __Request__mach_exception_raise_state_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - } __Request__mach_exception_raise_state_identity_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif -#endif /* !__Request__mach_exc_subsystem__defined */ - - -/* union of all requests */ - -#ifndef __RequestUnion__catch_mach_exc_subsystem__defined -#define __RequestUnion__catch_mach_exc_subsystem__defined -union __RequestUnion__catch_mach_exc_subsystem { - __Request__mach_exception_raise_t Request_mach_exception_raise; - __Request__mach_exception_raise_state_t Request_mach_exception_raise_state; - __Request__mach_exception_raise_state_identity_t Request_mach_exception_raise_state_identity; -}; -#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ -/* typedefs for all replies */ - -#ifndef __Reply__mach_exc_subsystem__defined -#define __Reply__mach_exc_subsystem__defined - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - } __Reply__mach_exception_raise_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; - } __Reply__mach_exception_raise_state_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; - } __Reply__mach_exception_raise_state_identity_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif -#endif /* !__Reply__mach_exc_subsystem__defined */ - - -/* union of all replies */ - -#ifndef __ReplyUnion__catch_mach_exc_subsystem__defined -#define __ReplyUnion__catch_mach_exc_subsystem__defined -union __ReplyUnion__catch_mach_exc_subsystem { - __Reply__mach_exception_raise_t Reply_mach_exception_raise; - __Reply__mach_exception_raise_state_t Reply_mach_exception_raise_state; - __Reply__mach_exception_raise_state_identity_t Reply_mach_exception_raise_state_identity; -}; -#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ - -#ifndef subsystem_to_name_map_mach_exc -#define subsystem_to_name_map_mach_exc \ - { "mach_exception_raise", 2405 },\ - { "mach_exception_raise_state", 2406 },\ - { "mach_exception_raise_state_identity", 2407 } -#endif - -#ifdef __AfterMigServerHeader -__AfterMigServerHeader -#endif /* __AfterMigServerHeader */ - -#endif /* _mach_exc_server_ */ diff --git a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/README.md b/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/README.md deleted file mode 100644 index a1a9a70..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Lib/CwlPreconditionTesting/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# CwlPreconditionTesting - -A Mach exception handler, written in Swift and Objective-C, that allows `EXC_BAD_INSTRUCTION` (as raised by Swift's `assertionFailure`/`preconditionFailure`/`fatalError`) to be caught and tested. - -For an extended discussion of this code, please see the Cocoa with Love article: - -[Partial functions in Swift, Part 2: Catching precondition failures](http://cocoawithlove.com/blog/2016/02/02/partial-functions-part-two-catching-precondition-failures.html) - -## Usage - -The short version is: - -1. `git clone https://github.com/mattgallagher/CwlPreconditionTesting.git` -2. drag the "CwlPreconditionTesting.xcodeproj" file into your project's file tree in Xcode -3. go to your testing target's Build Phase settings and under "Target Dependencies" press the "+" button and select the relevant "CwlPreconditionTesting" target ("_iOS" or "_OSX", depending on your testing target's SDK) -4. write `import CwlPreconditionTesting` at the top of any test file where you want to use `catchBadInstruction` (Swift should handle the linkage automatically when you do this) -5. use the `catchBadInstruction` function as shown in the [CwlCatchBadInstructionTests.swift tests file](https://github.com/mattgallagher/CwlPreconditionTesting/blob/master/CwlPreconditionTestingTests/CwlCatchBadInstructionTests.swift?ts=4) - -### Project details - -The "CwlPreconditionTesting.xcodeproj" contains two targets: - -* CwlPreconditionTesting_OSX -* CwlPreconditionTesting_iOS - -both build a framework named "CwlPreconditionTesting.framework". If you're linking manually, be certain to select the "CwlPreconditionTesting.framework" from the appropriate target. - -Remember: the iOS build is useful only in the simulator. All Mach exception handling code will be conditionally excluded in any device build. - -### Static inclusion - -Due to the complications associated with needing to call into and out of Objective-C, static inclusion in other projects is not a single file nor a quick drag and drop. There's at least 7 files and you'll need to add some project settings. - -All of the following files: - -* CwlCatchBadInstruction.swift -* CwlCatchBadInstruction.h -* CwlCatchBadInstruction.m -* CwlCatchException.swift -* CwlCatchException.h -* CwlCatchException.m - -and either: - -* $(SDKROOT)/usr/include/mach/mach_exc.defs -* mach_excServer.c - -need to be added to the testing target for OS X projects or iOS projects, respectively. - -Your target will also need to have the following macros defined in the "Apple LLVM - Preprocessing" → "Preprocessor Macros" build setting: - - PRODUCT_NAME=$(PRODUCT_NAME) - -This lets the Objective-C file generate the include directive for the autogenerated Swift header so it can call back into Swift during the Mach exception handler callbacks. This macro should stay in sync if you change the target name but if you do anything else in your project that changes the name of the autogenerated Swift header independent of the target name (or you want to add spaces or other command-line complications to the target name), you'll want to update "CwlCatchBadInstruction.m" directly with the correct include directive. - -Additionally, you'll need a standard Objective-C "Bridging header" for your testing target and it will need to include the following import statements: - -``` -#if defined(__x86_64__) -#import -#endif - -#import -``` - -### Using POSIX signals and setjmp/longjmp - -For comparison or for anyone running this code on a platform without Mach exceptions or the Objective-C runtime, I've added a proof-of-concept implementation of `catchBadInstruction` that uses a POSIX SIGILL `sigaction` and `setjmp`/`longjmp` to perform the throw. - -In Xcode, you can simply select the CwlPreconditionTesting_POSIX target (instead of the OSX or iOS targets). If you're building without Xcode: all you need is the CwlCatchBadInstructionPOSIX.swift file (compared to the Mach exception handler, the code is tiny doesn't have any weird Objective-C/MiG file dependencies). - -**Warning No. 1**: on OS X, this approach can't be used when lldb is attached since lldb's Mach exception handler blocks the SIGILL from ever occurring (I've disabled the "Debug Executable" setting for the tests in Xcode - re-enable it to witness the problem). - -**Warning No. 2**: if you're switching between the CwlPreconditionTesting_OSX and CwlPreconditionTesting_POSIX targets, Xcode (as of Xcode 7.2.1) will not detect the change and will not remove the old framework correctly so you'll need to *clean your project* otherwise the old framework will hang around. - -Additional problems in decreasing severity include: - -* the signal handler is whole process (rather than correctly scoped to the thread where the "catch" occurs) -* the signal handler doesn't deal with re-entrancy whereas the mach exception handler remains deterministic in the face of multiple fatal errors -* the signal handler overwrites the "[red zone](https://en.wikipedia.org/wiki/Red_zone_(computing))" which is technically frowned upon in signal handlers (although unlikely to cause problems here) diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift deleted file mode 100644 index 2e58fdf..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift +++ /dev/null @@ -1,17 +0,0 @@ -import Foundation - -/// Protocol for the assertion handler that Nimble uses for all expectations. -public protocol AssertionHandler { - func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) -} - -/// Global backing interface for assertions that Nimble creates. -/// Defaults to a private test handler that passes through to XCTest. -/// -/// If XCTest is not available, you must assign your own assertion handler -/// before using any matchers, otherwise Nimble will abort the program. -/// -/// @see AssertionHandler -public var NimbleAssertionHandler: AssertionHandler = { () -> AssertionHandler in - return isXCTestAvailable() ? NimbleXCTestHandler() : NimbleXCTestUnavailableHandler() -}() diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift deleted file mode 100644 index 94a9030..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift +++ /dev/null @@ -1,19 +0,0 @@ -/// AssertionDispatcher allows multiple AssertionHandlers to receive -/// assertion messages. -/// -/// @warning Does not fully dispatch if one of the handlers raises an exception. -/// This is possible with XCTest-based assertion handlers. -/// -public class AssertionDispatcher: AssertionHandler { - let handlers: [AssertionHandler] - - public init(handlers: [AssertionHandler]) { - self.handlers = handlers - } - - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - for handler in handlers { - handler.assert(assertion, message: message, location: location) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift deleted file mode 100644 index 740c392..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift +++ /dev/null @@ -1,100 +0,0 @@ -import Foundation - -/// A data structure that stores information about an assertion when -/// AssertionRecorder is set as the Nimble assertion handler. -/// -/// @see AssertionRecorder -/// @see AssertionHandler -public struct AssertionRecord: CustomStringConvertible { - /// Whether the assertion succeeded or failed - public let success: Bool - /// The failure message the assertion would display on failure. - public let message: FailureMessage - /// The source location the expectation occurred on. - public let location: SourceLocation - - public var description: String { - return "AssertionRecord { success=\(success), message='\(message.stringValue)', location=\(location) }" - } -} - -/// An AssertionHandler that silently records assertions that Nimble makes. -/// This is useful for testing failure messages for matchers. -/// -/// @see AssertionHandler -public class AssertionRecorder: AssertionHandler { - /// All the assertions that were captured by this recorder - public var assertions = [AssertionRecord]() - - public init() {} - - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - assertions.append( - AssertionRecord( - success: assertion, - message: message, - location: location)) - } -} - -/// Allows you to temporarily replace the current Nimble assertion handler with -/// the one provided for the scope of the closure. -/// -/// Once the closure finishes, then the original Nimble assertion handler is restored. -/// -/// @see AssertionHandler -public func withAssertionHandler(_ tempAssertionHandler: AssertionHandler, closure: () throws -> Void) { - let environment = NimbleEnvironment.activeInstance - let oldRecorder = environment.assertionHandler - let capturer = NMBExceptionCapture(handler: nil, finally: ({ - environment.assertionHandler = oldRecorder - })) - environment.assertionHandler = tempAssertionHandler - capturer.tryBlock { - try! closure() - } -} - -/// Captures expectations that occur in the given closure. Note that all -/// expectations will still go through to the default Nimble handler. -/// -/// This can be useful if you want to gather information about expectations -/// that occur within a closure. -/// -/// @param silently expectations are no longer send to the default Nimble -/// assertion handler when this is true. Defaults to false. -/// -/// @see gatherFailingExpectations -public func gatherExpectations(silently: Bool = false, closure: @escaping () -> Void) -> [AssertionRecord] { - let previousRecorder = NimbleEnvironment.activeInstance.assertionHandler - let recorder = AssertionRecorder() - let handlers: [AssertionHandler] - - if silently { - handlers = [recorder] - } else { - handlers = [recorder, previousRecorder] - } - - let dispatcher = AssertionDispatcher(handlers: handlers) - withAssertionHandler(dispatcher, closure: closure) - return recorder.assertions -} - -/// Captures failed expectations that occur in the given closure. Note that all -/// expectations will still go through to the default Nimble handler. -/// -/// This can be useful if you want to gather information about failed -/// expectations that occur within a closure. -/// -/// @param silently expectations are no longer send to the default Nimble -/// assertion handler when this is true. Defaults to false. -/// -/// @see gatherExpectations -/// @see raiseException source for an example use case. -public func gatherFailingExpectations(silently: Bool = false, closure: @escaping () -> Void) -> [AssertionRecord] { - let assertions = gatherExpectations(silently: silently, closure: closure) - return assertions.filter { assertion in - !assertion.success - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift deleted file mode 100644 index 1c51cd7..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift +++ /dev/null @@ -1,131 +0,0 @@ -import Foundation - -#if _runtime(_ObjC) - -internal struct ObjCMatcherWrapper: Matcher { - let matcher: NMBMatcher - - func matches(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - return matcher.matches( - ({ try! actualExpression.evaluate() }), - failureMessage: failureMessage, - location: actualExpression.location) - } - - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - return matcher.doesNotMatch( - ({ try! actualExpression.evaluate() }), - failureMessage: failureMessage, - location: actualExpression.location) - } -} - -// Equivalent to Expectation, but for Nimble's Objective-C interface -public class NMBExpectation: NSObject { - internal let _actualBlock: () -> NSObject! - internal var _negative: Bool - internal let _file: FileString - internal let _line: UInt - internal var _timeout: TimeInterval = 1.0 - - public init(actualBlock: @escaping () -> NSObject!, negative: Bool, file: FileString, line: UInt) { - self._actualBlock = actualBlock - self._negative = negative - self._file = file - self._line = line - } - - private var expectValue: Expectation { - return expect(_file, line: _line) { - self._actualBlock() as NSObject? - } - } - - public var withTimeout: (TimeInterval) -> NMBExpectation { - return ({ timeout in self._timeout = timeout - return self - }) - } - - public var to: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.to(ObjCMatcherWrapper(matcher: matcher)) - }) - } - - public var toWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.to(ObjCMatcherWrapper(matcher: matcher), description: description) - }) - } - - public var toNot: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.toNot( - ObjCMatcherWrapper(matcher: matcher) - ) - }) - } - - public var toNotWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.toNot( - ObjCMatcherWrapper(matcher: matcher), description: description - ) - }) - } - - public var notTo: (NMBMatcher) -> Void { return toNot } - - public var notToWithDescription: (NMBMatcher, String) -> Void { return toNotWithDescription } - - public var toEventually: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.toEventually( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: nil - ) - }) - } - - public var toEventuallyWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.toEventually( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: description - ) - }) - } - - public var toEventuallyNot: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.toEventuallyNot( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: nil - ) - }) - } - - public var toEventuallyNotWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.toEventuallyNot( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: description - ) - }) - } - - public var toNotEventually: (NMBMatcher) -> Void { return toEventuallyNot } - - public var toNotEventuallyWithDescription: (NMBMatcher, String) -> Void { return toEventuallyNotWithDescription } - - public class func failWithMessage(_ message: String, file: FileString, line: UInt) { - fail(message, location: SourceLocation(file: file, line: line)) - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift deleted file mode 100644 index 19a4567..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift +++ /dev/null @@ -1,81 +0,0 @@ -import Foundation - -#if _runtime(_ObjC) - -public typealias MatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage) -> Bool -public typealias FullMatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage, _ shouldNotMatch: Bool) -> Bool - -public class NMBObjCMatcher: NSObject, NMBMatcher { - let _match: MatcherBlock - let _doesNotMatch: MatcherBlock - let canMatchNil: Bool - - public init(canMatchNil: Bool, matcher: @escaping MatcherBlock, notMatcher: @escaping MatcherBlock) { - self.canMatchNil = canMatchNil - self._match = matcher - self._doesNotMatch = notMatcher - } - - public convenience init(matcher: @escaping MatcherBlock) { - self.init(canMatchNil: true, matcher: matcher) - } - - public convenience init(canMatchNil: Bool, matcher: @escaping MatcherBlock) { - self.init(canMatchNil: canMatchNil, matcher: matcher, notMatcher: ({ actualExpression, failureMessage in - return !matcher(actualExpression, failureMessage) - })) - } - - public convenience init(matcher: @escaping FullMatcherBlock) { - self.init(canMatchNil: true, matcher: matcher) - } - - public convenience init(canMatchNil: Bool, matcher: @escaping FullMatcherBlock) { - self.init(canMatchNil: canMatchNil, matcher: ({ actualExpression, failureMessage in - return matcher(actualExpression, failureMessage, false) - }), notMatcher: ({ actualExpression, failureMessage in - return matcher(actualExpression, failureMessage, true) - })) - } - - private func canMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - do { - if !canMatchNil { - if try actualExpression.evaluate() == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - return false - } - } - } catch let error { - failureMessage.actualValue = "an unexpected error thrown: \(error)" - return false - } - return true - } - - public func matches(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let expr = Expression(expression: actualBlock, location: location) - let result = _match( - expr, - failureMessage) - if self.canMatch(Expression(expression: actualBlock, location: location), failureMessage: failureMessage) { - return result - } else { - return false - } - } - - public func doesNotMatch(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let expr = Expression(expression: actualBlock, location: location) - let result = _doesNotMatch( - expr, - failureMessage) - if self.canMatch(Expression(expression: actualBlock, location: location), failureMessage: failureMessage) { - return result - } else { - return false - } - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift deleted file mode 100644 index a55cb27..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift +++ /dev/null @@ -1,45 +0,0 @@ -import Dispatch -import Foundation - -/// "Global" state of Nimble is stored here. Only DSL functions should access / be aware of this -/// class' existance -internal class NimbleEnvironment { - static var activeInstance: NimbleEnvironment { - get { - let env = Thread.current.threadDictionary["NimbleEnvironment"] - if let env = env as? NimbleEnvironment { - return env - } else { - let newEnv = NimbleEnvironment() - self.activeInstance = newEnv - return newEnv - } - } - set { - Thread.current.threadDictionary["NimbleEnvironment"] = newValue - } - } - - // TODO: eventually migrate the global to this environment value - var assertionHandler: AssertionHandler { - get { return NimbleAssertionHandler } - set { NimbleAssertionHandler = newValue } - } - - var suppressTVOSAssertionWarning: Bool = false - var awaiter: Awaiter - - init() { - let timeoutQueue: DispatchQueue - if #available(OSX 10.10, *) { - timeoutQueue = DispatchQueue.global(qos: .userInitiated) - } else { - timeoutQueue = DispatchQueue.global(priority: .high) - } - - awaiter = Awaiter( - waitLock: AssertionWaitLock(), - asyncQueue: .main, - timeoutQueue: timeoutQueue) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift deleted file mode 100644 index 78e6dd9..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift +++ /dev/null @@ -1,76 +0,0 @@ -import Foundation -import XCTest - -/// Default handler for Nimble. This assertion handler passes failures along to -/// XCTest. -public class NimbleXCTestHandler: AssertionHandler { - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - if !assertion { - recordFailure("\(message.stringValue)\n", location: location) - } - } -} - -/// Alternative handler for Nimble. This assertion handler passes failures along -/// to XCTest by attempting to reduce the failure message size. -public class NimbleShortXCTestHandler: AssertionHandler { - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - if !assertion { - let msg: String - if let actual = message.actualValue { - msg = "got: \(actual) \(message.postfixActual)" - } else { - msg = "expected \(message.to) \(message.postfixMessage)" - } - recordFailure("\(msg)\n", location: location) - } - } -} - -/// Fallback handler in case XCTest is unavailable. This assertion handler will abort -/// the program if it is invoked. -class NimbleXCTestUnavailableHandler: AssertionHandler { - func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - fatalError("XCTest is not available and no custom assertion handler was configured. Aborting.") - } -} - -#if !SWIFT_PACKAGE -/// Helper class providing access to the currently executing XCTestCase instance, if any -@objc final internal class CurrentTestCaseTracker: NSObject, XCTestObservation { - @objc static let sharedInstance = CurrentTestCaseTracker() - - private(set) var currentTestCase: XCTestCase? - - @objc func testCaseWillStart(_ testCase: XCTestCase) { - currentTestCase = testCase - } - - @objc func testCaseDidFinish(_ testCase: XCTestCase) { - currentTestCase = nil - } -} -#endif - -func isXCTestAvailable() -> Bool { -#if _runtime(_ObjC) - // XCTest is weakly linked and so may not be present - return NSClassFromString("XCTestCase") != nil -#else - return true -#endif -} - -private func recordFailure(_ message: String, location: SourceLocation) { -#if SWIFT_PACKAGE - XCTFail("\(message)", file: location.file, line: location.line) -#else - if let testCase = CurrentTestCaseTracker.sharedInstance.currentTestCase { - testCase.recordFailure(withDescription: message, inFile: location.file, atLine: location.line, expected: true) - } else { - let msg = "Attempted to report a test failure to XCTest while no test case was running. " + - "The failure was:\n\"\(message)\"\nIt occurred at: \(location.file):\(location.line)" - NSException(name: .internalInconsistencyException, reason: msg, userInfo: nil).raise() - } -#endif -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift deleted file mode 100644 index dd02aa4..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift +++ /dev/null @@ -1,31 +0,0 @@ -import Foundation - -#if !_runtime(_ObjC) -// swift-corelibs-foundation doesn't provide NSException at all, so provide a dummy -class NSException {} -#endif - -// NOTE: This file is not intended to be included in the Xcode project. It -// is picked up by the Swift Package Manager during its build process. - -/// A dummy reimplementation of the `NMBExceptionCapture` class to serve -/// as a stand-in for build and runtime environments that don't support -/// Objective C. -internal class ExceptionCapture { - let finally: (() -> Void)? - - init(handler: ((NSException) -> Void)?, finally: (() -> Void)?) { - self.finally = finally - } - - func tryBlock(_ unsafeBlock: (() -> Void)) { - // We have no way of handling Objective C exceptions in Swift, - // so we just go ahead and run the unsafeBlock as-is - unsafeBlock() - - finally?() - } -} - -/// Compatibility with the actual Objective-C implementation -typealias NMBExceptionCapture = ExceptionCapture diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift deleted file mode 100644 index fdf4508..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/DSL+Wait.swift +++ /dev/null @@ -1,98 +0,0 @@ -import Dispatch -import Foundation - -private enum ErrorResult { - case exception(NSException) - case error(Error) - case none -} - -/// Only classes, protocols, methods, properties, and subscript declarations can be -/// bridges to Objective-C via the @objc keyword. This class encapsulates callback-style -/// asynchronous waiting logic so that it may be called from Objective-C and Swift. -internal class NMBWait: NSObject { - internal class func until( - timeout: TimeInterval, - file: FileString = #file, - line: UInt = #line, - action: @escaping (@escaping () -> Void) -> Void) { - return throwableUntil(timeout: timeout, file: file, line: line) { done in - action(done) - } - } - - // Using a throwable closure makes this method not objc compatible. - internal class func throwableUntil( - timeout: TimeInterval, - file: FileString = #file, - line: UInt = #line, - action: @escaping (@escaping () -> Void) throws -> Void) { - let awaiter = NimbleEnvironment.activeInstance.awaiter - let leeway = timeout / 2.0 - let result = awaiter.performBlock(file: file, line: line) { (done: @escaping (ErrorResult) -> Void) throws -> Void in - DispatchQueue.main.async { - let capture = NMBExceptionCapture( - handler: ({ exception in - done(.exception(exception)) - }), - finally: ({ }) - ) - capture.tryBlock { - do { - try action { - done(.none) - } - } catch let e { - done(.error(e)) - } - } - } - }.timeout(timeout, forcefullyAbortTimeout: leeway).wait("waitUntil(...)", file: file, line: line) - - switch result { - case .incomplete: internalError("Reached .incomplete state for waitUntil(...).") - case .blockedRunLoop: - fail(blockedRunLoopErrorMessageFor("-waitUntil()", leeway: leeway), - file: file, line: line) - case .timedOut: - let pluralize = (timeout == 1 ? "" : "s") - fail("Waited more than \(timeout) second\(pluralize)", file: file, line: line) - case let .raisedException(exception): - fail("Unexpected exception raised: \(exception)") - case let .errorThrown(error): - fail("Unexpected error thrown: \(error)") - case .completed(.exception(let exception)): - fail("Unexpected exception raised: \(exception)") - case .completed(.error(let error)): - fail("Unexpected error thrown: \(error)") - case .completed(.none): // success - break - } - } - - #if SWIFT_PACKAGE - internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) { - until(timeout: 1, file: file, line: line, action: action) - } - #else - @objc(untilFile:line:action:) - internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) { - until(timeout: 1, file: file, line: line, action: action) - } - #endif -} - -internal func blockedRunLoopErrorMessageFor(_ fnName: String, leeway: TimeInterval) -> String { - return "\(fnName) timed out but was unable to run the timeout handler because the main thread is unresponsive (\(leeway) seconds is allow after the wait times out). Conditions that may cause this include processing blocking IO on the main thread, calls to sleep(), deadlocks, and synchronous IPC. Nimble forcefully stopped run loop which may cause future failures in test run." -} - -/// Wait asynchronously until the done closure is called or the timeout has been reached. -/// -/// @discussion -/// Call the done() closure to indicate the waiting has completed. -/// -/// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function -/// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. -public func waitUntil(timeout: TimeInterval = 1, file: FileString = #file, line: UInt = #line, action: @escaping (@escaping () -> Void) -> Void) { - NMBWait.until(timeout: timeout, file: file, line: line, action: action) -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/DSL.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/DSL.swift deleted file mode 100644 index 7ebd684..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/DSL.swift +++ /dev/null @@ -1,64 +0,0 @@ -import Foundation - -/// Make an expectation on a given actual value. The value given is lazily evaluated. -public func expect(_ expression: @autoclosure @escaping () throws -> T?, file: FileString = #file, line: UInt = #line) -> Expectation { - return Expectation( - expression: Expression( - expression: expression, - location: SourceLocation(file: file, line: line), - isClosure: true)) -} - -/// Make an expectation on a given actual value. The closure is lazily invoked. -public func expect(_ file: FileString = #file, line: UInt = #line, expression: @escaping () throws -> T?) -> Expectation { - return Expectation( - expression: Expression( - expression: expression, - location: SourceLocation(file: file, line: line), - isClosure: true)) -} - -/// Always fails the test with a message and a specified location. -public func fail(_ message: String, location: SourceLocation) { - let handler = NimbleEnvironment.activeInstance.assertionHandler - handler.assert(false, message: FailureMessage(stringValue: message), location: location) -} - -/// Always fails the test with a message. -public func fail(_ message: String, file: FileString = #file, line: UInt = #line) { - fail(message, location: SourceLocation(file: file, line: line)) -} - -/// Always fails the test. -public func fail(_ file: FileString = #file, line: UInt = #line) { - fail("fail() always fails", file: file, line: line) -} - -/// Like Swift's precondition(), but raises NSExceptions instead of sigaborts -internal func nimblePrecondition( - _ expr: @autoclosure() -> Bool, - _ name: @autoclosure() -> String, - _ message: @autoclosure() -> String, - file: StaticString = #file, - line: UInt = #line) { - let result = expr() - if !result { -#if _runtime(_ObjC) - let e = NSException( - name: NSExceptionName(name()), - reason: message(), - userInfo: nil) - e.raise() -#else - preconditionFailure("\(name()) - \(message())", file: file, line: line) -#endif - } -} - -internal func internalError(_ msg: String, file: FileString = #file, line: UInt = #line) -> Never { - fatalError( - "Nimble Bug Found: \(msg) at \(file):\(line).\n" + - "Please file a bug to Nimble: https://github.com/Quick/Nimble/issues with the " + - "code snippet that caused this error." - ) -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift deleted file mode 100644 index 5f8ebe1..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Expectation.swift +++ /dev/null @@ -1,131 +0,0 @@ -import Foundation - -// Deprecated -internal func expressionMatches(_ expression: Expression, matcher: U, to: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T { - let msg = FailureMessage() - msg.userDescription = description - msg.to = to - do { - let pass = try matcher.matches(expression, failureMessage: msg) - if msg.actualValue == "" { - msg.actualValue = "<\(stringify(try expression.evaluate()))>" - } - return (pass, msg) - } catch let error { - msg.stringValue = "unexpected error thrown: <\(error)>" - return (false, msg) - } -} - -// Deprecated -internal func expressionDoesNotMatch(_ expression: Expression, matcher: U, toNot: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T { - let msg = FailureMessage() - msg.userDescription = description - msg.to = toNot - do { - let pass = try matcher.doesNotMatch(expression, failureMessage: msg) - if msg.actualValue == "" { - msg.actualValue = "<\(stringify(try expression.evaluate()))>" - } - return (pass, msg) - } catch let error { - msg.stringValue = "unexpected error thrown: <\(error)>" - return (false, msg) - } -} - -internal func execute(_ expression: Expression, _ style: ExpectationStyle, _ predicate: Predicate, to: String, description: String?, captureExceptions: Bool = true) -> (Bool, FailureMessage) { - func run() -> (Bool, FailureMessage) { - let msg = FailureMessage() - msg.userDescription = description - msg.to = to - do { - let result = try predicate.satisfies(expression) - result.message.update(failureMessage: msg) - if msg.actualValue == "" { - msg.actualValue = "<\(stringify(try expression.evaluate()))>" - } - return (result.toBoolean(expectation: style), msg) - } catch let error { - msg.stringValue = "unexpected error thrown: <\(error)>" - return (false, msg) - } - } - - var result: (Bool, FailureMessage) = (false, FailureMessage()) - if captureExceptions { - let capture = NMBExceptionCapture(handler: ({ exception -> Void in - let msg = FailureMessage() - msg.stringValue = "unexpected exception raised: \(exception)" - result = (false, msg) - }), finally: nil) - capture.tryBlock { - result = run() - } - } else { - result = run() - } - - return result -} - -public struct Expectation { - - public let expression: Expression - - public func verify(_ pass: Bool, _ message: FailureMessage) { - let handler = NimbleEnvironment.activeInstance.assertionHandler - handler.assert(pass, message: message, location: expression.location) - } - - ////////////////// OLD API ///////////////////// - - /// DEPRECATED: Tests the actual value using a matcher to match. - public func to(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T { - let (pass, msg) = expressionMatches(expression, matcher: matcher, to: "to", description: description) - verify(pass, msg) - } - - /// DEPRECATED: Tests the actual value using a matcher to not match. - public func toNot(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T { - let (pass, msg) = expressionDoesNotMatch(expression, matcher: matcher, toNot: "to not", description: description) - verify(pass, msg) - } - - /// DEPRECATED: Tests the actual value using a matcher to not match. - /// - /// Alias to toNot(). - public func notTo(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T { - toNot(matcher, description: description) - } - - ////////////////// NEW API ///////////////////// - - /// Tests the actual value using a matcher to match. - public func to(_ predicate: Predicate, description: String? = nil) { - let (pass, msg) = execute(expression, .toMatch, predicate, to: "to", description: description) - verify(pass, msg) - } - - /// Tests the actual value using a matcher to not match. - public func toNot(_ predicate: Predicate, description: String? = nil) { - let (pass, msg) = execute(expression, .toNotMatch, predicate, to: "to not", description: description) - verify(pass, msg) - } - - /// Tests the actual value using a matcher to not match. - /// - /// Alias to toNot(). - public func notTo(_ predicate: Predicate, description: String? = nil) { - toNot(predicate, description: description) - } - - // see: - // - AsyncMatcherWrapper for extension - // - NMBExpectation for Objective-C interface -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift deleted file mode 100644 index 75a4f6c..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/ExpectationMessage.swift +++ /dev/null @@ -1,222 +0,0 @@ -public indirect enum ExpectationMessage { - // --- Primary Expectations --- - /// includes actual value in output ("expected to , got ") - case expectedActualValueTo(/* message: */ String) - /// uses a custom actual value string in output ("expected to , got ") - case expectedCustomValueTo(/* message: */ String, /* actual: */ String) - /// excludes actual value in output ("expected to ") - case expectedTo(/* message: */ String) - /// allows any free-form message ("") - case fail(/* message: */ String) - - // --- Composite Expectations --- - // Generally, you'll want the methods, appended(message:) and appended(details:) instead. - - /// Not Fully Implemented Yet. - case prepends(/* Prepended Message */ String, ExpectationMessage) - - /// appends after an existing message (" (use beNil() to match nils)") - case appends(ExpectationMessage, /* Appended Message */ String) - - /// provides long-form multi-line explainations ("\n\n") - case details(ExpectationMessage, String) - - internal var sampleMessage: String { - let asStr = toString(actual: "", expected: "expected", to: "to") - let asFailureMessage = FailureMessage() - update(failureMessage: asFailureMessage) - return "(toString(actual:expected:to:) -> \(asStr) || update(failureMessage:) -> \(asFailureMessage.stringValue))" - } - - /// Returns the smallest message after the "expected to" string that summarizes the error. - /// - /// Returns the message part from ExpectationMessage, ignoring all .appends and .details. - public var expectedMessage: String { - switch self { - case let .fail(msg): - return msg - case let .expectedTo(msg): - return msg - case let .expectedActualValueTo(msg): - return msg - case let .expectedCustomValueTo(msg, _): - return msg - case let .prepends(_, expectation): - return expectation.expectedMessage - case let .appends(expectation, _): - return expectation.expectedMessage - case let .details(expectation, _): - return expectation.expectedMessage - } - } - - /// Appends a message after the primary expectation message - public func appended(message: String) -> ExpectationMessage { - switch self { - case .fail, .expectedTo, .expectedActualValueTo, .expectedCustomValueTo, .appends, .prepends: - return .appends(self, message) - case let .details(expectation, msg): - return .details(expectation.appended(message: message), msg) - } - } - - /// Appends a message hinting to use beNil() for when the actual value given was nil. - public func appendedBeNilHint() -> ExpectationMessage { - return appended(message: " (use beNil() to match nils)") - } - - /// Appends a detailed (aka - multiline) message after the primary expectation message - /// Detailed messages will be placed after .appended(message:) calls. - public func appended(details: String) -> ExpectationMessage { - return .details(self, details) - } - - internal func visitLeafs(_ f: (ExpectationMessage) -> ExpectationMessage) -> ExpectationMessage { - switch self { - case .fail, .expectedTo, .expectedActualValueTo, .expectedCustomValueTo: - return f(self) - case let .prepends(msg, expectation): - return .prepends(msg, expectation.visitLeafs(f)) - case let .appends(expectation, msg): - return .appends(expectation.visitLeafs(f), msg) - case let .details(expectation, msg): - return .details(expectation.visitLeafs(f), msg) - } - } - - /// Replaces a primary expectation with one returned by f. Preserves all composite expectations - /// that were built upon it (aka - all appended(message:) and appended(details:). - public func replacedExpectation(_ f: @escaping (ExpectationMessage) -> ExpectationMessage) -> ExpectationMessage { - func walk(_ msg: ExpectationMessage) -> ExpectationMessage { - switch msg { - case .fail, .expectedTo, .expectedActualValueTo, .expectedCustomValueTo: - return f(msg) - default: - return msg - } - } - return visitLeafs(walk) - } - - /// Wraps a primary expectation with text before and after it. - /// Alias to prepended(message: before).appended(message: after) - public func wrappedExpectation(before: String, after: String) -> ExpectationMessage { - return prepended(expectation: before).appended(message: after) - } - - /// Prepends a message by modifying the primary expectation - public func prepended(expectation message: String) -> ExpectationMessage { - func walk(_ msg: ExpectationMessage) -> ExpectationMessage { - switch msg { - case let .expectedTo(msg): - return .expectedTo(message + msg) - case let .expectedActualValueTo(msg): - return .expectedActualValueTo(message + msg) - case let .expectedCustomValueTo(msg, actual): - return .expectedCustomValueTo(message + msg, actual) - default: - return msg.visitLeafs(walk) - } - } - return visitLeafs(walk) - } - - // TODO: test & verify correct behavior - internal func prepended(message: String) -> ExpectationMessage { - return .prepends(message, self) - } - - /// Converts the tree of ExpectationMessages into a final built string. - public func toString(actual: String, expected: String = "expected", to: String = "to") -> String { - switch self { - case let .fail(msg): - return msg - case let .expectedTo(msg): - return "\(expected) \(to) \(msg)" - case let .expectedActualValueTo(msg): - return "\(expected) \(to) \(msg), got \(actual)" - case let .expectedCustomValueTo(msg, actual): - return "\(expected) \(to) \(msg), got \(actual)" - case let .prepends(msg, expectation): - return "\(msg)\(expectation.toString(actual: actual, expected: expected, to: to))" - case let .appends(expectation, msg): - return "\(expectation.toString(actual: actual, expected: expected, to: to))\(msg)" - case let .details(expectation, msg): - return "\(expectation.toString(actual: actual, expected: expected, to: to))\n\n\(msg)" - } - } - - // Backwards compatibility: converts ExpectationMessage tree to FailureMessage - internal func update(failureMessage: FailureMessage) { - switch self { - case let .fail(msg): - failureMessage.stringValue = msg - case let .expectedTo(msg): - failureMessage.actualValue = nil - failureMessage.postfixMessage = msg - case let .expectedActualValueTo(msg): - failureMessage.postfixMessage = msg - case let .expectedCustomValueTo(msg, actual): - failureMessage.postfixMessage = msg - failureMessage.actualValue = actual - case let .prepends(msg, expectation): - expectation.update(failureMessage: failureMessage) - if let desc = failureMessage.userDescription { - failureMessage.userDescription = "\(msg)\(desc)" - } else { - failureMessage.userDescription = msg - } - case let .appends(expectation, msg): - expectation.update(failureMessage: failureMessage) - if failureMessage.hasOverriddenStringValue { - failureMessage.stringValue += "\(msg)" - } else { - if failureMessage.actualValue != nil { - failureMessage.postfixActual += msg - } else { - failureMessage.postfixMessage += msg - } - } - case let .details(expectation, msg): - expectation.update(failureMessage: failureMessage) - if failureMessage.hasOverriddenStringValue { - if let desc = failureMessage.userDescription { - failureMessage.stringValue = "\(desc)\n\(failureMessage.stringValue)" - } - failureMessage.stringValue += "\n\(msg)" - } else { - if let desc = failureMessage.userDescription { - failureMessage.userDescription = desc - } - failureMessage.extendedMessage = msg - } - } - } -} - -extension FailureMessage { - var toExpectationMessage: ExpectationMessage { - let defaultMsg = FailureMessage() - if expected != defaultMsg.expected || _stringValueOverride != nil { - return .fail(stringValue) - } - - var msg: ExpectationMessage = .fail(userDescription ?? "") - if actualValue != "" && actualValue != nil { - msg = .expectedCustomValueTo(postfixMessage, actualValue ?? "") - } else if postfixMessage != defaultMsg.postfixMessage { - if actualValue == nil { - msg = .expectedTo(postfixMessage) - } else { - msg = .expectedActualValueTo(postfixMessage) - } - } - if postfixActual != defaultMsg.postfixActual { - msg = .appends(msg, postfixActual) - } - if let m = extendedMessage { - msg = .details(msg, m) - } - return msg - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift deleted file mode 100644 index f7afffe..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Expression.swift +++ /dev/null @@ -1,90 +0,0 @@ -import Foundation - -// Memoizes the given closure, only calling the passed -// closure once; even if repeat calls to the returned closure -internal func memoizedClosure(_ closure: @escaping () throws -> T) -> (Bool) throws -> T { - var cache: T? - return ({ withoutCaching in - if withoutCaching || cache == nil { - cache = try closure() - } - return cache! - }) -} - -/// Expression represents the closure of the value inside expect(...). -/// Expressions are memoized by default. This makes them safe to call -/// evaluate() multiple times without causing a re-evaluation of the underlying -/// closure. -/// -/// @warning Since the closure can be any code, Objective-C code may choose -/// to raise an exception. Currently, Expression does not memoize -/// exception raising. -/// -/// This provides a common consumable API for matchers to utilize to allow -/// Nimble to change internals to how the captured closure is managed. -public struct Expression { - internal let _expression: (Bool) throws -> T? - internal let _withoutCaching: Bool - public let location: SourceLocation - public let isClosure: Bool - - /// Creates a new expression struct. Normally, expect(...) will manage this - /// creation process. The expression is memoized. - /// - /// @param expression The closure that produces a given value. - /// @param location The source location that this closure originates from. - /// @param isClosure A bool indicating if the captured expression is a - /// closure or internally produced closure. Some matchers - /// may require closures. For example, toEventually() - /// requires an explicit closure. This gives Nimble - /// flexibility if @autoclosure behavior changes between - /// Swift versions. Nimble internals always sets this true. - public init(expression: @escaping () throws -> T?, location: SourceLocation, isClosure: Bool = true) { - self._expression = memoizedClosure(expression) - self.location = location - self._withoutCaching = false - self.isClosure = isClosure - } - - /// Creates a new expression struct. Normally, expect(...) will manage this - /// creation process. - /// - /// @param expression The closure that produces a given value. - /// @param location The source location that this closure originates from. - /// @param withoutCaching Indicates if the struct should memoize the given - /// closure's result. Subsequent evaluate() calls will - /// not call the given closure if this is true. - /// @param isClosure A bool indicating if the captured expression is a - /// closure or internally produced closure. Some matchers - /// may require closures. For example, toEventually() - /// requires an explicit closure. This gives Nimble - /// flexibility if @autoclosure behavior changes between - /// Swift versions. Nimble internals always sets this true. - public init(memoizedExpression: @escaping (Bool) throws -> T?, location: SourceLocation, withoutCaching: Bool, isClosure: Bool = true) { - self._expression = memoizedExpression - self.location = location - self._withoutCaching = withoutCaching - self.isClosure = isClosure - } - - /// Returns a new Expression from the given expression. Identical to a map() - /// on this type. This should be used only to typecast the Expression's - /// closure value. - /// - /// The returned expression will preserve location and isClosure. - /// - /// @param block The block that can cast the current Expression value to a - /// new type. - public func cast(_ block: @escaping (T?) throws -> U?) -> Expression { - return Expression(expression: ({ try block(self.evaluate()) }), location: self.location, isClosure: self.isClosure) - } - - public func evaluate() throws -> T? { - return try self._expression(_withoutCaching) - } - - public func withoutCaching() -> Expression { - return Expression(memoizedExpression: self._expression, location: location, withoutCaching: true, isClosure: isClosure) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift deleted file mode 100644 index 0384d46..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/FailureMessage.swift +++ /dev/null @@ -1,68 +0,0 @@ -import Foundation - -/// Encapsulates the failure message that matchers can report to the end user. -/// -/// This is shared state between Nimble and matchers that mutate this value. -public class FailureMessage: NSObject { - public var expected: String = "expected" - public var actualValue: String? = "" // empty string -> use default; nil -> exclude - public var to: String = "to" - public var postfixMessage: String = "match" - public var postfixActual: String = "" - /// An optional message that will be appended as a new line and provides additional details - /// about the failure. This message will only be visible in the issue navigator / in logs but - /// not directly in the source editor since only a single line is presented there. - public var extendedMessage: String? - public var userDescription: String? - - public var stringValue: String { - get { - if let value = _stringValueOverride { - return value - } else { - return computeStringValue() - } - } - set { - _stringValueOverride = newValue - } - } - - internal var _stringValueOverride: String? - internal var hasOverriddenStringValue: Bool { - return _stringValueOverride != nil - } - - public override init() { - } - - public init(stringValue: String) { - _stringValueOverride = stringValue - } - - internal func stripNewlines(_ str: String) -> String { - let whitespaces = CharacterSet.whitespacesAndNewlines - return str - .components(separatedBy: "\n") - .map { line in line.trimmingCharacters(in: whitespaces) } - .joined(separator: "") - } - - internal func computeStringValue() -> String { - var value = "\(expected) \(to) \(postfixMessage)" - if let actualValue = actualValue { - value = "\(expected) \(to) \(postfixMessage), got \(actualValue)\(postfixActual)" - } - value = stripNewlines(value) - - if let extendedMessage = extendedMessage { - value += "\n\(stripNewlines(extendedMessage))" - } - - if let userDescription = userDescription { - return "\(userDescription)\n\(value)" - } - - return value - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Info.plist b/Carthage/Checkouts/Nimble/Sources/Nimble/Info.plist deleted file mode 100644 index 6ac80b8..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSHumanReadableCopyright - Copyright © 2014 Jeff Hui. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift deleted file mode 100644 index f5948db..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AllPass.swift +++ /dev/null @@ -1,109 +0,0 @@ -import Foundation - -public func allPass - (_ passFunc: @escaping (T?) throws -> Bool) -> Predicate - where U: Sequence, T == U.Iterator.Element { - let matcher = Predicate.simpleNilable("pass a condition") { actualExpression in - return PredicateStatus(bool: try passFunc(try actualExpression.evaluate())) - } - return createPredicate(matcher) -} - -public func allPass - (_ passName: String, _ passFunc: @escaping (T?) throws -> Bool) -> Predicate - where U: Sequence, T == U.Iterator.Element { - let matcher = Predicate.simpleNilable(passName) { actualExpression in - return PredicateStatus(bool: try passFunc(try actualExpression.evaluate())) - } - return createPredicate(matcher) -} - -public func allPass(_ elementMatcher: M) -> Predicate - where S: Sequence, M: Matcher, S.Iterator.Element == M.ValueType { - return createPredicate(elementMatcher.predicate) -} - -public func allPass(_ elementPredicate: Predicate) -> Predicate - where S: Sequence { - return createPredicate(elementPredicate) -} - -private func createPredicate(_ elementMatcher: Predicate) -> Predicate - where S: Sequence { - return Predicate { actualExpression in - guard let actualValue = try actualExpression.evaluate() else { - return PredicateResult( - status: .fail, - message: .appends(.expectedTo("all pass"), " (use beNil() to match nils)") - ) - } - - var failure: ExpectationMessage = .expectedTo("all pass") - for currentElement in actualValue { - let exp = Expression( - expression: {currentElement}, location: actualExpression.location) - let predicateResult = try elementMatcher.satisfies(exp) - if predicateResult.status == .matches { - failure = predicateResult.message.prepended(expectation: "all ") - } else { - failure = predicateResult.message - .replacedExpectation({ .expectedTo($0.expectedMessage) }) - .wrappedExpectation( - before: "all ", - after: ", but failed first at element <\(stringify(currentElement))>" - + " in <\(stringify(actualValue))>" - ) - return PredicateResult(status: .doesNotMatch, message: failure) - } - } - failure = failure.replacedExpectation({ expectation in - return .expectedTo(expectation.expectedMessage) - }) - return PredicateResult(status: .matches, message: failure) - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func allPassMatcher(_ matcher: NMBObjCMatcher) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - var nsObjects = [NSObject]() - - var collectionIsUsable = true - if let value = actualValue as? NSFastEnumeration { - let generator = NSFastEnumerationIterator(value) - while let obj = generator.next() { - if let nsObject = obj as? NSObject { - nsObjects.append(nsObject) - } else { - collectionIsUsable = false - break - } - } - } else { - collectionIsUsable = false - } - - if !collectionIsUsable { - failureMessage.postfixMessage = - "allPass only works with NSFastEnumeration (NSArray, NSSet, ...) of NSObjects" - failureMessage.expected = "" - failureMessage.to = "" - return false - } - - let expr = Expression(expression: ({ nsObjects }), location: location) - let pred: Predicate<[NSObject]> = createPredicate(Predicate.fromDeprecatedFullClosure { expr, failureMessage, expectMatch in - if expectMatch { - return matcher.matches({ try! expr.evaluate() }, failureMessage: failureMessage, location: expr.location) - } else { - return matcher.doesNotMatch({ try! expr.evaluate() }, failureMessage: failureMessage, location: expr.location) - } - }) - return try! pred.matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift deleted file mode 100644 index b8fa016..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift +++ /dev/null @@ -1,226 +0,0 @@ -import Foundation - -/// If you are running on a slower machine, it could be useful to increase the default timeout value -/// or slow down poll interval. Default timeout interval is 1, and poll interval is 0.01. -public struct AsyncDefaults { - public static var Timeout: TimeInterval = 1 - public static var PollInterval: TimeInterval = 0.01 -} - -fileprivate func async(style: ExpectationStyle, predicate: Predicate, timeout: TimeInterval, poll: TimeInterval, fnName: String) -> Predicate { - return Predicate { actualExpression in - let uncachedExpression = actualExpression.withoutCaching() - let fnName = "expect(...).\(fnName)(...)" - var lastPredicateResult: PredicateResult? - let result = pollBlock( - pollInterval: poll, - timeoutInterval: timeout, - file: actualExpression.location.file, - line: actualExpression.location.line, - fnName: fnName) { - lastPredicateResult = try predicate.satisfies(uncachedExpression) - return lastPredicateResult!.toBoolean(expectation: style) - } - switch result { - case .completed: return lastPredicateResult! - case .timedOut: return PredicateResult(status: .doesNotMatch, message: lastPredicateResult!.message) - case let .errorThrown(error): - return PredicateResult(status: .fail, message: .fail("unexpected error thrown: <\(error)>")) - case let .raisedException(exception): - return PredicateResult(status: .fail, message: .fail("unexpected exception raised: \(exception)")) - case .blockedRunLoop: - return PredicateResult(status: .fail, message: lastPredicateResult!.message.appended(message: " (timed out, but main thread was unresponsive).")) - case .incomplete: - internalError("Reached .incomplete state for toEventually(...).") - } - } -} - -// Deprecated -internal struct AsyncMatcherWrapper: Matcher - where U: Matcher, U.ValueType == T { - let fullMatcher: U - let timeoutInterval: TimeInterval - let pollInterval: TimeInterval - - init(fullMatcher: U, timeoutInterval: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval) { - self.fullMatcher = fullMatcher - self.timeoutInterval = timeoutInterval - self.pollInterval = pollInterval - } - - func matches(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - let uncachedExpression = actualExpression.withoutCaching() - let fnName = "expect(...).toEventually(...)" - let result = pollBlock( - pollInterval: pollInterval, - timeoutInterval: timeoutInterval, - file: actualExpression.location.file, - line: actualExpression.location.line, - fnName: fnName) { - try self.fullMatcher.matches(uncachedExpression, failureMessage: failureMessage) - } - switch result { - case let .completed(isSuccessful): return isSuccessful - case .timedOut: return false - case let .errorThrown(error): - failureMessage.stringValue = "an unexpected error thrown: <\(error)>" - return false - case let .raisedException(exception): - failureMessage.stringValue = "an unexpected exception thrown: <\(exception)>" - return false - case .blockedRunLoop: - failureMessage.postfixMessage += " (timed out, but main thread was unresponsive)." - return false - case .incomplete: - internalError("Reached .incomplete state for toEventually(...).") - } - } - - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - let uncachedExpression = actualExpression.withoutCaching() - let result = pollBlock( - pollInterval: pollInterval, - timeoutInterval: timeoutInterval, - file: actualExpression.location.file, - line: actualExpression.location.line, - fnName: "expect(...).toEventuallyNot(...)") { - try self.fullMatcher.doesNotMatch(uncachedExpression, failureMessage: failureMessage) - } - switch result { - case let .completed(isSuccessful): return isSuccessful - case .timedOut: return false - case let .errorThrown(error): - failureMessage.stringValue = "an unexpected error thrown: <\(error)>" - return false - case let .raisedException(exception): - failureMessage.stringValue = "an unexpected exception thrown: <\(exception)>" - return false - case .blockedRunLoop: - failureMessage.postfixMessage += " (timed out, but main thread was unresponsive)." - return false - case .incomplete: - internalError("Reached .incomplete state for toEventuallyNot(...).") - } - } -} - -private let toEventuallyRequiresClosureError = FailureMessage(stringValue: "expect(...).toEventually(...) requires an explicit closure (eg - expect { ... }.toEventually(...) )\nSwift 1.2 @autoclosure behavior has changed in an incompatible way for Nimble to function") - -extension Expectation { - /// Tests the actual value using a matcher to match by checking continuously - /// at each pollInterval until the timeout is reached. - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toEventually(_ predicate: Predicate, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) { - nimblePrecondition(expression.isClosure, "NimbleInternalError", toEventuallyRequiresClosureError.stringValue) - - let (pass, msg) = execute( - expression, - .toMatch, - async(style: .toMatch, predicate: predicate, timeout: timeout, poll: pollInterval, fnName: "toEventually"), - to: "to eventually", - description: description, - captureExceptions: false - ) - verify(pass, msg) - } - - /// Tests the actual value using a matcher to not match by checking - /// continuously at each pollInterval until the timeout is reached. - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toEventuallyNot(_ predicate: Predicate, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) { - nimblePrecondition(expression.isClosure, "NimbleInternalError", toEventuallyRequiresClosureError.stringValue) - - let (pass, msg) = execute( - expression, - .toNotMatch, - async(style: .toNotMatch, predicate: predicate, timeout: timeout, poll: pollInterval, fnName: "toEventuallyNot"), - to: "to eventually not", - description: description, - captureExceptions: false - ) - verify(pass, msg) - } - - /// Tests the actual value using a matcher to not match by checking - /// continuously at each pollInterval until the timeout is reached. - /// - /// Alias of toEventuallyNot() - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toNotEventually(_ predicate: Predicate, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) { - return toEventuallyNot(predicate, timeout: timeout, pollInterval: pollInterval, description: description) - } -} - -// Deprecated -extension Expectation { - /// Tests the actual value using a matcher to match by checking continuously - /// at each pollInterval until the timeout is reached. - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T { - if expression.isClosure { - let (pass, msg) = expressionMatches( - expression, - matcher: AsyncMatcherWrapper( - fullMatcher: matcher, - timeoutInterval: timeout, - pollInterval: pollInterval), - to: "to eventually", - description: description - ) - verify(pass, msg) - } else { - verify(false, toEventuallyRequiresClosureError) - } - } - - /// Tests the actual value using a matcher to not match by checking - /// continuously at each pollInterval until the timeout is reached. - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toEventuallyNot(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T { - if expression.isClosure { - let (pass, msg) = expressionDoesNotMatch( - expression, - matcher: AsyncMatcherWrapper( - fullMatcher: matcher, - timeoutInterval: timeout, - pollInterval: pollInterval), - toNot: "to eventually not", - description: description - ) - verify(pass, msg) - } else { - verify(false, toEventuallyRequiresClosureError) - } - } - - /// Tests the actual value using a matcher to not match by checking - /// continuously at each pollInterval until the timeout is reached. - /// - /// Alias of toEventuallyNot() - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toNotEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T { - return toEventuallyNot(matcher, timeout: timeout, pollInterval: pollInterval, description: description) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift deleted file mode 100644 index 4ae4d11..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift +++ /dev/null @@ -1,68 +0,0 @@ -import Foundation - -private func matcherMessage(forType expectedType: T.Type) -> String { - return "be a kind of \(String(describing: expectedType))" -} -private func matcherMessage(forClass expectedClass: AnyClass) -> String { - return "be a kind of \(String(describing: expectedClass))" -} - -/// A Nimble matcher that succeeds when the actual value is an instance of the given class. -public func beAKindOf(_ expectedType: T.Type) -> Predicate { - return Predicate.define { actualExpression in - let message: ExpectationMessage - - let instance = try actualExpression.evaluate() - guard let validInstance = instance else { - message = .expectedCustomValueTo(matcherMessage(forType: expectedType), "") - return PredicateResult(status: .fail, message: message) - } - message = .expectedCustomValueTo( - "be a kind of \(String(describing: expectedType))", - "<\(String(describing: type(of: validInstance))) instance>" - ) - - return PredicateResult( - bool: validInstance is T, - message: message - ) - } -} - -#if _runtime(_ObjC) - -/// A Nimble matcher that succeeds when the actual value is an instance of the given class. -/// @see beAnInstanceOf if you want to match against the exact class -public func beAKindOf(_ expectedClass: AnyClass) -> Predicate { - return Predicate.define { actualExpression in - let message: ExpectationMessage - let status: PredicateStatus - - let instance = try actualExpression.evaluate() - if let validInstance = instance { - status = PredicateStatus(bool: instance != nil && instance!.isKind(of: expectedClass)) - message = .expectedCustomValueTo( - matcherMessage(forClass: expectedClass), - "<\(String(describing: type(of: validInstance))) instance>" - ) - } else { - status = .fail - message = .expectedCustomValueTo( - matcherMessage(forClass: expectedClass), - "" - ) - } - - return PredicateResult(status: status, message: message) - } -} - -extension NMBObjCMatcher { - public class func beAKindOfMatcher(_ expected: AnyClass) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - return try! beAKindOf(expected).matches(actualExpression, failureMessage: failureMessage) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift deleted file mode 100644 index 42b1ebe..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift +++ /dev/null @@ -1,56 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is an _exact_ instance of the given class. -public func beAnInstanceOf(_ expectedType: T.Type) -> Predicate { - let errorMessage = "be an instance of \(String(describing: expectedType))" - return Predicate.define { actualExpression in - let instance = try actualExpression.evaluate() - guard let validInstance = instance else { - return PredicateResult( - status: .doesNotMatch, - message: .expectedActualValueTo(errorMessage) - ) - } - - let actualString = "<\(String(describing: type(of: validInstance))) instance>" - - return PredicateResult( - status: PredicateStatus(bool: type(of: validInstance) == expectedType), - message: .expectedCustomValueTo(errorMessage, actualString) - ) - } -} - -/// A Nimble matcher that succeeds when the actual value is an instance of the given class. -/// @see beAKindOf if you want to match against subclasses -public func beAnInstanceOf(_ expectedClass: AnyClass) -> Predicate { - let errorMessage = "be an instance of \(String(describing: expectedClass))" - return Predicate.define { actualExpression in - let instance = try actualExpression.evaluate() - let actualString: String - if let validInstance = instance { - actualString = "<\(String(describing: type(of: validInstance))) instance>" - } else { - actualString = "" - } -#if _runtime(_ObjC) - let matches = instance != nil && instance!.isMember(of: expectedClass) -#else - let matches = instance != nil && type(of: instance!) == expectedClass -#endif - return PredicateResult( - status: PredicateStatus(bool: matches), - message: .expectedCustomValueTo(errorMessage, actualString) - ) - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beAnInstanceOfMatcher(_ expected: AnyClass) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - return try! beAnInstanceOf(expected).matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift deleted file mode 100644 index 2b0ccd6..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift +++ /dev/null @@ -1,126 +0,0 @@ -import Foundation - -internal let DefaultDelta = 0.0001 - -internal func isCloseTo(_ actualValue: NMBDoubleConvertible?, - expectedValue: NMBDoubleConvertible, - delta: Double) - -> PredicateResult { - let errorMessage = "be close to <\(stringify(expectedValue))> (within \(stringify(delta)))" - return PredicateResult( - bool: actualValue != nil && - abs(actualValue!.doubleValue - expectedValue.doubleValue) < delta, - message: .expectedCustomValueTo(errorMessage, "<\(stringify(actualValue))>") - ) -} - -/// A Nimble matcher that succeeds when a value is close to another. This is used for floating -/// point values which can have imprecise results when doing arithmetic on them. -/// -/// @see equal -public func beCloseTo(_ expectedValue: Double, within delta: Double = DefaultDelta) -> Predicate { - return Predicate.define { actualExpression in - return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta) - } -} - -/// A Nimble matcher that succeeds when a value is close to another. This is used for floating -/// point values which can have imprecise results when doing arithmetic on them. -/// -/// @see equal -public func beCloseTo(_ expectedValue: NMBDoubleConvertible, within delta: Double = DefaultDelta) -> Predicate { - return Predicate.define { actualExpression in - return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta) - } -} - -#if _runtime(_ObjC) -public class NMBObjCBeCloseToMatcher: NSObject, NMBMatcher { - var _expected: NSNumber - var _delta: CDouble - init(expected: NSNumber, within: CDouble) { - _expected = expected - _delta = within - } - - public func matches(_ actualExpression: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let actualBlock: () -> NMBDoubleConvertible? = ({ - return actualExpression() as? NMBDoubleConvertible - }) - let expr = Expression(expression: actualBlock, location: location) - let matcher = beCloseTo(self._expected, within: self._delta) - return try! matcher.matches(expr, failureMessage: failureMessage) - } - - public func doesNotMatch(_ actualExpression: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let actualBlock: () -> NMBDoubleConvertible? = ({ - return actualExpression() as? NMBDoubleConvertible - }) - let expr = Expression(expression: actualBlock, location: location) - let matcher = beCloseTo(self._expected, within: self._delta) - return try! matcher.doesNotMatch(expr, failureMessage: failureMessage) - } - - public var within: (CDouble) -> NMBObjCBeCloseToMatcher { - return ({ delta in - return NMBObjCBeCloseToMatcher(expected: self._expected, within: delta) - }) - } -} - -extension NMBObjCMatcher { - public class func beCloseToMatcher(_ expected: NSNumber, within: CDouble) -> NMBObjCBeCloseToMatcher { - return NMBObjCBeCloseToMatcher(expected: expected, within: within) - } -} -#endif - -public func beCloseTo(_ expectedValues: [Double], within delta: Double = DefaultDelta) -> Predicate<[Double]> { - let errorMessage = "be close to <\(stringify(expectedValues))> (each within \(stringify(delta)))" - return Predicate.simple(errorMessage) { actualExpression in - if let actual = try actualExpression.evaluate() { - if actual.count != expectedValues.count { - return .doesNotMatch - } else { - for (index, actualItem) in actual.enumerated() { - if fabs(actualItem - expectedValues[index]) > delta { - return .doesNotMatch - } - } - return .matches - } - } - return .doesNotMatch - } -} - -// MARK: - Operators - -infix operator ≈ : ComparisonPrecedence - -public func ≈(lhs: Expectation<[Double]>, rhs: [Double]) { - lhs.to(beCloseTo(rhs)) -} - -public func ≈(lhs: Expectation, rhs: NMBDoubleConvertible) { - lhs.to(beCloseTo(rhs)) -} - -public func ≈(lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { - lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) -} - -public func == (lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { - lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) -} - -// make this higher precedence than exponents so the Doubles either end aren't pulled in -// unexpectantly -precedencegroup PlusMinusOperatorPrecedence { - higherThan: BitwiseShiftPrecedence -} - -infix operator ± : PlusMinusOperatorPrecedence -public func ±(lhs: NMBDoubleConvertible, rhs: Double) -> (expected: NMBDoubleConvertible, delta: Double) { - return (expected: lhs, delta: rhs) -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift deleted file mode 100644 index 483031b..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeEmpty.swift +++ /dev/null @@ -1,85 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> Predicate { - return Predicate.simple("be empty") { actualExpression in - let actualSeq = try actualExpression.evaluate() - if actualSeq == nil { - return .fail - } - var generator = actualSeq!.makeIterator() - return PredicateStatus(bool: generator.next() == nil) - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> Predicate { - return Predicate.simple("be empty") { actualExpression in - let actualString = try actualExpression.evaluate() - return PredicateStatus(bool: actualString == nil || NSString(string: actualString!).length == 0) - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For NSString instances, it is an empty string. -public func beEmpty() -> Predicate { - return Predicate.simple("be empty") { actualExpression in - let actualString = try actualExpression.evaluate() - return PredicateStatus(bool: actualString == nil || actualString!.length == 0) - } -} - -// Without specific overrides, beEmpty() is ambiguous for NSDictionary, NSArray, -// etc, since they conform to Sequence as well as NMBCollection. - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> Predicate { - return Predicate.simple("be empty") { actualExpression in - let actualDictionary = try actualExpression.evaluate() - return PredicateStatus(bool: actualDictionary == nil || actualDictionary!.count == 0) - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> Predicate { - return Predicate.simple("be empty") { actualExpression in - let actualArray = try actualExpression.evaluate() - return PredicateStatus(bool: actualArray == nil || actualArray!.count == 0) - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> Predicate { - return Predicate.simple("be empty") { actualExpression in - let actual = try actualExpression.evaluate() - return PredicateStatus(bool: actual == nil || actual!.count == 0) - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beEmptyMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - failureMessage.postfixMessage = "be empty" - if let value = actualValue as? NMBCollection { - let expr = Expression(expression: ({ value as NMBCollection }), location: location) - return try! beEmpty().matches(expr, failureMessage: failureMessage) - } else if let value = actualValue as? NSString { - let expr = Expression(expression: ({ value as String }), location: location) - return try! beEmpty().matches(expr, failureMessage: failureMessage) - } else if let actualValue = actualValue { - failureMessage.postfixMessage = "be empty (only works for NSArrays, NSSets, NSIndexSets, NSDictionaries, NSHashTables, and NSStrings)" - failureMessage.actualValue = "\(String(describing: type(of: actualValue))) type" - } - return false - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift deleted file mode 100644 index 98c6f2e..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift +++ /dev/null @@ -1,41 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is greater than the expected value. -public func beGreaterThan(_ expectedValue: T?) -> Predicate { - let errorMessage = "be greater than <\(stringify(expectedValue))>" - return Predicate.simple(errorMessage) { actualExpression in - if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return PredicateStatus(bool: actual > expected) - } - return .fail - } -} - -/// A Nimble matcher that succeeds when the actual value is greater than the expected value. -public func beGreaterThan(_ expectedValue: NMBComparable?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) == ComparisonResult.orderedDescending - return matches - }.requireNonNil -} - -public func >(lhs: Expectation, rhs: T) { - lhs.to(beGreaterThan(rhs)) -} - -public func > (lhs: Expectation, rhs: NMBComparable?) { - lhs.to(beGreaterThan(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beGreaterThanMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beGreaterThan(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift deleted file mode 100644 index 8f370d4..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift +++ /dev/null @@ -1,44 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is greater than -/// or equal to the expected value. -public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than or equal to <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - if let actual = actualValue, let expected = expectedValue { - return actual >= expected - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual value is greater than -/// or equal to the expected value. -public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than or equal to <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) != ComparisonResult.orderedAscending - return matches - }.requireNonNil -} - -public func >=(lhs: Expectation, rhs: T) { - lhs.to(beGreaterThanOrEqualTo(rhs)) -} - -public func >=(lhs: Expectation, rhs: T) { - lhs.to(beGreaterThanOrEqualTo(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beGreaterThanOrEqualToMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beGreaterThanOrEqualTo(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift deleted file mode 100644 index 250bed7..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift +++ /dev/null @@ -1,46 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is the same instance -/// as the expected instance. -public func beIdenticalTo(_ expected: Any?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - #if os(Linux) - let actual = try actualExpression.evaluate() as? AnyObject - #else - let actual = try actualExpression.evaluate() as AnyObject? - #endif - failureMessage.actualValue = "\(identityAsString(actual))" - failureMessage.postfixMessage = "be identical to \(identityAsString(expected))" - #if os(Linux) - return actual === (expected as? AnyObject) && actual !== nil - #else - return actual === (expected as AnyObject?) && actual !== nil - #endif - }.requireNonNil -} - -public func === (lhs: Expectation, rhs: Any?) { - lhs.to(beIdenticalTo(rhs)) -} -public func !== (lhs: Expectation, rhs: Any?) { - lhs.toNot(beIdenticalTo(rhs)) -} - -/// A Nimble matcher that succeeds when the actual value is the same instance -/// as the expected instance. -/// -/// Alias for "beIdenticalTo". -public func be(_ expected: Any?) -> Predicate { - return beIdenticalTo(expected) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beIdenticalToMatcher(_ expected: NSObject?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let aExpr = actualExpression.cast { $0 as Any? } - return try! beIdenticalTo(expected).matches(aExpr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift deleted file mode 100644 index 66c01d3..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThan.swift +++ /dev/null @@ -1,41 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is less than the expected value. -public func beLessThan(_ expectedValue: T?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than <\(stringify(expectedValue))>" - if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return actual < expected - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual value is less than the expected value. -public func beLessThan(_ expectedValue: NMBComparable?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) == ComparisonResult.orderedAscending - return matches - }.requireNonNil -} - -public func <(lhs: Expectation, rhs: T) { - lhs.to(beLessThan(rhs)) -} - -public func < (lhs: Expectation, rhs: NMBComparable?) { - lhs.to(beLessThan(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beLessThanMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beLessThan(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift deleted file mode 100644 index 28b36c1..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift +++ /dev/null @@ -1,42 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is less than -/// or equal to the expected value. -public func beLessThanOrEqualTo(_ expectedValue: T?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than or equal to <\(stringify(expectedValue))>" - if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return actual <= expected - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual value is less than -/// or equal to the expected value. -public func beLessThanOrEqualTo(_ expectedValue: T?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than or equal to <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - return actualValue != nil && actualValue!.NMB_compare(expectedValue) != ComparisonResult.orderedDescending - }.requireNonNil -} - -public func <=(lhs: Expectation, rhs: T) { - lhs.to(beLessThanOrEqualTo(rhs)) -} - -public func <=(lhs: Expectation, rhs: T) { - lhs.to(beLessThanOrEqualTo(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beLessThanOrEqualToMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil:false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beLessThanOrEqualTo(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift deleted file mode 100644 index 4086da9..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeLogical.swift +++ /dev/null @@ -1,167 +0,0 @@ -import Foundation - -extension Int8: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int8Value - } -} - -extension UInt8: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint8Value - } -} - -extension Int16: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int16Value - } -} - -extension UInt16: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint16Value - } -} - -extension Int32: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int32Value - } -} - -extension UInt32: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint32Value - } -} - -extension Int64: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int64Value - } -} - -extension UInt64: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint64Value - } -} - -extension Float: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).floatValue - } -} - -extension Double: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).doubleValue - } -} - -extension Int: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).intValue - } -} - -extension UInt: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uintValue - } -} - -internal func rename(_ matcher: Predicate, failureMessage message: ExpectationMessage) -> Predicate { - return Predicate { actualExpression in - let result = try matcher.satisfies(actualExpression) - return PredicateResult(status: result.status, message: message) - }.requireNonNil -} - -// MARK: beTrue() / beFalse() - -/// A Nimble matcher that succeeds when the actual value is exactly true. -/// This matcher will not match against nils. -public func beTrue() -> Predicate { - return rename(equal(true), failureMessage: .expectedActualValueTo("be true")) -} - -/// A Nimble matcher that succeeds when the actual value is exactly false. -/// This matcher will not match against nils. -public func beFalse() -> Predicate { - return rename(equal(false), failureMessage: .expectedActualValueTo("be false")) -} - -// MARK: beTruthy() / beFalsy() - -/// A Nimble matcher that succeeds when the actual value is not logically false. -public func beTruthy() -> Predicate { - return Predicate.simpleNilable("be truthy") { actualExpression in - let actualValue = try actualExpression.evaluate() - if let actualValue = actualValue { - // FIXME: This is a workaround to SR-2290. - // See: - // - https://bugs.swift.org/browse/SR-2290 - // - https://github.com/norio-nomura/Nimble/pull/5#issuecomment-237835873 - if let number = actualValue as? NSNumber { - return PredicateStatus(bool: number.boolValue == true) - } - - return PredicateStatus(bool: actualValue == (true as T)) - } - return PredicateStatus(bool: actualValue != nil) - } -} - -/// A Nimble matcher that succeeds when the actual value is logically false. -/// This matcher will match against nils. -public func beFalsy() -> Predicate { - return Predicate.simpleNilable("be falsy") { actualExpression in - let actualValue = try actualExpression.evaluate() - if let actualValue = actualValue { - // FIXME: This is a workaround to SR-2290. - // See: - // - https://bugs.swift.org/browse/SR-2290 - // - https://github.com/norio-nomura/Nimble/pull/5#issuecomment-237835873 - if let number = actualValue as? NSNumber { - return PredicateStatus(bool: number.boolValue == false) - } - - return PredicateStatus(bool: actualValue == (false as T)) - } - return PredicateStatus(bool: actualValue == nil) - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beTruthyMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beTruthy().matches(expr, failureMessage: failureMessage) - } - } - - public class func beFalsyMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beFalsy().matches(expr, failureMessage: failureMessage) - } - } - - public class func beTrueMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beTrue().matches(expr, failureMessage: failureMessage) - } - } - - public class func beFalseMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beFalse().matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift deleted file mode 100644 index de79938..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeNil.swift +++ /dev/null @@ -1,19 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is nil. -public func beNil() -> Predicate { - return Predicate.simpleNilable("be nil") { actualExpression in - let actualValue = try actualExpression.evaluate() - return PredicateStatus(bool: actualValue == nil) - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beNilMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - return try! beNil().matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift deleted file mode 100644 index f5bf22a..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeVoid.swift +++ /dev/null @@ -1,18 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is Void. -public func beVoid() -> Predicate<()> { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "be void" - let actualValue: ()? = try actualExpression.evaluate() - return actualValue != nil - } -} - -public func == (lhs: Expectation<()>, rhs: ()) { - lhs.to(beVoid()) -} - -public func != (lhs: Expectation<()>, rhs: ()) { - lhs.toNot(beVoid()) -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift deleted file mode 100644 index e6cc9d8..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/BeginWith.swift +++ /dev/null @@ -1,60 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual sequence's first element -/// is equal to the expected value. -public func beginWith(_ startingElement: T) -> Predicate - where S.Iterator.Element == T { - return Predicate.simple("begin with <\(startingElement)>") { actualExpression in - if let actualValue = try actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - return PredicateStatus(bool: actualGenerator.next() == startingElement) - } - return .fail - } -} - -/// A Nimble matcher that succeeds when the actual collection's first element -/// is equal to the expected object. -public func beginWith(_ startingElement: Any) -> Predicate { - return Predicate.simple("begin with <\(startingElement)>") { actualExpression in - guard let collection = try actualExpression.evaluate() else { return .fail } - guard collection.count > 0 else { return .doesNotMatch } - #if os(Linux) - guard let collectionValue = collection.object(at: 0) as? NSObject else { - return .fail - } - #else - let collectionValue = collection.object(at: 0) as AnyObject - #endif - return PredicateStatus(bool: collectionValue.isEqual(startingElement)) - } -} - -/// A Nimble matcher that succeeds when the actual string contains expected substring -/// where the expected substring's location is zero. -public func beginWith(_ startingSubstring: String) -> Predicate { - return Predicate.simple("begin with <\(startingSubstring)>") { actualExpression in - if let actual = try actualExpression.evaluate() { - let range = actual.range(of: startingSubstring) - return PredicateStatus(bool: range != nil && range!.lowerBound == actual.startIndex) - } - return .fail - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beginWithMatcher(_ expected: Any) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = try! actualExpression.evaluate() - if (actual as? String) != nil { - let expr = actualExpression.cast { $0 as? String } - return try! beginWith(expected as! String).matches(expr, failureMessage: failureMessage) - } else { - let expr = actualExpression.cast { $0 as? NMBOrderedCollection } - return try! beginWith(expected).matches(expr, failureMessage: failureMessage) - } - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift deleted file mode 100644 index d2f8cd2..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Contain.swift +++ /dev/null @@ -1,94 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual sequence contains the expected value. -public func contain(_ items: T...) -> Predicate - where S.Iterator.Element == T { - return contain(items) -} - -public func contain(_ items: [T]) -> Predicate - where S.Iterator.Element == T { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" - if let actual = try actualExpression.evaluate() { - return items.all { - return actual.contains($0) - } - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual string contains the expected substring. -public func contain(_ substrings: String...) -> Predicate { - return contain(substrings) -} - -public func contain(_ substrings: [String]) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(substrings))>" - if let actual = try actualExpression.evaluate() { - return substrings.all { - let range = actual.range(of: $0) - return range != nil && !range!.isEmpty - } - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual string contains the expected substring. -public func contain(_ substrings: NSString...) -> Predicate { - return contain(substrings) -} - -public func contain(_ substrings: [NSString]) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(substrings))>" - if let actual = try actualExpression.evaluate() { - return substrings.all { actual.range(of: $0.description).length != 0 } - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual collection contains the expected object. -public func contain(_ items: Any?...) -> Predicate { - return contain(items) -} - -public func contain(_ items: [Any?]) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" - guard let actual = try actualExpression.evaluate() else { return false } - return items.all { item in - return item != nil && actual.contains(item!) - } - }.requireNonNil -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func containMatcher(_ expected: [NSObject]) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - if let value = actualValue as? NMBContainer { - let expr = Expression(expression: ({ value as NMBContainer }), location: location) - - // A straightforward cast on the array causes this to crash, so we have to cast the individual items - let expectedOptionals: [Any?] = expected.map({ $0 as Any? }) - return try! contain(expectedOptionals).matches(expr, failureMessage: failureMessage) - } else if let value = actualValue as? NSString { - let expr = Expression(expression: ({ value as String }), location: location) - return try! contain(expected as! [String]).matches(expr, failureMessage: failureMessage) - } else if actualValue != nil { - failureMessage.postfixMessage = "contain <\(arrayAsString(expected))> (only works for NSArrays, NSSets, NSHashTables, and NSStrings)" - } else { - failureMessage.postfixMessage = "contain <\(arrayAsString(expected))>" - } - return false - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift deleted file mode 100644 index 0ba5bce..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift +++ /dev/null @@ -1,59 +0,0 @@ -import Foundation - -public func containElementSatisfying(_ predicate: @escaping ((T) -> Bool), _ predicateDescription: String = "") -> Predicate where S.Iterator.Element == T { - - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.actualValue = nil - - if predicateDescription == "" { - failureMessage.postfixMessage = "find object in collection that satisfies predicate" - } else { - failureMessage.postfixMessage = "find object in collection \(predicateDescription)" - } - - if let sequence = try actualExpression.evaluate() { - for object in sequence { - if predicate(object) { - return true - } - } - - return false - } - - return false - }.requireNonNil -} - -#if _runtime(_ObjC) - extension NMBObjCMatcher { - public class func containElementSatisfyingMatcher(_ predicate: @escaping ((NSObject) -> Bool)) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let value = try! actualExpression.evaluate() - guard let enumeration = value as? NSFastEnumeration else { - failureMessage.postfixMessage = "containElementSatisfying must be provided an NSFastEnumeration object" - failureMessage.actualValue = nil - failureMessage.expected = "" - failureMessage.to = "" - return false - } - - let iterator = NSFastEnumerationIterator(enumeration) - while let item = iterator.next() { - guard let object = item as? NSObject else { - continue - } - - if predicate(object) { - return true - } - } - - failureMessage.actualValue = nil - failureMessage.postfixMessage = "" - failureMessage.to = "to find object in collection that satisfies predicate" - return false - } - } - } -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift deleted file mode 100644 index ebb87e0..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/EndWith.swift +++ /dev/null @@ -1,72 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual sequence's last element -/// is equal to the expected value. -public func endWith(_ endingElement: T) -> Predicate - where S.Iterator.Element == T { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "end with <\(endingElement)>" - - if let actualValue = try actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - var lastItem: T? - var item: T? - repeat { - lastItem = item - item = actualGenerator.next() - } while(item != nil) - - return lastItem == endingElement - } - return false - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual collection's last element -/// is equal to the expected object. -public func endWith(_ endingElement: Any) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "end with <\(endingElement)>" - guard let collection = try actualExpression.evaluate() else { return false } - guard collection.count > 0 else { return false } - #if os(Linux) - guard let collectionValue = collection.object(at: collection.count - 1) as? NSObject else { - return false - } - #else - let collectionValue = collection.object(at: collection.count - 1) as AnyObject - #endif - - return collectionValue.isEqual(endingElement) - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual string contains the expected substring -/// where the expected substring's location is the actual string's length minus the -/// expected substring's length. -public func endWith(_ endingSubstring: String) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "end with <\(endingSubstring)>" - if let collection = try actualExpression.evaluate() { - return collection.hasSuffix(endingSubstring) - } - return false - }.requireNonNil -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func endWithMatcher(_ expected: Any) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = try! actualExpression.evaluate() - if (actual as? String) != nil { - let expr = actualExpression.cast { $0 as? String } - return try! endWith(expected as! String).matches(expr, failureMessage: failureMessage) - } else { - let expr = actualExpression.cast { $0 as? NMBOrderedCollection } - return try! endWith(expected).matches(expr, failureMessage: failureMessage) - } - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift deleted file mode 100644 index d9f68fa..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Equal.swift +++ /dev/null @@ -1,220 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is equal to the expected value. -/// Values can support equal by supporting the Equatable protocol. -/// -/// @see beCloseTo if you want to match imprecise types (eg - floats, doubles). -public func equal(_ expectedValue: T?) -> Predicate { - return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in - let actualValue = try actualExpression.evaluate() - let matches = actualValue == expectedValue && expectedValue != nil - if expectedValue == nil || actualValue == nil { - if expectedValue == nil && actualValue != nil { - return PredicateResult( - status: .fail, - message: msg.appendedBeNilHint() - ) - } - return PredicateResult(status: .fail, message: msg) - } - return PredicateResult(status: PredicateStatus(bool: matches), message: msg) - } -} - -/// A Nimble matcher that succeeds when the actual value is equal to the expected value. -/// Values can support equal by supporting the Equatable protocol. -/// -/// @see beCloseTo if you want to match imprecise types (eg - floats, doubles). -public func equal(_ expectedValue: [T: C]?) -> Predicate<[T: C]> { - return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in - let actualValue = try actualExpression.evaluate() - if expectedValue == nil || actualValue == nil { - if expectedValue == nil && actualValue != nil { - return PredicateResult( - status: .fail, - message: msg.appendedBeNilHint() - ) - } - return PredicateResult(status: .fail, message: msg) - } - return PredicateResult( - status: PredicateStatus(bool: expectedValue! == actualValue!), - message: msg - ) - } -} - -/// A Nimble matcher that succeeds when the actual collection is equal to the expected collection. -/// Items must implement the Equatable protocol. -public func equal(_ expectedValue: [T]?) -> Predicate<[T]> { - return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in - let actualValue = try actualExpression.evaluate() - if expectedValue == nil || actualValue == nil { - if expectedValue == nil && actualValue != nil { - return PredicateResult( - status: .fail, - message: msg.appendedBeNilHint() - ) - } - return PredicateResult( - status: .fail, - message: msg - ) - } - return PredicateResult( - bool: expectedValue! == actualValue!, - message: msg - ) - } -} - -/// A Nimble matcher allowing comparison of collection with optional type -public func equal(_ expectedValue: [T?]) -> Predicate<[T?]> { - return Predicate.define("equal <\(stringify(expectedValue))>") { actualExpression, msg in - if let actualValue = try actualExpression.evaluate() { - let doesNotMatch = PredicateResult( - status: .doesNotMatch, - message: msg - ) - - if expectedValue.count != actualValue.count { - return doesNotMatch - } - - for (index, item) in actualValue.enumerated() { - let otherItem = expectedValue[index] - if item == nil && otherItem == nil { - continue - } else if item == nil && otherItem != nil { - return doesNotMatch - } else if item != nil && otherItem == nil { - return doesNotMatch - } else if item! != otherItem! { - return doesNotMatch - } - } - - return PredicateResult( - status: .matches, - message: msg - ) - } else { - return PredicateResult( - status: .fail, - message: msg.appendedBeNilHint() - ) - } - } -} - -/// A Nimble matcher that succeeds when the actual set is equal to the expected set. -public func equal(_ expectedValue: Set?) -> Predicate> { - return equal(expectedValue, stringify: { stringify($0) }) -} - -/// A Nimble matcher that succeeds when the actual set is equal to the expected set. -public func equal(_ expectedValue: Set?) -> Predicate> { - return equal(expectedValue, stringify: { - if let set = $0 { - return stringify(Array(set).sorted { $0 < $1 }) - } else { - return "nil" - } - }) -} - -private func equal(_ expectedValue: Set?, stringify: @escaping (Set?) -> String) -> Predicate> { - return Predicate { actualExpression in - var errorMessage: ExpectationMessage = - .expectedActualValueTo("equal <\(stringify(expectedValue))>") - - if let expectedValue = expectedValue { - if let actualValue = try actualExpression.evaluate() { - errorMessage = .expectedCustomValueTo( - "equal <\(stringify(expectedValue))>", - "<\(stringify(actualValue))>" - ) - - if expectedValue == actualValue { - return PredicateResult( - status: .matches, - message: errorMessage - ) - } - - let missing = expectedValue.subtracting(actualValue) - if missing.count > 0 { - errorMessage = errorMessage.appended(message: ", missing <\(stringify(missing))>") - } - - let extra = actualValue.subtracting(expectedValue) - if extra.count > 0 { - errorMessage = errorMessage.appended(message: ", extra <\(stringify(extra))>") - } - return PredicateResult( - status: .doesNotMatch, - message: errorMessage - ) - } - return PredicateResult( - status: .fail, - message: errorMessage.appendedBeNilHint() - ) - } else { - return PredicateResult( - status: .fail, - message: errorMessage.appendedBeNilHint() - ) - } - } -} - -public func ==(lhs: Expectation, rhs: T?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation, rhs: T?) { - lhs.toNot(equal(rhs)) -} - -public func ==(lhs: Expectation<[T]>, rhs: [T]?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation<[T]>, rhs: [T]?) { - lhs.toNot(equal(rhs)) -} - -public func == (lhs: Expectation>, rhs: Set?) { - lhs.to(equal(rhs)) -} - -public func != (lhs: Expectation>, rhs: Set?) { - lhs.toNot(equal(rhs)) -} - -public func ==(lhs: Expectation>, rhs: Set?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation>, rhs: Set?) { - lhs.toNot(equal(rhs)) -} - -public func ==(lhs: Expectation<[T: C]>, rhs: [T: C]?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation<[T: C]>, rhs: [T: C]?) { - lhs.toNot(equal(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func equalMatcher(_ expected: NSObject) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - return try! equal(expected).matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift deleted file mode 100644 index 379616d..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/HaveCount.swift +++ /dev/null @@ -1,57 +0,0 @@ -import Foundation - -// The `haveCount` matchers do not print the full string representation of the collection value, -// instead they only print the type name and the expected count. This makes it easier to understand -// the reason for failed expectations. See: https://github.com/Quick/Nimble/issues/308. -// The representation of the collection content is provided in a new line as an `extendedMessage`. - -/// A Nimble matcher that succeeds when the actual Collection's count equals -/// the expected value -public func haveCount(_ expectedValue: T.IndexDistance) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - if let actualValue = try actualExpression.evaluate() { - failureMessage.postfixMessage = "have \(prettyCollectionType(actualValue)) with count \(stringify(expectedValue))" - let result = expectedValue == actualValue.count - failureMessage.actualValue = "\(actualValue.count)" - failureMessage.extendedMessage = "Actual Value: \(stringify(actualValue))" - return result - } else { - return false - } - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual collection's count equals -/// the expected value -public func haveCount(_ expectedValue: Int) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - if let actualValue = try actualExpression.evaluate() { - failureMessage.postfixMessage = "have \(prettyCollectionType(actualValue)) with count \(stringify(expectedValue))" - let result = expectedValue == actualValue.count - failureMessage.actualValue = "\(actualValue.count)" - failureMessage.extendedMessage = "Actual Value: \(stringify(actualValue))" - return result - } else { - return false - } - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func haveCountMatcher(_ expected: NSNumber) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - if let value = actualValue as? NMBCollection { - let expr = Expression(expression: ({ value as NMBCollection}), location: location) - return try! haveCount(expected.intValue).matches(expr, failureMessage: failureMessage) - } else if let actualValue = actualValue { - failureMessage.postfixMessage = "get type of NSArray, NSSet, NSDictionary, or NSHashTable" - failureMessage.actualValue = "\(String(describing: type(of: actualValue)))" - } - return false - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift deleted file mode 100644 index 165600f..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Match.swift +++ /dev/null @@ -1,30 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual string satisfies the regular expression -/// described by the expected string. -public func match(_ expectedValue: String?) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - failureMessage.postfixMessage = "match <\(stringify(expectedValue))>" - - if let actual = try actualExpression.evaluate() { - if let regexp = expectedValue { - return actual.range(of: regexp, options: .regularExpression) != nil - } - } - - return false - }.requireNonNil -} - -#if _runtime(_ObjC) - -extension NMBObjCMatcher { - public class func matchMatcher(_ expected: NSString) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = actualExpression.cast { $0 as? String } - return try! match(expected.description).matches(actual, failureMessage: failureMessage) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift deleted file mode 100644 index 54a5c8a..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatchError.swift +++ /dev/null @@ -1,26 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual expression evaluates to an -/// error from the specified case. -/// -/// Errors are tried to be compared by their implementation of Equatable, -/// otherwise they fallback to comparision by _domain and _code. -public func matchError(_ error: T) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - let actualError: Error? = try actualExpression.evaluate() - - setFailureMessageForError(failureMessage, postfixMessageVerb: "match", actualError: actualError, error: error) - return errorMatchesNonNilFieldsOrClosure(actualError, error: error) - }.requireNonNil -} - -/// A Nimble matcher that succeeds when the actual expression evaluates to an -/// error of the specified type -public func matchError(_ errorType: T.Type) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - let actualError: Error? = try actualExpression.evaluate() - - setFailureMessageForError(failureMessage, postfixMessageVerb: "match", actualError: actualError, errorType: errorType) - return errorMatchesNonNilFieldsOrClosure(actualError, errorType: errorType) - }.requireNonNil -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift deleted file mode 100644 index 53cd04e..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift +++ /dev/null @@ -1,85 +0,0 @@ -/// DEPRECATED: A convenience API to build matchers that don't need special negation -/// behavior. The toNot() behavior is the negation of to(). -/// -/// @see NonNilMatcherFunc if you prefer to have this matcher fail when nil -/// values are recieved in an expectation. -/// -/// You may use this when implementing your own custom matchers. -/// -/// Use the Matcher protocol instead of this type to accept custom matchers as -/// input parameters. -/// @see allPass for an example that uses accepts other matchers as input. -@available(*, deprecated, message: "Use to Predicate instead") -public struct MatcherFunc: Matcher { - public let matcher: (Expression, FailureMessage) throws -> Bool - - public init(_ matcher: @escaping (Expression, FailureMessage) throws -> Bool) { - self.matcher = matcher - } - - public func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - return try matcher(actualExpression, failureMessage) - } - - public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - return try !matcher(actualExpression, failureMessage) - } - - /// Compatibility layer to new Matcher API. Converts an old-style matcher to a new one. - /// Note: You should definitely spend the time to convert to the new api as soon as possible - /// since this struct type is deprecated. - public var predicate: Predicate { - return Predicate.fromDeprecatedMatcher(self) - } -} - -/// DEPRECATED: A convenience API to build matchers that don't need special negation -/// behavior. The toNot() behavior is the negation of to(). -/// -/// Unlike MatcherFunc, this will always fail if an expectation contains nil. -/// This applies regardless of using to() or toNot(). -/// -/// You may use this when implementing your own custom matchers. -/// -/// Use the Matcher protocol instead of this type to accept custom matchers as -/// input parameters. -/// @see allPass for an example that uses accepts other matchers as input. -@available(*, deprecated, message: "Use to Predicate instead") -public struct NonNilMatcherFunc: Matcher { - public let matcher: (Expression, FailureMessage) throws -> Bool - - public init(_ matcher: @escaping (Expression, FailureMessage) throws -> Bool) { - self.matcher = matcher - } - - public func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - let pass = try matcher(actualExpression, failureMessage) - if try attachNilErrorIfNeeded(actualExpression, failureMessage: failureMessage) { - return false - } - return pass - } - - public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - let pass = try !matcher(actualExpression, failureMessage) - if try attachNilErrorIfNeeded(actualExpression, failureMessage: failureMessage) { - return false - } - return pass - } - - internal func attachNilErrorIfNeeded(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - if try actualExpression.evaluate() == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - return true - } - return false - } - - /// Compatibility layer to new Matcher API. Converts an old-style matcher to a new one. - /// Note: You should definitely spend the time to convert to the new api as soon as possible - /// since this struct type is deprecated. - public var predicate: Predicate { - return Predicate.fromDeprecatedMatcher(self) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift deleted file mode 100644 index 3528e3f..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift +++ /dev/null @@ -1,170 +0,0 @@ -import Foundation -// `CGFloat` is in Foundation (swift-corelibs-foundation) on Linux. -#if _runtime(_ObjC) - import CoreGraphics -#endif - -/// Implement this protocol to implement a custom matcher for Swift -@available(*, deprecated, message: "Use to Predicate instead") -public protocol Matcher { - associatedtype ValueType - func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool -} - -extension Matcher { - var predicate: Predicate { - return Predicate.fromDeprecatedMatcher(self) - } - - var toClosure: (Expression, FailureMessage, Bool) throws -> Bool { - return ({ expr, msg, expectedResult in - if expectedResult { - return try self.matches(expr, failureMessage: msg) - } else { - return try self.doesNotMatch(expr, failureMessage: msg) - } - }) - } -} - -#if _runtime(_ObjC) -/// Objective-C interface to the Swift variant of Matcher. -@objc public protocol NMBMatcher { - func matches(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool - func doesNotMatch(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool -} -#endif - -#if _runtime(_ObjC) -/// Protocol for types that support contain() matcher. -@objc public protocol NMBContainer { - @objc(containsObject:) - func contains(_ anObject: Any) -> Bool -} - -// FIXME: NSHashTable can not conform to NMBContainer since swift-DEVELOPMENT-SNAPSHOT-2016-04-25-a -//extension NSHashTable : NMBContainer {} // Corelibs Foundation does not include this class yet -#else -public protocol NMBContainer { - func contains(_ anObject: Any) -> Bool -} -#endif - -extension NSArray : NMBContainer {} -extension NSSet : NMBContainer {} - -#if _runtime(_ObjC) -/// Protocol for types that support only beEmpty(), haveCount() matchers -@objc public protocol NMBCollection { - var count: Int { get } -} - -extension NSHashTable : NMBCollection {} // Corelibs Foundation does not include these classes yet -extension NSMapTable : NMBCollection {} -#else -public protocol NMBCollection { - var count: Int { get } -} -#endif - -extension NSSet : NMBCollection {} -extension NSIndexSet : NMBCollection {} -extension NSDictionary : NMBCollection {} - -#if _runtime(_ObjC) -/// Protocol for types that support beginWith(), endWith(), beEmpty() matchers -@objc public protocol NMBOrderedCollection: NMBCollection { - @objc(objectAtIndex:) - func object(at index: Int) -> Any -} -#else -public protocol NMBOrderedCollection: NMBCollection { - func object(at index: Int) -> Any -} -#endif - -extension NSArray : NMBOrderedCollection {} - -public protocol NMBDoubleConvertible { - var doubleValue: CDouble { get } -} - -extension Double : NMBDoubleConvertible { - public var doubleValue: CDouble { - return self - } -} - -extension Float : NMBDoubleConvertible { - public var doubleValue: CDouble { - return CDouble(self) - } -} - -extension CGFloat: NMBDoubleConvertible { - public var doubleValue: CDouble { - return CDouble(self) - } -} - -extension NSNumber : NMBDoubleConvertible { -} - -private let dateFormatter: DateFormatter = { - let formatter = DateFormatter() - formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSS" - formatter.locale = Locale(identifier: "en_US_POSIX") - - return formatter -}() - -extension Date: NMBDoubleConvertible { - public var doubleValue: CDouble { - return self.timeIntervalSinceReferenceDate - } -} - -extension NSDate: NMBDoubleConvertible { - public var doubleValue: CDouble { - return self.timeIntervalSinceReferenceDate - } -} - -extension Date: TestOutputStringConvertible { - public var testDescription: String { - return dateFormatter.string(from: self) - } -} - -extension NSDate: TestOutputStringConvertible { - public var testDescription: String { - return dateFormatter.string(from: Date(timeIntervalSinceReferenceDate: self.timeIntervalSinceReferenceDate)) - } -} - -/// Protocol for types to support beLessThan(), beLessThanOrEqualTo(), -/// beGreaterThan(), beGreaterThanOrEqualTo(), and equal() matchers. -/// -/// Types that conform to Swift's Comparable protocol will work implicitly too -#if _runtime(_ObjC) -@objc public protocol NMBComparable { - func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult -} -#else -// This should become obsolete once Corelibs Foundation adds Comparable conformance to NSNumber -public protocol NMBComparable { - func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult -} -#endif - -extension NSNumber : NMBComparable { - public func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult { - return compare(otherObject as! NSNumber) - } -} -extension NSString : NMBComparable { - public func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult { - return compare(otherObject as! String) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift deleted file mode 100644 index 3a1db3b..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/PostNotification.swift +++ /dev/null @@ -1,70 +0,0 @@ -import Foundation - -internal class NotificationCollector { - private(set) var observedNotifications: [Notification] - private let notificationCenter: NotificationCenter - #if _runtime(_ObjC) - private var token: AnyObject? - #else - private var token: NSObjectProtocol? - #endif - - required init(notificationCenter: NotificationCenter) { - self.notificationCenter = notificationCenter - self.observedNotifications = [] - } - - func startObserving() { - self.token = self.notificationCenter.addObserver(forName: nil, object: nil, queue: nil) { [weak self] n in - // linux-swift gets confused by .append(n) - self?.observedNotifications.append(n) - } - } - - deinit { - #if _runtime(_ObjC) - if let token = self.token { - self.notificationCenter.removeObserver(token) - } - #else - if let token = self.token as? AnyObject { - self.notificationCenter.removeObserver(token) - } - #endif - } -} - -private let mainThread = pthread_self() - -let notificationCenterDefault = NotificationCenter.default - -public func postNotifications( - _ notificationsMatcher: T, - fromNotificationCenter center: NotificationCenter = notificationCenterDefault) - -> Predicate - where T: Matcher, T.ValueType == [Notification] -{ - let _ = mainThread // Force lazy-loading of this value - let collector = NotificationCollector(notificationCenter: center) - collector.startObserving() - var once: Bool = false - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - let collectorNotificationsExpression = Expression(memoizedExpression: { _ in - return collector.observedNotifications - }, location: actualExpression.location, withoutCaching: true) - - assert(pthread_equal(mainThread, pthread_self()) != 0, "Only expecting closure to be evaluated on main thread.") - if !once { - once = true - _ = try actualExpression.evaluate() - } - - let match = try notificationsMatcher.matches(collectorNotificationsExpression, failureMessage: failureMessage) - if collector.observedNotifications.isEmpty { - failureMessage.actualValue = "no notifications" - } else { - failureMessage.actualValue = "<\(stringify(collector.observedNotifications))>" - } - return match - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift deleted file mode 100644 index 6dcc299..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/Predicate.swift +++ /dev/null @@ -1,241 +0,0 @@ -// New Matcher API -// - -/// A Predicate is part of the new matcher API that provides assertions to expectations. -/// -/// Given a code snippet: -/// -/// expect(1).to(equal(2)) -/// ^^^^^^^^ -/// Called a "matcher" -/// -/// A matcher consists of two parts a constructor function and the Predicate. The term Predicate -/// is used as a separate name from Matcher to help transition custom matchers to the new Nimble -/// matcher API. -/// -/// The Predicate provide the heavy lifting on how to assert against a given value. Internally, -/// predicates are simple wrappers around closures to provide static type information and -/// allow composition and wrapping of existing behaviors. -public struct Predicate { - fileprivate var matcher: (Expression) throws -> PredicateResult - - /// Constructs a predicate that knows how take a given value - public init(_ matcher: @escaping (Expression) throws -> PredicateResult) { - self.matcher = matcher - } - - /// Uses a predicate on a given value to see if it passes the predicate. - /// - /// @param expression The value to run the predicate's logic against - /// @returns A predicate result indicate passing or failing and an associated error message. - public func satisfies(_ expression: Expression) throws -> PredicateResult { - return try matcher(expression) - } -} - -/// Provides convenience helpers to defining predicates -extension Predicate { - /// Like Predicate() constructor, but automatically guard against nil (actual) values - public static func define(matcher: @escaping (Expression) throws -> PredicateResult) -> Predicate { - return Predicate { actual in - return try matcher(actual) - }.requireNonNil - } - - /// Defines a predicate with a default message that can be returned in the closure - /// Also ensures the predicate's actual value cannot pass with `nil` given. - public static func define(_ msg: String, matcher: @escaping (Expression, ExpectationMessage) throws -> PredicateResult) -> Predicate { - return Predicate { actual in - return try matcher(actual, .expectedActualValueTo(msg)) - }.requireNonNil - } - - /// Defines a predicate with a default message that can be returned in the closure - /// Unlike `define`, this allows nil values to succeed if the given closure chooses to. - public static func defineNilable(_ msg: String, matcher: @escaping (Expression, ExpectationMessage) throws -> PredicateResult) -> Predicate { - return Predicate { actual in - return try matcher(actual, .expectedActualValueTo(msg)) - } - } -} - -extension Predicate { - /// Provides a simple predicate definition that provides no control over the predefined - /// error message. - /// - /// Also ensures the predicate's actual value cannot pass with `nil` given. - public static func simple(_ msg: String, matcher: @escaping (Expression) throws -> PredicateStatus) -> Predicate { - return Predicate { actual in - return PredicateResult(status: try matcher(actual), message: .expectedActualValueTo(msg)) - }.requireNonNil - } - - /// Provides a simple predicate definition that provides no control over the predefined - /// error message. - /// - /// Unlike `simple`, this allows nil values to succeed if the given closure chooses to. - public static func simpleNilable(_ msg: String, matcher: @escaping (Expression) throws -> PredicateStatus) -> Predicate { - return Predicate { actual in - return PredicateResult(status: try matcher(actual), message: .expectedActualValueTo(msg)) - } - } -} - -// Question: Should this be exposed? It's safer to not for now and decide later. -internal enum ExpectationStyle { - case toMatch, toNotMatch -} - -/// The value that a Predicates return to describe if the given (actual) value matches the -/// predicate. -public struct PredicateResult { - /// Status indicates if the predicate matches, does not match, or fails. - var status: PredicateStatus - /// The error message that can be displayed if it does not match - var message: ExpectationMessage - - /// Constructs a new PredicateResult with a given status and error message - public init(status: PredicateStatus, message: ExpectationMessage) { - self.status = status - self.message = message - } - - /// Shorthand to PredicateResult(status: PredicateStatus(bool: bool), message: message) - public init(bool: Bool, message: ExpectationMessage) { - self.status = PredicateStatus(bool: bool) - self.message = message - } - - /// Converts the result to a boolean based on what the expectation intended - internal func toBoolean(expectation style: ExpectationStyle) -> Bool { - return status.toBoolean(expectation: style) - } -} - -/// PredicateStatus is a trinary that indicates if a Predicate matches a given value or not -public enum PredicateStatus { - /// Matches indicates if the predicate / matcher passes with the given value - /// - /// For example, `equals(1)` returns `.matches` for `expect(1).to(equal(1))`. - case matches - /// DoesNotMatch indicates if the predicate / matcher fails with the given value, but *would* - /// succeed if the expectation was inverted. - /// - /// For example, `equals(2)` returns `.doesNotMatch` for `expect(1).toNot(equal(2))`. - case doesNotMatch - /// Fail indicates the predicate will never satisfy with the given value in any case. - /// A perfect example is that most matchers fail whenever given `nil`. - /// - /// Using `equal(1)` fails both `expect(nil).to(equal(1))` and `expect(nil).toNot(equal(1))`. - /// Note: Predicate's `requireNonNil` property will also provide this feature mostly for free. - /// Your predicate will still need to guard against nils, but error messaging will be - /// handled for you. - case fail - - /// Converts a boolean to either .matches (if true) or .doesNotMatch (if false). - public init(bool matches: Bool) { - if matches { - self = .matches - } else { - self = .doesNotMatch - } - } - - private func shouldMatch() -> Bool { - switch self { - case .matches: return true - case .doesNotMatch, .fail: return false - } - } - - private func shouldNotMatch() -> Bool { - switch self { - case .doesNotMatch: return true - case .matches, .fail: return false - } - } - - /// Converts the PredicateStatus result to a boolean based on what the expectation intended - internal func toBoolean(expectation style: ExpectationStyle) -> Bool { - if style == .toMatch { - return shouldMatch() - } else { - return shouldNotMatch() - } - } -} - -// Backwards compatibility until Old Matcher API removal -extension Predicate: Matcher { - /// Compatibility layer for old Matcher API, deprecated - public static func fromDeprecatedFullClosure(_ matcher: @escaping (Expression, FailureMessage, Bool) throws -> Bool) -> Predicate { - return Predicate { actual in - let failureMessage = FailureMessage() - let result = try matcher(actual, failureMessage, true) - return PredicateResult( - status: PredicateStatus(bool: result), - message: failureMessage.toExpectationMessage - ) - } - } - - /// Compatibility layer for old Matcher API, deprecated. - /// Emulates the MatcherFunc API - public static func fromDeprecatedClosure(_ matcher: @escaping (Expression, FailureMessage) throws -> Bool) -> Predicate { - return Predicate { actual in - let failureMessage = FailureMessage() - let result = try matcher(actual, failureMessage) - return PredicateResult( - status: PredicateStatus(bool: result), - message: failureMessage.toExpectationMessage - ) - } - - } - - /// Compatibility layer for old Matcher API, deprecated. - /// Same as calling .predicate on a MatcherFunc or NonNilMatcherFunc type. - public static func fromDeprecatedMatcher(_ matcher: M) -> Predicate where M: Matcher, M.ValueType == T { - return self.fromDeprecatedFullClosure(matcher.toClosure) - } - - /// Deprecated Matcher API, use satisfies(_:_) instead - public func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - let result = try satisfies(actualExpression) - result.message.update(failureMessage: failureMessage) - return result.toBoolean(expectation: .toMatch) - } - - /// Deprecated Matcher API, use satisfies(_:_) instead - public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - let result = try satisfies(actualExpression) - result.message.update(failureMessage: failureMessage) - return result.toBoolean(expectation: .toNotMatch) - } -} - -extension Predicate { - // Someday, make this public? Needs documentation - internal func after(f: @escaping (Expression, PredicateResult) throws -> PredicateResult) -> Predicate { - return Predicate { actual -> PredicateResult in - let result = try self.satisfies(actual) - return try f(actual, result) - } - } - - /// Returns a new Predicate based on the current one that always fails if nil is given as - /// the actual value. - /// - /// This replaces `NonNilMatcherFunc`. - public var requireNonNil: Predicate { - return after { actual, result in - if try actual.evaluate() == nil { - return PredicateResult( - status: .fail, - message: result.message.appendedBeNilHint() - ) - } - return result - } - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift deleted file mode 100644 index a4599cb..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/RaisesException.swift +++ /dev/null @@ -1,183 +0,0 @@ -import Foundation - -// This matcher requires the Objective-C, and being built by Xcode rather than the Swift Package Manager -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -/// A Nimble matcher that succeeds when the actual expression raises an -/// exception with the specified name, reason, and/or userInfo. -/// -/// Alternatively, you can pass a closure to do any arbitrary custom matching -/// to the raised exception. The closure only gets called when an exception -/// is raised. -/// -/// nil arguments indicates that the matcher should not attempt to match against -/// that parameter. -public func raiseException( - named: String? = nil, - reason: String? = nil, - userInfo: NSDictionary? = nil, - closure: ((NSException) -> Void)? = nil) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - - var exception: NSException? - let capture = NMBExceptionCapture(handler: ({ e in - exception = e - }), finally: nil) - - capture.tryBlock { - _ = try! actualExpression.evaluate() - return - } - - setFailureMessageForException(failureMessage, exception: exception, named: named, reason: reason, userInfo: userInfo, closure: closure) - return exceptionMatchesNonNilFieldsOrClosure(exception, named: named, reason: reason, userInfo: userInfo, closure: closure) - } -} - -internal func setFailureMessageForException( - _ failureMessage: FailureMessage, - exception: NSException?, - named: String?, - reason: String?, - userInfo: NSDictionary?, - closure: ((NSException) -> Void)?) { - failureMessage.postfixMessage = "raise exception" - - if let named = named { - failureMessage.postfixMessage += " with name <\(named)>" - } - if let reason = reason { - failureMessage.postfixMessage += " with reason <\(reason)>" - } - if let userInfo = userInfo { - failureMessage.postfixMessage += " with userInfo <\(userInfo)>" - } - if closure != nil { - failureMessage.postfixMessage += " that satisfies block" - } - if named == nil && reason == nil && userInfo == nil && closure == nil { - failureMessage.postfixMessage = "raise any exception" - } - - if let exception = exception { - failureMessage.actualValue = "\(String(describing: type(of: exception))) { name=\(exception.name), reason='\(stringify(exception.reason))', userInfo=\(stringify(exception.userInfo)) }" - } else { - failureMessage.actualValue = "no exception" - } -} - -internal func exceptionMatchesNonNilFieldsOrClosure( - _ exception: NSException?, - named: String?, - reason: String?, - userInfo: NSDictionary?, - closure: ((NSException) -> Void)?) -> Bool { - var matches = false - - if let exception = exception { - matches = true - - if let named = named, exception.name.rawValue != named { - matches = false - } - if reason != nil && exception.reason != reason { - matches = false - } - if let userInfo = userInfo, let exceptionUserInfo = exception.userInfo, - (exceptionUserInfo as NSDictionary) != userInfo { - matches = false - } - if let closure = closure { - let assertions = gatherFailingExpectations { - closure(exception) - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } - - return matches -} - -public class NMBObjCRaiseExceptionMatcher: NSObject, NMBMatcher { - internal var _name: String? - internal var _reason: String? - internal var _userInfo: NSDictionary? - internal var _block: ((NSException) -> Void)? - - internal init(name: String?, reason: String?, userInfo: NSDictionary?, block: ((NSException) -> Void)?) { - _name = name - _reason = reason - _userInfo = userInfo - _block = block - } - - public func matches(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let block: () -> Any? = ({ _ = actualBlock(); return nil }) - let expr = Expression(expression: block, location: location) - - return try! raiseException( - named: _name, - reason: _reason, - userInfo: _userInfo, - closure: _block - ).matches(expr, failureMessage: failureMessage) - } - - public func doesNotMatch(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - return !matches(actualBlock, failureMessage: failureMessage, location: location) - } - - public var named: (_ name: String) -> NMBObjCRaiseExceptionMatcher { - return ({ name in - return NMBObjCRaiseExceptionMatcher( - name: name, - reason: self._reason, - userInfo: self._userInfo, - block: self._block - ) - }) - } - - public var reason: (_ reason: String?) -> NMBObjCRaiseExceptionMatcher { - return ({ reason in - return NMBObjCRaiseExceptionMatcher( - name: self._name, - reason: reason, - userInfo: self._userInfo, - block: self._block - ) - }) - } - - public var userInfo: (_ userInfo: NSDictionary?) -> NMBObjCRaiseExceptionMatcher { - return ({ userInfo in - return NMBObjCRaiseExceptionMatcher( - name: self._name, - reason: self._reason, - userInfo: userInfo, - block: self._block - ) - }) - } - - public var satisfyingBlock: (_ block: ((NSException) -> Void)?) -> NMBObjCRaiseExceptionMatcher { - return ({ block in - return NMBObjCRaiseExceptionMatcher( - name: self._name, - reason: self._reason, - userInfo: self._userInfo, - block: block - ) - }) - } -} - -extension NMBObjCMatcher { - public class func raiseExceptionMatcher() -> NMBObjCRaiseExceptionMatcher { - return NMBObjCRaiseExceptionMatcher(name: nil, reason: nil, userInfo: nil, block: nil) - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift deleted file mode 100644 index 4ffbad7..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift +++ /dev/null @@ -1,98 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value matches with any of the matchers -/// provided in the variable list of matchers. -public func satisfyAnyOf(_ matchers: U...) -> Predicate - where U: Matcher, U.ValueType == T { - return satisfyAnyOf(matchers) -} - -/// Deprecated. Please use `satisfyAnyOf(_) -> Predicate` instead. -internal func satisfyAnyOf(_ matchers: [U]) -> Predicate - where U: Matcher, U.ValueType == T { - return NonNilMatcherFunc { actualExpression, failureMessage in - let postfixMessages = NSMutableArray() - var matches = false - for matcher in matchers { - if try matcher.matches(actualExpression, failureMessage: failureMessage) { - matches = true - } - postfixMessages.add(NSString(string: "{\(failureMessage.postfixMessage)}")) - } - - failureMessage.postfixMessage = "match one of: " + postfixMessages.componentsJoined(by: ", or ") - if let actualValue = try actualExpression.evaluate() { - failureMessage.actualValue = "\(actualValue)" - } - - return matches - }.predicate -} - -internal func satisfyAnyOf(_ predicates: [Predicate]) -> Predicate { - return Predicate { actualExpression in - var postfixMessages = [String]() - var matches = false - for predicate in predicates { - let result = try predicate.satisfies(actualExpression) - if result.toBoolean(expectation: .toMatch) { - matches = true - } - postfixMessages.append(result.message.expectedMessage) - } - - var msg: ExpectationMessage - if let actualValue = try actualExpression.evaluate() { - msg = .expectedCustomValueTo( - "match one of: " + postfixMessages.joined(separator: ", or "), - "\(actualValue)" - ) - } else { - msg = .expectedActualValueTo( - "match one of: " + postfixMessages.joined(separator: ", or ") - ) - } - - return PredicateResult( - status: PredicateStatus(bool: matches), - message: msg - ) - }.requireNonNil -} - -public func || (left: Predicate, right: Predicate) -> Predicate { - return satisfyAnyOf(left, right) -} - -public func || (left: NonNilMatcherFunc, right: NonNilMatcherFunc) -> Predicate { - return satisfyAnyOf(left, right) -} - -public func || (left: MatcherFunc, right: MatcherFunc) -> Predicate { - return satisfyAnyOf(left, right) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func satisfyAnyOfMatcher(_ matchers: [NMBObjCMatcher]) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - if matchers.isEmpty { - failureMessage.stringValue = "satisfyAnyOf must be called with at least one matcher" - return false - } - - var elementEvaluators = [NonNilMatcherFunc]() - for matcher in matchers { - let elementEvaluator: (Expression, FailureMessage) -> Bool = { - expression, failureMessage in - return matcher.matches({try! expression.evaluate()}, failureMessage: failureMessage, location: actualExpression.location) - } - - elementEvaluators.append(NonNilMatcherFunc(elementEvaluator)) - } - - return try! satisfyAnyOf(elementEvaluators).matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift deleted file mode 100644 index cad53f4..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift +++ /dev/null @@ -1,55 +0,0 @@ -import Foundation - -public func throwAssertion() -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - #if arch(x86_64) && _runtime(_ObjC) && !SWIFT_PACKAGE - failureMessage.postfixMessage = "throw an assertion" - failureMessage.actualValue = nil - - var succeeded = true - - let caughtException: BadInstructionException? = catchBadInstruction { - #if os(tvOS) - if !NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning { - print() - print("[Nimble Warning]: If you're getting stuck on a debugger breakpoint for a " + - "fatal error while using throwAssertion(), please disable 'Debug Executable' " + - "in your scheme. Go to 'Edit Scheme > Test > Info' and uncheck " + - "'Debug Executable'. If you've already done that, suppress this warning " + - "by setting `NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning = true`. " + - "This is required because the standard methods of catching assertions " + - "(mach APIs) are unavailable for tvOS. Instead, the same mechanism the " + - "debugger uses is the fallback method for tvOS." - ) - print() - NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning = true - } - #endif - do { - try actualExpression.evaluate() - } catch let error { - succeeded = false - failureMessage.postfixMessage += "; threw error instead <\(error)>" - } - } - - if !succeeded { - return false - } - - if caughtException == nil { - return false - } - - return true - #elseif SWIFT_PACKAGE - fatalError("The throwAssertion Nimble matcher does not currently support Swift CLI." + - " You can silence this error by placing the test case inside an #if !SWIFT_PACKAGE" + - " conditional statement") - #else - fatalError("The throwAssertion Nimble matcher can only run on x86_64 platforms with " + - "Objective-C (e.g. Mac, iPhone 5s or later simulators). You can silence this error " + - "by placing the test case inside an #if arch(x86_64) or _runtime(_ObjC) conditional statement") - #endif - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift deleted file mode 100644 index 296a1ba..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ThrowError.swift +++ /dev/null @@ -1,53 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual expression throws an -/// error of the specified type or from the specified case. -/// -/// Errors are tried to be compared by their implementation of Equatable, -/// otherwise they fallback to comparision by _domain and _code. -/// -/// Alternatively, you can pass a closure to do any arbitrary custom matching -/// to the thrown error. The closure only gets called when an error was thrown. -/// -/// nil arguments indicates that the matcher should not attempt to match against -/// that parameter. -public func throwError( - _ error: T? = nil, - errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - - var actualError: Error? - do { - _ = try actualExpression.evaluate() - } catch let catchedError { - actualError = catchedError - } - - setFailureMessageForError(failureMessage, actualError: actualError, error: error, errorType: errorType, closure: closure) - return errorMatchesNonNilFieldsOrClosure(actualError, error: error, errorType: errorType, closure: closure) - } -} - -/// A Nimble matcher that succeeds when the actual expression throws any -/// error or when the passed closures' arbitrary custom matching succeeds. -/// -/// This duplication to it's generic adequate is required to allow to receive -/// values of the existential type `Error` in the closure. -/// -/// The closure only gets called when an error was thrown. -public func throwError( - closure: ((Error) -> Void)? = nil) -> Predicate { - return Predicate.fromDeprecatedClosure { actualExpression, failureMessage in - - var actualError: Error? - do { - _ = try actualExpression.evaluate() - } catch let catchedError { - actualError = catchedError - } - - setFailureMessageForError(failureMessage, actualError: actualError, closure: closure) - return errorMatchesNonNilFieldsOrClosure(actualError, closure: closure) - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift deleted file mode 100644 index 01369bb..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Matchers/ToSucceed.swift +++ /dev/null @@ -1,37 +0,0 @@ -/** - Used by the `toSucceed` matcher. - - This is the return type for the closure. - */ -public enum ToSucceedResult { - case succeeded - case failed(reason: String) -} - -/** - A Nimble matcher that takes in a closure for validation. - - Return `.succeeded` when the validation succeeds. - Return `.failed` with a failure reason when the validation fails. - */ -public func succeed() -> Predicate<() -> ToSucceedResult> { - return Predicate.define { actualExpression in - let optActual = try actualExpression.evaluate() - guard let actual = optActual else { - return PredicateResult(status: .fail, message: .fail("expected a closure, got ")) - } - - switch actual() { - case .succeeded: - return PredicateResult( - bool: true, - message: .expectedCustomValueTo("succeed", "") - ) - case .failed(let reason): - return PredicateResult( - bool: false, - message: .expectedCustomValueTo("succeed", " because <\(reason)>") - ) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h b/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h deleted file mode 100644 index bd45c5d..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Nimble.h +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import "NMBExceptionCapture.h" -#import "NMBStringify.h" -#import "DSL.h" - -#import "CwlPreconditionTesting.h" - -FOUNDATION_EXPORT double NimbleVersionNumber; -FOUNDATION_EXPORT const unsigned char NimbleVersionString[]; diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift deleted file mode 100644 index 2dbbb47..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Async.swift +++ /dev/null @@ -1,360 +0,0 @@ -import CoreFoundation -import Dispatch -import Foundation - -#if !_runtime(_ObjC) - import CDispatch -#endif - -private let timeoutLeeway = DispatchTimeInterval.milliseconds(1) -private let pollLeeway = DispatchTimeInterval.milliseconds(1) - -/// Stores debugging information about callers -internal struct WaitingInfo: CustomStringConvertible { - let name: String - let file: FileString - let lineNumber: UInt - - var description: String { - return "\(name) at \(file):\(lineNumber)" - } -} - -internal protocol WaitLock { - func acquireWaitingLock(_ fnName: String, file: FileString, line: UInt) - func releaseWaitingLock() - func isWaitingLocked() -> Bool -} - -internal class AssertionWaitLock: WaitLock { - private var currentWaiter: WaitingInfo? - init() { } - - func acquireWaitingLock(_ fnName: String, file: FileString, line: UInt) { - let info = WaitingInfo(name: fnName, file: file, lineNumber: line) - #if _runtime(_ObjC) - let isMainThread = Thread.isMainThread - #else - let isMainThread = _CFIsMainThread() - #endif - nimblePrecondition( - isMainThread, - "InvalidNimbleAPIUsage", - "\(fnName) can only run on the main thread." - ) - nimblePrecondition( - currentWaiter == nil, - "InvalidNimbleAPIUsage", - "Nested async expectations are not allowed to avoid creating flaky tests.\n\n" + - "The call to\n\t\(info)\n" + - "triggered this exception because\n\t\(currentWaiter!)\n" + - "is currently managing the main run loop." - ) - currentWaiter = info - } - - func isWaitingLocked() -> Bool { - return currentWaiter != nil - } - - func releaseWaitingLock() { - currentWaiter = nil - } -} - -internal enum AwaitResult { - /// Incomplete indicates None (aka - this value hasn't been fulfilled yet) - case incomplete - /// TimedOut indicates the result reached its defined timeout limit before returning - case timedOut - /// BlockedRunLoop indicates the main runloop is too busy processing other blocks to trigger - /// the timeout code. - /// - /// This may also mean the async code waiting upon may have never actually ran within the - /// required time because other timers & sources are running on the main run loop. - case blockedRunLoop - /// The async block successfully executed and returned a given result - case completed(T) - /// When a Swift Error is thrown - case errorThrown(Error) - /// When an Objective-C Exception is raised - case raisedException(NSException) - - func isIncomplete() -> Bool { - switch self { - case .incomplete: return true - default: return false - } - } - - func isCompleted() -> Bool { - switch self { - case .completed(_): return true - default: return false - } - } -} - -/// Holds the resulting value from an asynchronous expectation. -/// This class is thread-safe at receiving an "response" to this promise. -internal class AwaitPromise { - private(set) internal var asyncResult: AwaitResult = .incomplete - private var signal: DispatchSemaphore - - init() { - signal = DispatchSemaphore(value: 1) - } - - /// Resolves the promise with the given result if it has not been resolved. Repeated calls to - /// this method will resolve in a no-op. - /// - /// @returns a Bool that indicates if the async result was accepted or rejected because another - /// value was recieved first. - func resolveResult(_ result: AwaitResult) -> Bool { - if signal.wait(timeout: .now()) == .success { - self.asyncResult = result - return true - } else { - return false - } - } -} - -internal struct AwaitTrigger { - let timeoutSource: DispatchSourceTimer - let actionSource: DispatchSourceTimer? - let start: () throws -> Void -} - -/// Factory for building fully configured AwaitPromises and waiting for their results. -/// -/// This factory stores all the state for an async expectation so that Await doesn't -/// doesn't have to manage it. -internal class AwaitPromiseBuilder { - let awaiter: Awaiter - let waitLock: WaitLock - let trigger: AwaitTrigger - let promise: AwaitPromise - - internal init( - awaiter: Awaiter, - waitLock: WaitLock, - promise: AwaitPromise, - trigger: AwaitTrigger) { - self.awaiter = awaiter - self.waitLock = waitLock - self.promise = promise - self.trigger = trigger - } - - func timeout(_ timeoutInterval: TimeInterval, forcefullyAbortTimeout: TimeInterval) -> Self { - // = Discussion = - // - // There's a lot of technical decisions here that is useful to elaborate on. This is - // definitely more lower-level than the previous NSRunLoop based implementation. - // - // - // Why Dispatch Source? - // - // - // We're using a dispatch source to have better control of the run loop behavior. - // A timer source gives us deferred-timing control without having to rely as much on - // a run loop's traditional dispatching machinery (eg - NSTimers, DefaultRunLoopMode, etc.) - // which is ripe for getting corrupted by application code. - // - // And unlike dispatch_async(), we can control how likely our code gets prioritized to - // executed (see leeway parameter) + DISPATCH_TIMER_STRICT. - // - // This timer is assumed to run on the HIGH priority queue to ensure it maintains the - // highest priority over normal application / test code when possible. - // - // - // Run Loop Management - // - // In order to properly interrupt the waiting behavior performed by this factory class, - // this timer stops the main run loop to tell the waiter code that the result should be - // checked. - // - // In addition, stopping the run loop is used to halt code executed on the main run loop. - trigger.timeoutSource.scheduleOneshot( - deadline: DispatchTime.now() + timeoutInterval, - leeway: timeoutLeeway) - trigger.timeoutSource.setEventHandler { - guard self.promise.asyncResult.isIncomplete() else { return } - let timedOutSem = DispatchSemaphore(value: 0) - let semTimedOutOrBlocked = DispatchSemaphore(value: 0) - semTimedOutOrBlocked.signal() - let runLoop = CFRunLoopGetMain() - #if _runtime(_ObjC) - let runLoopMode = CFRunLoopMode.defaultMode.rawValue - #else - let runLoopMode = kCFRunLoopDefaultMode - #endif - CFRunLoopPerformBlock(runLoop, runLoopMode) { - if semTimedOutOrBlocked.wait(timeout: .now()) == .success { - timedOutSem.signal() - semTimedOutOrBlocked.signal() - if self.promise.resolveResult(.timedOut) { - CFRunLoopStop(CFRunLoopGetMain()) - } - } - } - // potentially interrupt blocking code on run loop to let timeout code run - CFRunLoopStop(runLoop) - let now = DispatchTime.now() + forcefullyAbortTimeout - let didNotTimeOut = timedOutSem.wait(timeout: now) != .success - let timeoutWasNotTriggered = semTimedOutOrBlocked.wait(timeout: .now()) == .success - if didNotTimeOut && timeoutWasNotTriggered { - if self.promise.resolveResult(.blockedRunLoop) { - CFRunLoopStop(CFRunLoopGetMain()) - } - } - } - return self - } - - /// Blocks for an asynchronous result. - /// - /// @discussion - /// This function must be executed on the main thread and cannot be nested. This is because - /// this function (and it's related methods) coordinate through the main run loop. Tampering - /// with the run loop can cause undesireable behavior. - /// - /// This method will return an AwaitResult in the following cases: - /// - /// - The main run loop is blocked by other operations and the async expectation cannot be - /// be stopped. - /// - The async expectation timed out - /// - The async expectation succeeded - /// - The async expectation raised an unexpected exception (objc) - /// - The async expectation raised an unexpected error (swift) - /// - /// The returned AwaitResult will NEVER be .incomplete. - func wait(_ fnName: String = #function, file: FileString = #file, line: UInt = #line) -> AwaitResult { - waitLock.acquireWaitingLock( - fnName, - file: file, - line: line) - - let capture = NMBExceptionCapture(handler: ({ exception in - _ = self.promise.resolveResult(.raisedException(exception)) - }), finally: ({ - self.waitLock.releaseWaitingLock() - })) - capture.tryBlock { - do { - try self.trigger.start() - } catch let error { - _ = self.promise.resolveResult(.errorThrown(error)) - } - self.trigger.timeoutSource.resume() - while self.promise.asyncResult.isIncomplete() { - // Stopping the run loop does not work unless we run only 1 mode - _ = RunLoop.current.run(mode: .defaultRunLoopMode, before: .distantFuture) - } - self.trigger.timeoutSource.suspend() - self.trigger.timeoutSource.cancel() - if let asyncSource = self.trigger.actionSource { - asyncSource.cancel() - } - } - - return promise.asyncResult - } -} - -internal class Awaiter { - let waitLock: WaitLock - let timeoutQueue: DispatchQueue - let asyncQueue: DispatchQueue - - internal init( - waitLock: WaitLock, - asyncQueue: DispatchQueue, - timeoutQueue: DispatchQueue) { - self.waitLock = waitLock - self.asyncQueue = asyncQueue - self.timeoutQueue = timeoutQueue - } - - private func createTimerSource(_ queue: DispatchQueue) -> DispatchSourceTimer { - return DispatchSource.makeTimerSource(flags: .strict, queue: queue) - } - - func performBlock( - file: FileString, - line: UInt, - _ closure: @escaping (@escaping (T) -> Void) throws -> Void - ) -> AwaitPromiseBuilder { - let promise = AwaitPromise() - let timeoutSource = createTimerSource(timeoutQueue) - var completionCount = 0 - let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: nil) { - try closure { - completionCount += 1 - if completionCount < 2 { - if promise.resolveResult(.completed($0)) { - CFRunLoopStop(CFRunLoopGetMain()) - } - } else { - fail("waitUntil(..) expects its completion closure to be only called once", - file: file, line: line) - } - } - } - - return AwaitPromiseBuilder( - awaiter: self, - waitLock: waitLock, - promise: promise, - trigger: trigger) - } - - func poll(_ pollInterval: TimeInterval, closure: @escaping () throws -> T?) -> AwaitPromiseBuilder { - let promise = AwaitPromise() - let timeoutSource = createTimerSource(timeoutQueue) - let asyncSource = createTimerSource(asyncQueue) - let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: asyncSource) { - let interval = DispatchTimeInterval.nanoseconds(Int(pollInterval * TimeInterval(NSEC_PER_SEC))) - asyncSource.scheduleRepeating(deadline: .now(), interval: interval, leeway: pollLeeway) - asyncSource.setEventHandler { - do { - if let result = try closure() { - if promise.resolveResult(.completed(result)) { - CFRunLoopStop(CFRunLoopGetCurrent()) - } - } - } catch let error { - if promise.resolveResult(.errorThrown(error)) { - CFRunLoopStop(CFRunLoopGetCurrent()) - } - } - } - asyncSource.resume() - } - - return AwaitPromiseBuilder( - awaiter: self, - waitLock: waitLock, - promise: promise, - trigger: trigger) - } -} - -internal func pollBlock( - pollInterval: TimeInterval, - timeoutInterval: TimeInterval, - file: FileString, - line: UInt, - fnName: String = #function, - expression: @escaping () throws -> Bool) -> AwaitResult { - let awaiter = NimbleEnvironment.activeInstance.awaiter - let result = awaiter.poll(pollInterval) { () throws -> Bool? in - if try expression() { - return true - } - return nil - }.timeout(timeoutInterval, forcefullyAbortTimeout: timeoutInterval / 2.0).wait(fnName, file: file, line: line) - - return result -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift deleted file mode 100644 index 5cd5c53..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Errors.swift +++ /dev/null @@ -1,137 +0,0 @@ -import Foundation - -// Generic - -internal func setFailureMessageForError( - _ failureMessage: FailureMessage, - postfixMessageVerb: String = "throw", - actualError: Error?, - error: T? = nil, - errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) { - failureMessage.postfixMessage = "\(postfixMessageVerb) error" - - if let error = error { - failureMessage.postfixMessage += " <\(error)>" - } else if errorType != nil || closure != nil { - failureMessage.postfixMessage += " from type <\(T.self)>" - } - if closure != nil { - failureMessage.postfixMessage += " that satisfies block" - } - if error == nil && errorType == nil && closure == nil { - failureMessage.postfixMessage = "\(postfixMessageVerb) any error" - } - - if let actualError = actualError { - failureMessage.actualValue = "<\(actualError)>" - } else { - failureMessage.actualValue = "no error" - } -} - -internal func errorMatchesExpectedError( - _ actualError: Error, - expectedError: T) -> Bool { - return actualError._domain == expectedError._domain - && actualError._code == expectedError._code -} - -internal func errorMatchesExpectedError( - _ actualError: Error, - expectedError: T) -> Bool - where T: Equatable { - if let actualError = actualError as? T { - return actualError == expectedError - } - return false -} - -internal func errorMatchesNonNilFieldsOrClosure( - _ actualError: Error?, - error: T? = nil, - errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) -> Bool { - var matches = false - - if let actualError = actualError { - matches = true - - if let error = error { - if !errorMatchesExpectedError(actualError, expectedError: error) { - matches = false - } - } - if let actualError = actualError as? T { - if let closure = closure { - let assertions = gatherFailingExpectations { - closure(actualError as T) - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } else if errorType != nil { - matches = (actualError is T) - // The closure expects another ErrorProtocol as argument, so this - // is _supposed_ to fail, so that it becomes more obvious. - if let closure = closure { - let assertions = gatherExpectations { - if let actual = actualError as? T { - closure(actual) - } - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } - } - - return matches -} - -// Non-generic - -internal func setFailureMessageForError( - _ failureMessage: FailureMessage, - actualError: Error?, - closure: ((Error) -> Void)?) { - failureMessage.postfixMessage = "throw error" - - if closure != nil { - failureMessage.postfixMessage += " that satisfies block" - } else { - failureMessage.postfixMessage = "throw any error" - } - - if let actualError = actualError { - failureMessage.actualValue = "<\(actualError)>" - } else { - failureMessage.actualValue = "no error" - } -} - -internal func errorMatchesNonNilFieldsOrClosure( - _ actualError: Error?, - closure: ((Error) -> Void)?) -> Bool { - var matches = false - - if let actualError = actualError { - matches = true - - if let closure = closure { - let assertions = gatherFailingExpectations { - closure(actualError) - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } - - return matches -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Functional.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Functional.swift deleted file mode 100644 index 6c5126a..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Functional.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Foundation - -extension Sequence { - internal func all(_ fn: (Iterator.Element) -> Bool) -> Bool { - for item in self { - if !fn(item) { - return false - } - } - return true - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift deleted file mode 100644 index 4e37aef..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/SourceLocation.swift +++ /dev/null @@ -1,31 +0,0 @@ -import Foundation - -// Ideally we would always use `StaticString` as the type for tracking the file name -// that expectations originate from, for consistency with `assert` etc. from the -// stdlib, and because recent versions of the XCTest overlay require `StaticString` -// when calling `XCTFail`. Under the Objective-C runtime (i.e. building on Mac), we -// have to use `String` instead because StaticString can't be generated from Objective-C -#if SWIFT_PACKAGE -public typealias FileString = StaticString -#else -public typealias FileString = String -#endif - -public final class SourceLocation: NSObject { - public let file: FileString - public let line: UInt - - override init() { - file = "Unknown File" - line = 0 - } - - init(file: FileString, line: UInt) { - self.file = file - self.line = line - } - - override public var description: String { - return "\(file):\(line)" - } -} diff --git a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift b/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift deleted file mode 100644 index 8a15c4c..0000000 --- a/Carthage/Checkouts/Nimble/Sources/Nimble/Utils/Stringers.swift +++ /dev/null @@ -1,212 +0,0 @@ -import Foundation - -internal func identityAsString(_ value: Any?) -> String { - let anyObject: AnyObject? -#if os(Linux) - anyObject = value as? AnyObject -#else - anyObject = value as AnyObject? -#endif - if let value = anyObject { - return NSString(format: "<%p>", unsafeBitCast(value, to: Int.self)).description - } else { - return "nil" - } -} - -internal func arrayAsString(_ items: [T], joiner: String = ", ") -> String { - return items.reduce("") { accum, item in - let prefix = (accum.isEmpty ? "" : joiner) - return accum + prefix + "\(stringify(item))" - } -} - -/// A type with a customized test output text representation. -/// -/// This textual representation is produced when values will be -/// printed in test runs, and may be useful when producing -/// error messages in custom matchers. -/// -/// - SeeAlso: `CustomDebugStringConvertible` -public protocol TestOutputStringConvertible { - var testDescription: String { get } -} - -extension Double: TestOutputStringConvertible { - public var testDescription: String { - return NSNumber(value: self).testDescription - } -} - -extension Float: TestOutputStringConvertible { - public var testDescription: String { - return NSNumber(value: self).testDescription - } -} - -extension NSNumber: TestOutputStringConvertible { - // This is using `NSString(format:)` instead of - // `String(format:)` because the latter somehow breaks - // the travis CI build on linux. - public var testDescription: String { - let description = self.description - - if description.contains(".") { - // Travis linux swiftpm build doesn't like casting String to NSString, - // which is why this annoying nested initializer thing is here. - // Maybe this will change in a future snapshot. - let decimalPlaces = NSString(string: NSString(string: description) - .components(separatedBy: ".")[1]) - - // SeeAlso: https://bugs.swift.org/browse/SR-1464 - switch decimalPlaces.length { - case 1: - return NSString(format: "%0.1f", self.doubleValue).description - case 2: - return NSString(format: "%0.2f", self.doubleValue).description - case 3: - return NSString(format: "%0.3f", self.doubleValue).description - default: - return NSString(format: "%0.4f", self.doubleValue).description - } - } - return self.description - } -} - -extension Array: TestOutputStringConvertible { - public var testDescription: String { - let list = self.map(Nimble.stringify).joined(separator: ", ") - return "[\(list)]" - } -} - -extension AnySequence: TestOutputStringConvertible { - public var testDescription: String { - let generator = self.makeIterator() - var strings = [String]() - var value: AnySequence.Iterator.Element? - - repeat { - value = generator.next() - if let value = value { - strings.append(stringify(value)) - } - } while value != nil - - let list = strings.joined(separator: ", ") - return "[\(list)]" - } -} - -extension NSArray: TestOutputStringConvertible { - public var testDescription: String { - let list = Array(self).map(Nimble.stringify).joined(separator: ", ") - return "(\(list))" - } -} - -extension NSIndexSet: TestOutputStringConvertible { - public var testDescription: String { - let list = Array(self).map(Nimble.stringify).joined(separator: ", ") - return "(\(list))" - } -} - -extension String: TestOutputStringConvertible { - public var testDescription: String { - return self - } -} - -extension Data: TestOutputStringConvertible { - public var testDescription: String { - #if os(Linux) - // FIXME: Swift on Linux triggers a segfault when calling NSData's hash() (last checked on 03-11-16) - return "Data" - #else - return "Data" - #endif - } -} - -/// -/// Returns a string appropriate for displaying in test output -/// from the provided value. -/// -/// - parameter value: A value that will show up in a test's output. -/// -/// - returns: The string that is returned can be -/// customized per type by conforming a type to the `TestOutputStringConvertible` -/// protocol. When stringifying a non-`TestOutputStringConvertible` type, this -/// function will return the value's debug description and then its -/// normal description if available and in that order. Otherwise it -/// will return the result of constructing a string from the value. -/// -/// - SeeAlso: `TestOutputStringConvertible` -public func stringify(_ value: T) -> String { - if let value = value as? TestOutputStringConvertible { - return value.testDescription - } - - if let value = value as? CustomDebugStringConvertible { - return value.debugDescription - } - - return String(describing: value) -} - -/// -SeeAlso: `stringify(value: T)` -public func stringify(_ value: T?) -> String { - if let unboxed = value { - return stringify(unboxed) - } - return "nil" -} - -#if _runtime(_ObjC) -@objc public class NMBStringer: NSObject { - @objc public class func stringify(_ obj: Any?) -> String { - return Nimble.stringify(obj) - } -} -#endif - -// MARK: Collection Type Stringers - -/// Attempts to generate a pretty type string for a given value. If the value is of a Objective-C -/// collection type, or a subclass thereof, (e.g. `NSArray`, `NSDictionary`, etc.). -/// This function will return the type name of the root class of the class cluster for better -/// readability (e.g. `NSArray` instead of `__NSArrayI`). -/// -/// For values that don't have a type of an Objective-C collection, this function returns the -/// default type description. -/// -/// - parameter value: A value that will be used to determine a type name. -/// -/// - returns: The name of the class cluster root class for Objective-C collection types, or the -/// the `dynamicType` of the value for values of any other type. -public func prettyCollectionType(_ value: T) -> String { - switch value { - case is NSArray: - return String(describing: NSArray.self) - case is NSDictionary: - return String(describing: NSDictionary.self) - case is NSSet: - return String(describing: NSSet.self) - case is NSIndexSet: - return String(describing: NSIndexSet.self) - default: - return String(describing: value) - } -} - -/// Returns the type name for a given collection type. This overload is used by Swift -/// collection types. -/// -/// - parameter collection: A Swift `CollectionType` value. -/// -/// - returns: A string representing the `dynamicType` of the value. -public func prettyCollectionType(_ collection: T) -> String { - return String(describing: type(of: collection)) -} diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h deleted file mode 100644 index 5d416e4..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import - -SWIFT_CLASS("_TtC6Nimble22CurrentTestCaseTracker") -@interface CurrentTestCaseTracker : NSObject -+ (CurrentTestCaseTracker *)sharedInstance; -@end - -@interface CurrentTestCaseTracker (Register) @end diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h deleted file mode 100644 index 4538fb4..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.h +++ /dev/null @@ -1,383 +0,0 @@ -#import - -@class NMBExpectation; -@class NMBObjCBeCloseToMatcher; -@class NMBObjCRaiseExceptionMatcher; -@protocol NMBMatcher; - - -NS_ASSUME_NONNULL_BEGIN - - -#define NIMBLE_OVERLOADABLE __attribute__((overloadable)) -#define NIMBLE_EXPORT FOUNDATION_EXPORT -#define NIMBLE_EXPORT_INLINE FOUNDATION_STATIC_INLINE - -#define NIMBLE_VALUE_OF(VAL) ({ \ - __typeof__((VAL)) val = (VAL); \ - [NSValue valueWithBytes:&val objCType:@encode(__typeof__((VAL)))]; \ -}) - -#ifdef NIMBLE_DISABLE_SHORT_SYNTAX -#define NIMBLE_SHORT(PROTO, ORIGINAL) -#define NIMBLE_SHORT_OVERLOADED(PROTO, ORIGINAL) -#else -#define NIMBLE_SHORT(PROTO, ORIGINAL) FOUNDATION_STATIC_INLINE PROTO { return (ORIGINAL); } -#define NIMBLE_SHORT_OVERLOADED(PROTO, ORIGINAL) FOUNDATION_STATIC_INLINE NIMBLE_OVERLOADABLE PROTO { return (ORIGINAL); } -#endif - - - -#define DEFINE_NMB_EXPECT_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - NMBExpectation *NMB_expect(TYPE(^actualBlock)(), NSString *file, NSUInteger line) { \ - return NMB_expect(^id { return EXPR; }, file, line); \ - } - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - NMBExpectation *NMB_expect(id(^actualBlock)(), NSString *file, NSUInteger line); - - // overloaded dispatch for nils - expect(nil) - DEFINE_NMB_EXPECT_OVERLOAD(void*, nil) - DEFINE_NMB_EXPECT_OVERLOAD(NSRange, NIMBLE_VALUE_OF(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(int, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned int, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(float, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(double, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(long long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned long long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(char, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned char, @(actualBlock())) - // bool doesn't get the compiler to dispatch to BOOL types, but using BOOL here seems to allow - // the compiler to dispatch to bool. - DEFINE_NMB_EXPECT_OVERLOAD(BOOL, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(char *, @(actualBlock())) - - -#undef DEFINE_NMB_EXPECT_OVERLOAD - - - -NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), NSString *file, NSUInteger line); - - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_equal(TYPE expectedValue) { \ - return NMB_equal((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id equal(TYPE expectedValue), NMB_equal(expectedValue)); - - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_equal(__nullable id expectedValue); - - NIMBLE_SHORT_OVERLOADED(id equal(__nullable id expectedValue), - NMB_equal(expectedValue)); - - // overloaded dispatch for nils - expect(nil) - DEFINE_OVERLOAD(void*__nullable, (id)nil) - DEFINE_OVERLOAD(NSRange, NIMBLE_VALUE_OF(expectedValue)) - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - // bool doesn't get the compiler to dispatch to BOOL types, but using BOOL here seems to allow - // the compiler to dispatch to bool. - DEFINE_OVERLOAD(BOOL, @(expectedValue)) - DEFINE_OVERLOAD(char *, @(expectedValue)) - -#undef DEFINE_OVERLOAD - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_haveCount(TYPE expectedValue) { \ - return NMB_haveCount((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id haveCount(TYPE expectedValue), \ - NMB_haveCount(expectedValue)); - - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_haveCount(id expectedValue); - - NIMBLE_SHORT_OVERLOADED(id haveCount(id expectedValue), - NMB_haveCount(expectedValue)); - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - NMBObjCBeCloseToMatcher *NMB_beCloseTo(TYPE expectedValue) { \ - return NMB_beCloseTo((NSNumber *)(EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(NMBObjCBeCloseToMatcher *beCloseTo(TYPE expectedValue), \ - NMB_beCloseTo(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE NMBObjCBeCloseToMatcher *NMB_beCloseTo(NSNumber *expectedValue); - NIMBLE_SHORT_OVERLOADED(NMBObjCBeCloseToMatcher *beCloseTo(NSNumber *expectedValue), - NMB_beCloseTo(expectedValue)); - - // it would be better to only overload float & double, but zero becomes ambigious - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -NIMBLE_EXPORT id NMB_beAnInstanceOf(Class expectedClass); -NIMBLE_EXPORT_INLINE id beAnInstanceOf(Class expectedClass) { - return NMB_beAnInstanceOf(expectedClass); -} - -NIMBLE_EXPORT id NMB_beAKindOf(Class expectedClass); -NIMBLE_EXPORT_INLINE id beAKindOf(Class expectedClass) { - return NMB_beAKindOf(expectedClass); -} - -NIMBLE_EXPORT id NMB_beginWith(id itemElementOrSubstring); -NIMBLE_EXPORT_INLINE id beginWith(id itemElementOrSubstring) { - return NMB_beginWith(itemElementOrSubstring); -} - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beGreaterThan(TYPE expectedValue) { \ - return NMB_beGreaterThan((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beGreaterThan(TYPE expectedValue), NMB_beGreaterThan(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beGreaterThan(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beGreaterThan(NSNumber *expectedValue) { - return NMB_beGreaterThan(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beGreaterThanOrEqualTo(TYPE expectedValue) { \ - return NMB_beGreaterThanOrEqualTo((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beGreaterThanOrEqualTo(TYPE expectedValue), \ - NMB_beGreaterThanOrEqualTo(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beGreaterThanOrEqualTo(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beGreaterThanOrEqualTo(NSNumber *expectedValue) { - return NMB_beGreaterThanOrEqualTo(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - - -#undef DEFINE_OVERLOAD - -NIMBLE_EXPORT id NMB_beIdenticalTo(id expectedInstance); -NIMBLE_SHORT(id beIdenticalTo(id expectedInstance), - NMB_beIdenticalTo(expectedInstance)); - -NIMBLE_EXPORT id NMB_be(id expectedInstance); -NIMBLE_SHORT(id be(id expectedInstance), - NMB_be(expectedInstance)); - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beLessThan(TYPE expectedValue) { \ - return NMB_beLessThan((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beLessThan(TYPE expectedValue), \ - NMB_beLessThan(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beLessThan(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beLessThan(NSNumber *expectedValue) { - return NMB_beLessThan(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beLessThanOrEqualTo(TYPE expectedValue) { \ - return NMB_beLessThanOrEqualTo((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beLessThanOrEqualTo(TYPE expectedValue), \ - NMB_beLessThanOrEqualTo(expectedValue)); - - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beLessThanOrEqualTo(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beLessThanOrEqualTo(NSNumber *expectedValue) { - return NMB_beLessThanOrEqualTo(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -NIMBLE_EXPORT id NMB_beTruthy(void); -NIMBLE_SHORT(id beTruthy(void), - NMB_beTruthy()); - -NIMBLE_EXPORT id NMB_beFalsy(void); -NIMBLE_SHORT(id beFalsy(void), - NMB_beFalsy()); - -NIMBLE_EXPORT id NMB_beTrue(void); -NIMBLE_SHORT(id beTrue(void), - NMB_beTrue()); - -NIMBLE_EXPORT id NMB_beFalse(void); -NIMBLE_SHORT(id beFalse(void), - NMB_beFalse()); - -NIMBLE_EXPORT id NMB_beNil(void); -NIMBLE_SHORT(id beNil(void), - NMB_beNil()); - -NIMBLE_EXPORT id NMB_beEmpty(void); -NIMBLE_SHORT(id beEmpty(void), - NMB_beEmpty()); - -NIMBLE_EXPORT id NMB_containWithNilTermination(id itemOrSubstring, ...) NS_REQUIRES_NIL_TERMINATION; -#define NMB_contain(...) NMB_containWithNilTermination(__VA_ARGS__, nil) -#ifndef NIMBLE_DISABLE_SHORT_SYNTAX -#define contain(...) NMB_contain(__VA_ARGS__) -#endif - -NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)); -NIMBLE_SHORT(id containElementSatisfying(BOOL(^predicate)(id)), - NMB_containElementSatisfying(predicate)); - -NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring); -NIMBLE_SHORT(id endWith(id itemElementOrSubstring), - NMB_endWith(itemElementOrSubstring)); - -NIMBLE_EXPORT NMBObjCRaiseExceptionMatcher *NMB_raiseException(void); -NIMBLE_SHORT(NMBObjCRaiseExceptionMatcher *raiseException(void), - NMB_raiseException()); - -NIMBLE_EXPORT id NMB_match(id expectedValue); -NIMBLE_SHORT(id match(id expectedValue), - NMB_match(expectedValue)); - -NIMBLE_EXPORT id NMB_allPass(id matcher); -NIMBLE_SHORT(id allPass(id matcher), - NMB_allPass(matcher)); - -NIMBLE_EXPORT id NMB_satisfyAnyOfWithMatchers(id matchers); -#define NMB_satisfyAnyOf(...) NMB_satisfyAnyOfWithMatchers(@[__VA_ARGS__]) -#ifndef NIMBLE_DISABLE_SHORT_SYNTAX -#define satisfyAnyOf(...) NMB_satisfyAnyOf(__VA_ARGS__) -#endif - -// In order to preserve breakpoint behavior despite using macros to fill in __FILE__ and __LINE__, -// define a builder that populates __FILE__ and __LINE__, and returns a block that takes timeout -// and action arguments. See https://github.com/Quick/Quick/pull/185 for details. -typedef void (^NMBWaitUntilTimeoutBlock)(NSTimeInterval timeout, void (^action)(void (^)(void))); -typedef void (^NMBWaitUntilBlock)(void (^action)(void (^)(void))); - -NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line); - -NIMBLE_EXPORT NMBWaitUntilTimeoutBlock NMB_waitUntilTimeoutBuilder(NSString *file, NSUInteger line); -NIMBLE_EXPORT NMBWaitUntilBlock NMB_waitUntilBuilder(NSString *file, NSUInteger line); - -NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line); - -#define NMB_waitUntilTimeout NMB_waitUntilTimeoutBuilder(@(__FILE__), __LINE__) -#define NMB_waitUntil NMB_waitUntilBuilder(@(__FILE__), __LINE__) - -#ifndef NIMBLE_DISABLE_SHORT_SYNTAX -#define expect(...) NMB_expect(^{ return (__VA_ARGS__); }, @(__FILE__), __LINE__) -#define expectAction(BLOCK) NMB_expectAction((BLOCK), @(__FILE__), __LINE__) -#define failWithMessage(msg) NMB_failWithMessage(msg, @(__FILE__), __LINE__) -#define fail() failWithMessage(@"fail() always fails") - - -#define waitUntilTimeout NMB_waitUntilTimeout -#define waitUntil NMB_waitUntil - -#undef NIMBLE_VALUE_OF - -#endif - -NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m deleted file mode 100644 index 31ff810..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/DSL.m +++ /dev/null @@ -1,160 +0,0 @@ -#import -#import - -SWIFT_CLASS("_TtC6Nimble7NMBWait") -@interface NMBWait : NSObject - -+ (void)untilTimeout:(NSTimeInterval)timeout file:(NSString *)file line:(NSUInteger)line action:(void(^)())action; -+ (void)untilFile:(NSString *)file line:(NSUInteger)line action:(void(^)())action; - -@end - - -NS_ASSUME_NONNULL_BEGIN - - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE NMBExpectation *__nonnull NMB_expect(id __nullable(^actualBlock)(), NSString *__nonnull file, NSUInteger line) { - return [[NMBExpectation alloc] initWithActualBlock:actualBlock - negative:NO - file:file - line:line]; -} - -NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), NSString *file, NSUInteger line) { - return NMB_expect(^id{ - actualBlock(); - return nil; - }, file, line); -} - -NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line) { - return [NMBExpectation failWithMessage:msg file:file line:line]; -} - -NIMBLE_EXPORT id NMB_beAnInstanceOf(Class expectedClass) { - return [NMBObjCMatcher beAnInstanceOfMatcher:expectedClass]; -} - -NIMBLE_EXPORT id NMB_beAKindOf(Class expectedClass) { - return [NMBObjCMatcher beAKindOfMatcher:expectedClass]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE NMBObjCBeCloseToMatcher *NMB_beCloseTo(NSNumber *expectedValue) { - return [NMBObjCMatcher beCloseToMatcher:expectedValue within:0.001]; -} - -NIMBLE_EXPORT id NMB_beginWith(id itemElementOrSubstring) { - return [NMBObjCMatcher beginWithMatcher:itemElementOrSubstring]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beGreaterThan(NSNumber *expectedValue) { - return [NMBObjCMatcher beGreaterThanMatcher:expectedValue]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beGreaterThanOrEqualTo(NSNumber *expectedValue) { - return [NMBObjCMatcher beGreaterThanOrEqualToMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_beIdenticalTo(id expectedInstance) { - return [NMBObjCMatcher beIdenticalToMatcher:expectedInstance]; -} - -NIMBLE_EXPORT id NMB_be(id expectedInstance) { - return [NMBObjCMatcher beIdenticalToMatcher:expectedInstance]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beLessThan(NSNumber *expectedValue) { - return [NMBObjCMatcher beLessThanMatcher:expectedValue]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beLessThanOrEqualTo(NSNumber *expectedValue) { - return [NMBObjCMatcher beLessThanOrEqualToMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_beTruthy() { - return [NMBObjCMatcher beTruthyMatcher]; -} - -NIMBLE_EXPORT id NMB_beFalsy() { - return [NMBObjCMatcher beFalsyMatcher]; -} - -NIMBLE_EXPORT id NMB_beTrue() { - return [NMBObjCMatcher beTrueMatcher]; -} - -NIMBLE_EXPORT id NMB_beFalse() { - return [NMBObjCMatcher beFalseMatcher]; -} - -NIMBLE_EXPORT id NMB_beNil() { - return [NMBObjCMatcher beNilMatcher]; -} - -NIMBLE_EXPORT id NMB_beEmpty() { - return [NMBObjCMatcher beEmptyMatcher]; -} - -NIMBLE_EXPORT id NMB_containWithNilTermination(id itemOrSubstring, ...) { - NSMutableArray *itemOrSubstringArray = [NSMutableArray array]; - - if (itemOrSubstring) { - [itemOrSubstringArray addObject:itemOrSubstring]; - - va_list args; - va_start(args, itemOrSubstring); - id next; - while ((next = va_arg(args, id))) { - [itemOrSubstringArray addObject:next]; - } - va_end(args); - } - - return [NMBObjCMatcher containMatcher:itemOrSubstringArray]; -} - -NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)) { - return [NMBObjCMatcher containElementSatisfyingMatcher:predicate]; -} - -NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring) { - return [NMBObjCMatcher endWithMatcher:itemElementOrSubstring]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_equal(__nullable id expectedValue) { - return [NMBObjCMatcher equalMatcher:expectedValue]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_haveCount(id expectedValue) { - return [NMBObjCMatcher haveCountMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_match(id expectedValue) { - return [NMBObjCMatcher matchMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_allPass(id expectedValue) { - return [NMBObjCMatcher allPassMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_satisfyAnyOfWithMatchers(id matchers) { - return [NMBObjCMatcher satisfyAnyOfMatcher:matchers]; -} - -NIMBLE_EXPORT NMBObjCRaiseExceptionMatcher *NMB_raiseException() { - return [NMBObjCMatcher raiseExceptionMatcher]; -} - -NIMBLE_EXPORT NMBWaitUntilTimeoutBlock NMB_waitUntilTimeoutBuilder(NSString *file, NSUInteger line) { - return ^(NSTimeInterval timeout, void (^action)(void (^)(void))) { - [NMBWait untilTimeout:timeout file:file line:line action:action]; - }; -} - -NIMBLE_EXPORT NMBWaitUntilBlock NMB_waitUntilBuilder(NSString *file, NSUInteger line) { - return ^(void (^action)(void (^)(void))) { - [NMBWait untilFile:file line:line action:action]; - }; -} - -NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h deleted file mode 100644 index d2a54d2..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h +++ /dev/null @@ -1,11 +0,0 @@ -#import -#import - -@interface NMBExceptionCapture : NSObject - -- (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)())finally; -- (void)tryBlock:(__attribute__((noescape)) void(^ _Nonnull)())unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); - -@end - -typedef void(^NMBSourceCallbackBlock)(BOOL successful); diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m deleted file mode 100644 index 0a882b7..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m +++ /dev/null @@ -1,35 +0,0 @@ -#import "NMBExceptionCapture.h" - -@interface NMBExceptionCapture () -@property (nonatomic, copy) void(^ _Nullable handler)(NSException * _Nullable); -@property (nonatomic, copy) void(^ _Nullable finally)(); -@end - -@implementation NMBExceptionCapture - -- (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)())finally { - self = [super init]; - if (self) { - self.handler = handler; - self.finally = finally; - } - return self; -} - -- (void)tryBlock:(void(^ _Nonnull)())unsafeBlock { - @try { - unsafeBlock(); - } - @catch (NSException *exception) { - if (self.handler) { - self.handler(exception); - } - } - @finally { - if (self.finally) { - self.finally(); - } - } -} - -@end diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.h b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.h deleted file mode 100644 index e5d5ddd..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.h +++ /dev/null @@ -1,18 +0,0 @@ -@class NSString; - -/** - * Returns a string appropriate for displaying in test output - * from the provided value. - * - * @param value A value that will show up in a test's output. - * - * @return The string that is returned can be - * customized per type by conforming a type to the `TestOutputStringConvertible` - * protocol. When stringifying a non-`TestOutputStringConvertible` type, this - * function will return the value's debug description and then its - * normal description if available and in that order. Otherwise it - * will return the result of constructing a string from the value. - * - * @see `TestOutputStringConvertible` - */ -extern NSString *_Nonnull NMBStringify(id _Nullable anyObject) __attribute__((warn_unused_result)); diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.m b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.m deleted file mode 100644 index 329d39a..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/NMBStringify.m +++ /dev/null @@ -1,6 +0,0 @@ -#import "NMBStringify.h" -#import - -NSString *_Nonnull NMBStringify(id _Nullable anyObject) { - return [NMBStringer stringify:anyObject]; -} diff --git a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m b/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m deleted file mode 100644 index 35f26fd..0000000 --- a/Carthage/Checkouts/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m +++ /dev/null @@ -1,78 +0,0 @@ -#import "CurrentTestCaseTracker.h" -#import -#import - -#pragma mark - Method Swizzling - -/// Swaps the implementations between two instance methods. -/// -/// @param class The class containing `originalSelector`. -/// @param originalSelector Original method to replace. -/// @param replacementSelector Replacement method. -void swizzleSelectors(Class class, SEL originalSelector, SEL replacementSelector) { - Method originalMethod = class_getInstanceMethod(class, originalSelector); - Method replacementMethod = class_getInstanceMethod(class, replacementSelector); - - BOOL didAddMethod = - class_addMethod(class, - originalSelector, - method_getImplementation(replacementMethod), - method_getTypeEncoding(replacementMethod)); - - if (didAddMethod) { - class_replaceMethod(class, - replacementSelector, - method_getImplementation(originalMethod), - method_getTypeEncoding(originalMethod)); - } else { - method_exchangeImplementations(originalMethod, replacementMethod); - } -} - -#pragma mark - Private - -@interface XCTestObservationCenter (Private) -- (void)_addLegacyTestObserver:(id)observer; -@end - -@implementation XCTestObservationCenter (Register) - -/// Uses objc method swizzling to register `CurrentTestCaseTracker` as a test observer. This is necessary -/// because Xcode 7.3 introduced timing issues where if a custom `XCTestObservation` is registered too early -/// it suppresses all console output (generated by `XCTestLog`), breaking any tools that depend on this output. -/// This approach waits to register our custom test observer until XCTest adds its first "legacy" observer, -/// falling back to registering after the first normal observer if this private method ever changes. -+ (void)load { - if (class_getInstanceMethod([self class], @selector(_addLegacyTestObserver:))) { - // Swizzle -_addLegacyTestObserver: - swizzleSelectors([self class], @selector(_addLegacyTestObserver:), @selector(NMB_original__addLegacyTestObserver:)); - } else { - // Swizzle -addTestObserver:, only if -_addLegacyTestObserver: is not implemented - swizzleSelectors([self class], @selector(addTestObserver:), @selector(NMB_original_addTestObserver:)); - } -} - -#pragma mark - Replacement Methods - -/// Registers `CurrentTestCaseTracker` as a test observer after `XCTestLog` has been added. -- (void)NMB_original__addLegacyTestObserver:(id)observer { - [self NMB_original__addLegacyTestObserver:observer]; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - [self addTestObserver:[CurrentTestCaseTracker sharedInstance]]; - }); -} - -/// Registers `CurrentTestCaseTracker` as a test observer after `XCTestLog` has been added. -/// This method is only used if `-_addLegacyTestObserver:` is not impelemented. (added in Xcode 7.3) -- (void)NMB_original_addTestObserver:(id)observer { - [self NMB_original_addTestObserver:observer]; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - [self NMB_original_addTestObserver:[CurrentTestCaseTracker sharedInstance]]; - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift b/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift deleted file mode 100644 index 16c6953..0000000 --- a/Carthage/Checkouts/Nimble/Tests/LinuxMain.swift +++ /dev/null @@ -1,37 +0,0 @@ -import XCTest -@testable import NimbleTests - -// This is the entry point for NimbleTests on Linux - -XCTMain([ - testCase(AsyncTest.allTests), - testCase(SynchronousTest.allTests), - testCase(UserDescriptionTest.allTests), - - // Matchers - testCase(AllPassTest.allTests), - testCase(BeAKindOfSwiftTest.allTests), - testCase(BeAnInstanceOfTest.allTests), - testCase(BeCloseToTest.allTests), - testCase(BeginWithTest.allTests), - testCase(BeGreaterThanOrEqualToTest.allTests), - testCase(BeGreaterThanTest.allTests), - testCase(BeIdenticalToObjectTest.allTests), - testCase(BeIdenticalToTest.allTests), - testCase(BeLessThanOrEqualToTest.allTests), - testCase(BeLessThanTest.allTests), - testCase(BeTruthyTest.allTests), - testCase(BeTrueTest.allTests), - testCase(BeFalsyTest.allTests), - testCase(BeFalseTest.allTests), - testCase(BeNilTest.allTests), - testCase(ContainTest.allTests), - testCase(EndWithTest.allTests), - testCase(EqualTest.allTests), - testCase(HaveCountTest.allTests), - testCase(MatchTest.allTests), - // testCase(RaisesExceptionTest.allTests), - testCase(ThrowErrorTest.allTests), - testCase(SatisfyAnyOfTest.allTests), - testCase(PostNotificationTest.allTests), -]) diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift deleted file mode 100644 index 47db724..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/AsynchronousTest.swift +++ /dev/null @@ -1,220 +0,0 @@ -import Dispatch -import Foundation -import XCTest -import Nimble - -final class AsyncTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (AsyncTest) -> () throws -> Void)] { - return [ - ("testToEventuallyPositiveMatches", testToEventuallyPositiveMatches), - ("testToEventuallyNegativeMatches", testToEventuallyNegativeMatches), - ("testWaitUntilPositiveMatches", testWaitUntilPositiveMatches), - ("testToEventuallyWithCustomDefaultTimeout", testToEventuallyWithCustomDefaultTimeout), - ("testWaitUntilTimesOutIfNotCalled", testWaitUntilTimesOutIfNotCalled), - ("testWaitUntilTimesOutWhenExceedingItsTime", testWaitUntilTimesOutWhenExceedingItsTime), - ("testWaitUntilNegativeMatches", testWaitUntilNegativeMatches), - ("testWaitUntilDetectsStalledMainThreadActivity", testWaitUntilDetectsStalledMainThreadActivity), - ("testCombiningAsyncWaitUntilAndToEventuallyIsNotAllowed", testCombiningAsyncWaitUntilAndToEventuallyIsNotAllowed), - ("testWaitUntilErrorsIfDoneIsCalledMultipleTimes", testWaitUntilErrorsIfDoneIsCalledMultipleTimes), - ("testWaitUntilMustBeInMainThread", testWaitUntilMustBeInMainThread), - ("testToEventuallyMustBeInMainThread", testToEventuallyMustBeInMainThread), - ] - } - - class Error: Swift.Error {} - let errorToThrow = Error() - - private func doThrowError() throws -> Int { - throw errorToThrow - } - - func testToEventuallyPositiveMatches() { - var value = 0 - deferToMainQueue { value = 1 } - expect { value }.toEventually(equal(1)) - - deferToMainQueue { value = 0 } - expect { value }.toEventuallyNot(equal(1)) - } - - func testToEventuallyNegativeMatches() { - let value = 0 - failsWithErrorMessage("expected to eventually not equal <0>, got <0>") { - expect { value }.toEventuallyNot(equal(0)) - } - failsWithErrorMessage("expected to eventually equal <1>, got <0>") { - expect { value }.toEventually(equal(1)) - } - failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.toEventually(equal(1)) - } - failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.toEventuallyNot(equal(0)) - } - } - - func testToEventuallyWithCustomDefaultTimeout() { - AsyncDefaults.Timeout = 2 - defer { - AsyncDefaults.Timeout = 1 - } - - var value = 0 - - let sleepThenSetValueTo: (Int) -> Void = { newValue in - Thread.sleep(forTimeInterval: 1.1) - value = newValue - } - - var asyncOperation: () -> Void = { sleepThenSetValueTo(1) } - - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect { value }.toEventually(equal(1)) - - asyncOperation = { sleepThenSetValueTo(0) } - - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect { value }.toEventuallyNot(equal(1)) - } - - func testWaitUntilPositiveMatches() { - waitUntil { done in - done() - } - waitUntil { done in - deferToMainQueue { - done() - } - } - } - - func testWaitUntilTimesOutIfNotCalled() { - failsWithErrorMessage("Waited more than 1.0 second") { - waitUntil(timeout: 1) { _ in return } - } - } - - func testWaitUntilTimesOutWhenExceedingItsTime() { - var waiting = true - failsWithErrorMessage("Waited more than 0.01 seconds") { - waitUntil(timeout: 0.01) { done in - let asyncOperation: () -> Void = { - Thread.sleep(forTimeInterval: 0.1) - done() - waiting = false - } - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - } - } - - // "clear" runloop to ensure this test doesn't poison other tests - repeat { - RunLoop.main.run(until: Date().addingTimeInterval(0.2)) - } while(waiting) - } - - func testWaitUntilNegativeMatches() { - failsWithErrorMessage("expected to equal <2>, got <1>") { - waitUntil { done in - Thread.sleep(forTimeInterval: 0.1) - expect(1).to(equal(2)) - done() - } - } - } - - func testWaitUntilDetectsStalledMainThreadActivity() { - let msg = "-waitUntil() timed out but was unable to run the timeout handler because the main thread is unresponsive (0.5 seconds is allow after the wait times out). Conditions that may cause this include processing blocking IO on the main thread, calls to sleep(), deadlocks, and synchronous IPC. Nimble forcefully stopped run loop which may cause future failures in test run." - failsWithErrorMessage(msg) { - waitUntil(timeout: 1) { done in - Thread.sleep(forTimeInterval: 5.0) - done() - } - } - } - - func testCombiningAsyncWaitUntilAndToEventuallyIsNotAllowed() { - // Currently we are unable to catch Objective-C exceptions when built by the Swift Package Manager -#if !SWIFT_PACKAGE - let referenceLine = #line + 9 - var msg = "Unexpected exception raised: Nested async expectations are not allowed " - msg += "to avoid creating flaky tests." - msg += "\n\n" - msg += "The call to\n\t" - msg += "expect(...).toEventually(...) at \(#file):\(referenceLine + 7)\n" - msg += "triggered this exception because\n\t" - msg += "waitUntil(...) at \(#file):\(referenceLine + 1)\n" - msg += "is currently managing the main run loop." - failsWithErrorMessage(msg) { // reference line - waitUntil(timeout: 2.0) { done in - var protected: Int = 0 - DispatchQueue.main.async { - protected = 1 - } - - expect(protected).toEventually(equal(1)) - done() - } - } -#endif - } - - func testWaitUntilErrorsIfDoneIsCalledMultipleTimes() { - failsWithErrorMessage("waitUntil(..) expects its completion closure to be only called once") { - waitUntil { done in - deferToMainQueue { - done() - done() - } - } - } - } - - func testWaitUntilMustBeInMainThread() { -#if !SWIFT_PACKAGE - var executedAsyncBlock: Bool = false - let asyncOperation: () -> Void = { - expect { - waitUntil { done in done() } - }.to(raiseException(named: "InvalidNimbleAPIUsage")) - executedAsyncBlock = true - } - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect(executedAsyncBlock).toEventually(beTruthy()) -#endif - } - - func testToEventuallyMustBeInMainThread() { -#if !SWIFT_PACKAGE - var executedAsyncBlock: Bool = false - let asyncOperation: () -> Void = { - expect { - expect(1).toEventually(equal(2)) - }.to(raiseException(named: "InvalidNimbleAPIUsage")) - executedAsyncBlock = true - } - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect(executedAsyncBlock).toEventually(beTruthy()) -#endif - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift deleted file mode 100644 index 26e5a98..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift +++ /dev/null @@ -1,7 +0,0 @@ -import Foundation - -class ObjectWithLazyProperty { - init() {} - lazy var value: String = "hello" - lazy var anotherValue: String = { return "world" }() -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift deleted file mode 100644 index 40d9760..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift +++ /dev/null @@ -1,52 +0,0 @@ -import Foundation -import XCTest - -// XCTestCaseProvider should be adopted by all XCTestCase subclasses. It provides a -// mechanism for us to fail tests in Xcode which haven't been included in the `allTests` -// list for swift-corelibs-xctest which is unable to dynamically discover tests. Note -// that only `static var allTests` needs to be explicitly implemented, as `allTestNames` -// has a default implementation provided by a protocol extension. - -// Implementation note: This is broken down into two separate protocols because we need a -// protocol with no Self references to which we can cast XCTestCase instances in a non-generic context. - -public protocol XCTestCaseProviderStatic { - // This should be explicitly implemented by XCTestCase subclasses - static var allTests: [(String, (Self) -> () throws -> Void)] { get } -} - -public protocol XCTestCaseNameProvider { - // This does not need to be explicitly implemented because of the protocol extension below - var allTestNames: [String] { get } -} - -public protocol XCTestCaseProvider: XCTestCaseProviderStatic, XCTestCaseNameProvider {} - -extension XCTestCaseProvider where Self: XCTestCaseProviderStatic { - var allTestNames: [String] { - return type(of: self).allTests.map({ name, _ in - return name - }) - } -} - -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) - -extension XCTestCase { - override open func tearDown() { - if let provider = self as? XCTestCaseNameProvider { - provider.assertContainsTest(invocation!.selector.description) - } - - super.tearDown() - } -} - -extension XCTestCaseNameProvider { - fileprivate func assertContainsTest(_ name: String) { - let contains = self.allTestNames.contains(name) - XCTAssert(contains, "Test '\(name)' is missing from the allTests array") - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift deleted file mode 100644 index bb552ef..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Helpers/utils.swift +++ /dev/null @@ -1,98 +0,0 @@ -import Dispatch -import Foundation -@testable import Nimble -import XCTest - -func failsWithErrorMessage(_ messages: [String], file: FileString = #file, line: UInt = #line, preferOriginalSourceLocation: Bool = false, closure: @escaping () throws -> Void) { - var filePath = file - var lineNumber = line - - let recorder = AssertionRecorder() - withAssertionHandler(recorder, closure: closure) - - for msg in messages { - var lastFailure: AssertionRecord? - var foundFailureMessage = false - - for assertion in recorder.assertions { - lastFailure = assertion - if assertion.message.stringValue == msg { - foundFailureMessage = true - break - } - } - - if foundFailureMessage { - continue - } - - if preferOriginalSourceLocation { - if let failure = lastFailure { - filePath = failure.location.file - lineNumber = failure.location.line - } - } - - let message: String - if let lastFailure = lastFailure { - message = "Got failure message: \"\(lastFailure.message.stringValue)\", but expected \"\(msg)\"" - } else { - message = "expected failure message, but got none" - } - NimbleAssertionHandler.assert(false, - message: FailureMessage(stringValue: message), - location: SourceLocation(file: filePath, line: lineNumber)) - } -} - -func failsWithErrorMessage(_ message: String, file: FileString = #file, line: UInt = #line, preferOriginalSourceLocation: Bool = false, closure: @escaping () -> Void) { - return failsWithErrorMessage( - [message], - file: file, - line: line, - preferOriginalSourceLocation: preferOriginalSourceLocation, - closure: closure - ) -} - -func failsWithErrorMessageForNil(_ message: String, file: FileString = #file, line: UInt = #line, preferOriginalSourceLocation: Bool = false, closure: @escaping () -> Void) { - failsWithErrorMessage("\(message) (use beNil() to match nils)", file: file, line: line, preferOriginalSourceLocation: preferOriginalSourceLocation, closure: closure) -} - - func deferToMainQueue(action: @escaping () -> Void) { - DispatchQueue.main.async { - Thread.sleep(forTimeInterval: 0.01) - action() - } - } - -public class NimbleHelper: NSObject { - public class func expectFailureMessage(_ message: NSString, block: @escaping () -> Void, file: FileString, line: UInt) { - failsWithErrorMessage(String(describing: message), file: file, line: line, preferOriginalSourceLocation: true, closure: block) - } - - public class func expectFailureMessages(_ messages: [NSString], block: @escaping () -> Void, file: FileString, line: UInt) { - failsWithErrorMessage(messages.map({String(describing: $0)}), file: file, line: line, preferOriginalSourceLocation: true, closure: block) - } - - public class func expectFailureMessageForNil(_ message: NSString, block: @escaping () -> Void, file: FileString, line: UInt) { - failsWithErrorMessageForNil(String(describing: message), file: file, line: line, preferOriginalSourceLocation: true, closure: block) - } -} - -extension Date { - init(dateTimeString: String) { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" - dateFormatter.locale = Locale(identifier: "en_US_POSIX") - let date = dateFormatter.date(from: dateTimeString)! - self.init(timeInterval:0, since:date) - } -} - -extension NSDate { - convenience init(dateTimeString: String) { - let date = Date(dateTimeString: dateTimeString) - self.init(timeIntervalSinceReferenceDate: date.timeIntervalSinceReferenceDate) - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Info.plist b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Info.plist deleted file mode 100644 index 6d32c15..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/LinuxSupport.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/LinuxSupport.swift deleted file mode 100644 index 03ff8e1..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/LinuxSupport.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Foundation - -#if os(Linux) - extension NSNotification.Name { - init(_ rawValue: String) { - self.init(rawValue: rawValue) - } - } -#endif diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift deleted file mode 100644 index 2050881..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift +++ /dev/null @@ -1,126 +0,0 @@ -import XCTest -import Nimble - -/// Add operators to `Optional` for conforming `Comparable` that removed in Swift 3.0 -extension Optional where Wrapped: Comparable { - static func < (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l < r - case (nil, _?): - return true - default: - return false - } - } - - static func > (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l > r - default: - return rhs < lhs - } - } - - static func <= (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l <= r - default: - return !(rhs < lhs) - } - } - - static func >= (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l >= r - default: - return !(lhs < rhs) - } - } -} - -final class AllPassTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (AllPassTest) -> () throws -> Void)] { - return [ - ("testAllPassArray", testAllPassArray), - ("testAllPassMatcher", testAllPassMatcher), - ("testAllPassCollectionsWithOptionalsDontWork", testAllPassCollectionsWithOptionalsDontWork), - ("testAllPassCollectionsWithOptionalsUnwrappingOneOptionalLayer", testAllPassCollectionsWithOptionalsUnwrappingOneOptionalLayer), - ("testAllPassSet", testAllPassSet), - ("testAllPassWithNilAsExpectedValue", testAllPassWithNilAsExpectedValue), - ] - } - - func testAllPassArray() { - expect([1, 2, 3, 4]).to(allPass({$0 < 5})) - expect([1, 2, 3, 4]).toNot(allPass({$0 > 5})) - - failsWithErrorMessage( - "expected to all pass a condition, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1, 2, 3, 4]).to(allPass({$0 < 3})) - } - failsWithErrorMessage("expected to not all pass a condition") { - expect([1, 2, 3, 4]).toNot(allPass({$0 < 5})) - } - failsWithErrorMessage( - "expected to all be something, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1, 2, 3, 4]).to(allPass("be something", {$0 < 3})) - } - failsWithErrorMessage("expected to not all be something") { - expect([1, 2, 3, 4]).toNot(allPass("be something", {$0 < 5})) - } - } - - func testAllPassMatcher() { - expect([1, 2, 3, 4]).to(allPass(beLessThan(5))) - expect([1, 2, 3, 4]).toNot(allPass(beGreaterThan(5))) - - failsWithErrorMessage( - "expected to all be less than <3>, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1, 2, 3, 4]).to(allPass(beLessThan(3))) - } - failsWithErrorMessage("expected to not all be less than <5>") { - expect([1, 2, 3, 4]).toNot(allPass(beLessThan(5))) - } - } - - func testAllPassCollectionsWithOptionalsDontWork() { - failsWithErrorMessage("expected to all be nil, but failed first at element in <[nil, nil, nil]>") { - expect([nil, nil, nil] as [Int?]).to(allPass(beNil())) - } - failsWithErrorMessage("expected to all pass a condition, but failed first at element in <[nil, nil, nil]>") { - expect([nil, nil, nil] as [Int?]).to(allPass({$0 == nil})) - } - } - - func testAllPassCollectionsWithOptionalsUnwrappingOneOptionalLayer() { - expect([nil, nil, nil] as [Int?]).to(allPass({$0! == nil})) - expect([nil, 1, nil] as [Int?]).toNot(allPass({$0! == nil})) - expect([1, 1, 1] as [Int?]).to(allPass({$0! == 1})) - expect([1, 1, nil] as [Int?]).toNot(allPass({$0! == 1})) - expect([1, 2, 3] as [Int?]).to(allPass({$0! < 4})) - expect([1, 2, 3] as [Int?]).toNot(allPass({$0! < 3})) - expect([1, 2, nil] as [Int?]).to(allPass({$0! < 3})) - } - - func testAllPassSet() { - expect(Set([1, 2, 3, 4])).to(allPass({$0 < 5})) - expect(Set([1, 2, 3, 4])).toNot(allPass({$0 > 5})) - - failsWithErrorMessage("expected to not all pass a condition") { - expect(Set([1, 2, 3, 4])).toNot(allPass({$0 < 5})) - } - failsWithErrorMessage("expected to not all be something") { - expect(Set([1, 2, 3, 4])).toNot(allPass("be something", {$0 < 5})) - } - } - - func testAllPassWithNilAsExpectedValue() { - failsWithErrorMessageForNil("expected to all pass") { - expect(nil as [Int]?).to(allPass(beLessThan(5))) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift deleted file mode 100644 index ea16913..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift +++ /dev/null @@ -1,89 +0,0 @@ -import Foundation -import XCTest -import Nimble - -fileprivate class TestNull: NSNull {} -fileprivate protocol TestProtocol {} -fileprivate class TestClassConformingToProtocol: TestProtocol {} -fileprivate struct TestStructConformingToProtocol: TestProtocol {} - -final class BeAKindOfSwiftTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAKindOfSwiftTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testFailureMessages", testFailureMessages), - ] - } - - enum TestEnum { - case one, two - } - - func testPositiveMatch() { - expect(1).to(beAKindOf(Int.self)) - expect(1).toNot(beAKindOf(String.self)) - expect("turtle string").to(beAKindOf(String.self)) - expect("turtle string").toNot(beAKindOf(TestClassConformingToProtocol.self)) - - expect(TestEnum.one).to(beAKindOf(TestEnum.self)) - - let testProtocolClass = TestClassConformingToProtocol() - expect(testProtocolClass).to(beAKindOf(TestClassConformingToProtocol.self)) - expect(testProtocolClass).to(beAKindOf(TestProtocol.self)) - expect(testProtocolClass).toNot(beAKindOf(TestStructConformingToProtocol.self)) - - let testProtocolStruct = TestStructConformingToProtocol() - expect(testProtocolStruct).to(beAKindOf(TestStructConformingToProtocol.self)) - expect(testProtocolStruct).to(beAKindOf(TestProtocol.self)) - expect(testProtocolStruct).toNot(beAKindOf(TestClassConformingToProtocol.self)) - } - - func testFailureMessages() { - failsWithErrorMessage("expected to not be a kind of Int, got ") { - expect(1).toNot(beAKindOf(Int.self)) - } - - let testClass = TestClassConformingToProtocol() - failsWithErrorMessage("expected to not be a kind of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { - expect(testClass).toNot(beAKindOf(TestProtocol.self)) - } - - failsWithErrorMessage("expected to be a kind of String, got ") { - expect(1).to(beAKindOf(String.self)) - } - } -} - -#if _runtime(_ObjC) - -final class BeAKindOfObjCTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAKindOfObjCTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testFailureMessages", testFailureMessages), - ] - } - - func testPositiveMatch() { - expect(TestNull()).to(beAKindOf(NSNull.self)) - expect(NSObject()).to(beAKindOf(NSObject.self)) - expect(NSNumber(value:1)).toNot(beAKindOf(NSDate.self)) - } - - func testFailureMessages() { - failsWithErrorMessageForNil("expected to not be a kind of NSNull, got ") { - expect(nil as NSNull?).toNot(beAKindOf(NSNull.self)) - } - failsWithErrorMessageForNil("expected to be a kind of NSString, got ") { - expect(nil as NSString?).to(beAKindOf(NSString.self)) - } - failsWithErrorMessage("expected to be a kind of NSString, got <__NSCFNumber instance>") { - expect(NSNumber(value:1)).to(beAKindOf(NSString.self)) - } - failsWithErrorMessage("expected to not be a kind of NSNumber, got <__NSCFNumber instance>") { - expect(NSNumber(value:1)).toNot(beAKindOf(NSNumber.self)) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift deleted file mode 100644 index 0660a75..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift +++ /dev/null @@ -1,79 +0,0 @@ -import Foundation -import XCTest -import Nimble - -fileprivate protocol TestProtocol {} -fileprivate class TestClassConformingToProtocol: TestProtocol {} -fileprivate struct TestStructConformingToProtocol: TestProtocol {} - -final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAnInstanceOfTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testPositiveMatchSwiftTypes", testPositiveMatchSwiftTypes), - ("testFailureMessages", testFailureMessages), - ("testFailureMessagesSwiftTypes", testFailureMessagesSwiftTypes), - ] - } - - func testPositiveMatch() { - expect(NSNull()).to(beAnInstanceOf(NSNull.self)) - expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSDate.self)) - } - - enum TestEnum { - case one, two - } - - func testPositiveMatchSwiftTypes() { - expect(1).to(beAnInstanceOf(Int.self)) - expect("test").to(beAnInstanceOf(String.self)) - - expect(TestEnum.one).to(beAnInstanceOf(TestEnum.self)) - - let testProtocolClass = TestClassConformingToProtocol() - expect(testProtocolClass).to(beAnInstanceOf(TestClassConformingToProtocol.self)) - expect(testProtocolClass).toNot(beAnInstanceOf(TestProtocol.self)) - expect(testProtocolClass).toNot(beAnInstanceOf(TestStructConformingToProtocol.self)) - - let testProtocolStruct = TestStructConformingToProtocol() - expect(testProtocolStruct).to(beAnInstanceOf(TestStructConformingToProtocol.self)) - expect(testProtocolStruct).toNot(beAnInstanceOf(TestProtocol.self)) - expect(testProtocolStruct).toNot(beAnInstanceOf(TestClassConformingToProtocol.self)) - } - - func testFailureMessages() { - failsWithErrorMessageForNil("expected to not be an instance of NSNull, got ") { - expect(nil as NSNull?).toNot(beAnInstanceOf(NSNull.self)) - } - failsWithErrorMessageForNil("expected to be an instance of NSString, got ") { - expect(nil as NSString?).to(beAnInstanceOf(NSString.self)) - } -#if _runtime(_ObjC) - let numberTypeName = "__NSCFNumber" -#else - let numberTypeName = "NSNumber" -#endif - failsWithErrorMessage("expected to be an instance of NSString, got <\(numberTypeName) instance>") { - expect(NSNumber(value:1)).to(beAnInstanceOf(NSString.self)) - } - failsWithErrorMessage("expected to not be an instance of NSNumber, got <\(numberTypeName) instance>") { - expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSNumber.self)) - } - } - - func testFailureMessagesSwiftTypes() { - failsWithErrorMessage("expected to not be an instance of Int, got ") { - expect(1).toNot(beAnInstanceOf(Int.self)) - } - - let testClass = TestClassConformingToProtocol() - failsWithErrorMessage("expected to be an instance of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { - expect(testClass).to(beAnInstanceOf(TestProtocol.self)) - } - - failsWithErrorMessage("expected to be an instance of String, got ") { - expect(1).to(beAnInstanceOf(String.self)) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift deleted file mode 100644 index 7a7e508..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift +++ /dev/null @@ -1,160 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeCloseToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeCloseToTest) -> () throws -> Void)] { - return [ - ("testBeCloseTo", testBeCloseTo), - ("testBeCloseToWithin", testBeCloseToWithin), - ("testBeCloseToWithNSNumber", testBeCloseToWithNSNumber), - ("testBeCloseToWithDate", testBeCloseToWithDate), - ("testBeCloseToWithNSDate", testBeCloseToWithNSDate), - ("testBeCloseToOperator", testBeCloseToOperator), - ("testBeCloseToWithinOperator", testBeCloseToWithinOperator), - ("testPlusMinusOperator", testPlusMinusOperator), - ("testBeCloseToOperatorWithDate", testBeCloseToOperatorWithDate), - ("testBeCloseToWithinOperatorWithDate", testBeCloseToWithinOperatorWithDate), - ("testPlusMinusOperatorWithDate", testPlusMinusOperatorWithDate), - ("testBeCloseToArray", testBeCloseToArray), - ("testBeCloseToWithCGFloat", testBeCloseToWithCGFloat), - ] - } - - func testBeCloseTo() { - expect(1.2).to(beCloseTo(1.2001)) - expect(1.2 as CDouble).to(beCloseTo(1.2001)) - expect(1.2 as Float).to(beCloseTo(1.2001)) - - failsWithErrorMessage("expected to not be close to <1.2001> (within 0.0001), got <1.2>") { - expect(1.2).toNot(beCloseTo(1.2001)) - } - } - - func testBeCloseToWithin() { - expect(1.2).to(beCloseTo(9.300, within: 10)) - - failsWithErrorMessage("expected to not be close to <1.2001> (within 1), got <1.2>") { - expect(1.2).toNot(beCloseTo(1.2001, within: 1.0)) - } - } - - func testBeCloseToWithNSNumber() { - expect(NSNumber(value:1.2)).to(beCloseTo(9.300, within: 10)) - expect(NSNumber(value:1.2)).to(beCloseTo(NSNumber(value:9.300), within: 10)) - expect(1.2).to(beCloseTo(NSNumber(value:9.300), within: 10)) - - failsWithErrorMessage("expected to not be close to <1.2001> (within 1), got <1.2>") { - expect(NSNumber(value:1.2)).toNot(beCloseTo(1.2001, within: 1.0)) - } - } - - func testBeCloseToWithCGFloat() { - expect(CGFloat(1.2)).to(beCloseTo(1.2001)) - expect(CGFloat(1.2)).to(beCloseTo(CGFloat(1.2001))) - - failsWithErrorMessage("expected to be close to <1.2001> (within 1), got <1.2>") { - expect(CGFloat(1.2)).to(beCloseTo(1.2001, within: 1.0)) - } - } - - func testBeCloseToWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(Date(dateTimeString: "2015-08-26 11:43:05"), within: 10)) - - failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.004)) - } - } - - func testBeCloseToWithNSDate() { - expect(NSDate(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(NSDate(dateTimeString: "2015-08-26 11:43:05"), within: 10)) - - failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") { - let expectedDate = NSDate(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(NSDate(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.004)) - } - } - - func testBeCloseToOperator() { - expect(1.2) ≈ 1.2001 - expect(1.2 as CDouble) ≈ 1.2001 - - failsWithErrorMessage("expected to be close to <1.2002> (within 0.0001), got <1.2>") { - expect(1.2) ≈ 1.2002 - } - } - - func testBeCloseToWithinOperator() { - expect(1.2) ≈ (9.300, 10) - expect(1.2) == (9.300, 10) - - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) ≈ (1.0, 0.1) - } - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) == (1.0, 0.1) - } - } - - func testPlusMinusOperator() { - expect(1.2) ≈ 9.300 ± 10 - expect(1.2) == 9.300 ± 10 - - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) ≈ 1.0 ± 0.1 - } - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) == 1.0 ± 0.1 - } - } - - func testBeCloseToOperatorWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ Date(dateTimeString: "2015-08-26 11:43:00") - - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.0001), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ expectedDate - } - } - - func testBeCloseToWithinOperatorWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ (Date(dateTimeString: "2015-08-26 11:43:05"), 10) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == (Date(dateTimeString: "2015-08-26 11:43:05"), 10) - - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ (expectedDate, 0.006) - } - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == (expectedDate, 0.006) - } - } - - func testPlusMinusOperatorWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ Date(dateTimeString: "2015-08-26 11:43:05") ± 10 - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == Date(dateTimeString: "2015-08-26 11:43:05") ± 10 - - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ expectedDate ± 0.006 - } - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == expectedDate ± 0.006 - } - } - - func testBeCloseToArray() { - expect([0.0, 1.1, 2.2]) ≈ [0.0001, 1.1001, 2.2001] - expect([0.0, 1.1, 2.2]).to(beCloseTo([0.1, 1.2, 2.3], within: 0.1)) - - failsWithErrorMessage("expected to be close to <[0, 1]> (each within 0.0001), got <[0, 1.1]>") { - expect([0.0, 1.1]) ≈ [0.0, 1.0] - } - failsWithErrorMessage("expected to be close to <[0.2, 1.2]> (each within 0.1), got <[0, 1.1]>") { - expect([0.0, 1.1]).to(beCloseTo([0.2, 1.2], within: 0.1)) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift deleted file mode 100644 index 7c4abf3..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift +++ /dev/null @@ -1,82 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeEmptyTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeEmptyTest) -> () throws -> Void)] { - return [ - ("testBeEmptyPositive", testBeEmptyPositive), - ("testBeEmptyNegative", testBeEmptyNegative), - ] - } - - func testBeEmptyPositive() { - expect([] as [Int]).to(beEmpty()) - expect([1]).toNot(beEmpty()) - - expect([] as [CInt]).to(beEmpty()) - expect([1] as [CInt]).toNot(beEmpty()) - -#if _runtime(_ObjC) - expect(NSDictionary() as? [Int:Int]).to(beEmpty()) - expect(NSDictionary(object: 1, forKey: 1 as NSNumber) as? [Int:Int]).toNot(beEmpty()) -#endif - - expect([Int: Int]()).to(beEmpty()) - expect(["hi": 1]).toNot(beEmpty()) - -#if _runtime(_ObjC) - expect(NSArray() as? [Int]).to(beEmpty()) - expect(NSArray(array: [1]) as? [Int]).toNot(beEmpty()) -#endif - - expect(NSSet()).to(beEmpty()) - expect(NSSet(array: [NSNumber(value: 1)])).toNot(beEmpty()) - - expect(NSIndexSet()).to(beEmpty()) - expect(NSIndexSet(index: 1)).toNot(beEmpty()) - - expect(NSString()).to(beEmpty()) - expect(NSString(string: "hello")).toNot(beEmpty()) - - expect("").to(beEmpty()) - expect("foo").toNot(beEmpty()) - } - - func testBeEmptyNegative() { - failsWithErrorMessageForNil("expected to be empty, got ") { - expect(nil as NSString?).to(beEmpty()) - } - failsWithErrorMessageForNil("expected to not be empty, got ") { - expect(nil as [CInt]?).toNot(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <()>") { - expect(NSArray()).toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got <[1]>") { - expect([1]).to(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <{()}>") { - expect(NSSet()).toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got <{(1)}>") { - expect(NSSet(object: NSNumber(value: 1))).to(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <()>") { - expect(NSIndexSet()).toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got <(1)>") { - expect(NSIndexSet(index: 1)).to(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <>") { - expect("").toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got ") { - expect("foo").to(beEmpty()) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift deleted file mode 100644 index ea524ce..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift +++ /dev/null @@ -1,54 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeGreaterThanOrEqualToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeGreaterThanOrEqualToTest) -> () throws -> Void)] { - return [ - ("testGreaterThanOrEqualTo", testGreaterThanOrEqualTo), - ("testGreaterThanOrEqualToOperator", testGreaterThanOrEqualToOperator), - ] - } - - func testGreaterThanOrEqualTo() { - expect(10).to(beGreaterThanOrEqualTo(10)) - expect(10).to(beGreaterThanOrEqualTo(2)) - expect(1).toNot(beGreaterThanOrEqualTo(2)) - expect(NSNumber(value:1)).toNot(beGreaterThanOrEqualTo(2)) - expect(NSNumber(value:2)).to(beGreaterThanOrEqualTo(NSNumber(value:2))) -#if _runtime(_ObjC) - expect(1).to(beGreaterThanOrEqualTo(NSNumber(value:0))) -#endif - - failsWithErrorMessage("expected to be greater than or equal to <2>, got <0>") { - expect(0).to(beGreaterThanOrEqualTo(2)) - return - } - failsWithErrorMessage("expected to not be greater than or equal to <1>, got <1>") { - expect(1).toNot(beGreaterThanOrEqualTo(1)) - return - } - failsWithErrorMessageForNil("expected to be greater than or equal to <-2>, got ") { - expect(nil as Int?).to(beGreaterThanOrEqualTo(-2)) - } - failsWithErrorMessageForNil("expected to not be greater than or equal to <1>, got ") { - expect(nil as Int?).toNot(beGreaterThanOrEqualTo(1)) - } - } - - func testGreaterThanOrEqualToOperator() { - expect(0) >= 0 - expect(1) >= 0 - expect(NSNumber(value:1)) >= 1 - expect(NSNumber(value:1)) >= NSNumber(value:1) - expect(2.5) >= 2.5 - expect(2.5) >= 2 - expect(Float(2.5)) >= Float(2.5) - expect(Float(2.5)) >= 2 - - failsWithErrorMessage("expected to be greater than or equal to <2>, got <1>") { - expect(1) >= 2 - return - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift deleted file mode 100644 index ea024a3..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift +++ /dev/null @@ -1,53 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeGreaterThanTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeGreaterThanTest) -> () throws -> Void)] { - return [ - ("testGreaterThan", testGreaterThan), - ("testGreaterThanOperator", testGreaterThanOperator), - ] - } - - func testGreaterThan() { - expect(10).to(beGreaterThan(2)) - expect(1).toNot(beGreaterThan(2)) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:3)).to(beGreaterThan(2)) -#else - expect(NSNumber(value:3)).to(beGreaterThan(2 as NSNumber)) -#endif - expect(NSNumber(value:1)).toNot(beGreaterThan(NSNumber(value:2))) - - failsWithErrorMessage("expected to be greater than <2>, got <0>") { - expect(0).to(beGreaterThan(2)) - } - failsWithErrorMessage("expected to not be greater than <0>, got <1>") { - expect(1).toNot(beGreaterThan(0)) - } - failsWithErrorMessageForNil("expected to be greater than <-2>, got ") { - expect(nil as Int?).to(beGreaterThan(-2)) - } - failsWithErrorMessageForNil("expected to not be greater than <0>, got ") { - expect(nil as Int?).toNot(beGreaterThan(0)) - } - } - - func testGreaterThanOperator() { - expect(1) > 0 - expect(NSNumber(value:1)) > NSNumber(value:0) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:1)) > 0 -#else - expect(NSNumber(value:1)) > 0 as NSNumber -#endif - expect(2.5) > 1.5 - expect(Float(2.5)) > Float(1.5) - - failsWithErrorMessage("expected to be greater than <2>, got <1>") { - expect(1) > 2 - return - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift deleted file mode 100644 index 923fa76..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift +++ /dev/null @@ -1,64 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeIdenticalToObjectTest) -> () throws -> Void)] { - return [ - ("testBeIdenticalToPositive", testBeIdenticalToPositive), - ("testBeIdenticalToNegative", testBeIdenticalToNegative), - ("testBeIdenticalToPositiveMessage", testBeIdenticalToPositiveMessage), - ("testBeIdenticalToNegativeMessage", testBeIdenticalToNegativeMessage), - ("testFailsOnNils", testFailsOnNils), - ("testOperators", testOperators), - ] - } - - private class BeIdenticalToObjectTester {} - private let testObjectA = BeIdenticalToObjectTester() - private let testObjectB = BeIdenticalToObjectTester() - - func testBeIdenticalToPositive() { - expect(self.testObjectA).to(beIdenticalTo(testObjectA)) - } - - func testBeIdenticalToNegative() { - expect(self.testObjectA).toNot(beIdenticalTo(testObjectB)) - } - - func testBeIdenticalToPositiveMessage() { - let message = String(describing: NSString(format: "expected to be identical to <%p>, got <%p>", - unsafeBitCast(testObjectB, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessage(message) { - expect(self.testObjectA).to(beIdenticalTo(self.testObjectB)) - } - } - - func testBeIdenticalToNegativeMessage() { - let message = String(describing: NSString(format: "expected to not be identical to <%p>, got <%p>", - unsafeBitCast(testObjectA, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessage(message) { - expect(self.testObjectA).toNot(beIdenticalTo(self.testObjectA)) - } - } - - func testFailsOnNils() { - let message1 = String(describing: NSString(format: "expected to be identical to <%p>, got nil", - unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessageForNil(message1) { - expect(nil as BeIdenticalToObjectTester?).to(beIdenticalTo(self.testObjectA)) - } - - let message2 = String(describing: NSString(format: "expected to not be identical to <%p>, got nil", - unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessageForNil(message2) { - expect(nil as BeIdenticalToObjectTester?).toNot(beIdenticalTo(self.testObjectA)) - } - } - - func testOperators() { - expect(self.testObjectA) === testObjectA - expect(self.testObjectA) !== testObjectB - } - -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift deleted file mode 100644 index 0f49160..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift +++ /dev/null @@ -1,68 +0,0 @@ -import Foundation -import XCTest -@testable import Nimble - -final class BeIdenticalToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeIdenticalToTest) -> () throws -> Void)] { - return [ - ("testBeIdenticalToPositive", testBeIdenticalToPositive), - ("testBeIdenticalToNegative", testBeIdenticalToNegative), - ("testBeIdenticalToPositiveMessage", testBeIdenticalToPositiveMessage), - ("testBeIdenticalToNegativeMessage", testBeIdenticalToNegativeMessage), - ("testOperators", testOperators), - ("testBeAlias", testBeAlias), - ] - } - - func testBeIdenticalToPositive() { - let value = NSDate() - expect(value).to(beIdenticalTo(value)) - } - - func testBeIdenticalToNegative() { - expect(NSNumber(value:1)).toNot(beIdenticalTo(NSString(string: "yo"))) - expect(NSArray(array: [NSNumber(value: 1)])).toNot(beIdenticalTo(NSArray(array: [NSNumber(value: 1)]))) - } - - func testBeIdenticalToPositiveMessage() { - let num1 = NSNumber(value:1) - let num2 = NSNumber(value:2) - let message = "expected to be identical to \(identityAsString(num2)), got \(identityAsString(num1))" - failsWithErrorMessage(message) { - expect(num1).to(beIdenticalTo(num2)) - } - } - - func testBeIdenticalToNegativeMessage() { - let value1 = NSArray(array: []) - let value2 = NSArray(array: []) - let message = "expected to not be identical to \(identityAsString(value2)), got \(identityAsString(value1))" - failsWithErrorMessage(message) { - expect(value1).toNot(beIdenticalTo(value2)) - } - } - - func testOperators() { - let value = NSDate() - expect(value) === value - expect(NSNumber(value:1)) !== NSNumber(value:2) - } - - func testBeAlias() { - let value = NSDate() - expect(value).to(be(value)) - expect(NSNumber(value:1)).toNot(be(NSString(string: "turtles"))) - #if _runtime(_ObjC) - expect([1]).toNot(be([1])) - #else - expect(NSArray(array: [NSNumber(value: 1)])).toNot(beIdenticalTo(NSArray(array: [NSNumber(value: 1)]))) - #endif - - let value1 = NSArray(array: []) - let value2 = NSArray(array: []) - let message = "expected to not be identical to \(identityAsString(value2)), got \(identityAsString(value1))" - failsWithErrorMessage(message) { - expect(value1).toNot(be(value2)) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift deleted file mode 100644 index 61cfec1..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift +++ /dev/null @@ -1,52 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeLessThanOrEqualToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeLessThanOrEqualToTest) -> () throws -> Void)] { - return [ - ("testLessThanOrEqualTo", testLessThanOrEqualTo), - ("testLessThanOrEqualToOperator", testLessThanOrEqualToOperator), - ] - } - - func testLessThanOrEqualTo() { - expect(10).to(beLessThanOrEqualTo(10)) - expect(2).to(beLessThanOrEqualTo(10)) - expect(2).toNot(beLessThanOrEqualTo(1)) - - expect(NSNumber(value:2)).to(beLessThanOrEqualTo(10)) - expect(NSNumber(value:2)).toNot(beLessThanOrEqualTo(1)) -#if _runtime(_ObjC) - expect(2).to(beLessThanOrEqualTo(NSNumber(value:10))) - expect(2).toNot(beLessThanOrEqualTo(NSNumber(value:1))) -#endif - - failsWithErrorMessage("expected to be less than or equal to <0>, got <2>") { - expect(2).to(beLessThanOrEqualTo(0)) - return - } - failsWithErrorMessage("expected to not be less than or equal to <0>, got <0>") { - expect(0).toNot(beLessThanOrEqualTo(0)) - return - } - failsWithErrorMessageForNil("expected to be less than or equal to <2>, got ") { - expect(nil as Int?).to(beLessThanOrEqualTo(2)) - return - } - failsWithErrorMessageForNil("expected to not be less than or equal to <-2>, got ") { - expect(nil as Int?).toNot(beLessThanOrEqualTo(-2)) - return - } - } - - func testLessThanOrEqualToOperator() { - expect(0) <= 1 - expect(1) <= 1 - - failsWithErrorMessage("expected to be less than or equal to <1>, got <2>") { - expect(2) <= 1 - return - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift deleted file mode 100644 index f1c3317..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift +++ /dev/null @@ -1,57 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeLessThanTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeLessThanTest) -> () throws -> Void)] { - return [ - ("testLessThan", testLessThan), - ("testLessThanOperator", testLessThanOperator), - ] - } - - func testLessThan() { - expect(2).to(beLessThan(10)) - expect(2).toNot(beLessThan(1)) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:2)).to(beLessThan(10)) - expect(NSNumber(value:2)).toNot(beLessThan(1)) - - expect(2).to(beLessThan(NSNumber(value:10))) - expect(2).toNot(beLessThan(NSNumber(value:1))) -#else - expect(NSNumber(value:2)).to(beLessThan(10 as NSNumber)) - expect(NSNumber(value:2)).toNot(beLessThan(1 as NSNumber)) - - expect(2 as NSNumber).to(beLessThan(NSNumber(value:10))) - expect(2 as NSNumber).toNot(beLessThan(NSNumber(value:1))) -#endif - - failsWithErrorMessage("expected to be less than <0>, got <2>") { - expect(2).to(beLessThan(0)) - } - failsWithErrorMessage("expected to not be less than <1>, got <0>") { - expect(0).toNot(beLessThan(1)) - } - - failsWithErrorMessageForNil("expected to be less than <2>, got ") { - expect(nil as Int?).to(beLessThan(2)) - } - failsWithErrorMessageForNil("expected to not be less than <-1>, got ") { - expect(nil as Int?).toNot(beLessThan(-1)) - } - } - - func testLessThanOperator() { - expect(0) < 1 -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:0)) < 1 -#else - expect(NSNumber(value:0)) < 1 as NSNumber -#endif - failsWithErrorMessage("expected to be less than <1>, got <2>") { - expect(2) < 1 - return - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift deleted file mode 100644 index 947a1b4..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift +++ /dev/null @@ -1,270 +0,0 @@ -import XCTest -import Nimble -import Foundation - -enum ConvertsToBool: ExpressibleByBooleanLiteral, CustomStringConvertible { - case trueLike, falseLike - - typealias BooleanLiteralType = Bool - - init(booleanLiteral value: Bool) { - switch value { - case true: self = .trueLike - case false: self = .falseLike - } - } - - var boolValue: Bool { - switch self { - case .trueLike: return true - case .falseLike: return false - } - } - - var description: String { - switch self { - case .trueLike: return "TrueLike" - case .falseLike: return "FalseLike" - } - } -} - -final class BeTruthyTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeTruthyTest) -> () throws -> Void)] { - return [ - ("testShouldMatchNonNilTypes", testShouldMatchNonNilTypes), - ("testShouldMatchTrue", testShouldMatchTrue), - ("testShouldNotMatchNilTypes", testShouldNotMatchNilTypes), - ("testShouldNotMatchFalse", testShouldNotMatchFalse), - ("testShouldNotMatchNilBools", testShouldNotMatchNilBools), - ("testShouldMatchBoolConvertibleTypesThatConvertToTrue", testShouldMatchBoolConvertibleTypesThatConvertToTrue), - ("testShouldNotMatchBoolConvertibleTypesThatConvertToFalse", testShouldNotMatchBoolConvertibleTypesThatConvertToFalse), - ] - } - - func testShouldMatchNonNilTypes() { - expect(true as Bool?).to(beTruthy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(1 as Int8?).to(beTruthy()) - expect(1 as UInt8?).to(beTruthy()) - expect(1 as Int16?).to(beTruthy()) - expect(1 as UInt16?).to(beTruthy()) - expect(1 as Int32?).to(beTruthy()) - expect(1 as UInt32?).to(beTruthy()) - expect(1 as Int64?).to(beTruthy()) - expect(1 as UInt64?).to(beTruthy()) - expect(1 as Float?).to(beTruthy()) - expect(1 as Double?).to(beTruthy()) - expect(1 as Int?).to(beTruthy()) - expect(1 as UInt?).to(beTruthy()) - } - - func testShouldMatchTrue() { - expect(true).to(beTruthy()) - - failsWithErrorMessage("expected to not be truthy, got ") { - expect(true).toNot(beTruthy()) - } - } - - func testShouldNotMatchNilTypes() { - expect(false as Bool?).toNot(beTruthy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(nil as Bool?).toNot(beTruthy()) - expect(nil as Int8?).toNot(beTruthy()) - expect(nil as UInt8?).toNot(beTruthy()) - expect(nil as Int16?).toNot(beTruthy()) - expect(nil as UInt16?).toNot(beTruthy()) - expect(nil as Int32?).toNot(beTruthy()) - expect(nil as UInt32?).toNot(beTruthy()) - expect(nil as Int64?).toNot(beTruthy()) - expect(nil as UInt64?).toNot(beTruthy()) - expect(nil as Float?).toNot(beTruthy()) - expect(nil as Double?).toNot(beTruthy()) - expect(nil as Int?).toNot(beTruthy()) - expect(nil as UInt?).toNot(beTruthy()) - } - - func testShouldNotMatchFalse() { - expect(false).toNot(beTruthy()) - - failsWithErrorMessage("expected to be truthy, got ") { - expect(false).to(beTruthy()) - } - } - - func testShouldNotMatchNilBools() { - expect(nil as Bool?).toNot(beTruthy()) - - failsWithErrorMessage("expected to be truthy, got ") { - expect(nil as Bool?).to(beTruthy()) - } - } - - func testShouldMatchBoolConvertibleTypesThatConvertToTrue() { - expect(ConvertsToBool.trueLike).to(beTruthy()) - - failsWithErrorMessage("expected to not be truthy, got ") { - expect(ConvertsToBool.trueLike).toNot(beTruthy()) - } - } - - func testShouldNotMatchBoolConvertibleTypesThatConvertToFalse() { - expect(ConvertsToBool.falseLike).toNot(beTruthy()) - - failsWithErrorMessage("expected to be truthy, got ") { - expect(ConvertsToBool.falseLike).to(beTruthy()) - } - } -} - -final class BeTrueTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeTrueTest) -> () throws -> Void)] { - return [ - ("testShouldMatchTrue", testShouldMatchTrue), - ("testShouldNotMatchFalse", testShouldNotMatchFalse), - ("testShouldNotMatchNilBools", testShouldNotMatchNilBools), - ] - } - - func testShouldMatchTrue() { - expect(true).to(beTrue()) - - failsWithErrorMessage("expected to not be true, got ") { - expect(true).toNot(beTrue()) - } - } - - func testShouldNotMatchFalse() { - expect(false).toNot(beTrue()) - - failsWithErrorMessage("expected to be true, got ") { - expect(false).to(beTrue()) - } - } - - func testShouldNotMatchNilBools() { - failsWithErrorMessageForNil("expected to not be true, got ") { - expect(nil as Bool?).toNot(beTrue()) - } - - failsWithErrorMessageForNil("expected to be true, got ") { - expect(nil as Bool?).to(beTrue()) - } - } -} - -final class BeFalsyTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeFalsyTest) -> () throws -> Void)] { - return [ - ("testShouldMatchNilTypes", testShouldMatchNilTypes), - ("testShouldNotMatchTrue", testShouldNotMatchTrue), - ("testShouldNotMatchNonNilTypes", testShouldNotMatchNonNilTypes), - ("testShouldMatchFalse", testShouldMatchFalse), - ("testShouldMatchNilBools", testShouldMatchNilBools), - ] - } - - func testShouldMatchNilTypes() { - expect(false as Bool?).to(beFalsy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(nil as Bool?).to(beFalsy()) - expect(nil as Int8?).to(beFalsy()) - expect(nil as UInt8?).to(beFalsy()) - expect(nil as Int16?).to(beFalsy()) - expect(nil as UInt16?).to(beFalsy()) - expect(nil as Int32?).to(beFalsy()) - expect(nil as UInt32?).to(beFalsy()) - expect(nil as Int64?).to(beFalsy()) - expect(nil as UInt64?).to(beFalsy()) - expect(nil as Float?).to(beFalsy()) - expect(nil as Double?).to(beFalsy()) - expect(nil as Int?).to(beFalsy()) - expect(nil as UInt?).to(beFalsy()) - } - - func testShouldNotMatchTrue() { - expect(true).toNot(beFalsy()) - - failsWithErrorMessage("expected to be falsy, got ") { - expect(true).to(beFalsy()) - } - } - - func testShouldNotMatchNonNilTypes() { - expect(true as Bool?).toNot(beFalsy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(1 as Int8?).toNot(beFalsy()) - expect(1 as UInt8?).toNot(beFalsy()) - expect(1 as Int16?).toNot(beFalsy()) - expect(1 as UInt16?).toNot(beFalsy()) - expect(1 as Int32?).toNot(beFalsy()) - expect(1 as UInt32?).toNot(beFalsy()) - expect(1 as Int64?).toNot(beFalsy()) - expect(1 as UInt64?).toNot(beFalsy()) - expect(1 as Float?).toNot(beFalsy()) - expect(1 as Double?).toNot(beFalsy()) - expect(1 as Int?).toNot(beFalsy()) - expect(1 as UInt?).toNot(beFalsy()) - } - - func testShouldMatchFalse() { - expect(false).to(beFalsy()) - - failsWithErrorMessage("expected to not be falsy, got ") { - expect(false).toNot(beFalsy()) - } - } - - func testShouldMatchNilBools() { - expect(nil as Bool?).to(beFalsy()) - - failsWithErrorMessage("expected to not be falsy, got ") { - expect(nil as Bool?).toNot(beFalsy()) - } - } -} - -final class BeFalseTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeFalseTest) -> () throws -> Void)] { - return [ - ("testShouldNotMatchTrue", testShouldNotMatchTrue), - ("testShouldMatchFalse", testShouldMatchFalse), - ("testShouldNotMatchNilBools", testShouldNotMatchNilBools), - ] - } - - func testShouldNotMatchTrue() { - expect(true).toNot(beFalse()) - - failsWithErrorMessage("expected to be false, got ") { - expect(true).to(beFalse()) - } - } - - func testShouldMatchFalse() { - expect(false).to(beFalse()) - - failsWithErrorMessage("expected to not be false, got ") { - expect(false).toNot(beFalse()) - } - } - - func testShouldNotMatchNilBools() { - failsWithErrorMessageForNil("expected to be false, got ") { - expect(nil as Bool?).to(beFalse()) - } - - failsWithErrorMessageForNil("expected to not be false, got ") { - expect(nil as Bool?).toNot(beFalse()) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift deleted file mode 100644 index 69f4185..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift +++ /dev/null @@ -1,28 +0,0 @@ -import XCTest -import Nimble - -final class BeNilTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeNilTest) -> () throws -> Void)] { - return [ - ("testBeNil", testBeNil), - ] - } - - func producesNil() -> [Int]? { - return nil - } - - func testBeNil() { - expect(nil as Int?).to(beNil()) - expect(1 as Int?).toNot(beNil()) - expect(self.producesNil()).to(beNil()) - - failsWithErrorMessage("expected to not be nil, got ") { - expect(nil as Int?).toNot(beNil()) - } - - failsWithErrorMessage("expected to be nil, got <1>") { - expect(1 as Int?).to(beNil()) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift deleted file mode 100644 index a8eefc1..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift +++ /dev/null @@ -1,32 +0,0 @@ -import XCTest -import Nimble - -final class BeVoidTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeVoidTest) -> () throws -> Void)] { - return [ - ("testBeVoid", testBeVoid), - ] - } - - func testBeVoid() { - expect(()).to(beVoid()) - expect(() as ()?).to(beVoid()) - expect(nil as ()?).toNot(beVoid()) - - expect(()) == () - expect(() as ()?) == () - expect(nil as ()?) != () - - failsWithErrorMessage("expected to not be void, got <()>") { - expect(()).toNot(beVoid()) - } - - failsWithErrorMessage("expected to not be void, got <()>") { - expect(() as ()?).toNot(beVoid()) - } - - failsWithErrorMessage("expected to be void, got ") { - expect(nil as ()?).to(beVoid()) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift deleted file mode 100644 index a05707c..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift +++ /dev/null @@ -1,53 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeginWithTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeginWithTest) -> () throws -> Void)] { - return [ - ("testPositiveMatches", testPositiveMatches), - ("testNegativeMatches", testNegativeMatches), - ] - } - - func testPositiveMatches() { - expect([1, 2, 3]).to(beginWith(1)) - expect([1, 2, 3]).toNot(beginWith(2)) - - expect("foobar").to(beginWith("foo")) - expect("foobar").toNot(beginWith("oo")) - - expect("foobarfoo").to(beginWith("foo")) - - expect(NSString(string: "foobar").description).to(beginWith("foo")) - expect(NSString(string: "foobar").description).toNot(beginWith("oo")) - -#if _runtime(_ObjC) - expect(NSArray(array: ["a", "b"])).to(beginWith("a")) - expect(NSArray(array: ["a", "b"])).toNot(beginWith("b")) -#endif - } - - func testNegativeMatches() { - failsWithErrorMessageForNil("expected to begin with , got ") { - expect(nil as NSArray?).to(beginWith(NSString(string: "b"))) - } - failsWithErrorMessageForNil("expected to not begin with , got ") { - expect(nil as NSArray?).toNot(beginWith(NSString(string: "b"))) - } - - failsWithErrorMessage("expected to begin with <2>, got <[1, 2, 3]>") { - expect([1, 2, 3]).to(beginWith(2)) - } - failsWithErrorMessage("expected to not begin with <1>, got <[1, 2, 3]>") { - expect([1, 2, 3]).toNot(beginWith(1)) - } - failsWithErrorMessage("expected to begin with , got ") { - expect("batman").to(beginWith("atm")) - } - failsWithErrorMessage("expected to not begin with , got ") { - expect("batman").toNot(beginWith("bat")) - } - } - -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift deleted file mode 100644 index a9fe80e..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift +++ /dev/null @@ -1,86 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class ContainElementSatisfyingTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ContainElementSatisfyingTest) -> () throws -> Void)] { - return [ - ("testContainElementSatisfying", testContainElementSatisfying), - ("testContainElementSatisfyingDefaultErrorMessage", testContainElementSatisfyingDefaultErrorMessage), - ("testContainElementSatisfyingSpecificErrorMessage", testContainElementSatisfyingSpecificErrorMessage), - ("testContainElementSatisfyingNegativeCase", - testContainElementSatisfyingNegativeCase), - ("testContainElementSatisfyingNegativeCaseDefaultErrorMessage", - testContainElementSatisfyingNegativeCaseDefaultErrorMessage), - ("testContainElementSatisfyingNegativeCaseSpecificErrorMessage", - testContainElementSatisfyingNegativeCaseSpecificErrorMessage), - ] - } - - func testContainElementSatisfying() { - var orderIndifferentArray = [1, 2, 3] - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 1 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 2 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 3 - })) - - orderIndifferentArray = [3, 1, 2] - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 1 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 2 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 3 - })) - } - - func testContainElementSatisfyingDefaultErrorMessage() { - let orderIndifferentArray = [1, 2, 3] - failsWithErrorMessage("expected to find object in collection that satisfies predicate") { - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 4 - })) - } - } - - func testContainElementSatisfyingSpecificErrorMessage() { - let orderIndifferentArray = [1, 2, 3] - failsWithErrorMessage("expected to find object in collection equal to 4") { - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 4 - }, "equal to 4")) - } - } - - func testContainElementSatisfyingNegativeCase() { - let orderIndifferentArray = ["puppies", "kittens", "turtles"] - expect(orderIndifferentArray).toNot(containElementSatisfying({ string in - return string == "armadillos" - })) - } - - func testContainElementSatisfyingNegativeCaseDefaultErrorMessage() { - let orderIndifferentArray = ["puppies", "kittens", "turtles"] - failsWithErrorMessage("expected to not find object in collection that satisfies predicate") { - expect(orderIndifferentArray).toNot(containElementSatisfying({ string in - return string == "kittens" - })) - } - } - - func testContainElementSatisfyingNegativeCaseSpecificErrorMessage() { - let orderIndifferentArray = ["puppies", "kittens", "turtles"] - failsWithErrorMessage("expected to not find object in collection equal to 'kittens'") { - expect(orderIndifferentArray).toNot(containElementSatisfying({ string in - return string == "kittens" - }, "equal to 'kittens'")) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift deleted file mode 100644 index 93b0331..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift +++ /dev/null @@ -1,95 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class ContainTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ContainTest) -> () throws -> Void)] { - return [ - ("testContain", testContain), - ("testContainSubstring", testContainSubstring), - ("testContainObjCSubstring", testContainObjCSubstring), - ("testVariadicArguments", testVariadicArguments), - ("testCollectionArguments", testCollectionArguments), - ] - } - - func testContain() { - expect([1, 2, 3]).to(contain(1)) - expect([1, 2, 3] as [CInt]).to(contain(1 as CInt)) - expect([1, 2, 3] as [CInt]).toNot(contain(4 as CInt)) - expect(["foo", "bar", "baz"]).to(contain("baz")) - expect([1, 2, 3]).toNot(contain(4)) - expect(["foo", "bar", "baz"]).toNot(contain("ba")) -#if _runtime(_ObjC) - expect(NSArray(array: ["a"])).to(contain(NSString(string: "a"))) - expect(NSArray(array: ["a"])).toNot(contain(NSString(string:"b"))) - expect(NSArray(object: 1) as NSArray?).to(contain(1)) -#endif - - failsWithErrorMessage("expected to contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).to(contain("bar")) - } - failsWithErrorMessage("expected to not contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).toNot(contain("b")) - } - - failsWithErrorMessageForNil("expected to contain , got ") { - expect(nil as [String]?).to(contain("bar")) - } - failsWithErrorMessageForNil("expected to not contain , got ") { - expect(nil as [String]?).toNot(contain("b")) - } - } - - func testContainSubstring() { - expect("foo").to(contain("o")) - expect("foo").to(contain("oo")) - expect("foo").toNot(contain("z")) - expect("foo").toNot(contain("zz")) - - failsWithErrorMessage("expected to contain , got ") { - expect("foo").to(contain("bar")) - } - failsWithErrorMessage("expected to not contain , got ") { - expect("foo").toNot(contain("oo")) - } - } - - func testContainObjCSubstring() { - let str = NSString(string: "foo") - expect(str).to(contain(NSString(string: "o"))) - expect(str).to(contain(NSString(string: "oo"))) - expect(str).toNot(contain(NSString(string: "z"))) - expect(str).toNot(contain(NSString(string: "zz"))) - } - - func testVariadicArguments() { - expect([1, 2, 3]).to(contain(1, 2)) - expect([1, 2, 3]).toNot(contain(1, 4)) - - failsWithErrorMessage("expected to contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).to(contain("a", "bar")) - } - - failsWithErrorMessage("expected to not contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).toNot(contain("bar", "b")) - } - } - - func testCollectionArguments() { - expect([1, 2, 3]).to(contain([1, 2])) - expect([1, 2, 3]).toNot(contain([1, 4])) - - let collection = Array(1...10) - let slice = Array(collection[3...5]) - expect(collection).to(contain(slice)) - - failsWithErrorMessage("expected to contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).to(contain(["a", "bar"])) - } - - failsWithErrorMessage("expected to not contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).toNot(contain(["bar", "b"])) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift deleted file mode 100644 index 3e19426..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift +++ /dev/null @@ -1,56 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class EndWithTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (EndWithTest) -> () throws -> Void)] { - return [ - ("testEndWithPositives", testEndWithPositives), - ("testEndWithNegatives", testEndWithNegatives), - ] - } - - func testEndWithPositives() { - expect([1, 2, 3]).to(endWith(3)) - expect([1, 2, 3]).toNot(endWith(2)) - expect([]).toNot(endWith(1)) - expect(["a", "b", "a"]).to(endWith("a")) - - expect("foobar").to(endWith("bar")) - expect("foobar").toNot(endWith("oo")) - expect("foobarfoo").to(endWith("foo")) - - expect(NSString(string: "foobar").description).to(endWith("bar")) - expect(NSString(string: "foobar").description).toNot(endWith("oo")) - -#if _runtime(_ObjC) - expect(NSArray(array: ["a", "b"])).to(endWith("b")) - expect(NSArray(array: ["a", "b"])).toNot(endWith("a")) - expect(NSArray(array: [])).toNot(endWith("a")) - expect(NSArray(array: ["a", "b", "a"])).to(endWith("a")) -#endif - } - - func testEndWithNegatives() { - failsWithErrorMessageForNil("expected to end with <2>, got ") { - expect(nil as [Int]?).to(endWith(2)) - } - failsWithErrorMessageForNil("expected to not end with <2>, got ") { - expect(nil as [Int]?).toNot(endWith(2)) - } - - failsWithErrorMessage("expected to end with <2>, got <[1, 2, 3]>") { - expect([1, 2, 3]).to(endWith(2)) - } - failsWithErrorMessage("expected to not end with <3>, got <[1, 2, 3]>") { - expect([1, 2, 3]).toNot(endWith(3)) - } - failsWithErrorMessage("expected to end with , got ") { - expect("batman").to(endWith("atm")) - } - failsWithErrorMessage("expected to not end with , got ") { - expect("batman").toNot(endWith("man")) - } - } - -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift deleted file mode 100644 index e54b535..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift +++ /dev/null @@ -1,276 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class EqualTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (EqualTest) -> () throws -> Void)] { - return [ - ("testEquality", testEquality), - ("testArrayEquality", testArrayEquality), - ("testSetEquality", testSetEquality), - ("testDoesNotMatchNils", testDoesNotMatchNils), - ("testDictionaryEquality", testDictionaryEquality), - ("testDataEquality", testDataEquality), - ("testNSObjectEquality", testNSObjectEquality), - ("testOperatorEquality", testOperatorEquality), - ("testOperatorEqualityWithArrays", testOperatorEqualityWithArrays), - ("testOperatorEqualityWithDictionaries", testOperatorEqualityWithDictionaries), - ("testOptionalEquality", testOptionalEquality), - ("testArrayOfOptionalsEquality", testArrayOfOptionalsEquality), - ("testDictionariesWithDifferentSequences", testDictionariesWithDifferentSequences), - ] - } - - func testEquality() { - expect(1 as CInt).to(equal(1 as CInt)) - expect(1 as CInt).to(equal(1)) - expect(1).to(equal(1)) - expect("hello").to(equal("hello")) - expect("hello").toNot(equal("world")) - - expect { - 1 - }.to(equal(1)) - - failsWithErrorMessage("expected to equal , got ") { - expect("hello").to(equal("world")) - } - failsWithErrorMessage("expected to not equal , got ") { - expect("hello").toNot(equal("hello")) - } - } - - func testArrayEquality() { - expect([1, 2, 3]).to(equal([1, 2, 3])) - expect([1, 2, 3]).toNot(equal([1, 2])) - expect([1, 2, 3]).toNot(equal([1, 2, 4])) - - let array1: [Int] = [1, 2, 3] - let array2: [Int] = [1, 2, 3] - expect(array1).to(equal(array2)) - expect(array1).to(equal([1, 2, 3])) - expect(array1).toNot(equal([1, 2] as [Int])) - -#if _runtime(_ObjC) - expect(NSArray(array: [1, 2, 3])).to(equal(NSArray(array: [1, 2, 3]))) -#endif - - failsWithErrorMessage("expected to equal <[1, 2]>, got <[1, 2, 3]>") { - expect([1, 2, 3]).to(equal([1, 2])) - } - } - - func testSetEquality() { - expect(Set([1, 2])).to(equal(Set([1, 2]))) - expect(Set()).to(equal(Set())) - expect(Set()) == Set() - expect(Set([1, 2])) != Set() - - failsWithErrorMessageForNil("expected to equal <[1, 2]>, got ") { - expect(nil as Set?).to(equal(Set([1, 2]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[2, 3]>, missing <[1]>") { - expect(Set([2, 3])).to(equal(Set([1, 2, 3]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[1, 2, 3, 4]>, extra <[4]>") { - expect(Set([1, 2, 3, 4])).to(equal(Set([1, 2, 3]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[2, 3, 4]>, missing <[1]>, extra <[4]>") { - expect(Set([2, 3, 4])).to(equal(Set([1, 2, 3]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[2, 3, 4]>, missing <[1]>, extra <[4]>") { - expect(Set([2, 3, 4])) == Set([1, 2, 3]) - } - - failsWithErrorMessage("expected to not equal <[1, 2, 3]>, got <[1, 2, 3]>") { - expect(Set([1, 2, 3])) != Set([1, 2, 3]) - } - } - - func testDoesNotMatchNils() { - failsWithErrorMessageForNil("expected to equal , got ") { - expect(nil as String?).to(equal(nil as String?)) - } - failsWithErrorMessageForNil("expected to not equal , got ") { - expect("foo").toNot(equal(nil as String?)) - } - failsWithErrorMessageForNil("expected to not equal , got ") { - expect(nil as String?).toNot(equal("bar")) - } - - failsWithErrorMessageForNil("expected to equal , got ") { - expect(nil as [Int]?).to(equal(nil as [Int]?)) - } - failsWithErrorMessageForNil("expected to not equal <[1]>, got ") { - expect(nil as [Int]?).toNot(equal([1])) - } - failsWithErrorMessageForNil("expected to not equal , got <[1]>") { - expect([1]).toNot(equal(nil as [Int]?)) - } - - failsWithErrorMessageForNil("expected to equal , got ") { - expect(nil as [Int: Int]?).to(equal(nil as [Int: Int]?)) - } - failsWithErrorMessageForNil("expected to not equal <[1: 1]>, got ") { - expect(nil as [Int: Int]?).toNot(equal([1: 1])) - } - failsWithErrorMessageForNil("expected to not equal , got <[1: 1]>") { - expect([1: 1]).toNot(equal(nil as [Int: Int]?)) - } - - failsWithErrorMessageForNil("expected to not equal , got <1>") { - expect(1).toNot(equal(nil)) - } - } - - func testDictionaryEquality() { - expect(["foo": "bar"]).to(equal(["foo": "bar"])) - expect(["foo": "bar"]).toNot(equal(["foo": "baz"])) - - let actual = ["foo": "bar"] - let expected = ["foo": "bar"] - let unexpected = ["foo": "baz"] - expect(actual).to(equal(expected)) - expect(actual).toNot(equal(unexpected)) - -#if _runtime(_ObjC) - expect(NSDictionary(object: "bar", forKey: "foo" as NSString)).to(equal(["foo": "bar"])) - expect(NSDictionary(object: "bar", forKey: "foo" as NSString) as? [String:String]).to(equal(expected)) -#endif - } - - func testDataEquality() { - let actual = "foobar".data(using: .utf8) - let expected = "foobar".data(using: .utf8) - let unexpected = "foobarfoo".data(using: .utf8) - - expect(actual).to(equal(expected)) - expect(actual).toNot(equal(unexpected)) - - #if os(Linux) - // FIXME: Swift on Linux triggers a segfault when calling NSData's hash() (last checked on 03-11) - let expectedErrorMessage = "expected to equal >, got >" - #else - let expectedErrorMessage = "expected to equal >," - + " got >" - #endif - - failsWithErrorMessage(expectedErrorMessage) { - expect(actual).to(equal(unexpected)) - } - } - - func testNSObjectEquality() { - expect(NSNumber(value:1)).to(equal(NSNumber(value:1))) - expect(NSNumber(value:1)) == NSNumber(value:1) - expect(NSNumber(value:1)) != NSNumber(value:2) - expect { NSNumber(value:1) }.to(equal(1)) - } - - func testOperatorEquality() { - expect("foo") == "foo" - expect("foo") != "bar" - - failsWithErrorMessage("expected to equal , got ") { - expect("hello") == "world" - return - } - failsWithErrorMessage("expected to not equal , got ") { - expect("hello") != "hello" - return - } - } - - func testOperatorEqualityWithArrays() { - let array1: [Int] = [1, 2, 3] - let array2: [Int] = [1, 2, 3] - let array3: [Int] = [1, 2] - expect(array1) == array2 - expect(array1) != array3 - } - - func testOperatorEqualityWithDictionaries() { - let dict1 = ["foo": "bar"] - let dict2 = ["foo": "bar"] - let dict3 = ["foo": "baz"] - expect(dict1) == dict2 - expect(dict1) != dict3 - } - - func testOptionalEquality() { - expect(1 as CInt?).to(equal(1)) - expect(1 as CInt?).to(equal(1 as CInt?)) - } - - func testArrayOfOptionalsEquality() { - let array1: [Int?] = [1, nil, 3] - let array2: [Int?] = [nil, 2, 3] - let array3: [Int?] = [1, nil, 3] - - expect(array1).toNot(equal(array2)) - expect(array1).to(equal(array3)) - expect(array2).toNot(equal(array3)) - - let allNils1: [String?] = [nil, nil, nil, nil] - let allNils2: [String?] = [nil, nil, nil, nil] - let notReallyAllNils: [String?] = [nil, nil, nil, "turtles"] - - expect(allNils1).to(equal(allNils2)) - expect(allNils1).toNot(equal(notReallyAllNils)) - - let noNils1: [Int?] = [1, 2, 3, 4, 5] - let noNils2: [Int?] = [1, 3, 5, 7, 9] - - expect(noNils1).toNot(equal(noNils2)) - - failsWithErrorMessage("expected to equal <[Optional(1), nil]>, got <[nil, Optional(2)]>") { - let arrayOfOptionalInts: [Int?] = [nil, 2] - let anotherArrayOfOptionalInts: [Int?] = [1, nil] - expect(arrayOfOptionalInts).to(equal(anotherArrayOfOptionalInts)) - return - } - } - - func testDictionariesWithDifferentSequences() { - // see: https://github.com/Quick/Nimble/issues/61 - // these dictionaries generate different orderings of sequences. - let result = ["how": 1, "think": 1, "didnt": 2, "because": 1, - "interesting": 1, "always": 1, "right": 1, "such": 1, - "to": 3, "say": 1, "cool": 1, "you": 1, - "weather": 3, "be": 1, "went": 1, "was": 2, - "sometimes": 1, "and": 3, "mind": 1, "rain": 1, - "whole": 1, "everything": 1, "weather.": 1, "down": 1, - "kind": 1, "mood.": 1, "it": 2, "everyday": 1, "might": 1, - "more": 1, "have": 2, "person": 1, "could": 1, "tenth": 2, - "night": 1, "write": 1, "Youd": 1, "affects": 1, "of": 3, - "Who": 1, "us": 1, "an": 1, "I": 4, "my": 1, "much": 2, - "wrong.": 1, "peacefully.": 1, "amazing": 3, "would": 4, - "just": 1, "grade.": 1, "Its": 2, "The": 2, "had": 1, "that": 1, - "the": 5, "best": 1, "but": 1, "essay": 1, "for": 1, "summer": 2, - "your": 1, "grade": 1, "vary": 1, "pretty": 1, "at": 1, "rain.": 1, - "about": 1, "allow": 1, "thought": 1, "in": 1, "sleep": 1, "a": 1, - "hot": 1, "really": 1, "beach": 1, "life.": 1, "we": 1, "although": 1, ] - - let storyCount = ["The": 2, "summer": 2, "of": 3, "tenth": 2, "grade": 1, - "was": 2, "the": 5, "best": 1, "my": 1, "life.": 1, "I": 4, - "went": 1, "to": 3, "beach": 1, "everyday": 1, "and": 3, - "we": 1, "had": 1, "amazing": 3, "weather.": 1, "weather": 3, - "didnt": 2, "really": 1, "vary": 1, "much": 2, "always": 1, - "pretty": 1, "hot": 1, "although": 1, "sometimes": 1, "at": 1, - "night": 1, "it": 2, "would": 4, "rain.": 1, "mind": 1, "rain": 1, - "because": 1, "cool": 1, "everything": 1, "down": 1, "allow": 1, - "us": 1, "sleep": 1, "peacefully.": 1, "Its": 2, "how": 1, - "affects": 1, "your": 1, "mood.": 1, "Who": 1, "have": 2, - "thought": 1, "that": 1, "could": 1, "write": 1, "a": 1, - "whole": 1, "essay": 1, "just": 1, "about": 1, "in": 1, - "grade.": 1, "kind": 1, "right": 1, "Youd": 1, "think": 1, - "for": 1, "such": 1, "an": 1, "interesting": 1, "person": 1, - "might": 1, "more": 1, "say": 1, "but": 1, "you": 1, "be": 1, "wrong.": 1, ] - - expect(result).to(equal(storyCount)) - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift deleted file mode 100644 index a0294c3..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift +++ /dev/null @@ -1,56 +0,0 @@ -import XCTest -import Nimble - -final class HaveCountTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (HaveCountTest) -> () throws -> Void)] { - return [ - ("testHaveCountForArray", testHaveCountForArray), - ("testHaveCountForDictionary", testHaveCountForDictionary), - ("testHaveCountForSet", testHaveCountForSet), - ] - } - - func testHaveCountForArray() { - expect([1, 2, 3]).to(haveCount(3)) - expect([1, 2, 3]).notTo(haveCount(1)) - - failsWithErrorMessage("expected to have Array with count 1, got 3\nActual Value: [1, 2, 3]") { - expect([1, 2, 3]).to(haveCount(1)) - } - - failsWithErrorMessage("expected to not have Array with count 3, got 3\nActual Value: [1, 2, 3]") { - expect([1, 2, 3]).notTo(haveCount(3)) - } - } - - func testHaveCountForDictionary() { - let dictionary = ["1": 1, "2": 2, "3": 3] - expect(dictionary).to(haveCount(3)) - expect(dictionary).notTo(haveCount(1)) - - failsWithErrorMessage("expected to have Dictionary with count 1, got 3\nActual Value: \(stringify(dictionary))") { - expect(dictionary).to(haveCount(1)) - } - - failsWithErrorMessage("expected to not have Dictionary with count 3, got 3" + - "\nActual Value: \(stringify(dictionary))") { - expect(dictionary).notTo(haveCount(3)) - } - } - - func testHaveCountForSet() { - let set = Set([1, 2, 3]) - expect(set).to(haveCount(3)) - expect(set).notTo(haveCount(1)) - - failsWithErrorMessage("expected to have Set with count 1, got 3" + - "\nActual Value: \(stringify(set))") { - expect(set).to(haveCount(1)) - } - - failsWithErrorMessage("expected to not have Set with count 3, got 3" + - "\nActual Value: \(stringify(set))") { - expect(set).notTo(haveCount(3)) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift deleted file mode 100644 index 940a214..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift +++ /dev/null @@ -1,83 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class MatchErrorTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (MatchErrorTest) -> () throws -> Void)] { - return [ - ("testMatchErrorPositive", testMatchErrorPositive), - ("testMatchErrorNegative", testMatchErrorNegative), - ("testMatchNSErrorPositive", testMatchNSErrorPositive), - ("testMatchNSErrorNegative", testMatchNSErrorNegative), - ("testMatchPositiveMessage", testMatchPositiveMessage), - ("testMatchNegativeMessage", testMatchNegativeMessage), - ("testDoesNotMatchNils", testDoesNotMatchNils), - ] - } - - func testMatchErrorPositive() { - expect(NimbleError.laugh).to(matchError(NimbleError.laugh)) - expect(NimbleError.laugh).to(matchError(NimbleError.self)) - expect(EquatableError.parameterized(x: 1)).to(matchError(EquatableError.parameterized(x: 1))) - - expect(NimbleError.laugh as Error).to(matchError(NimbleError.laugh)) - } - - func testMatchErrorNegative() { - expect(NimbleError.laugh).toNot(matchError(NimbleError.cry)) - expect(NimbleError.laugh as Error).toNot(matchError(NimbleError.cry)) - expect(NimbleError.laugh).toNot(matchError(EquatableError.self)) - } - - func testMatchNSErrorPositive() { - let error1 = NSError(domain: "err", code: 0, userInfo: nil) - let error2 = NSError(domain: "err", code: 0, userInfo: nil) - - expect(error1).to(matchError(error2)) - } - - func testMatchNSErrorNegative() { - let error1 = NSError(domain: "err", code: 0, userInfo: nil) - let error2 = NSError(domain: "err", code: 1, userInfo: nil) - - expect(error1).toNot(matchError(error2)) - } - - func testMatchPositiveMessage() { - failsWithErrorMessage("expected to match error , got ") { - expect(EquatableError.parameterized(x: 1)).to(matchError(EquatableError.parameterized(x: 2))) - } - failsWithErrorMessage("expected to match error , got ") { - expect(NimbleError.laugh).to(matchError(NimbleError.cry)) - } - failsWithErrorMessage("expected to match error , got ") { - expect(CustomDebugStringConvertibleError.a).to(matchError(CustomDebugStringConvertibleError.b)) - } - - failsWithErrorMessage("expected to match error , got ") { - let error1 = NSError(domain: "err", code: 0, userInfo: nil) - let error2 = NSError(domain: "err", code: 1, userInfo: nil) - expect(error1).to(matchError(error2)) - } - } - - func testMatchNegativeMessage() { - failsWithErrorMessage("expected to not match error , got ") { - expect(NimbleError.laugh).toNot(matchError(NimbleError.laugh)) - } - - failsWithErrorMessage("expected to match error from type , got ") { - expect(NimbleError.laugh).to(matchError(EquatableError.self)) - } - } - - func testDoesNotMatchNils() { - failsWithErrorMessageForNil("expected to match error , got no error") { - expect(nil as Error?).to(matchError(NimbleError.laugh)) - } - - failsWithErrorMessageForNil("expected to not match error , got no error") { - expect(nil as Error?).toNot(matchError(NimbleError.laugh)) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift deleted file mode 100644 index a95ba56..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift +++ /dev/null @@ -1,46 +0,0 @@ -import XCTest -import Nimble - -final class MatchTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (MatchTest) -> () throws -> Void)] { - return [ - ("testMatchPositive", testMatchPositive), - ("testMatchNegative", testMatchNegative), - ("testMatchPositiveMessage", testMatchPositiveMessage), - ("testMatchNegativeMessage", testMatchNegativeMessage), - ("testMatchNils", testMatchNils), - ] - } - - func testMatchPositive() { - expect("11:14").to(match("\\d{2}:\\d{2}")) - } - - func testMatchNegative() { - expect("hello").toNot(match("\\d{2}:\\d{2}")) - } - - func testMatchPositiveMessage() { - let message = "expected to match <\\d{2}:\\d{2}>, got " - failsWithErrorMessage(message) { - expect("hello").to(match("\\d{2}:\\d{2}")) - } - } - - func testMatchNegativeMessage() { - let message = "expected to not match <\\d{2}:\\d{2}>, got <11:14>" - failsWithErrorMessage(message) { - expect("11:14").toNot(match("\\d{2}:\\d{2}")) - } - } - - func testMatchNils() { - failsWithErrorMessageForNil("expected to match <\\d{2}:\\d{2}>, got ") { - expect(nil as String?).to(match("\\d{2}:\\d{2}")) - } - - failsWithErrorMessageForNil("expected to not match <\\d{2}:\\d{2}>, got ") { - expect(nil as String?).toNot(match("\\d{2}:\\d{2}")) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift deleted file mode 100644 index 33b2ff0..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift +++ /dev/null @@ -1,91 +0,0 @@ -import XCTest -import Nimble -import Foundation - -final class PostNotificationTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (PostNotificationTest) -> () throws -> Void)] { - return [ - ("testPassesWhenNoNotificationsArePosted", testPassesWhenNoNotificationsArePosted), - ("testPassesWhenExpectedNotificationIsPosted", testPassesWhenExpectedNotificationIsPosted), - ("testPassesWhenAllExpectedNotificationsArePosted", testPassesWhenAllExpectedNotificationsArePosted), - ("testFailsWhenNoNotificationsArePosted", testFailsWhenNoNotificationsArePosted), - ("testFailsWhenNotificationWithWrongNameIsPosted", testFailsWhenNotificationWithWrongNameIsPosted), - ("testFailsWhenNotificationWithWrongObjectIsPosted", testFailsWhenNotificationWithWrongObjectIsPosted), - ("testPassesWhenExpectedNotificationEventuallyIsPosted", testPassesWhenExpectedNotificationEventuallyIsPosted), - ] - } - - let notificationCenter = NotificationCenter() - - func testPassesWhenNoNotificationsArePosted() { - expect { - // no notifications here! - return nil - }.to(postNotifications(beEmpty(), fromNotificationCenter: notificationCenter)) - } - - func testPassesWhenExpectedNotificationIsPosted() { - let testNotification = Notification(name: Notification.Name("Foo"), object: nil) - expect { - self.notificationCenter.post(testNotification) - }.to(postNotifications(equal([testNotification]), fromNotificationCenter: notificationCenter)) - } - - func testPassesWhenAllExpectedNotificationsArePosted() { - let foo = NSNumber(value: 1) - let bar = NSNumber(value: 2) - let n1 = Notification(name: Notification.Name("Foo"), object: foo) - let n2 = Notification(name: Notification.Name("Bar"), object: bar) - expect { - self.notificationCenter.post(n1) - self.notificationCenter.post(n2) - return nil - }.to(postNotifications(equal([n1, n2]), fromNotificationCenter: notificationCenter)) - } - - func testFailsWhenNoNotificationsArePosted() { - let testNotification = Notification(name: Notification.Name("Foo"), object: nil) - failsWithErrorMessage("expected to equal <[\(testNotification)]>, got no notifications") { - expect { - // no notifications here! - return nil - }.to(postNotifications(equal([testNotification]), fromNotificationCenter: self.notificationCenter)) - } - } - - func testFailsWhenNotificationWithWrongNameIsPosted() { - let n1 = Notification(name: Notification.Name("Foo"), object: nil) - let n2 = Notification(name: Notification.Name(n1.name.rawValue + "a"), object: nil) - failsWithErrorMessage("expected to equal <[\(n1)]>, got <[\(n2)]>") { - expect { - self.notificationCenter.post(n2) - return nil - }.to(postNotifications(equal([n1]), fromNotificationCenter: self.notificationCenter)) - } - } - - func testFailsWhenNotificationWithWrongObjectIsPosted() { - let n1 = Notification(name: Notification.Name("Foo"), object: nil) - let n2 = Notification(name: n1.name, object: NSObject()) - failsWithErrorMessage("expected to equal <[\(n1)]>, got <[\(n2)]>") { - expect { - self.notificationCenter.post(n2) - return nil - }.to(postNotifications(equal([n1]), fromNotificationCenter: self.notificationCenter)) - } - } - - func testPassesWhenExpectedNotificationEventuallyIsPosted() { - #if _runtime(_ObjC) - let testNotification = Notification(name: Notification.Name("Foo"), object: nil) - expect { - deferToMainQueue { - self.notificationCenter.post(testNotification) - } - return nil - }.toEventually(postNotifications(equal([testNotification]), fromNotificationCenter: notificationCenter)) - #else - print("\(#function) is missing because toEventually is not implement on this platform") - #endif - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift deleted file mode 100644 index 20461d9..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift +++ /dev/null @@ -1,166 +0,0 @@ -import XCTest -import Nimble - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -final class RaisesExceptionTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (RaisesExceptionTest) -> () throws -> Void)] { - return [ - ("testPositiveMatches", testPositiveMatches), - ("testPositiveMatchesWithClosures", testPositiveMatchesWithClosures), - ("testNegativeMatches", testNegativeMatches), - ("testNegativeMatchesDoNotCallClosureWithoutException", testNegativeMatchesDoNotCallClosureWithoutException), - ("testNegativeMatchesWithClosure", testNegativeMatchesWithClosure), - ] - } - - var anException = NSException(name: NSExceptionName("laugh"), reason: "Lulz", userInfo: ["key": "value"]) - - func testPositiveMatches() { - expect { self.anException.raise() }.to(raiseException()) - expect { self.anException.raise() }.to(raiseException(named: "laugh")) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz")) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"])) - } - - func testPositiveMatchesWithClosures() { - expect { self.anException.raise() }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName("laugh"))) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("lau")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("lau")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"]) { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("lau")) - }) - - expect { self.anException.raise() }.to(raiseException(named: "laugh") { (exception: NSException) in - expect(exception.name.rawValue).toNot(beginWith("as")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz") { (exception: NSException) in - expect(exception.name.rawValue).toNot(beginWith("df")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"]) { (exception: NSException) in - expect(exception.name.rawValue).toNot(beginWith("as")) - }) - } - - func testNegativeMatches() { - failsWithErrorMessage("expected to raise exception with name , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "foo")) - } - - failsWithErrorMessage("expected to raise exception with name with reason , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "bar")) - } - - failsWithErrorMessage( - "expected to raise exception with name with reason with userInfo <{k = v;}>, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["k": "v"])) - } - - failsWithErrorMessage("expected to raise any exception, got no exception") { - expect { self.anException }.to(raiseException()) - } - failsWithErrorMessage("expected to not raise any exception, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException()) - } - failsWithErrorMessage("expected to raise exception with name with reason , got no exception") { - expect { self.anException }.to(raiseException(named: "laugh", reason: "Lulz")) - } - - failsWithErrorMessage("expected to raise exception with name with reason , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "bar", reason: "Lulz")) - } - failsWithErrorMessage("expected to not raise exception with name , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException(named: "laugh")) - } - failsWithErrorMessage("expected to not raise exception with name with reason , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException(named: "laugh", reason: "Lulz")) - } - - failsWithErrorMessage("expected to not raise exception with name with reason with userInfo <{key = value;}>, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"])) - } - } - - func testNegativeMatchesDoNotCallClosureWithoutException() { - failsWithErrorMessage("expected to raise exception that satisfies block, got no exception") { - expect { self.anException }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName(rawValue:"foo"))) - }) - } - - failsWithErrorMessage("expected to raise exception with name that satisfies block, got no exception") { - expect { self.anException }.to(raiseException(named: "foo") { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - failsWithErrorMessage("expected to raise exception with name with reason that satisfies block, got no exception") { - expect { self.anException }.to(raiseException(named: "foo", reason: "ha") { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - failsWithErrorMessage("expected to raise exception with name with reason with userInfo <{}> that satisfies block, got no exception") { - expect { self.anException }.to(raiseException(named: "foo", reason: "Lulz", userInfo: [:]) { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - failsWithErrorMessage("expected to not raise any exception, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException()) - } - } - - func testNegativeMatchesWithClosure() { - failsWithErrorMessage("expected to raise exception that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - let innerFailureMessage = "expected to begin with , got " - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "laugh") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "lol") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "lol", reason: "wrong") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason with userInfo <{key = value;}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"]) { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason with userInfo <{}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "lol", reason: "Lulz", userInfo: [:]) { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - } -} -#endif diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift deleted file mode 100644 index 0bd9495..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift +++ /dev/null @@ -1,56 +0,0 @@ -import XCTest -import Nimble -import Foundation - -final class SatisfyAnyOfTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (SatisfyAnyOfTest) -> () throws -> Void)] { - return [ - ("testSatisfyAnyOf", testSatisfyAnyOf), - ("testOperatorOr", testOperatorOr), - ] - } - - func testSatisfyAnyOf() { - expect(2).to(satisfyAnyOf(equal(2), equal(3))) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(2).toNot(satisfyAnyOf(equal(3), equal("turtles"))) -#else - expect(2 as NSNumber).toNot(satisfyAnyOf(equal(3 as NSNumber), equal("turtles" as NSString))) -#endif - expect([1, 2, 3]).to(satisfyAnyOf(equal([1, 2, 3]), allPass({$0 < 4}), haveCount(3))) - expect("turtle").toNot(satisfyAnyOf(contain("a"), endWith("magic"))) - expect(82.0).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) - expect(false).to(satisfyAnyOf(beTrue(), beFalse())) - expect(true).to(satisfyAnyOf(beTruthy(), beFalsy())) - - failsWithErrorMessage( - "expected to match one of: {equal <3>}, or {equal <4>}, or {equal <5>}, got 2") { - expect(2).to(satisfyAnyOf(equal(3), equal(4), equal(5))) - } - failsWithErrorMessage( - "expected to match one of: {all be less than 4, but failed first at element <5> in <[5, 6, 7]>}, or {equal <[1, 2, 3, 4]>}, got [5, 6, 7]") { - expect([5, 6, 7]).to(satisfyAnyOf(allPass("be less than 4", {$0 < 4}), equal([1, 2, 3, 4]))) - } - failsWithErrorMessage( - "expected to match one of: {be true}, got false") { - expect(false).to(satisfyAnyOf(beTrue())) - } - failsWithErrorMessage( - "expected to not match one of: {be less than <10.5>}, or {be greater than <100.75>}, or {be close to <50.1> (within 0.0001)}, got 50.10001") { - expect(50.10001).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) - } - } - - func testOperatorOr() { - expect(2).to(equal(2) || equal(3)) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(2).toNot(equal(3) || equal("turtles")) -#else - expect(2 as NSNumber).toNot(equal(3 as NSNumber) || equal("turtles" as NSString)) -#endif - expect("turtle").toNot(contain("a") || endWith("magic")) - expect(82.0).toNot(beLessThan(10.5) || beGreaterThan(100.75)) - expect(false).to(beTrue() || beFalse()) - expect(true).to(beTruthy() || beFalsy()) - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift deleted file mode 100644 index 9c66fe6..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift +++ /dev/null @@ -1,62 +0,0 @@ -import Foundation -import XCTest -import Nimble - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -final class ThrowAssertionTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ThrowAssertionTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testErrorThrown", testErrorThrown), - ("testPostAssertionCodeNotRun", testPostAssertionCodeNotRun), - ("testNegativeMatch", testNegativeMatch), - ("testPositiveMessage", testPositiveMessage), - ("testNegativeMessage", testNegativeMessage), - ] - } - - func testPositiveMatch() { - expect { () -> Void in fatalError() }.to(throwAssertion()) - } - - func testErrorThrown() { - expect { throw NSError(domain: "test", code: 0, userInfo: nil) }.toNot(throwAssertion()) - } - - func testPostAssertionCodeNotRun() { - var reachedPoint1 = false - var reachedPoint2 = false - - expect { - reachedPoint1 = true - precondition(false, "condition message") - reachedPoint2 = true - }.to(throwAssertion()) - - expect(reachedPoint1) == true - expect(reachedPoint2) == false - } - - func testNegativeMatch() { - var reachedPoint1 = false - - expect { reachedPoint1 = true }.toNot(throwAssertion()) - - expect(reachedPoint1) == true - } - - func testPositiveMessage() { - failsWithErrorMessage("expected to throw an assertion") { - expect { () -> Void? in return }.to(throwAssertion()) - } - } - - func testNegativeMessage() { - failsWithErrorMessage("expected to not throw an assertion") { - expect { () -> Void in fatalError() }.toNot(throwAssertion()) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift deleted file mode 100644 index 1c7674c..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift +++ /dev/null @@ -1,154 +0,0 @@ -import XCTest -import Nimble - -enum NimbleError: Error { - case laugh - case cry -} - -enum EquatableError: Error { - case parameterized(x: Int) -} - -extension EquatableError : Equatable { -} - -func == (lhs: EquatableError, rhs: EquatableError) -> Bool { - switch (lhs, rhs) { - case (.parameterized(let l), .parameterized(let r)): - return l == r - } -} - -enum CustomDebugStringConvertibleError: Error { - case a - case b -} - -extension CustomDebugStringConvertibleError : CustomDebugStringConvertible { - var debugDescription: String { - return "code=\(_code)" - } -} - -final class ThrowErrorTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ThrowErrorTest) -> () throws -> Void)] { - return [ - ("testPositiveMatches", testPositiveMatches), - ("testPositiveMatchesWithClosures", testPositiveMatchesWithClosures), - ("testNegativeMatches", testNegativeMatches), - ("testPositiveNegatedMatches", testPositiveNegatedMatches), - ("testNegativeNegatedMatches", testNegativeNegatedMatches), - ("testNegativeMatchesDoNotCallClosureWithoutError", testNegativeMatchesDoNotCallClosureWithoutError), - ("testNegativeMatchesWithClosure", testNegativeMatchesWithClosure), - ] - } - - func testPositiveMatches() { - expect { throw NimbleError.laugh }.to(throwError()) - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh)) - expect { throw NimbleError.laugh }.to(throwError(errorType: NimbleError.self)) - expect { throw EquatableError.parameterized(x: 1) }.to(throwError(EquatableError.parameterized(x: 1))) - } - - func testPositiveMatchesWithClosures() { - // Generic typed closure - expect { throw EquatableError.parameterized(x: 42) }.to(throwError { error in - guard case EquatableError.parameterized(let x) = error else { fail(); return } - expect(x) >= 1 - }) - // Explicit typed closure - expect { throw EquatableError.parameterized(x: 42) }.to(throwError { (error: EquatableError) in - guard case .parameterized(let x) = error else { fail(); return } - expect(x) >= 1 - }) - // Typed closure over errorType argument - expect { throw EquatableError.parameterized(x: 42) }.to(throwError(errorType: EquatableError.self) { error in - guard case .parameterized(let x) = error else { fail(); return } - expect(x) >= 1 - }) - // Typed closure over error argument - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh) { (error: Error) in - expect(error._domain).to(beginWith("Nim")) - }) - // Typed closure over error argument - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh) { (error: Error) in - expect(error._domain).toNot(beginWith("as")) - }) - } - - func testNegativeMatches() { - // Same case, different arguments - failsWithErrorMessage("expected to throw error , got ") { - expect { throw EquatableError.parameterized(x: 1) }.to(throwError(EquatableError.parameterized(x: 2))) - } - // Same case, different arguments - failsWithErrorMessage("expected to throw error , got ") { - expect { throw EquatableError.parameterized(x: 1) }.to(throwError(EquatableError.parameterized(x: 2))) - } - // Different case - failsWithErrorMessage("expected to throw error , got ") { - expect { throw NimbleError.laugh }.to(throwError(NimbleError.cry)) - } - // Different case with closure - failsWithErrorMessage("expected to throw error that satisfies block, got ") { - expect { throw NimbleError.laugh }.to(throwError(NimbleError.cry) { _ in return }) - } - // Different case, implementing CustomDebugStringConvertible - failsWithErrorMessage("expected to throw error , got ") { - expect { throw CustomDebugStringConvertibleError.a }.to(throwError(CustomDebugStringConvertibleError.b)) - } - } - - func testPositiveNegatedMatches() { - // No error at all - expect { return }.toNot(throwError()) - // Different case - expect { throw NimbleError.laugh }.toNot(throwError(NimbleError.cry)) - } - - func testNegativeNegatedMatches() { - // No error at all - failsWithErrorMessage("expected to not throw any error, got ") { - expect { throw NimbleError.laugh }.toNot(throwError()) - } - // Different error - failsWithErrorMessage("expected to not throw error , got ") { - expect { throw NimbleError.laugh }.toNot(throwError(NimbleError.laugh)) - } - } - - func testNegativeMatchesDoNotCallClosureWithoutError() { - failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError { _ in - fail() - }) - } - - failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError(NimbleError.laugh) { _ in - fail() - }) - } - } - - func testNegativeMatchesWithClosure() { - let moduleName = "NimbleTests" - let innerFailureMessage = "expected to equal , got <\(moduleName).NimbleError>" - let closure = { (error: Error) in - expect(error._domain).to(equal("foo")) - } - - failsWithErrorMessage([innerFailureMessage, "expected to throw error that satisfies block, got "]) { - expect { throw NimbleError.laugh }.to(throwError(closure: closure)) - } - - failsWithErrorMessage([innerFailureMessage, "expected to throw error from type that satisfies block, got "]) { - expect { throw NimbleError.laugh }.to(throwError(errorType: NimbleError.self, closure: closure)) - } - - failsWithErrorMessage([innerFailureMessage, "expected to throw error that satisfies block, got "]) { - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh, closure: closure)) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift deleted file mode 100644 index dde999a..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/Matchers/ToSucceedTest.swift +++ /dev/null @@ -1,36 +0,0 @@ -import XCTest -import Nimble - -final class ToSucceedTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ToSucceedTest) -> () throws -> Void)] { - return [ - ("testToSucceed", testToSucceed), - ] - } - - func testToSucceed() { - expect({ - return .succeeded - }).to(succeed()) - - expect({ - return .failed(reason: "") - }).toNot(succeed()) - - failsWithErrorMessageForNil("expected a closure, got ") { - expect(nil as (() -> ToSucceedResult)?).to(succeed()) - } - - failsWithErrorMessage("expected to succeed, got because ") { - expect({ - .failed(reason: "something went wrong") - }).to(succeed()) - } - - failsWithErrorMessage("expected to not succeed, got ") { - expect({ - return .succeeded - }).toNot(succeed()) - } - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift deleted file mode 100644 index ce8181b..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/SynchronousTests.swift +++ /dev/null @@ -1,128 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class SynchronousTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (SynchronousTest) -> () throws -> Void)] { - return [ - ("testFailAlwaysFails", testFailAlwaysFails), - ("testUnexpectedErrorsThrownFails", testUnexpectedErrorsThrownFails), - ("testToMatchesIfMatcherReturnsTrue", testToMatchesIfMatcherReturnsTrue), - ("testToProvidesActualValueExpression", testToProvidesActualValueExpression), - ("testToProvidesAMemoizedActualValueExpression", testToProvidesActualValueExpression), - ("testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl", testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl), - ("testToMatchAgainstLazyProperties", testToMatchAgainstLazyProperties), - ("testToNotMatchesIfMatcherReturnsTrue", testToNotMatchesIfMatcherReturnsTrue), - ("testToNotProvidesActualValueExpression", testToNotProvidesActualValueExpression), - ("testToNotProvidesAMemoizedActualValueExpression", testToNotProvidesAMemoizedActualValueExpression), - ("testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl", testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl), - ("testToNotNegativeMatches", testToNotNegativeMatches), - ("testNotToMatchesLikeToNot", testNotToMatchesLikeToNot), - ] - } - - class Error: Swift.Error {} - let errorToThrow = Error() - - private func doThrowError() throws -> Int { - throw errorToThrow - } - - func testFailAlwaysFails() { - failsWithErrorMessage("My error message") { - fail("My error message") - } - failsWithErrorMessage("fail() always fails") { - fail() - } - } - - func testUnexpectedErrorsThrownFails() { - failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.to(equal(1)) - } - failsWithErrorMessage("unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.toNot(equal(1)) - } - } - - func testToMatchesIfMatcherReturnsTrue() { - expect(1).to(MatcherFunc { _, _ in true }) - expect {1}.to(MatcherFunc { _, _ in true }) - } - - func testToProvidesActualValueExpression() { - var value: Int? - expect(1).to(MatcherFunc { expr, _ in value = try expr.evaluate(); return true }) - expect(value).to(equal(1)) - } - - func testToProvidesAMemoizedActualValueExpression() { - var callCount = 0 - expect { callCount += 1 }.to(MatcherFunc { expr, _ in - _ = try expr.evaluate() - _ = try expr.evaluate() - return true - }) - expect(callCount).to(equal(1)) - } - - func testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { - var callCount = 0 - expect { callCount += 1 }.to(MatcherFunc { expr, _ in - expect(callCount).to(equal(0)) - _ = try expr.evaluate() - return true - }) - expect(callCount).to(equal(1)) - } - - func testToMatchAgainstLazyProperties() { - expect(ObjectWithLazyProperty().value).to(equal("hello")) - expect(ObjectWithLazyProperty().value).toNot(equal("world")) - expect(ObjectWithLazyProperty().anotherValue).to(equal("world")) - expect(ObjectWithLazyProperty().anotherValue).toNot(equal("hello")) - } - - // repeated tests from to() for toNot() - func testToNotMatchesIfMatcherReturnsTrue() { - expect(1).toNot(MatcherFunc { _, _ in false }) - expect {1}.toNot(MatcherFunc { _, _ in false }) - } - - func testToNotProvidesActualValueExpression() { - var value: Int? - expect(1).toNot(MatcherFunc { expr, _ in value = try expr.evaluate(); return false }) - expect(value).to(equal(1)) - } - - func testToNotProvidesAMemoizedActualValueExpression() { - var callCount = 0 - expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in - _ = try expr.evaluate() - _ = try expr.evaluate() - return false - }) - expect(callCount).to(equal(1)) - } - - func testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { - var callCount = 0 - expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in - expect(callCount).to(equal(0)) - _ = try expr.evaluate() - return false - }) - expect(callCount).to(equal(1)) - } - - func testToNotNegativeMatches() { - failsWithErrorMessage("expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { _, _ in true }) - } - } - - func testNotToMatchesLikeToNot() { - expect(1).notTo(MatcherFunc { _, _ in false }) - } -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift b/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift deleted file mode 100644 index 9bb64b6..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/UserDescriptionTest.swift +++ /dev/null @@ -1,64 +0,0 @@ -import XCTest -import Nimble - -final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (UserDescriptionTest) -> () throws -> Void)] { - return [ - ("testToMatcher_CustomFailureMessage", testToMatcher_CustomFailureMessage), - ("testNotToMatcher_CustomFailureMessage", testNotToMatcher_CustomFailureMessage), - ("testToNotMatcher_CustomFailureMessage", testToNotMatcher_CustomFailureMessage), - ("testToEventuallyMatch_CustomFailureMessage", testToEventuallyMatch_CustomFailureMessage), - ("testToEventuallyNotMatch_CustomFailureMessage", testToEventuallyNotMatch_CustomFailureMessage), - ("testToNotEventuallyMatch_CustomFailureMessage", testToNotEventuallyMatch_CustomFailureMessage), - ] - } - - func testToMatcher_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't equal!\n" + - "expected to match, got <1>") { - expect(1).to(MatcherFunc { _, _ in false }, description: "These aren't equal!") - } - } - - func testNotToMatcher_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't equal!\n" + - "expected to not match, got <1>") { - expect(1).notTo(MatcherFunc { _, _ in true }, description: "These aren't equal!") - } - } - - func testToNotMatcher_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't equal!\n" + - "expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { _, _ in true }, description: "These aren't equal!") - } - } - - func testToEventuallyMatch_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't eventually equal!\n" + - "expected to eventually equal <1>, got <0>") { - expect { 0 }.toEventually(equal(1), description: "These aren't eventually equal!") - } - } - - func testToEventuallyNotMatch_CustomFailureMessage() { - failsWithErrorMessage( - "These are eventually equal!\n" + - "expected to eventually not equal <1>, got <1>") { - expect { 1 }.toEventuallyNot(equal(1), description: "These are eventually equal!") - } - } - - func testToNotEventuallyMatch_CustomFailureMessage() { - failsWithErrorMessage( - "These are eventually equal!\n" + - "expected to eventually not equal <1>, got <1>") { - expect { 1 }.toEventuallyNot(equal(1), description: "These are eventually equal!") - } - } - -} diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h deleted file mode 100644 index 282993d..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h +++ /dev/null @@ -1,15 +0,0 @@ -@import Nimble; -#import "NimbleTests-Swift.h" - -// Use this when you want to verify the failure message for when an expectation fails -#define expectFailureMessage(MSG, BLOCK) \ -[NimbleHelper expectFailureMessage:(MSG) block:(BLOCK) file:@(__FILE__) line:__LINE__]; - -#define expectFailureMessages(MSGS, BLOCK) \ -[NimbleHelper expectFailureMessages:(MSGS) block:(BLOCK) file:@(__FILE__) line:__LINE__]; - - -// Use this when you want to verify the failure message with the nil message postfixed -// to it: " (use beNil() to match nils)" -#define expectNilFailureMessage(MSG, BLOCK) \ -[NimbleHelper expectFailureMessageForNil:(MSG) block:(BLOCK) file:@(__FILE__) line:__LINE__]; diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m deleted file mode 100644 index 1146920..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m +++ /dev/null @@ -1,38 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCAllPassTest : XCTestCase - -@end - -@implementation ObjCAllPassTest - -- (void)testPositiveMatches { - expect(@[@1, @2, @3,@4]).to(allPass(beLessThan(@5))); - expect(@[@1, @2, @3,@4]).toNot(allPass(beGreaterThan(@5))); - - expect([NSSet setWithArray:@[@1, @2, @3,@4]]).to(allPass(beLessThan(@5))); - expect([NSSet setWithArray:@[@1, @2, @3,@4]]).toNot(allPass(beGreaterThan(@5))); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to all be less than <3>, but failed first at element" - " <3> in <[1, 2, 3, 4]>", ^{ - expect(@[@1, @2, @3,@4]).to(allPass(beLessThan(@3))); - }); - expectFailureMessage(@"expected to not all be less than <5>", ^{ - expect(@[@1, @2, @3,@4]).toNot(allPass(beLessThan(@5))); - }); - expectFailureMessage(@"expected to not all be less than <5>", ^{ - expect([NSSet setWithArray:@[@1, @2, @3,@4]]).toNot(allPass(beLessThan(@5))); - }); - expectFailureMessage(@"allPass only works with NSFastEnumeration" - " (NSArray, NSSet, ...) of NSObjects, got <3>", ^{ - expect(@3).to(allPass(beLessThan(@5))); - }); - expectFailureMessage(@"allPass only works with NSFastEnumeration" - " (NSArray, NSSet, ...) of NSObjects, got <3>", ^{ - expect(@3).toNot(allPass(beLessThan(@5))); - }); -} -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m deleted file mode 100644 index f052e74..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m +++ /dev/null @@ -1,55 +0,0 @@ -#import -#import -#import "NimbleSpecHelper.h" - -@interface ObjCAsyncTest : XCTestCase - -@end - -@implementation ObjCAsyncTest - -- (void)testAsync { - __block id obj = @1; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - obj = nil; - }); - expect(obj).toEventually(beNil()); -} - - -- (void)testAsyncWithCustomTimeout { - __block id obj = nil; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - obj = @1; - }); - expect(obj).withTimeout(5).toEventuallyNot(beNil()); -} - -- (void)testAsyncCallback { - waitUntil(^(void (^done)(void)){ - done(); - }); - - expectFailureMessage(@"Waited more than 1.0 second", ^{ - waitUntil(^(void (^done)(void)){ /* ... */ }); - }); - - expectFailureMessage(@"Waited more than 0.01 seconds", ^{ - waitUntilTimeout(0.01, ^(void (^done)(void)){ - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - [NSThread sleepForTimeInterval:0.1]; - done(); - }); - }); - }); - - expectFailureMessage(@"expected to equal , got ", ^{ - waitUntil(^(void (^done)(void)){ - [NSThread sleepForTimeInterval:0.1]; - expect(@"hello").to(equal(@"goodbye")); - done(); - }); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m deleted file mode 100644 index f5fca2d..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m +++ /dev/null @@ -1,34 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeAnInstanceOfTest : XCTestCase -@end - -@implementation ObjCBeAnInstanceOfTest - -- (void)testPositiveMatches { - NSNull *obj = [NSNull null]; - expect(obj).to(beAnInstanceOf([NSNull class])); - expect(@1).toNot(beAnInstanceOf([NSNull class])); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be an instance of NSNull, got <__NSCFNumber instance>", ^{ - expect(@1).to(beAnInstanceOf([NSNull class])); - }); - expectFailureMessage(@"expected to not be an instance of NSNull, got ", ^{ - expect([NSNull null]).toNot(beAnInstanceOf([NSNull class])); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be an instance of NSNull, got ", ^{ - expect(nil).to(beAnInstanceOf([NSNull class])); - }); - - expectNilFailureMessage(@"expected to not be an instance of NSNull, got ", ^{ - expect(nil).toNot(beAnInstanceOf([NSNull class])); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m deleted file mode 100644 index c33d643..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m +++ /dev/null @@ -1,47 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeCloseToTest : XCTestCase - -@end - -@implementation ObjCBeCloseToTest - -- (void)testPositiveMatches { - expect(@1.2).to(beCloseTo(@1.2001)); - expect(@1.2).to(beCloseTo(@2).within(10)); - expect(@2).toNot(beCloseTo(@1)); - expect(@1.00001).toNot(beCloseTo(@1).within(0.00000001)); - - expect(1.2).to(beCloseTo(1.2001)); - expect(1.2).to(beCloseTo(2).within(10)); - expect(2).toNot(beCloseTo(1)); - expect(1.00001).toNot(beCloseTo(1).within(0.00000001)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be close to <0> (within 0.001), got <1>", ^{ - expect(@1).to(beCloseTo(@0)); - }); - expectFailureMessage(@"expected to not be close to <0> (within 0.001), got <0.0001>", ^{ - expect(@(0.0001)).toNot(beCloseTo(@0)); - }); - expectFailureMessage(@"expected to be close to <0> (within 0.001), got <1>", ^{ - expect(1).to(beCloseTo(0)); - }); - expectFailureMessage(@"expected to not be close to <0> (within 0.001), got <0.0001>", ^{ - expect(0.0001).toNot(beCloseTo(0)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be close to <0> (within 0.001), got ", ^{ - expect(nil).to(beCloseTo(@0)); - }); - expectNilFailureMessage(@"expected to not be close to <0> (within 0.001), got ", ^{ - expect(nil).toNot(beCloseTo(@0)); - }); -} - - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m deleted file mode 100644 index 723d642..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m +++ /dev/null @@ -1,89 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeEmptyTest : XCTestCase -@end - -@implementation ObjCBeEmptyTest - -- (void)testPositiveMatches { - expect(@[]).to(beEmpty()); - expect(@"").to(beEmpty()); - expect(@{}).to(beEmpty()); - expect([NSSet set]).to(beEmpty()); - expect([NSIndexSet indexSet]).to(beEmpty()); - expect([NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory]).to(beEmpty()); - - expect(@[@1, @2]).toNot(beEmpty()); - expect(@"a").toNot(beEmpty()); - expect(@{@"key": @"value"}).toNot(beEmpty()); - expect([NSSet setWithObject:@1]).toNot(beEmpty()); - expect([NSIndexSet indexSetWithIndex:1]).toNot(beEmpty()); - - NSHashTable *table = [NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]; - [table addObject:@1]; - expect(table).toNot(beEmpty()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be empty, got ", ^{ - expect(@"foo").to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <(1)>", ^{ - expect(@[@1]).to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <{key = value;}>", ^{ - expect(@{@"key": @"value"}).to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <{(1)}>", ^{ - expect([NSSet setWithObject:@1]).to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <(1)>", ^{ - expect([NSIndexSet indexSetWithIndex:1]).to(beEmpty()); - }); - NSHashTable *table = [NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]; - [table addObject:@1]; - NSString *tableString = [[table description] stringByReplacingOccurrencesOfString:@"\n" withString:@""]; - expectFailureMessage(([NSString stringWithFormat:@"expected to be empty, got <%@>", tableString]), ^{ - expect(table).to(beEmpty()); - }); - - expectFailureMessage(@"expected to not be empty, got <>", ^{ - expect(@"").toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <()>", ^{ - expect(@[]).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <{}>", ^{ - expect(@{}).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <{(1)}>", ^{ - expect([NSSet setWithObject:@1]).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <(1)>", ^{ - expect([NSIndexSet indexSetWithIndex:1]).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got ", ^{ - expect([NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]).toNot(beEmpty()); - }); -} - -- (void)testItDoesNotMatchNil { - expectNilFailureMessage(@"expected to be empty, got ", ^{ - expect(nil).to(beEmpty()); - }); - expectNilFailureMessage(@"expected to not be empty, got ", ^{ - expect(nil).toNot(beEmpty()); - }); -} - -- (void)testItReportsTypesItMatchesAgainst { - expectFailureMessage(@"expected to be empty (only works for NSArrays, NSSets, NSIndexSets, NSDictionaries, NSHashTables, and NSStrings), got __NSCFNumber type", ^{ - expect(@1).to(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty (only works for NSArrays, NSSets, NSIndexSets, NSDictionaries, NSHashTables, and NSStrings), got __NSCFNumber type", ^{ - expect(@1).toNot(beEmpty()); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m deleted file mode 100644 index 5a5bce8..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m +++ /dev/null @@ -1,46 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeFalseTest : XCTestCase - -@end - -@implementation ObjCBeFalseTest - -- (void)testPositiveMatches { - expect(@NO).to(beFalse()); - expect(@YES).toNot(beFalse()); - - expect(false).to(beFalse()); - expect(true).toNot(beFalse()); - - expect(NO).to(beFalse()); - expect(YES).toNot(beFalse()); - - expect(10).toNot(beFalse()); -} - -- (void)testNegativeMatches { - expectNilFailureMessage(@"expected to be false, got ", ^{ - expect(nil).to(beFalse()); - }); - expectNilFailureMessage(@"expected to not be false, got ", ^{ - expect(nil).toNot(beFalse()); - }); - - expectFailureMessage(@"expected to be false, got <1>", ^{ - expect(true).to(beFalse()); - }); - expectFailureMessage(@"expected to not be false, got <0>", ^{ - expect(false).toNot(beFalse()); - }); - - expectFailureMessage(@"expected to be false, got <1>", ^{ - expect(YES).to(beFalse()); - }); - expectFailureMessage(@"expected to not be false, got <0>", ^{ - expect(NO).toNot(beFalse()); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m deleted file mode 100644 index f3f5c98..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m +++ /dev/null @@ -1,58 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeFalsyTest : XCTestCase - -@end - -@implementation ObjCBeFalsyTest - -- (void)testPositiveMatches { - expect(@NO).to(beFalsy()); - expect(@YES).toNot(beFalsy()); - expect(nil).to(beFalsy()); - - expect(true).toNot(beFalsy()); - expect(false).to(beFalsy()); - - expect(YES).toNot(beFalsy()); - expect(NO).to(beFalsy()); - - expect(10).toNot(beFalsy()); - expect(0).to(beFalsy()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to not be falsy, got ", ^{ - expect(nil).toNot(beFalsy()); - }); - expectFailureMessage(@"expected to be falsy, got <1>", ^{ - expect(@1).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(@NO).toNot(beFalsy()); - }); - - expectFailureMessage(@"expected to be falsy, got <1>", ^{ - expect(true).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(false).toNot(beFalsy()); - }); - - expectFailureMessage(@"expected to be falsy, got <1>", ^{ - expect(YES).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(NO).toNot(beFalsy()); - }); - - expectFailureMessage(@"expected to be falsy, got <10>", ^{ - expect(10).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(0).toNot(beFalsy()); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m deleted file mode 100644 index 28862ba..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m +++ /dev/null @@ -1,44 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeGreaterThanOrEqualToTest : XCTestCase - -@end - -@implementation ObjCBeGreaterThanOrEqualToTest - -- (void)testPositiveMatches { - expect(@2).to(beGreaterThanOrEqualTo(@2)); - expect(@2).toNot(beGreaterThanOrEqualTo(@3)); - expect(2).to(beGreaterThanOrEqualTo(0)); - expect(2).to(beGreaterThanOrEqualTo(2)); - expect(2).toNot(beGreaterThanOrEqualTo(3)); - expect(2.5).to(beGreaterThanOrEqualTo(2)); - expect(2.5).to(beGreaterThanOrEqualTo(2.5)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be greater than or equal to <0>, got <-1>", ^{ - expect(@(-1)).to(beGreaterThanOrEqualTo(@0)); - }); - expectFailureMessage(@"expected to not be greater than or equal to <1>, got <2>", ^{ - expect(@2).toNot(beGreaterThanOrEqualTo(@(1))); - }); - expectFailureMessage(@"expected to be greater than or equal to <0>, got <-1>", ^{ - expect(-1).to(beGreaterThanOrEqualTo(0)); - }); - expectFailureMessage(@"expected to not be greater than or equal to <1>, got <2>", ^{ - expect(2).toNot(beGreaterThanOrEqualTo(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be greater than or equal to <-1>, got ", ^{ - expect(nil).to(beGreaterThanOrEqualTo(@(-1))); - }); - expectNilFailureMessage(@"expected to not be greater than or equal to <1>, got ", ^{ - expect(nil).toNot(beGreaterThanOrEqualTo(@(1))); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m deleted file mode 100644 index 4356f63..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m +++ /dev/null @@ -1,42 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeGreaterThanTest : XCTestCase - -@end - -@implementation ObjCBeGreaterThanTest - -- (void)testPositiveMatches { - expect(@2).to(beGreaterThan(@1)); - expect(@2).toNot(beGreaterThan(@2)); - expect(@2).to(beGreaterThan(0)); - expect(@2).toNot(beGreaterThan(2)); - expect(2.5).to(beGreaterThan(1.5)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be greater than <0>, got <-1>", ^{ - expect(@(-1)).to(beGreaterThan(@(0))); - }); - expectFailureMessage(@"expected to not be greater than <1>, got <0>", ^{ - expect(@0).toNot(beGreaterThan(@(1))); - }); - expectFailureMessage(@"expected to be greater than <0>, got <-1>", ^{ - expect(-1).to(beGreaterThan(0)); - }); - expectFailureMessage(@"expected to not be greater than <1>, got <0>", ^{ - expect(0).toNot(beGreaterThan(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be greater than <-1>, got ", ^{ - expect(nil).to(beGreaterThan(@(-1))); - }); - expectNilFailureMessage(@"expected to not be greater than <1>, got ", ^{ - expect(nil).toNot(beGreaterThan(@(1))); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m deleted file mode 100644 index a9d9d51..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m +++ /dev/null @@ -1,68 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeIdenticalToTest : XCTestCase - -@end - -@implementation ObjCBeIdenticalToTest - -- (void)testPositiveMatches { - NSNull *obj = [NSNull null]; - expect(obj).to(beIdenticalTo([NSNull null])); - expect(@2).toNot(beIdenticalTo(@3)); -} - -- (void)testNegativeMatches { - NSNull *obj = [NSNull null]; - expectFailureMessage(([NSString stringWithFormat:@"expected to be identical to <%p>, got <%p>", obj, @2]), ^{ - expect(@2).to(beIdenticalTo(obj)); - }); - expectFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got <%p>", obj, obj]), ^{ - expect(obj).toNot(beIdenticalTo(obj)); - }); -} - -- (void)testNilMatches { - NSNull *obj = [NSNull null]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnonnull" - expectNilFailureMessage(@"expected to be identical to nil, got nil", ^{ - expect(nil).to(beIdenticalTo(nil)); - }); -#pragma clang diagnostic pop - expectNilFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got nil", obj]), ^{ - expect(nil).toNot(beIdenticalTo(obj)); - }); -} - -- (void)testAliasPositiveMatches { - NSNull *obj = [NSNull null]; - expect(obj).to(be([NSNull null])); - expect(@2).toNot(be(@3)); -} - -- (void)testAliasNegativeMatches { - NSNull *obj = [NSNull null]; - expectFailureMessage(([NSString stringWithFormat:@"expected to be identical to <%p>, got <%p>", obj, @2]), ^{ - expect(@2).to(be(obj)); - }); - expectFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got <%p>", obj, obj]), ^{ - expect(obj).toNot(be(obj)); - }); -} - -- (void)testAliasNilMatches { - NSNull *obj = [NSNull null]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnonnull" - expectNilFailureMessage(@"expected to be identical to nil, got nil", ^{ - expect(nil).to(be(nil)); - }); -#pragma clang diagnostic pop - expectNilFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got nil", obj]), ^{ - expect(nil).toNot(be(obj)); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m deleted file mode 100644 index 7eee261..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m +++ /dev/null @@ -1,34 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeKindOfTest : XCTestCase - -@end - -@implementation ObjCBeKindOfTest - -- (void)testPositiveMatches { - NSMutableArray *array = [NSMutableArray array]; - expect(array).to(beAKindOf([NSArray class])); - expect(@1).toNot(beAKindOf([NSNull class])); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be a kind of NSNull, got <__NSCFNumber instance>", ^{ - expect(@1).to(beAKindOf([NSNull class])); - }); - expectFailureMessage(@"expected to not be a kind of NSNull, got ", ^{ - expect([NSNull null]).toNot(beAKindOf([NSNull class])); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be a kind of NSNull, got ", ^{ - expect(nil).to(beAKindOf([NSNull class])); - }); - expectNilFailureMessage(@"expected to not be a kind of NSNull, got ", ^{ - expect(nil).toNot(beAKindOf([NSNull class])); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m deleted file mode 100644 index 4a738ec..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m +++ /dev/null @@ -1,43 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeLessThanOrEqualToTest : XCTestCase - -@end - -@implementation ObjCBeLessThanOrEqualToTest - -- (void)testPositiveMatches { - expect(@2).to(beLessThanOrEqualTo(@2)); - expect(@2).toNot(beLessThanOrEqualTo(@1)); - expect(2).to(beLessThanOrEqualTo(2)); - expect(2).toNot(beLessThanOrEqualTo(1)); - expect(2).toNot(beLessThanOrEqualTo(0)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be less than or equal to <1>, got <2>", ^{ - expect(@2).to(beLessThanOrEqualTo(@1)); - }); - expectFailureMessage(@"expected to not be less than or equal to <1>, got <1>", ^{ - expect(@1).toNot(beLessThanOrEqualTo(@1)); - }); - - expectFailureMessage(@"expected to be less than or equal to <1>, got <2>", ^{ - expect(2).to(beLessThanOrEqualTo(1)); - }); - expectFailureMessage(@"expected to not be less than or equal to <1>, got <1>", ^{ - expect(1).toNot(beLessThanOrEqualTo(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be less than or equal to <1>, got ", ^{ - expect(nil).to(beLessThanOrEqualTo(@1)); - }); - expectNilFailureMessage(@"expected to not be less than or equal to <-1>, got ", ^{ - expect(nil).toNot(beLessThanOrEqualTo(@(-1))); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m deleted file mode 100644 index 7ba38b2..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m +++ /dev/null @@ -1,42 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeLessThanTest : XCTestCase - -@end - -@implementation ObjCBeLessThanTest - -- (void)testPositiveMatches { - expect(@2).to(beLessThan(@3)); - expect(@2).toNot(beLessThan(@2)); - expect(2).to(beLessThan(3)); - expect(2).toNot(beLessThan(2)); - expect(2).toNot(beLessThan(0)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be less than <0>, got <-1>", ^{ - expect(@(-1)).to(beLessThan(@0)); - }); - expectFailureMessage(@"expected to not be less than <1>, got <0>", ^{ - expect(@0).toNot(beLessThan(@1)); - }); - expectFailureMessage(@"expected to be less than <0>, got <-1>", ^{ - expect(-1).to(beLessThan(0)); - }); - expectFailureMessage(@"expected to not be less than <1>, got <0>", ^{ - expect(0).toNot(beLessThan(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be less than <-1>, got ", ^{ - expect(nil).to(beLessThan(@(-1))); - }); - expectNilFailureMessage(@"expected to not be less than <1>, got ", ^{ - expect(nil).toNot(beLessThan(@1)); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m deleted file mode 100644 index a43ee50..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m +++ /dev/null @@ -1,24 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeNilTest : XCTestCase - -@end - -@implementation ObjCBeNilTest - -- (void)testPositiveMatches { - expect(nil).to(beNil()); - expect(@NO).toNot(beNil()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be nil, got <1>", ^{ - expect(@1).to(beNil()); - }); - expectFailureMessage(@"expected to not be nil, got ", ^{ - expect(nil).toNot(beNil()); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m deleted file mode 100644 index c669475..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m +++ /dev/null @@ -1,47 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeTrueTest : XCTestCase - -@end - -@implementation ObjCBeTrueTest - -- (void)testPositiveMatches { - expect(@YES).to(beTrue()); - expect(@NO).toNot(beTrue()); - expect(nil).toNot(beTrue()); - - expect(true).to(beTrue()); - expect(false).toNot(beTrue()); - - expect(YES).to(beTrue()); - expect(NO).toNot(beTrue()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be true, got <0>", ^{ - expect(@NO).to(beTrue()); - }); - expectFailureMessage(@"expected to be true, got ", ^{ - expect(nil).to(beTrue()); - }); - - expectFailureMessage(@"expected to be true, got <0>", ^{ - expect(false).to(beTrue()); - }); - - expectFailureMessage(@"expected to not be true, got <1>", ^{ - expect(true).toNot(beTrue()); - }); - - expectFailureMessage(@"expected to be true, got <0>", ^{ - expect(NO).to(beTrue()); - }); - - expectFailureMessage(@"expected to not be true, got <1>", ^{ - expect(YES).toNot(beTrue()); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m deleted file mode 100644 index 1ad7913..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m +++ /dev/null @@ -1,55 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeTruthyTest : XCTestCase - -@end - -@implementation ObjCBeTruthyTest - -- (void)testPositiveMatches { - expect(@YES).to(beTruthy()); - expect(@NO).toNot(beTruthy()); - expect(nil).toNot(beTruthy()); - - expect(true).to(beTruthy()); - expect(false).toNot(beTruthy()); - - expect(YES).to(beTruthy()); - expect(NO).toNot(beTruthy()); - - expect(10).to(beTruthy()); - expect(0).toNot(beTruthy()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be truthy, got ", ^{ - expect(nil).to(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <1>", ^{ - expect(@1).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(@NO).to(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(false).to(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <1>", ^{ - expect(true).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(NO).to(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <1>", ^{ - expect(YES).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <10>", ^{ - expect(10).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(0).to(beTruthy()); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m deleted file mode 100644 index 5ca7be4..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m +++ /dev/null @@ -1,37 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeginWithTest : XCTestCase - -@end - -@implementation ObjCBeginWithTest - -- (void)testPositiveMatches { - expect(@"hello world!").to(beginWith(@"hello")); - expect(@"hello world!").toNot(beginWith(@"world")); - - NSArray *array = @[@1, @2]; - expect(array).to(beginWith(@1)); - expect(array).toNot(beginWith(@2)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to begin with , got ", ^{ - expect(@"foo").to(beginWith(@"bar")); - }); - expectFailureMessage(@"expected to not begin with , got ", ^{ - expect(@"foo").toNot(beginWith(@"foo")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to begin with <1>, got ", ^{ - expect(nil).to(beginWith(@1)); - }); - expectNilFailureMessage(@"expected to not begin with <1>, got ", ^{ - expect(nil).toNot(beginWith(@1)); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m deleted file mode 100644 index b15d6c3..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m +++ /dev/null @@ -1,64 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCContainElementSatisfyingTest : XCTestCase - -@end - -@implementation ObjCContainElementSatisfyingTest - -- (void)testPassingMatches { - NSArray *orderIndifferentArray = @[@1, @2, @3]; - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@1]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@2]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - - orderIndifferentArray = @[@3, @1, @2]; - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@1]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@2]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - - NSSet *orderIndifferentSet = [NSSet setWithObjects:@"turtle test", @"turtle assessment", nil]; - expect(orderIndifferentSet).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToString:@"turtle assessment"]; - })); -} - -- (void)testFailingMatches { - expectFailureMessage(@"expected to find object in collection that satisfies predicate", ^{ - expect(@[@1]).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@2]; - })); - }); - expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ - expect((nil)).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - }); - expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ - expect((@3)).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - }); -} - -- (void)testNegativeCases { - NSArray *orderIndifferentArray = @[@"puppies", @"kittens", @"turtles"]; - expect(orderIndifferentArray).toNot(containElementSatisfying(^BOOL(id object) { - return [object isEqualToString:@"armadillos"]; - })); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m deleted file mode 100644 index 92bb9f9..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m +++ /dev/null @@ -1,67 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCContainTest : XCTestCase - -@end - -@implementation ObjCContainTest - -- (void)testPositiveMatches { - NSArray *array = @[@1, @2]; - expect(array).to(contain(@1)); - expect(array).toNot(contain(@"HI")); - expect(@"String").to(contain(@"Str")); - expect(@"Other").toNot(contain(@"Str")); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to contain <3>, got <(1, 2)>", ^{ - expect((@[@1, @2])).to(contain(@3)); - }); - expectFailureMessage(@"expected to not contain <2>, got <(1, 2)>", ^{ - expect((@[@1, @2])).toNot(contain(@2)); - }); - - expectFailureMessage(@"expected to contain , got ", ^{ - expect(@"la").to(contain(@"hi")); - }); - expectFailureMessage(@"expected to not contain , got ", ^{ - expect(@"hihihi").toNot(contain(@"hi")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to contain <3>, got ", ^{ - expect(nil).to(contain(@3)); - }); - expectNilFailureMessage(@"expected to not contain <3>, got ", ^{ - expect(nil).toNot(contain(@3)); - }); - - expectNilFailureMessage(@"expected to contain , got ", ^{ - expect(nil).to(contain(@"hi")); - }); - expectNilFailureMessage(@"expected to not contain , got ", ^{ - expect(nil).toNot(contain(@"hi")); - }); -} - -- (void)testVariadicArguments { - NSArray *array = @[@1, @2]; - expect(array).to(contain(@1, @2)); - expect(array).toNot(contain(@"HI", @"whale")); - expect(@"String").to(contain(@"Str", @"ng")); - expect(@"Other").toNot(contain(@"Str", @"Oth")); - - - expectFailureMessage(@"expected to contain , got <(a, b, c)>", ^{ - expect(@[@"a", @"b", @"c"]).to(contain(@"a", @"bar")); - }); - - expectFailureMessage(@"expected to not contain , got <(a, b, c)>", ^{ - expect(@[@"a", @"b", @"c"]).toNot(contain(@"bar", @"b")); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m deleted file mode 100644 index b960f01..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m +++ /dev/null @@ -1,37 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCEndWithTest : XCTestCase - -@end - -@implementation ObjCEndWithTest - -- (void)testPositiveMatches { - NSArray *array = @[@1, @2]; - expect(@"hello world!").to(endWith(@"world!")); - expect(@"hello world!").toNot(endWith(@"hello")); - expect(array).to(endWith(@2)); - expect(array).toNot(endWith(@1)); - expect(@1).toNot(contain(@"foo")); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to end with , got ", ^{ - expect(@"hello world!").to(endWith(@"?")); - }); - expectFailureMessage(@"expected to not end with , got ", ^{ - expect(@"hello world!").toNot(endWith(@"!")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to end with <1>, got ", ^{ - expect(nil).to(endWith(@1)); - }); - expectNilFailureMessage(@"expected to not end with <1>, got ", ^{ - expect(nil).toNot(endWith(@1)); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m deleted file mode 100644 index 6c20809..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m +++ /dev/null @@ -1,94 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCEqualTest : XCTestCase - -@end - -@implementation ObjCEqualTest - -- (void)testPositiveMatches { - expect(@1).to(equal(@1)); - expect(@1).toNot(equal(@2)); - expect(@1).notTo(equal(@2)); - expect(@"hello").to(equal(@"hello")); - expect("hello").to(equal("hello")); - expect(NSMakeRange(0, 10)).to(equal(NSMakeRange(0, 10))); - expect(NSMakeRange(0, 10)).toNot(equal(NSMakeRange(0, 5))); - expect((NSInteger)1).to(equal((NSInteger)1)); - expect((NSInteger)1).toNot(equal((NSInteger)2)); - expect((NSUInteger)1).to(equal((NSUInteger)1)); - expect((NSUInteger)1).toNot(equal((NSUInteger)2)); - expect(0).to(equal(0)); - expect(1).to(equal(1)); - expect(1).toNot(equal(2)); - expect(1.0).to(equal(1.0)); // Note: not recommended, use beCloseTo() instead - expect(1.0).toNot(equal(2.0)); // Note: not recommended, use beCloseTo() instead - expect((float)1.0).to(equal((float)1.0)); // Note: not recommended, use beCloseTo() instead - expect((float)1.0).toNot(equal((float)2.0)); // Note: not recommended, use beCloseTo() instead - expect((double)1.0).to(equal((double)1.0)); // Note: not recommended, use beCloseTo() instead - expect((double)1.0).toNot(equal((double)2.0)); // Note: not recommended, use beCloseTo() instead - expect((long long)1).to(equal((long long)1)); - expect((long long)1).toNot(equal((long long)2)); - expect((unsigned long long)1).to(equal((unsigned long long)1)); - expect((unsigned long long)1).toNot(equal((unsigned long long)2)); -} - -- (void)testNimbleCurrentlyBoxesNumbersWhichAllowsImplicitTypeConversions { - expect(1).to(equal(1.0)); - expect((long long)1).to(equal((unsigned long long)1)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect(@1).to(equal(@2)); - }); - expectFailureMessage(@"expected to not equal <1>, got <1>", ^{ - expect(@1).toNot(equal(@1)); - }); - expectFailureMessage(@"expected to not equal , got ", ^{ - expect("bar").toNot(equal("foo")); - }); - expectFailureMessage(@"expected to equal , got ", ^{ - expect(NSMakeRange(0, 10)).to(equal(NSMakeRange(0, 5))); - }); - - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((NSInteger)1).to(equal((NSInteger)2)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((NSUInteger)1).to(equal((NSUInteger)2)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect(1).to(equal(2)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect(1.0).to(equal(2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((float)1.0).to(equal((float)2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((double)1.0).to(equal((double)2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((long long)1.0).to(equal((long long)2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((unsigned long long)1.0).to(equal((unsigned long long)2.0)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to equal , got ", ^{ - expect(NULL).to(equal(NULL)); - }); - expectNilFailureMessage(@"expected to equal , got ", ^{ - expect(nil).to(equal(nil)); - }); - expectNilFailureMessage(@"expected to not equal , got ", ^{ - expect(nil).toNot(equal(nil)); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m deleted file mode 100644 index 31053c8..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m +++ /dev/null @@ -1,174 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCHaveCountTest : XCTestCase - -@end - -@implementation ObjCHaveCountTest - -- (void)testHaveCountForNSArray { - expect(@[@1, @2, @3]).to(haveCount(@3)); - expect(@[@1, @2, @3]).notTo(haveCount(@1)); - - expect(@[]).to(haveCount(@0)); - expect(@[@1]).notTo(haveCount(@0)); - - expect(@[@1, @2, @3]).to(haveCount(3)); - expect(@[@1, @2, @3]).notTo(haveCount(1)); - - expect(@[]).to(haveCount(0)); - expect(@[@1]).notTo(haveCount(0)); - - expectFailureMessage(@"expected to have NSArray with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSArray with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSArray with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSArray with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSDictionary { - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(@3)); - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(@1)); - - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(3)); - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(1)); - - expectFailureMessage(@"expected to have NSDictionary with count 1, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSDictionary with count 3, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSDictionary with count 1, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSDictionary with count 3, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSHashtable { - NSHashTable *const table = [NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]; - [table addObject:@1]; - [table addObject:@2]; - [table addObject:@3]; - - expect(table).to(haveCount(@3)); - expect(table).notTo(haveCount(@1)); - - expect(table).to(haveCount(3)); - expect(table).notTo(haveCount(1)); - - NSString *msg = [NSString stringWithFormat: - @"expected to have NSHashTable {[2] 2[12] 1[13] 3}with count 1, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).to(haveCount(@1)); - }); - - msg = [NSString stringWithFormat: - @"expected to not have NSHashTable {[2] 2[12] 1[13] 3}with count 3, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).notTo(haveCount(@3)); - }); - - - msg = [NSString stringWithFormat: - @"expected to have NSHashTable {[2] 2[12] 1[13] 3}with count 1, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).to(haveCount(1)); - }); - - msg = [NSString stringWithFormat: - @"expected to not have NSHashTable {[2] 2[12] 1[13] 3}with count 3, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSSet { - NSSet *const set = [NSSet setWithArray:@[@1, @2, @3]]; - - expect(set).to(haveCount(@3)); - expect(set).notTo(haveCount(@1)); - expect(set).to(haveCount(3)); - expect(set).notTo(haveCount(1)); - - expectFailureMessage(@"expected to have NSSet with count 1, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSSet with count 3, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSSet with count 1, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSSet with count 3, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSIndexSet { - NSIndexSet *const set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]; - - expect(set).to(haveCount(@3)); - expect(set).notTo(haveCount(@1)); - expect(set).to(haveCount(3)); - expect(set).notTo(haveCount(1)); - - expectFailureMessage(@"expected to have NSIndexSet with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSIndexSet with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSIndexSet with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSIndexSet with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForUnsupportedTypes { - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFConstantString", ^{ - expect(@"string").to(haveCount(@6)); - }); - - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFNumber", ^{ - expect(@1).to(haveCount(@6)); - }); - - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFConstantString", ^{ - expect(@"string").to(haveCount(6)); - }); - - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFNumber", ^{ - expect(@1).to(haveCount(6)); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m deleted file mode 100644 index 2342ae4..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m +++ /dev/null @@ -1,33 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCMatchTest : XCTestCase - -@end - -@implementation ObjCMatchTest - -- (void)testPositiveMatches { - expect(@"11:14").to(match(@"\\d{2}:\\d{2}")); - expect(@"hello").toNot(match(@"\\d{2}:\\d{2}")); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to match <\\d{2}:\\d{2}>, got ", ^{ - expect(@"hello").to(match(@"\\d{2}:\\d{2}")); - }); - expectFailureMessage(@"expected to not match <\\d{2}:\\d{2}>, got <11:22>", ^{ - expect(@"11:22").toNot(match(@"\\d{2}:\\d{2}")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to match <\\d{2}:\\d{2}>, got ", ^{ - expect(nil).to(match(@"\\d{2}:\\d{2}")); - }); - expectNilFailureMessage(@"expected to not match <\\d{2}:\\d{2}>, got ", ^{ - expect(nil).toNot(match(@"\\d{2}:\\d{2}")); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m deleted file mode 100644 index e64c2f2..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m +++ /dev/null @@ -1,178 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCRaiseExceptionTest : XCTestCase - -@end - -@implementation ObjCRaiseExceptionTest - -- (void)testPositiveMatches { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - expectAction(^{ @throw exception; }).to(raiseException()); - expectAction(^{ [exception raise]; }).to(raiseException()); - expectAction(^{ [exception raise]; }).to(raiseException().named(NSInvalidArgumentException)); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food")); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"key": @"value"})); - - expectAction(^{ }).toNot(raiseException()); -} - -- (void)testPositiveMatchesWithBlocks { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - expectAction(^{ [exception raise]; }).to(raiseException(). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"key": @"value"}). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); -} - -- (void)testNegativeMatches { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - - expectFailureMessage(@"expected to raise any exception, got no exception", ^{ - expectAction(^{ }).to(raiseException()); - }); - - expectFailureMessage(@"expected to raise exception with name , got no exception", ^{ - expectAction(^{ }).to(raiseException(). - named(@"foo")); - }); - - expectFailureMessage(@"expected to raise exception with name with reason , got no exception", ^{ - expectAction(^{ }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"cakes")); - }); - - expectFailureMessage(@"expected to raise exception with name with reason with userInfo <{k = v;}>, got no exception", ^{ - expectAction(^{ }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"k": @"v"})); - }); - - expectFailureMessage(@"expected to not raise any exception, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }", ^{ - expectAction(^{ [exception raise]; }).toNot(raiseException()); - }); -} - -- (void)testNegativeMatchesWithPassingBlocks { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - expectFailureMessage(@"expected to raise exception that satisfies block, got no exception", ^{ - expect(exception).to(raiseException(). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"LOL")); - })); - }); - - NSString *outerFailureMessage = @"expected to raise exception that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); - - outerFailureMessage = @"expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(@"foo"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); - - outerFailureMessage = @"expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"bar"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); - - outerFailureMessage = @"expected to raise exception with name with reason with userInfo <{}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{}). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); -} - -- (void)testNegativeMatchesWithNegativeBlocks { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - NSString *outerFailureMessage; - - NSString *const innerFailureMessage = @"expected to equal , got "; - outerFailureMessage = @"expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"foo")); - })); - }); - - - outerFailureMessage = @"expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"foo")); - })); - }); - - - outerFailureMessage = @"expected to raise exception with name with reason with userInfo <{key = value;}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"key": @"value"}). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"foo")); - })); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m deleted file mode 100644 index 4c80abc..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m +++ /dev/null @@ -1,32 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCSatisfyAnyOfTest : XCTestCase - -@end - -@implementation ObjCSatisfyAnyOfTest - -- (void)testPositiveMatches { - expect(@2).to(satisfyAnyOf(equal(@2), equal(@3))); - expect(@2).toNot(satisfyAnyOf(equal(@3), equal(@16))); - expect(@[@1, @2, @3]).to(satisfyAnyOf(equal(@[@1, @2, @3]), allPass(beLessThan(@4)))); - expect(@NO).to(satisfyAnyOf(beTrue(), beFalse())); - expect(@YES).to(satisfyAnyOf(beTrue(), beFalse())); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to match one of: {equal <3>}, or {equal <4>}, or {equal <5>}, got 2", ^{ - expect(@2).to(satisfyAnyOf(equal(@3), equal(@4), equal(@5))); - }); - - expectFailureMessage(@"expected to match one of: {all be less than <4>, but failed first at element" - " <5> in <[5, 6, 7]>}, or {equal <(1, 2, 3, 4)>}, got (5,6,7)", ^{ - expect(@[@5, @6, @7]).to(satisfyAnyOf(allPass(beLessThan(@4)), equal(@[@1, @2, @3, @4]))); - }); - - expectFailureMessage(@"satisfyAnyOf must be called with at least one matcher", ^{ - expect(@"turtles").to(satisfyAnyOf()); - }); -} -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m deleted file mode 100644 index 2aae816..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m +++ /dev/null @@ -1,21 +0,0 @@ -#import -#import -#import "NimbleSpecHelper.h" - -@interface ObjCSyncTest : XCTestCase - -@end - -@implementation ObjCSyncTest - -- (void)testFailureExpectation { - expectFailureMessage(@"fail() always fails", ^{ - fail(); - }); - - expectFailureMessage(@"This always fails", ^{ - failWithMessage(@"This always fails"); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m deleted file mode 100644 index ffb5407..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m +++ /dev/null @@ -1,52 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCUserDescriptionTest : XCTestCase - -@end - -@implementation ObjCUserDescriptionTest - -- (void)testToWithDescription { - expectFailureMessage(@"These are equal!\n" - "expected to equal <2>, got <1>", ^{ - expect(@1).toWithDescription(equal(@2), @"These are equal!"); - }); -} - -- (void)testToNotWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to not equal <1>, got <1>", ^{ - expect(@1).toNotWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -- (void)testNotToWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to not equal <1>, got <1>", ^{ - expect(@1).notToWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -- (void)testToEventuallyWithDescription { - expectFailureMessage(@"These are equal!\n" - "expected to eventually equal <2>, got <1>", ^{ - expect(@1).toEventuallyWithDescription(equal(@2), @"These are equal!"); - }); -} - -- (void)testToEventuallyNotWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to eventually not equal <1>, got <1>", ^{ - expect(@1).toEventuallyNotWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -- (void)testToNotEventuallyWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to eventually not equal <1>, got <1>", ^{ - expect(@1).toNotEventuallyWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -@end diff --git a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m b/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m deleted file mode 100644 index 4ba2eae..0000000 --- a/Carthage/Checkouts/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m +++ /dev/null @@ -1,31 +0,0 @@ -@import XCTest; -@import Nimble; - -@interface ObjcStringersTest : XCTestCase - -@end - -@implementation ObjcStringersTest - -- (void)testItCanStringifyArrays { - NSArray *array = @[@1, @2, @3]; - NSString *result = NMBStringify(array); - - expect(result).to(equal(@"(1, 2, 3)")); -} - -- (void)testItCanStringifyIndexSets { - NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]; - NSString *result = NMBStringify(indexSet); - - expect(result).to(equal(@"(1, 2, 3)")); -} - -- (void)testItRoundsLongDecimals { - NSNumber *num = @291.123782163; - NSString *result = NMBStringify(num); - - expect(result).to(equal(@"291.1238")); -} - -@end diff --git a/Carthage/Checkouts/Nimble/script/release b/Carthage/Checkouts/Nimble/script/release deleted file mode 100755 index eb53530..0000000 --- a/Carthage/Checkouts/Nimble/script/release +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env sh -REMOTE_BRANCH=master -POD_NAME=Nimble -PODSPEC=Nimble.podspec - -POD=${COCOAPODS:-pod} - -function help { - echo "Usage: release VERSION RELEASE_NOTES [-f]" - echo - echo "VERSION should be the version to release, should not include the 'v' prefix" - echo "RELEASE_NOTES should be a file that lists all the release notes for this version" - echo " if file does not exist, creates a git-style commit with a diff as a comment" - echo - echo "FLAGS" - echo " -f Forces override of tag" - echo - echo " Example: ./release 1.0.0-rc.2 ./release-notes.txt" - echo - echo "HINT: use 'git diff ...HEAD' to build the release notes" - echo - exit 2 -} - -function die { - echo "[ERROR] $@" - echo - exit 1 -} - -if [ $# -lt 2 ]; then - help -fi - -VERSION=$1 -RELEASE_NOTES=$2 -FORCE_TAG=$3 - -VERSION_TAG="v$VERSION" - -echo "-> Verifying Local Directory for Release" - -if [ -z "`which $POD`" ]; then - die "Cocoapods is required to produce a release. Aborting." -fi -echo " > Cocoapods is installed" - -echo " > Is this a reasonable tag?" - -echo $VERSION_TAG | grep -q "^vv" -if [ $? -eq 0 ]; then - die "This tag ($VERSION) is an incorrect format. You should remove the 'v' prefix." -fi - -echo $VERSION_TAG | grep -q -E "^v\d+\.\d+\.\d+(-\w+(\.\d)?)?\$" -if [ $? -ne 0 ]; then - die "This tag ($VERSION) is an incorrect format. It should be in 'v{MAJOR}.{MINOR}.{PATCH}(-{PRERELEASE_NAME}.{PRERELEASE_VERSION})' form." -fi - -echo " > Is this version ($VERSION) unique?" -git describe --exact-match "$VERSION_TAG" > /dev/null 2>&1 -if [ $? -eq 0 ]; then - if [ -z "$FORCE_TAG" ]; then - die "This tag ($VERSION) already exists. Aborting. Append '-f' to override" - else - echo " > NO, but force was specified." - fi -else - echo " > Yes, tag is unique" -fi - -if [ ! -f "$RELEASE_NOTES" ]; then - echo " > Failed to find $RELEASE_NOTES. Prompting editor" - RELEASE_NOTES=/tmp/nimble.release.notes - LATEST_TAG=`git for-each-ref refs/tags --sort=-refname --format="%(refname:short)" | grep -E "^v\d+\.\d+\.\d+(-\w+(\.\d)?)?\$" | ruby -e 'puts STDIN.read.split("\n").sort { |a,b| Gem::Version.new(a.gsub(/^v/, "")) <=> Gem::Version.new(b.gsub(/^v/, "")) }.last'` - echo " > Latest tag ${LATEST_TAG}" - echo "${POD_NAME} v$VERSION" > $RELEASE_NOTES - echo "================" >> $RELEASE_NOTES - echo >> $RELEASE_NOTES - echo "# Changelog from ${LATEST_TAG}..HEAD" >> $RELEASE_NOTES - git log ${LATEST_TAG}..HEAD | sed -e 's/^/# /' >> $RELEASE_NOTES - $EDITOR $RELEASE_NOTES - diff -q $RELEASE_NOTES ${RELEASE_NOTES}.backup > /dev/null 2>&1 - STATUS=$? - rm ${RELEASE_NOTES}.backup - if [ $STATUS -eq 0 ]; then - rm $RELEASE_NOTES - die "No changes in release notes file. Aborting." - fi -fi -echo " > Release notes: $RELEASE_NOTES" - -if [ ! -f "$PODSPEC" ]; then - die "Cannot find podspec: $PODSPEC. Aborting." -fi -echo " > Podspec exists" - -git config --get user.signingkey > /dev/null || { - echo "[ERROR] No PGP found to sign tag. Aborting." - echo - echo " Creating a release requires signing the tag for security purposes. This allows users to verify the git cloned tree is from a trusted source." - echo " From a security perspective, it is not considered safe to trust the commits (including Author & Signed-off fields). It is easy for any" - echo " intermediate between you and the end-users to modify the git repository." - echo - echo " While not all users may choose to verify the PGP key for tagged releases. It is a good measure to ensure 'this is an official release'" - echo " from the official maintainers." - echo - echo " If you're creating your PGP key for the first time, use RSA with at least 4096 bits." - echo - echo "Related resources:" - echo " - Configuring your system for PGP: https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work" - echo " - Why: http://programmers.stackexchange.com/questions/212192/what-are-the-advantages-and-disadvantages-of-cryptographically-signing-commits-a" - echo - exit 2 -} -echo " > Found PGP key for git" - -# Verify cocoapods trunk ownership -pod trunk me | grep -q "$POD_NAME" || die "You do not have access to pod repository $POD_NAME. Aborting." -echo " > Verified ownership to $POD_NAME pod" - - -echo "--- Releasing version $VERSION (tag: $VERSION_TAG)..." - -function restore_podspec { - if [ -f "${PODSPEC}.backup" ]; then - mv -f ${PODSPEC}{.backup,} - fi -} - -echo "-> Ensuring no differences to origin/$REMOTE_BRANCH" -git fetch origin || die "Failed to fetch origin" -git diff --quiet HEAD "origin/$REMOTE_BRANCH" || die "HEAD is not aligned to origin/$REMOTE_BRANCH. Cannot update version safely" - - -echo "-> Setting podspec version" -cat "$PODSPEC" | grep 's.version' | grep -q "\"$VERSION\"" -SET_PODSPEC_VERSION=$? -if [ $SET_PODSPEC_VERSION -eq 0 ]; then - echo " > Podspec already set to $VERSION. Skipping." -else - sed -i.backup "s/s.version *= *\".*\"/s.version = \"$VERSION\"/g" "$PODSPEC" || { - restore_podspec - die "Failed to update version in podspec" - } - - git add ${PODSPEC} || { restore_podspec; die "Failed to add ${PODSPEC} to INDEX"; } - git commit -m "Bumping version to $VERSION" || { restore_podspec; die "Failed to push updated version: $VERSION"; } -fi - -if [ -z "$FORCE_TAG" ]; then - echo "-> Tagging version" - git tag -s "$VERSION_TAG" -F "$RELEASE_NOTES" || die "Failed to tag version" - echo "-> Pushing tag to origin" - git push origin "$VERSION_TAG" || die "Failed to push tag '$VERSION_TAG' to origin" -else - echo "-> Tagging version (force)" - git tag -f -s "$VERSION_TAG" -F "$RELEASE_NOTES" || die "Failed to tag version" - echo "-> Pushing tag to origin (force)" - git push origin "$VERSION_TAG" -f || die "Failed to push tag '$VERSION_TAG' to origin" -fi - -if [ $SET_PODSPEC_VERSION -ne 0 ]; then - git push origin "$REMOTE_BRANCH" || die "Failed to push to origin" - echo " > Pushed version to origin" -fi - -echo -echo "---------------- Released as $VERSION_TAG ----------------" -echo - -echo -echo "Pushing to pod trunk..." - -$POD trunk push "$PODSPEC" - -echo -echo "================ Finalizing the Release ================" -echo -echo " - Opening GitHub to mark this as a release..." -echo " - Paste the contents of $RELEASE_NOTES into the release notes. Tweak for GitHub styling." -echo " - Announce!" - -open "https://github.com/Quick/Nimble/releases/new?tag=$VERSION_TAG" - -rm ${PODSPEC}.backup diff --git a/Carthage/Checkouts/Nimble/test b/Carthage/Checkouts/Nimble/test deleted file mode 100755 index 0766351..0000000 --- a/Carthage/Checkouts/Nimble/test +++ /dev/null @@ -1,156 +0,0 @@ -#!/bin/bash - -GREEN="\033[0;32m" -CLEAR="\033[0m" - -if which xcodebuild > /dev/null; then - echo -e "Gathering ${GREEN}xcodebuild sdk versions${CLEAR}..." - BUILD_DIR=`pwd`/build - LATEST_IOS_SDK_VERSION=`xcodebuild -showsdks | grep iphonesimulator | cut -d ' ' -f 4 | ruby -e 'puts STDIN.read.chomp.split("\n").last'` - LATEST_TVOS_SDK_VERSION=`xcodebuild -showsdks | grep appletvsimulator | cut -d ' ' -f 4 | ruby -e 'puts STDIN.read.chomp.split("\n").last'` - LATEST_MACOS_SDK_VERSION=`xcodebuild -showsdks | grep 'macosx' | cut -d ' ' -f 3 | ruby -e 'puts STDIN.read.chomp.split("\n").last'` - BUILD_IOS_SDK_VERSION=${NIMBLE_BUILD_IOS_SDK_VERSION:-$LATEST_IOS_SDK_VERSION} - RUNTIME_IOS_SDK_VERSION=${NIMBLE_RUNTIME_IOS_SDK_VERSION:-$LATEST_IOS_SDK_VERSION} - BUILD_TVOS_SDK_VERSION=${NIMBLE_BUILD_TVOS_SDK_VERSION:-$LATEST_TVOS_SDK_VERSION} - RUNTIME_TVOS_SDK_VERSION=${NIMBLE_RUNTIME_TVOS_SDK_VERSION:-$LATEST_TVOS_SDK_VERSION} - BUILD_MACOS_SDK_VERSION=${NIMBLE_BUILD_MACOS_SDK_VERSION:-$LATEST_MACOS_SDK_VERSION} -fi - -set -e - -function color_if_overridden { - local actual=$1 - local env_var=$2 - if [ -z "$env_var" ]; then - printf "$actual" - else - printf "$GREEN$actual$CLEAR" - fi -} - -function print_env { - echo "=== Environment ===" - echo " iOS:" - echo " Latest iOS SDK: $LATEST_IOS_SDK_VERSION" - echo " Building with iOS SDK: `color_if_overridden $BUILD_IOS_SDK_VERSION $NIMBLE_BUILD_IOS_SDK_VERSION`" - echo " Running with iOS SDK: `color_if_overridden $RUNTIME_IOS_SDK_VERSION $NIMBLE_RUNTIME_IOS_SDK_VERSION`" - echo - echo " tvOS:" - echo " Latest tvOS SDK: $LATEST_TVOS_SDK_VERSION" - echo " Building with tvOS SDK: `color_if_overridden $BUILD_TVOS_SDK_VERSION $NIMBLE_BUILD_TVOS_SDK_VERSION`" - echo " Running with tvOS SDK: `color_if_overridden $RUNTIME_TVOS_SDK_VERSION $NIMBLE_RUNTIME_TVOS_SDK_VERSION`" - echo - echo " macOS:" - echo " Latest macOS SDK: $LATEST_MACOS_SDK_VERSION" - echo " Building with macOS SDK: `color_if_overridden $BUILD_MACOS_SDK_VERSION $NIMBLE_BUILD_MACOS_SDK_VERSION`" - echo - echo "======= END =======" - echo -} - -function run { - echo -e "$GREEN==>$CLEAR $@" - "$@" -} - -function test_ios { - run osascript -e 'tell app "Simulator" to quit' - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-iOS" -configuration "Debug" -sdk "iphonesimulator$BUILD_IOS_SDK_VERSION" -destination "name=iPad Air,OS=$RUNTIME_IOS_SDK_VERSION" build-for-testing test-without-building - - run osascript -e 'tell app "Simulator" to quit' - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-iOS" -configuration "Debug" -sdk "iphonesimulator$BUILD_IOS_SDK_VERSION" -destination "name=iPhone 5s,OS=$RUNTIME_IOS_SDK_VERSION" build-for-testing test-without-building -} - -function test_tvos { - run osascript -e 'tell app "Simulator" to quit' - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-tvOS" -configuration "Debug" -sdk "appletvsimulator$BUILD_TVOS_SDK_VERSION" -destination "name=Apple TV 1080p,OS=$RUNTIME_TVOS_SDK_VERSION" build-for-testing test-without-building -} - -function test_macos { - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-macOS" -configuration "Debug" -sdk "macosx$BUILD_MACOS_SDK_VERSION" build-for-testing test-without-building -} - -function test_podspec { - echo "Gathering CocoaPods installation information..." - run bundle exec pod --version - echo "Linting podspec..." - # Note: remove `--allow-warnings` once old Matcher API has been removed - run bundle exec pod lib lint Nimble.podspec --allow-warnings -} - -function test_swiftpm { - if [ -d .build ]; then - run swift build --clean - fi - run swift build && swift test -} - -function test_swiftpm_docker { - run docker build -t nimble-tests -f Dockerfile.test --no-cache . - run docker run -it --privileged=true nimble-tests -} - -function test() { - test_ios - test_tvos - test_macos - - if which swift-test; then - test_swiftpm - else - echo "Not testing with the Swift Package Manager because swift-test is not installed" - fi - - if which docker; then - test_swiftpm_docker - else - echo "Not testing linux in docker container since docker is not in PATH!" - fi -} - -function clean { - run rm -rf ~/Library/Developer/Xcode/DerivedData\; true -} - -function help { - echo "Usage: $0 COMMANDS" - echo - echo "COMMANDS:" - echo " all - Runs the all tests of macos, ios and tvos" - echo " clean - Cleans the derived data directory of Xcode. Assumes default location" - echo " help - Displays this help" - echo " ios - Runs the tests as an iOS device" - echo " macos - Runs the tests on macOS 10.10 (Yosemite and newer only)" - echo " podspec - Runs pod lib lint against the podspec to detect breaking changes" - echo " swiftpm - Runs the tests built by the Swift Package Manager" - echo " swiftpm_docker - Runs the tests built by the Swift Package Manager in a docker linux container" - echo " tvos - Runs the tests as an tvOS device" - echo - exit 1 -} - -function main { - print_env - for arg in $@ - do - case "$arg" in - clean) clean ;; - ios) test_ios ;; - tvos) test_tvos ;; - macos) test_macos ;; - podspec) test_podspec ;; - test) test ;; - all) test ;; - swiftpm) test_swiftpm ;; - swiftpm_docker) test_swiftpm_docker ;; - help) help ;; - esac - done - - if [ $# -eq 0 ]; then - clean - test - fi -} - -main $@ diff --git a/Carthage/Checkouts/Quick/.Package.test.swift b/Carthage/Checkouts/Quick/.Package.test.swift deleted file mode 100644 index 7058701..0000000 --- a/Carthage/Checkouts/Quick/.Package.test.swift +++ /dev/null @@ -1,39 +0,0 @@ -import PackageDescription - -let package = Package( - name: "Quick", - targets: { -#if _runtime(_ObjC) - return [ - Target(name: "QuickSpecBase"), - Target(name: "Quick", dependencies: [ "QuickSpecBase" ]), - Target(name: "QuickTests", dependencies: [ "Quick" ]), - ] -#else - return [ - Target(name: "Quick"), - Target(name: "QuickTests", dependencies: [ "Quick" ]), - ] -#endif - }(), - // TODO: Once the `test` command has been implemented in the Swift Package Manager, this should be changed to - // be `testDependencies:` instead. For now it has to be done like this for the library to get linked with the test targets. - // See: https://github.com/apple/swift-evolution/blob/master/proposals/0019-package-manager-testing.md - dependencies: [ - .Package(url: "https://github.com/Quick/Nimble", majorVersion: 6) - ], - exclude: { - var excludes = [ - "Sources/QuickObjectiveC", - "Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m", - "Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m", - "Tests/QuickTests/QuickTests/FunctionalTests/ObjC", - "Tests/QuickTests/QuickTests/Helpers", - "Tests/QuickTests/QuickTests/QuickConfigurationTests.m", - ] -#if !_runtime(_ObjC) - excludes.append("Sources/QuickSpecBase") -#endif - return excludes - }() -) diff --git a/Carthage/Checkouts/Quick/.github/ISSUE_TEMPLATE b/Carthage/Checkouts/Quick/.github/ISSUE_TEMPLATE deleted file mode 100644 index ebe5a2b..0000000 --- a/Carthage/Checkouts/Quick/.github/ISSUE_TEMPLATE +++ /dev/null @@ -1,36 +0,0 @@ -- [ ] I have read [CONTRIBUTING](https://github.com/Quick/Quick/blob/master/CONTRIBUTING.md) and have done my best to follow them. - -### What did you do? - -Please replace this with what you did. - -### What did you expect to happen? - -Please replace this with what you expected to happen. - -### What actually happened instead? - -Please replace this with what happened instead. - -### Environment - -List the software versions you're using: - - - Quick: *?.?.?* - - Nimble: *?.?.?* - - Xcode Version: *?.? (????)* (Open Xcode; In menubar: Xcode > About Xcode) - - Swift Version: *?.?* (Open Xcode Preferences; Components > Toolchains. If none, use `Xcode Default`.) - -Please also mention which package manager you used and its version. Delete the -other package managers in this list: - - - Cocoapods: *?.?.?* (Use `pod --version` in Terminal) - - Carthage: *?.?* (Use `carthage version` in Terminal) - - Swift Package Manager *?.?.? (swiftpm-???)* (Use `swift build --version` in Terminal) - -### Project that demonstrates the issue - -Please link to a project we can download that reproduces the issue. Feel free -to delete this section if it's not relevant to the issue (eg - feature request). - -The project should be [short, self-contained, and correct example](http://sscce.org/). diff --git a/Carthage/Checkouts/Quick/.github/PULL_REQUEST_TEMPLATE b/Carthage/Checkouts/Quick/.github/PULL_REQUEST_TEMPLATE deleted file mode 100644 index 20e40c8..0000000 --- a/Carthage/Checkouts/Quick/.github/PULL_REQUEST_TEMPLATE +++ /dev/null @@ -1,14 +0,0 @@ -The PR should summarize what was changed and why. Here are some questions to -help you if you're not sure: - - - What behavior was changed? - - What code was refactored / updated to support this change? - - What issues are related to this PR? Or why was this change introduced? - -Checklist - While not every PR needs it, new features should consider this list: - - - [ ] Does this have tests? - - [ ] Does this have documentation? - - [ ] Does this break the public API (Requires major version bump)? - - [ ] Is this a new feature (Requires minor version bump)? - diff --git a/Carthage/Checkouts/Quick/.gitignore b/Carthage/Checkouts/Quick/.gitignore deleted file mode 100644 index 33d3dc9..0000000 --- a/Carthage/Checkouts/Quick/.gitignore +++ /dev/null @@ -1,65 +0,0 @@ -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## Build generated -build/ -DerivedData - -## Various settings -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata - -## Other -*.xccheckout -*.moved-aside -*.xcuserstate -*.xcscmblueprint - -## Obj-C/Swift specific -*.hmap -*.ipa - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -Packages/ -.build/ - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md - -fastlane/report.xml -fastlane/screenshots - -# Mac OS X -.DS_Store - -# Quick -Quick.framework.zip diff --git a/Carthage/Checkouts/Quick/.gitmodules b/Carthage/Checkouts/Quick/.gitmodules deleted file mode 100644 index cffbed0..0000000 --- a/Carthage/Checkouts/Quick/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "Externals/Nimble"] - path = Externals/Nimble - url = https://github.com/Quick/Nimble.git diff --git a/Carthage/Checkouts/Quick/.hound.yml b/Carthage/Checkouts/Quick/.hound.yml deleted file mode 100644 index b867fd9..0000000 --- a/Carthage/Checkouts/Quick/.hound.yml +++ /dev/null @@ -1,2 +0,0 @@ -swift: - config_file: .swiftlint.yml diff --git a/Carthage/Checkouts/Quick/.swift-version b/Carthage/Checkouts/Quick/.swift-version deleted file mode 100644 index 9f55b2c..0000000 --- a/Carthage/Checkouts/Quick/.swift-version +++ /dev/null @@ -1 +0,0 @@ -3.0 diff --git a/Carthage/Checkouts/Quick/.swiftlint.yml b/Carthage/Checkouts/Quick/.swiftlint.yml deleted file mode 100644 index 7355ecc..0000000 --- a/Carthage/Checkouts/Quick/.swiftlint.yml +++ /dev/null @@ -1,9 +0,0 @@ -disabled_rules: - - line_length - - type_name - - valid_docs - - function_body_length - - variable_name -included: - - Sources - - Tests diff --git a/Carthage/Checkouts/Quick/.travis.yml b/Carthage/Checkouts/Quick/.travis.yml deleted file mode 100644 index c22030e..0000000 --- a/Carthage/Checkouts/Quick/.travis.yml +++ /dev/null @@ -1,34 +0,0 @@ -osx_image: xcode8 -language: generic -matrix: - include: - - os: osx - env: - - PLATFORM=macos - - XCODE_ACTION="build-for-testing test-without-building" - - os: osx - env: - - PLATFORM=ios - - XCODE_ACTION="build-for-testing test-without-building" - - os: osx - env: - - PLATFORM=tvos - - XCODE_ACTION="build-for-testing test-without-building" - - os: osx - env: - - PLATFORM=swiftpm - - os: osx - sudo: required - env: - - PODSPEC=1 - - os: linux - sudo: required - dist: trusty -install: - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./script/travis-install-macos; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./script/travis-install-linux; fi - - if [[ "$PODSPEC" ]]; then rvm system; sudo gem install bundler; bundle install; fi -script: - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./script/travis-script-macos; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./script/travis-script-linux; fi - - if [[ "$PODSPEC" ]]; then danger; fi diff --git a/Carthage/Checkouts/Quick/CODE_OF_CONDUCT.md b/Carthage/Checkouts/Quick/CODE_OF_CONDUCT.md deleted file mode 100644 index f82f39a..0000000 --- a/Carthage/Checkouts/Quick/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,74 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -nationality, personal appearance, race, religion, or sexual identity and -orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or -advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at [quickorg@icloud.com](mailto:quickorg@icloud.com). All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/Carthage/Checkouts/Quick/CONTRIBUTING.md b/Carthage/Checkouts/Quick/CONTRIBUTING.md deleted file mode 100644 index e8e32c1..0000000 --- a/Carthage/Checkouts/Quick/CONTRIBUTING.md +++ /dev/null @@ -1,111 +0,0 @@ - - -**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* - -- [Welcome to Quick!](#welcome-to-quick!) - - [Reporting Bugs](#reporting-bugs) - - [Building the Project](#building-the-project) - - [Pull Requests](#pull-requests) - - [Style Conventions](#style-conventions) - - [Core Members](#core-members) - - [Code of Conduct](#code-of-conduct) - - [Creating a Release](#creating-a-release) - - - -# Welcome to Quick! - -We're building a testing framework for a new generation of Swift and -Objective-C developers. - -Quick should be easy to use and easy to maintain. Let's keep things -simple and well-tested. - -## Reporting Bugs - -Nothing is off-limits. If you're having a problem, we want to hear about -it. - -- See a crash? File an issue. -- Code isn't compiling, but you don't know why? Sounds like you should - submit a new issue, bud. -- Went to the kitchen, only to forget why you went in the first place? - Better submit an issue. - -Be sure to include in your issue: - -- Your Xcode version (eg - Xcode 7.0.1 7A1001) -- Your version of Quick / Nimble (eg - v0.7.0 or git sha `7d0b8c21357839a8c5228863b77faecf709254a9`) -- What are the steps to reproduce this issue? -- What platform are you using? (eg - OS X, iOS, watchOS, tvOS) -- If the problem is on a UI Testing Bundle, Unit Testing Bundle, or some other target configuration -- Are you using carthage or cocoapods? - -## Building the Project - -- After cloning the repository, run `git submodule update --init` to pull the Nimble submodule. -- Use `Quick.xcworkspace` to work on Quick. The workspace includes - Nimble, which is used in Quick's tests. - -## Pull Requests - -- Nothing is trivial. Submit pull requests for anything: typos, - whitespace, you name it. -- Not all pull requests will be merged, but all will be acknowledged. If - no one has provided feedback on your request, ping one of the owners - by name. -- Make sure your pull request includes any necessary updates to the - README or other documentation. -- Be sure the unit tests for both the OS X and iOS targets of both Quick - and Nimble pass before submitting your pull request. You can run all - the iOS and OS X unit tests using `rake`. -- The `master` branch will always support the stable Xcode version. Other - branches will point to their corresponding versions they support. -- If you're making a configuration change, make sure to edit both the xcode - project and the podspec file. - -### Style Conventions - -- Indent using 4 spaces. -- Keep lines 100 characters or shorter. Break long statements into - shorter ones over multiple lines. -- In Objective-C, use `#pragma mark -` to mark public, internal, - protocol, and superclass methods. See `QuickSpec.m` for an example. - -## Core Members - -If a few of your pull requests have been merged, and you'd like a -controlling stake in the project, file an issue asking for write access -to the repository. - -Your conduct as a core member is your own responsibility, but here are -some "ground rules": - -- Feel free to push whatever you want to master, and (if you have - ownership permissions) to create any repositories you'd like. - - Ideally, however, all changes should be submitted as GitHub pull - requests. No one should merge their own pull request, unless no - other core members respond for at least a few days. - - Pull requests should be issued from personal forks. The Quick repo - should be reserved for long-running feature branches. - - If you'd like to create a new repository, it'd be nice if you created - a GitHub issue and gathered some feedback first. - -- It'd be awesome if you could review, provide feedback on, and close - issues or pull requests submitted to the project. Please provide kind, - constructive feedback. Please don't be sarcastic or snarky. - -Read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for more in depth guidelines. - -## Creating a Release - -The process is relatively straight forward, but here's is a useful checklist for tagging: - -- Look at changes from the previously tagged release and write release notes: `git log v0.4.0...HEAD` -- Run the release script: `./script/release A.B.C release-notes-file` -- The script will prompt you to create a new [GitHub release](https://github.com/Quick/Quick/releases). - - Use the same release notes you created for the tag, but tweak up formatting for GitHub. -- Announce! diff --git a/Carthage/Checkouts/Quick/Dangerfile b/Carthage/Checkouts/Quick/Dangerfile deleted file mode 100644 index 719de60..0000000 --- a/Carthage/Checkouts/Quick/Dangerfile +++ /dev/null @@ -1,53 +0,0 @@ -# set the number of lines that must be changed before this classifies as a 'Big PR' -@SDM_DANGER_BIG_PR_LINES = 50 - -# set the files to watch and fail if there are changes -@SDM_DANGER_IMMUTABLE_FILES = ['LICENSE', 'CONTRIBUTING.md', 'CODE_OF_CONDUCT.md'] - -# Sometimes it's a README fix, or something like that which is trivial -not_declared_trivial = !(github.pr_title.include? "#trivial") -has_app_changes = !git.modified_files.grep(/Sources/).empty? -no_test_modify = git.modified_files.grep(/Tests/).empty? - -# Warns when changing source files -if has_app_changes && not_declared_trivial && no_test_modify - warn("Need to add an unit test if you're modifying swift source") -end - -# determine if any of the files were modified -def did_modify(files_array) - did_modify_files = false - files_array.each do |file_name| - if git.modified_files.include?(file_name) || git.deleted_files.include?(file_name) - did_modify_files = true - end - end - return did_modify_files -end - -# Fail if changes to immutable files, such as License or CoC -fail('Do not modify the license or Code of Conduct') if did_modify(@SDM_DANGER_IMMUTABLE_FILES) - -# Make it more obvious that a PR is a work in progress and shouldn't be merged yet -warn("PR is classed as Work in Progress") if github.pr_title.include? "[WIP]" - -# Warn when there is a big PR -warn("Big PR") if git.lines_of_code > @SDM_DANGER_BIG_PR_LINES - -# Make a note about contributors not in the organization -unless github.api.organization_member?('Quick', github.pr_author) - # Pay extra attention if they modify the podspec - if git.modified_files.include?("*.podspec") - warn "External contributor has edited the Podspec file" - end -end - -# Mainly to encourage writing up some reasoning about the PR, rather than -# just leaving a title -if github.pr_body.length < 5 - warn "Please provide a summary in the Pull Request description" -end - -swiftlint.config_file = '.swiftlint.yml' -swiftlint.lint_files - diff --git a/Carthage/Checkouts/Quick/Documentation/README.md b/Carthage/Checkouts/Quick/Documentation/README.md deleted file mode 100644 index 08fb556..0000000 --- a/Carthage/Checkouts/Quick/Documentation/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Documentation - -- [English](en-us/README.md) -- [日本語](ja/README.md) -- [中文](zh-cn/README.md) -- [pt-br](pt-br/README.md) diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/ArrangeActAssert.md b/Carthage/Checkouts/Quick/Documentation/en-us/ArrangeActAssert.md deleted file mode 100644 index fc7915b..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/ArrangeActAssert.md +++ /dev/null @@ -1,220 +0,0 @@ -# Effective Tests Using XCTest: Arrange, Act, and Assert - -Whether you're using XCTest, Quick, or another testing framework, you can write -effective unit tests by following a simple pattern: - -1. Arrange -2. Act -3. Assert - -## Using Arrange, Act, and Assert - -For example, let's look at a simple class called `Banana`: - -```swift -// Banana/Banana.swift - -/** A delicious banana. Tastes better if you peel it first. */ -public class Banana { - private var isPeeled = false - - /** Peels the banana. */ - public func peel() { - isPeeled = true - } - - /** You shouldn't eat a banana unless it's been peeled. */ - public var isEdible: Bool { - return isPeeled - } -} -``` - -Let's verify the `Banana.peel()` method does what it's supposed to: - -```swift -// BananaTests/BananaTests.swift - -class BananaTests: XCTestCase { - func testPeel() { - // Arrange: Create the banana we'll be peeling. - let banana = Banana() - - // Act: Peel the banana. - banana.peel() - - // Assert: Verify that the banana is now edible. - XCTAssertTrue(banana.isEdible) - } -} -``` - -## Using Clear Test Names - -Our `testPeel()` makes sure that, if the `Banana.peel()` method ever -stops working right, we'll know. This usually happens when our application -code changes, which either means: - -1. We accidentally broke our application code, so we have to fix the application code -2. We changed how our application code works--maybe because we're adding a new - feature--so we have to change the test code - -If our tests start breaking, how do we know which one of these cases applies? It might -surprise you that **the name of the test** is our best indication. Good test names: - -1. Are clear about what is being tested. -2. Are clear about when the test should pass or fail. - -Is our `testPeel()` method clearly named? Let's make it clearer: - -```diff -// BananaTests.swift - --func testPeel() { -+func testPeel_makesTheBananaEdible() { - // Arrange: Create the banana we'll be peeling. - let banana = Banana() - - // Act: Peel the banana. - banana.peel() - - // Assert: Verify that the banana is now edible. - XCTAssertTrue(banana.isEdible) -} -``` - -The new name: - -1. Is clear about what is being tested: `testPeel` indicates it's the `Banana.peel()` method. -2. Is clear about when the test should pass: `makesTheBananaEdible` indicates the - banana is edible once the method has been called. - -## Testing Conditions - -Let's say we want to offer people bananas, using a function called `offer()`: - -```swift -// Banana/Offer.swift - -/** Given a banana, returns a string that can be used to offer someone the banana. */ -public func offer(banana: Banana) -> String { - if banana.isEdible { - return "Hey, want a banana?" - } else { - return "Hey, want me to peel this banana for you?" - } -} -``` - -Our application code does one of two things: - -1. Either it offers a banana that's already been peeled... -2. ...or it offers an unpeeled banana. - -Let's write tests for these two cases: - -```swift -// BananaTests/OfferTests.swift - -class OfferTests: XCTestCase { - func testOffer_whenTheBananaIsPeeled_offersTheBanana() { - // Arrange: Create a banana and peel it. - let banana = Banana() - banana.peel() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want a banana?") - } - - func testOffer_whenTheBananaIsntPeeled_offersToPeelTheBanana() { - // Arrange: Create a banana. - let banana = Banana() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want me to peel this banana for you?") - } -} -``` - -Our test names clearly indicate the **conditions** under which our tests should pass: -in the case that `whenTheBananaIsPeeled`, `offer()` should `offersTheBanana`. And if -the banana isn't peeled? Well, we have a test for that, too! - -Notice that we have one test per `if` statement in our application code. -This is a great pattern when writing tests: it makes sure every set of conditions -is tested. If one of those conditions no longer works, or needs to be changed, we'll know -exactly which test needs to be looked at. - -## Shorter "Arrange" Steps with `XCTestCase.setUp()` - -Both of our `OfferTests` tests contain the same "Arrange" code: they both -create a banana. We should move that code into a single place. Why? - -1. As-is, if we change the `Banana` initializer, we'll have to change every test that creates a banana. -2. Our test methods will be shorter--which is a good thing if (and **only if**) that makes - the tests easier to read. - -Let's move the `Banana` initialization into the `XCTestCase.setUp()` method, which is called -once before every test method. - -```diff -// OfferTests.swift - -class OfferTests: XCTestCase { -+ var banana: Banana! -+ -+ override func setUp() { -+ super.setUp() -+ banana = Banana() -+ } -+ - func testOffer_whenTheBananaIsPeeled_offersTheBanana() { -- // Arrange: Create a banana and peel it. -- let banana = Banana() -+ // Arrange: Peel the banana. - banana.peel() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want a banana?") - } - - func testOffer_whenTheBananaIsntPeeled_offersToPeelTheBanana() { -- // Arrange: Create a banana. -- let banana = Banana() -- - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want me to peel this banana for you?") - } -} -``` - -## Sharing "Arrange" Code Across Multiple Tests - -If you find yourself using the same "arrange" steps across multiple tests, -you may want to define a helper function within your test target: - -```swift -// BananaTests/BananaHelpers.swift - -internal func createNewPeeledBanana() -> Banana { - let banana = Banana() - banana.peel() - return banana -} -``` - -> Use a function to define your helpers: functions can't be subclassed, nor - can they retain any state. Subclassing and mutable state can make your tests - harder to read. diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/BehavioralTesting.md b/Carthage/Checkouts/Quick/Documentation/en-us/BehavioralTesting.md deleted file mode 100644 index 02ae0c0..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/BehavioralTesting.md +++ /dev/null @@ -1,87 +0,0 @@ -# Don't Test Code, Instead Verify Behavior - -Tests should only fail if the application **behaves differently**. -They should test *what* the application code does, not *how* it does those things. - -- Tests that verify *what* an application does are **behavioral tests**. -- Tests that break if the application code changes, even if the behavior - remains the same, are **brittle tests**. - -Let's say we have a banana database, called `GorillaDB`. -`GorillaDB` is a key-value store for bananas. We can save bananas: - -```swift -let database = GorillaDB() -let banana = Banana() -database.save(banana: banana, key: "my-banana") -``` - -And we can restore bananas from disk later: - -```swift -let banana = database.load(key: "my-banana") -``` - -## Brittle Tests - -How can we test this behavior? One way would be to check the size of the database -after we save a banana: - -```swift -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { - // Arrange: Create a database and get its original size. - let database = GorillaDB() - let originalSize = database.size - - // Act: Save a banana to the database. - let banana = Banana() - database.save(banana: banana, key: "test-banana") - - // Assert: The size of the database should have increased by one. - XCTAssertEqual(database.size, originalSize + 1) -} -``` - - -Imagine, however, that the source code of `GorillaDB` changes. In order to make -reading bananas from the database faster, it maintains a cache of the most frequently -used bananas. `GorillaDB.size` grows as the size of the cache grows, and our test fails: - -![](https://raw.githubusercontent.com/Quick/Assets/master/Screenshots/Screenshot_database_size_fail.png) - -## Behavioral Tests - -The key to writing behavioral tests is determining exactly what you're expecting -your application code to do. - -In the context of our `testSave_savesTheBananaToTheDatabase` test: what is the -behavior we expect when we "save" a banana to the database? "Saving" implies, to me, -that we can load it later. So instead of testing that the size of the database increases, -we should test that we can load a banana. - -```diff -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { - // Arrange: Create a database and get its original size. - let database = GorillaDB() -- let originalSize = database.size - - // Act: Save a banana to the database. - let banana = Banana() - database.save(banana: banana, key: "test-banana") - -- // Assert: The size of the database should have increased by one. -- XCTAssertEqual(database.size, originalSize + 1) -+ // Assert: The bananas saved to and loaded from the database should be the same. -+ XCTAssertEqual(database.load(key: "test-banana"), banana) -} -``` - -The key to writing behavioral tests is asking: - -- What exactly should this application code do? -- Is my test verifying *only* that behavior? - Or could it fail due to other aspects of how the code works? diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/ConfiguringQuick.md b/Carthage/Checkouts/Quick/Documentation/en-us/ConfiguringQuick.md deleted file mode 100644 index 919d4de..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/ConfiguringQuick.md +++ /dev/null @@ -1,103 +0,0 @@ -# Configuring How Quick Behaves - -You can customize how Quick behaves by subclassing `QuickConfiguration` and -overriding the `QuickConfiguration.Type.configure()` class method: - -```swift -// Swift - -import Quick - -class ProjectDataTestConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - // ...set options on the configuration object here. - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickConfigurationBegin(ProjectDataTestConfiguration) - -+ (void)configure:(Configuration *configuration) { - // ...set options on the configuration object here. -} - -QuickConfigurationEnd -``` - -Projects may include several configurations. Quick does not make any -guarantee about the order in which those configurations are executed. - -## Adding Global `beforeEach` and `afterEach` Closures - -Using `QuickConfiguration.beforeEach` and `QuickConfiguration.afterEach`, you -can specify closures to be run before or after *every* example in a test suite: - -```swift -// Swift - -import Quick -import Sea - -class FinConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - configuration.beforeEach { - Dorsal.sharedFin().height = 0 - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -#import "Dorsal.h" - -QuickConfigurationBegin(FinConfiguration) - -+ (void)configure:(Configuration *)configuration { - [configuration beforeEach:^{ - [Dorsal sharedFin].height = 0; - }]; -} - -QuickConfigurationEnd -``` - -In addition, Quick allows you to access metadata regarding the current -example being run: - -```swift -// Swift - -import Quick - -class SeaConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - configuration.beforeEach { exampleMetadata in - // ...use the example metadata object to access the current example name, and more. - } - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickConfigurationBegin(SeaConfiguration) - -+ (void)configure:(Configuration *)configuration { - [configuration beforeEachWithMetadata:^(ExampleMetadata *data) { - // ...use the example metadata object to access the current example name, and more. - }]; -} - -QuickConfigurationEnd -``` diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/InstallingFileTemplates.md b/Carthage/Checkouts/Quick/Documentation/en-us/InstallingFileTemplates.md deleted file mode 100644 index 3de82c5..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/InstallingFileTemplates.md +++ /dev/null @@ -1,28 +0,0 @@ -# Installing Quick File Templates - -The Quick repository includes file templates for both Swift and -Objective-C specs. - -## Alcatraz - -Quick templates can be installed via [Alcatraz](https://github.com/supermarin/Alcatraz), -a package manager for Xcode. Just search for the templates from the -Package Manager window. - -![](http://f.cl.ly/items/3T3q0G1j0b2t1V0M0T04/Screen%20Shot%202014-06-27%20at%202.01.10%20PM.png) - -## Manually via the Rakefile - -To manually install the templates, just clone the repository and -run the `templates:install` rake task: - -```sh -$ git clone git@github.com:Quick/Quick.git -$ rake templates:install -``` - -Uninstalling is easy, too: - -```sh -$ rake templates:uninstall -``` diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/InstallingQuick.md b/Carthage/Checkouts/Quick/Documentation/en-us/InstallingQuick.md deleted file mode 100644 index 258956f..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/InstallingQuick.md +++ /dev/null @@ -1,157 +0,0 @@ -# Installing Quick - ->Before starting, check [here](../../README.md#swift-version) which versions of Quick and Nimble are compatible with your version of Swift. - -Quick provides the syntax to define examples and example groups. Nimble -provides the `expect(...).to` assertion syntax. You may use either one, -or both, in your tests. - -There are three recommended ways of linking Quick to your tests: - -1. [Git Submodules](#git-submodules) -2. [CocoaPods](#cocoapods) -3. [Carthage](#carthage) -4. [Swift Package Manager (experimental)](#swift-package-manager) - -Choose one and follow the instructions below. Once you've completed them, -you should be able to `import Quick` from within files in your test target. - -## Git Submodules - -To link Quick and Nimble using Git submodules: - -1. Add submodule for Quick. -2. If you don't already have a `.xcworkspace` for your project, create one. ([Here's how](https://developer.apple.com/library/ios/recipes/xcode_help-structure_navigator/articles/Adding_an_Existing_Project_to_a_Workspace.html)) -3. Add `Quick.xcodeproj` to your project's `.xcworkspace`. -4. Add `Nimble.xcodeproj` to your project's `.xcworkspace`. It exists in `path/to/Quick/Externals/Nimble`. By adding Nimble from Quick's dependencies (as opposed to adding directly as a submodule), you'll ensure that you're using the correct version of Nimble for whatever version of Quick you're using. -5. Link `Quick.framework` and `Nimble.framework` in your test target's - "Link Binary with Libraries" build phase. - -First, if you don't already have one, create a directory for your Git submodules. -Let's assume you have a directory named `Vendor`. - -**Step One:** Download Quick and Nimble as Git submodules: - -```sh -git submodule add git@github.com:Quick/Quick.git Vendor/Quick -git submodule add git@github.com:Quick/Nimble.git Vendor/Nimble -git submodule update --init --recursive -``` - -**Step Two:** Add the `Quick.xcodeproj` and `Nimble.xcodeproj` files downloaded above to -your project's `.xcworkspace`. For example, this is `Guanaco.xcworkspace`, the -workspace for a project that is tested using Quick and Nimble: - -![](http://f.cl.ly/items/2b2R0e1h09003u2f0Z3U/Screen%20Shot%202015-02-27%20at%202.19.37%20PM.png) - -**Step Three:** Link the `Quick.framework` during your test target's -`Link Binary with Libraries` build phase. You should see two -`Quick.frameworks`; one is for macOS, and the other is for iOS. - -![](http://cl.ly/image/2L0G0H1a173C/Screen%20Shot%202014-06-08%20at%204.27.48%20AM.png) - -Do the same for the `Nimble.framework`, and you're done! - -**Updating the Submodules:** If you ever want to update the Quick -or Nimble submodules to latest version, enter the Quick directory -and pull from the master repository: - -```sh -cd /path/to/your/project/Vendor/Quick -git checkout master -git pull --rebase origin master -``` - -Your Git repository will track changes to submodules. You'll want to -commit the fact that you've updated the Quick submodule: - -```sh -cd /path/to/your/project -git commit -m "Updated Quick submodule" -``` - -**Cloning a Repository that Includes a Quick Submodule:** After other people -clone your repository, they'll have to pull down the submodules as well. -They can do so by running the `git submodule update` command: - -```sh -git submodule update --init --recursive -``` - -You can read more about Git submodules [here](http://git-scm.com/book/en/Git-Tools-Submodules). - -## CocoaPods - -First, update CocoaPods to Version 0.36.0 or newer, which is necessary to install CocoaPods using Swift. - -Then, add Quick and Nimble to your Podfile. Additionally, the ```use_frameworks!``` line is necessary for using Swift in CocoaPods: - -```rb - -# Podfile - -use_frameworks! - -def testing_pods - pod 'Quick' - pod 'Nimble' -end - -target 'MyTests' do - testing_pods -end - -target 'MyUITests' do - testing_pods -end -``` - -Finally, download and link Quick and Nimble to your tests: - -```sh -pod install -``` - -## [Carthage](https://github.com/Carthage/Carthage) - -As test targets do not have the "Embedded Binaries" section, the frameworks must -be added to the target's "Link Binary With Libraries" as well as a "Copy Files" build phase -to copy them to the target's Frameworks destination. - - > As Carthage builds dynamic frameworks, you will need a valid code signing identity set up. - -1. Add Quick to your [`Cartfile.private`](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfileprivate): - - ``` - github "Quick/Quick" - github "Quick/Nimble" - ``` - -2. Run `carthage update`. -3. From your `Carthage/Build/[platform]/` directory, add both Quick and Nimble to your test target's "Link Binary With Libraries" build phase: - ![](http://i.imgur.com/pBkDDk5.png) - -4. For your test target, create a new build phase of type "Copy Files": - ![](http://i.imgur.com/jZATIjQ.png) - -5. Set the "Destination" to "Frameworks", then add both frameworks: - ![](http://i.imgur.com/rpnyWGH.png) - -This is not "the one and only way" to use Carthage to manage dependencies. -For further reference check out the [Carthage documentation](https://github.com/Carthage/Carthage/blob/master/README.md). - -## [Swift Package Manager](https://github.com/apple/swift-package-manager) -With the advent of the [swift.org](https://swift.org) open-source project, Swift now has an official, though nascent, package manager tool. Notably, this provides the possibility of using Quick on non-Apple platforms for the first time. Initial steps have been taken to allow using Quick to test projects using the Swift Package Manager, although frequent breakage is expected at this point since the tool is still under heavy development. - -Until further documentation has been written, the following repository may be useful as an example of how Quick can be declared as a dependency in a `Package.swift` file for SwiftPM: - -https://github.com/Quick/QuickOnLinuxExample - -### (Not Recommended) Running Quick Specs on a Physical iOS Device - -In order to run specs written in Quick on device, you need to add `Quick.framework` and -`Nimble.framework` as `Embedded Binaries` to the `Host Application` of the -test target. After adding a framework as an embedded binary, Xcode will -automatically link the host app against the framework. - -![](http://indiedev.kapsi.fi/images/embed-in-host.png) diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/MoreResources.md b/Carthage/Checkouts/Quick/Documentation/en-us/MoreResources.md deleted file mode 100644 index 65d7eba..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/MoreResources.md +++ /dev/null @@ -1,28 +0,0 @@ -# More Resources - -## Examples of Quick Specs - -Quick is used by many companies, open-source projects, and individuals, -including [GitHub](https://github.com/github) and -[ReactiveCocoa](https://github.com/ReactiveCocoa). For examples, check out: - -- https://github.com/ReactiveCocoa/ReactiveCocoa -- https://github.com/github/Archimedes -- https://github.com/libgit2/objective-git -- https://github.com/jspahrsummers/RXSwift -- https://github.com/artsy/eidolon -- https://github.com/AshFurrow/Moya -- https://github.com/nerdyc/Squeal -- https://github.com/pepibumur/SugarRecord - -## More on Unit Testing for OS X and iOS Apps - -- **[Quality Coding](http://qualitycoding.org/)**: - A blog on iOS development that focuses on unit testing. -- **[OCMock Tutorials](http://ocmock.org/support/)**: - Use OCMock when you need "fake objects" in your tests. -- **[Nocilla: Stunning HTTP stubbing for iOS and Mac OS X](https://github.com/luisobo/Nocilla)**: - Use this library to test code that sends requests to, and receives responses from, the Internet. -- **[Pivotal Labs: Writing Beautiful Specs with Jasmine Custom Matchers](http://pivotallabs.com/writing-beautiful-specs-jasmine-custom-matchers/)**: - See [the Nimble documentation](https://github.com/Quick/Nimble) for instructions on how to write - custom matchers in Nimble. diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/NimbleAssertions.md b/Carthage/Checkouts/Quick/Documentation/en-us/NimbleAssertions.md deleted file mode 100644 index 3b31ac3..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/NimbleAssertions.md +++ /dev/null @@ -1,106 +0,0 @@ -# Clearer Tests Using Nimble Assertions - -When code doesn't work the way it's supposed to, unit tests should make it -**clear** exactly what's wrong. - -Take the following function which, given a bunch of monkeys, only returns -the silly monkeys in the bunch: - -```swift -public func silliest(monkeys: [Monkey]) -> [Monkey] { - return monkeys.filter { $0.silliness == .VerySilly } -} -``` - -Now let's say we have a unit test for this function: - -```swift -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) - XCTAssertTrue(contains(sillyMonkeys, kiki)) -} -``` - -The test fails with the following failure message: - -``` -XCTAssertTrue failed -``` - -![](http://f.cl.ly/items/1G17453p47090y30203d/Screen%20Shot%202015-02-26%20at%209.08.27%20AM.png) - -The failure message leaves a lot to be desired. It leaves us wondering, -"OK, so something that should have been true was false--but what?" -That confusion slows us down, since we now have to spend time deciphering test code. - -## Better Failure Messages, Part 1: Manually Providing `XCTAssert` Failure Messages - -`XCTAssert` assertions allow us to specify a failure message of our own, which certainly helps: - -```diff -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) -- XCTAssertTrue(contains(sillyMonkeys, kiki)) -+ XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'") -} -``` - -But we have to write our own failure message. - -## Better Failure Messages, Part 2: Nimble Failure Messages - -Nimble makes your test assertions, and their failure messages, easier to read: - -```diff -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) -- XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'") -+ expect(sillyMonkeys).to(contain(kiki)) -} -``` - -We don't have to write our own failure message--the one provided by Nimble -is already very readable: - -``` -expected to contain , - got <[Monkey(name: Jane, silliness: VerySilly)]> -``` - -![](http://f.cl.ly/items/3N2e3g2K3W123b1L1J0G/Screen%20Shot%202015-02-26%20at%2011.27.02%20AM.png) - -The failure message makes it clear what's wrong: we were expecting `kiki` to be included -in the result of `silliest()`, but the result only contains `jane`. Now that we know -exactly what's wrong, it's easy to fix the issue: - -```diff -public func silliest(monkeys: [Monkey]) -> [Monkey] { -- return monkeys.filter { $0.silliness == .VerySilly } -+ return monkeys.filter { $0.silliness == .VerySilly || $0.silliness == .ExtremelySilly } -} -``` - -Nimble provides many different kind of assertions, each with great failure -messages. And unlike `XCTAssert`, you don't have to type your own failure message -every time. - -For the full list of Nimble assertions, check out the [Nimble README](https://github.com/Quick/Nimble). -Below is just a sample, to whet your appetite: - -```swift -expect(1 + 1).to(equal(2)) -expect(1.2).to(beCloseTo(1.1, within: 0.1)) -expect(3) > 2 -expect("seahorse").to(contain("sea")) -expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi")) -expect(ocean.isClean).toEventually(beTruthy()) -``` diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/QuickExamplesAndGroups.md b/Carthage/Checkouts/Quick/Documentation/en-us/QuickExamplesAndGroups.md deleted file mode 100644 index e9f0550..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/QuickExamplesAndGroups.md +++ /dev/null @@ -1,491 +0,0 @@ -# Organized Tests with Quick Examples and Example Groups - -Quick uses a special syntax to define **examples** and **example groups**. - -In *[Effective Tests Using XCTest: Arrange, Act, and Assert](ArrangeActAssert.md)*, -we learned that a good test method name is crucial--when a test starts failing, it's -the best way to determine whether we have to fix the application code or update the test. - -Quick examples and example groups serve two purposes: - -1. They encourage you to write descriptive test names. -2. They greatly simplify the test code in the "arrange" step of your tests. - -## Examples Using `it` - -Examples, defined with the `it` function, use assertions to demonstrate -how code should behave. These are like test methods in XCTest. - -`it` takes two parameters: the name of the example, and a closure. -The examples below specify how the `Sea.Dolphin` class should behave. -A new dolphin should be smart and friendly: - -```swift -// Swift - -import Quick -import Nimble -import Sea - -class DolphinSpec: QuickSpec { - override func spec() { - it("is friendly") { - expect(Dolphin().isFriendly).to(beTruthy()) - } - - it("is smart") { - expect(Dolphin().isSmart).to(beTruthy()) - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -it(@"is friendly", ^{ - expect(@([[Dolphin new] isFriendly])).to(beTruthy()); -}); - -it(@"is smart", ^{ - expect(@([[Dolphin new] isSmart])).to(beTruthy()); -}); - -QuickSpecEnd -``` - -Use descriptions to make it clear what your examples are testing. -Descriptions can be of any length and use any character, including -characters from languages besides English, or even emoji! :v: :sunglasses: - -## Example Groups Using `describe` and `context` - -Example groups are logical groupings of examples. Example groups can share -setup and teardown code. - -### Describing Classes and Methods Using `describe` - -To specify the behavior of the `Dolphin` class's `click` method--in -other words, to test the method works--several `it` examples can be -grouped together using the `describe` function. Grouping similar -examples together makes the spec easier to read: - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - describe("its click") { - it("is loud") { - let click = Dolphin().click() - expect(click.isLoud).to(beTruthy()) - } - - it("has a high frequency") { - let click = Dolphin().click() - expect(click.hasHighFrequency).to(beTruthy()) - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - describe(@"its click", ^{ - it(@"is loud", ^{ - Click *click = [[Dolphin new] click]; - expect(@(click.isLoud)).to(beTruthy()); - }); - - it(@"has a high frequency", ^{ - Click *click = [[Dolphin new] click]; - expect(@(click.hasHighFrequency)).to(beTruthy()); - }); - }); -}); - -QuickSpecEnd -``` - -When these two examples are run in Xcode, they'll display the -description from the `describe` and `it` functions: - -1. `DolphinSpec.a_dolphin_its_click_is_loud` -2. `DolphinSpec.a_dolphin_its_click_has_a_high_frequency` - -Again, it's clear what each of these examples is testing. - -### Sharing Setup/Teardown Code Using `beforeEach` and `afterEach` - -Example groups don't just make the examples clearer, they're also useful -for sharing setup and teardown code among examples in a group. - -In the example below, the `beforeEach` function is used to create a brand -new instance of a dolphin and its click before each example in the group. -This ensures that both are in a "fresh" state for every example: - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - var dolphin: Dolphin! - beforeEach { - dolphin = Dolphin() - } - - describe("its click") { - var click: Click! - beforeEach { - click = dolphin.click() - } - - it("is loud") { - expect(click.isLoud).to(beTruthy()) - } - - it("has a high frequency") { - expect(click.hasHighFrequency).to(beTruthy()) - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - __block Dolphin *dolphin = nil; - beforeEach(^{ - dolphin = [Dolphin new]; - }); - - describe(@"its click", ^{ - __block Click *click = nil; - beforeEach(^{ - click = [dolphin click]; - }); - - it(@"is loud", ^{ - expect(@(click.isLoud)).to(beTruthy()); - }); - - it(@"has a high frequency", ^{ - expect(@(click.hasHighFrequency)).to(beTruthy()); - }); - }); -}); - -QuickSpecEnd -``` - -Sharing setup like this might not seem like a big deal with the -dolphin example, but for more complicated objects, it saves a lot -of typing! - -To execute code *after* each example, use `afterEach`. - -### Specifying Conditional Behavior Using `context` - -Dolphins use clicks for echolocation. When they approach something -particularly interesting to them, they release a series of clicks in -order to get a better idea of what it is. - -The tests need to show that the `click` method behaves differently in -different circumstances. Normally, the dolphin just clicks once. But when -the dolphin is close to something interesting, it clicks several times. - -This can be expressed using `context` functions: one `context` for the -normal case, and one `context` for when the dolphin is close to -something interesting: - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - var dolphin: Dolphin! - beforeEach { dolphin = Dolphin() } - - describe("its click") { - context("when the dolphin is not near anything interesting") { - it("is only emitted once") { - expect(dolphin!.click().count).to(equal(1)) - } - } - - context("when the dolphin is near something interesting") { - beforeEach { - let ship = SunkenShip() - Jamaica.dolphinCove.add(ship) - Jamaica.dolphinCove.add(dolphin) - } - - it("is emitted three times") { - expect(dolphin.click().count).to(equal(3)) - } - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - __block Dolphin *dolphin = nil; - beforeEach(^{ dolphin = [Dolphin new]; }); - - describe(@"its click", ^{ - context(@"when the dolphin is not near anything interesting", ^{ - it(@"is only emitted once", ^{ - expect(@([[dolphin click] count])).to(equal(@1)); - }); - }); - - context(@"when the dolphin is near something interesting", ^{ - beforeEach(^{ - [[Jamaica dolphinCove] add:[SunkenShip new]]; - [[Jamaica dolphinCove] add:dolphin]; - }); - - it(@"is emitted three times", ^{ - expect(@([[dolphin click] count])).to(equal(@3)); - }); - }); - }); -}); - -QuickSpecEnd -``` - -Strictly speaking, the `context` keyword is a synonym for `describe`, -but thoughtful use will make your spec easier to understand. - -### Test Readability: Quick and XCTest - -In [Effective Tests Using XCTest: Arrange, Act, and Assert](ArrangeActAssert.md), -we looked at how one test per condition was a great way to organize test code. -In XCTest, that leads to long test method names: - -```swift -func testDolphin_click_whenTheDolphinIsNearSomethingInteresting_isEmittedThreeTimes() { - // ... -} -``` - -Using Quick, the conditions are much easier to read, and we can perform setup -for each example group: - -```swift -describe("a dolphin") { - describe("its click") { - context("when the dolphin is near something interesting") { - it("is emitted three times") { - // ... - } - } - } -} -``` - -## Temporarily Disabling Examples or Groups - -You can temporarily disable examples or example groups that don't pass yet. -The names of the examples will be printed out along with the test results, -but they won't be run. - -You can disable an example or group by prepending `x`: - -```swift -// Swift - -xdescribe("its click") { - // ...none of the code in this closure will be run. -} - -xcontext("when the dolphin is not near anything interesting") { - // ...none of the code in this closure will be run. -} - -xit("is only emitted once") { - // ...none of the code in this closure will be run. -} -``` - -```objc -// Objective-C - -xdescribe(@"its click", ^{ - // ...none of the code in this closure will be run. -}); - -xcontext(@"when the dolphin is not near anything interesting", ^{ - // ...none of the code in this closure will be run. -}); - -xit(@"is only emitted once", ^{ - // ...none of the code in this closure will be run. -}); -``` - -## Temporarily Running a Subset of Focused Examples - -Sometimes it helps to focus on only one or a few examples. Running one -or two examples is faster than the entire suite, after all. You can -run only one or two by using the `fit` function. You can also focus a -group of examples using `fdescribe` or `fcontext`: - -```swift -fit("is loud") { - // ...only this focused example will be run. -} - -it("has a high frequency") { - // ...this example is not focused, and will not be run. -} - -fcontext("when the dolphin is near something interesting") { - // ...examples in this group are also focused, so they'll be run. -} -``` - -```objc -fit(@"is loud", { - // ...only this focused example will be run. -}); - -it(@"has a high frequency", ^{ - // ...this example is not focused, and will not be run. -}); - -fcontext(@"when the dolphin is near something interesting", ^{ - // ...examples in this group are also focused, so they'll be run. -}); -``` - -## Global Setup/Teardown Using `beforeSuite` and `afterSuite` - -Some test setup needs to be performed before *any* examples are -run. For these cases, use `beforeSuite` and `afterSuite`. - -In the example below, a database of all the creatures in the ocean is -created before any examples are run. That database is torn down once all -the examples have finished: - -```swift -// Swift - -import Quick - -class DolphinSpec: QuickSpec { - override func spec() { - beforeSuite { - OceanDatabase.createDatabase(name: "test.db") - OceanDatabase.connectToDatabase(name: "test.db") - } - - afterSuite { - OceanDatabase.teardownDatabase(name: "test.db") - } - - describe("a dolphin") { - // ... - } - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickSpecBegin(DolphinSpec) - -beforeSuite(^{ - [OceanDatabase createDatabase:@"test.db"]; - [OceanDatabase connectToDatabase:@"test.db"]; -}); - -afterSuite(^{ - [OceanDatabase teardownDatabase:@"test.db"]; -}); - -describe(@"a dolphin", ^{ - // ... -}); - -QuickSpecEnd -``` - -You can specify as many `beforeSuite` and `afterSuite` as you like. All -`beforeSuite` closures will be executed before any tests run, and all -`afterSuite` closures will be executed after all the tests are finished. -There is no guarantee as to what order these closures will be executed in. - -## Accessing Metadata for the Current Example - -There may be some cases in which you'd like the know the name of the example -that is currently being run, or how many have been run so far. Quick provides -access to this metadata in `beforeEach` and `afterEach` closures. - -```swift -beforeEach { exampleMetadata in - println("Example number \(exampleMetadata.exampleIndex) is about to be run.") -} - -afterEach { exampleMetadata in - println("Example number \(exampleMetadata.exampleIndex) has run.") -} -``` - -```objc -beforeEachWithMetadata(^(ExampleMetadata *exampleMetadata){ - NSLog(@"Example number %l is about to be run.", (long)exampleMetadata.exampleIndex); -}); - -afterEachWithMetadata(^(ExampleMetadata *exampleMetadata){ - NSLog(@"Example number %l has run.", (long)exampleMetadata.exampleIndex); -}); -``` diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/QuickInObjectiveC.md b/Carthage/Checkouts/Quick/Documentation/en-us/QuickInObjectiveC.md deleted file mode 100644 index 3fb6bdc..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/QuickInObjectiveC.md +++ /dev/null @@ -1,57 +0,0 @@ -# Using Quick in Objective-C - -Quick works equally well in both Swift and Objective-C. - -There are two notes to keep in mind when using Quick in Objective-C, -however, which are described below. - -## The Optional Shorthand Syntax - -Importing Quick in an Objective-C file defines macros named `it` and -`itShouldBehaveLike`, as well as functions like `context()` and `describe()`. - -If the project you are testing also defines symbols with these names, you may -encounter confusing build failures. In that case, you can avoid namespace -collision by turning off Quick's optional "shorthand" syntax: - -```objc -#define QUICK_DISABLE_SHORT_SYNTAX 1 - -@import Quick; - -QuickSpecBegin(DolphinSpec) -// ... -QuickSpecEnd -``` - -You must define the `QUICK_DISABLE_SHORT_SYNTAX` macro *before* -importing the Quick header. - -Alternatively, you may define the macro in your test target's build configuration: - -![](http://d.twobitlabs.com/VFEamhvixX.png) - -## Your Test Target Must Include At Least One Swift File - -The Swift stdlib will not be linked into your test target, and thus -Quick will fail to execute properly, if your test target does not contain -*at least one* Swift file. - -Without at least one Swift file, your tests will exit prematurely with -the following error: - -``` -*** Test session exited(82) without checking in. Executable cannot be -loaded for some other reason, such as a problem with a library it -depends on or a code signature/entitlements mismatch. -``` - -To fix the problem, add a blank file called `SwiftSpec.swift` to your test target: - -```swift -// SwiftSpec.swift - -import Quick -``` - -> For more details on this issue, see https://github.com/Quick/Quick/issues/164. diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/README.md b/Carthage/Checkouts/Quick/Documentation/en-us/README.md deleted file mode 100644 index d03f633..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Documentation - -Quick helps you verify how your Swift and Objective-C programs behave. -Doing so effectively isn't just a matter of knowing how to use Quick, -however. The guides in this directory can help you write -effective tests--not just using Quick, but even XCTest or other testing -frameworks. - -Each guide covers a particular topic. If you're completely new to unit -testing, consider reading them in the order they're introduced below: - -- **[Setting Up Tests in Your Xcode Project](SettingUpYourXcodeProject.md)**: - Read this if you're having trouble using your application code from within - your test files. -- **[Effective Tests Using XCTest: Arrange, Act, and Assert](ArrangeActAssert.md)**: - Read this to learn how to write `XCTestCase` tests that will help you write - code faster and more effectively. -- **[Don't Test Code, Instead Verify Behavior](BehavioralTesting.md)**: - Read this to learn what kinds of tests speed you up, and which ones will only end up - slowing you down. -- **[Clearer Tests Using Nimble Assertions](NimbleAssertions.md)**: - Read this to learn how to use Nimble to generate better failure messages. - Better failure messages help you move faster, by spending less time figuring out why - a test failed. -- **[Organized Tests with Quick Examples and Example Groups](QuickExamplesAndGroups.md)**: - Read this to learn how Quick can help you write even more effective tests, using - *examples* and *example groups*. -- **[Testing OS X and iOS Applications](TestingApps.md)**: - Read this to learn more about testing code that uses the AppKit and UIKit frameworks. -- **[Testing with test doubles](TestUsingTestDoubles.md)**: - Read this to learn what test doubles are and how to use them. -- **[Reducing Test Boilerplate with Shared Assertions](SharedExamples.md)**: - Read this to learn how to share sets of assertions among your tests. -- **[Configuring How Quick Behaves](ConfiguringQuick.md)**: - Read this to learn how you can change how Quick behaves when running your test suite. -- **[Using Quick in Objective-C](QuickInObjectiveC.md)**: - Read this if you experience trouble using Quick in Objective-C. -- **[Installing Quick](InstallingQuick.md)**: - Read this for instructions on how to add Quick to your project, using - Git submodules, CocoaPods, Carthage, or the Swift Package Manager. -- **[Installing Quick File Templates](InstallingFileTemplates.md)**: - Read this to learn how to install file templates that make writing Quick specs faster. -- **[More Resources](MoreResources.md)**: - A list of additional resources on OS X and iOS testing. -- **[Troubleshooting](Troubleshooting.md)**: - Read this when you experience other troubles. diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md b/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md deleted file mode 100644 index 76e9d3e..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/SettingUpYourXcodeProject.md +++ /dev/null @@ -1,89 +0,0 @@ -# Setting Up Tests in Your Xcode Project - -With the exception of the Command Line Tool project type, when you create a new project in Xcode 7, a unit test target is included -by default. [See specific instructions for a Command Line Tool Project](#setting-up-a-test-target-for-a-command-line-tool-project). To write unit tests, you'll need to be able to use your main -target's code from within your test target. - -## Testing Swift Code Using Swift - -In order to test code written in Swift, you'll need to do two things: - -1. Set "Defines Module" in your `.xcodeproj` to `YES`. - - * To do this in Xcode: Choose your project, then "Build Settings", then "Packaging" header, - then "Defines Module" line, then select "Yes". Note: you may have - to choose "All" (Build Settings) instead of "Basic" to see the - "Packaging" section. - -2. `@testable import YourAppModuleName` in your unit tests. This will expose Any `public` and `internal` (the default) - symbols to your tests. `private` symbols are still unavailable. - -```swift -// MyAppTests.swift - -import XCTest -@testable import MyModule - -class MyClassTests: XCTestCase { - // ... -} -``` - -> Quick integration in the Xcode Test Navigator suffers from some limitations (open [issue](https://github.com/Quick/Quick/issues/219)). Quick tests will not show up in the navigator until they've been run, repeat runs tend to reset the list in unpredictable ways and the tests cannot be run from the gutter next to the source code. -> Please file a radar to Apple and mention this as a duplicate to [rdar://26152293](http://openradar.appspot.com/radar?id=4974047628623872) to promote this feature request for Apple Engineers. - -> Some developers advocate adding Swift source files to your test target. -However, this leads to [subtle, hard-to-diagnose -errors](https://github.com/Quick/Quick/issues/91), and is not -recommended. - -## Testing Objective-C Code Using Swift - -1. Add a bridging header to your test target. -2. In the bridging header, import the file containing the code you'd like to test. - -```objc -// MyAppTests-BridgingHeader.h - -#import "MyClass.h" -``` - -You can now use the code from `MyClass.h` in your Swift test files. - -## Testing Swift Code Using Objective-C - -1. Bridge Swift classes and functions you'd like to test to Objective-C by - using the `@objc` attribute. -2. Import your module's Swift headers in your unit tests. - -```objc -@import XCTest; -#import "MyModule-Swift.h" - -@interface MyClassTests: XCTestCase -// ... -@end -``` - -## Testing Objective-C Code Using Objective-C - -Import the file defining the code you'd like to test from within your test target: - -```objc -// MyAppTests.m - -@import XCTest; -#import "MyClass.h" - -@interface MyClassTests: XCTestCase -// ... -@end -``` - -### Setting Up a Test Target for a Command Line Tool Project - -1. Add a target to your project in the project pane. -2. Select "OS X Unit Testing Bundle". -3. Edit the scheme of your main target. -4. Select the "Test" node, click the "+" under the "Info" heading, and select - your testing bundle. diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md b/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md deleted file mode 100644 index 339bf34..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/SharedExamples.md +++ /dev/null @@ -1,125 +0,0 @@ -# Reducing Test Boilerplate with Shared Assertions - -In some cases, the same set of specifications apply to multiple objects. - -For example, consider a protocol called `Edible`. When a dolphin -eats something `Edible`, the dolphin becomes happy. `Mackerel` and -`Cod` are both edible. Quick allows you to easily test that a dolphin is -happy to eat either one. - -The example below defines a set of "shared examples" for "something edible", -and specifies that both mackerel and cod behave like "something edible": - -```swift -// Swift - -import Quick -import Nimble - -class EdibleSharedExamplesConfiguration: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - sharedExamples("something edible") { (sharedExampleContext: SharedExampleContext) in - it("makes dolphins happy") { - let dolphin = Dolphin(happy: false) - let edible = sharedExampleContext()["edible"] - dolphin.eat(edible) - expect(dolphin.isHappy).to(beTruthy()) - } - } - } -} - -class MackerelSpec: QuickSpec { - override func spec() { - var mackerel: Mackerel! - beforeEach { - mackerel = Mackerel() - } - - itBehavesLike("something edible") { ["edible": mackerel] } - } -} - -class CodSpec: QuickSpec { - override func spec() { - var cod: Cod! - beforeEach { - cod = Cod() - } - - itBehavesLike("something edible") { ["edible": cod] } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickConfigurationBegin(EdibleSharedExamplesConfiguration) - -+ (void)configure:(Configuration *configuration) { - sharedExamples(@"something edible", ^(QCKDSLSharedExampleContext exampleContext) { - it(@"makes dolphins happy") { - Dolphin *dolphin = [[Dolphin alloc] init]; - dolphin.happy = NO; - id edible = exampleContext()[@"edible"]; - [dolphin eat:edible]; - expect(dolphin.isHappy).to(beTruthy()) - } - }); -} - -QuickConfigurationEnd - -QuickSpecBegin(MackerelSpec) - -__block Mackerel *mackerel = nil; -beforeEach(^{ - mackerel = [[Mackerel alloc] init]; -}); - -itBehavesLike(@"something edible", ^{ return @{ @"edible": mackerel }; }); - -QuickSpecEnd - -QuickSpecBegin(CodSpec) - -__block Mackerel *cod = nil; -beforeEach(^{ - cod = [[Cod alloc] init]; -}); - -itBehavesLike(@"something edible", ^{ return @{ @"edible": cod }; }); - -QuickSpecEnd -``` - -Shared examples can include any number of `it`, `context`, and -`describe` blocks. They save a *lot* of typing when running -the same tests against several different kinds of objects. - -In some cases, you won't need any additional context. In Swift, you can -simply use `sharedExamples` closures that take no parameters. This -might be useful when testing some sort of global state: - -```swift -// Swift - -import Quick - -sharedExamples("everything under the sea") { - // ... -} - -itBehavesLike("everything under the sea") -``` - -> In Objective-C, you'll have to pass a block that takes a - `QCKDSLSharedExampleContext`, even if you don't plan on using that - argument. Sorry, but that's the way the cookie crumbles! - :cookie: :bomb: - -You can also "focus" shared examples using the `fitBehavesLike` function. diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/TestUsingTestDoubles.md b/Carthage/Checkouts/Quick/Documentation/en-us/TestUsingTestDoubles.md deleted file mode 100644 index fc4f3f9..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/TestUsingTestDoubles.md +++ /dev/null @@ -1,129 +0,0 @@ -# Testing with Mocks - -## Test doubles - -Dependencies between objects can cause problems when writing tests. For example, say you have a `Car` class that depends on/uses `Tire`. - -![](https://github.com/Quick/Assets/blob/master/Screenshots/TestUsingMock_BusesA.png) - -`CarTests` tests `Car`, which calls `Tire`. Now bugs in `Tire` could cause `CarTests` to fail (even though `Car` is okay). It can be hard to answer the question: "What's broken?". - -To avoid this problem, you can use a stand-in object for `Tire` in `CarTests`. In this case, we'll create a stand-in object for `Tire` called `PerfectTire`. - -![](https://github.com/Quick/Assets/blob/master/Screenshots/TestUsingMock_BusesAmock.png) - -`PerfectTire` will have all of the same public functions and properties as `Tire`. However, the implementation of some or all of those functions and properties will differ. - -Objects like `PerfectTire` are called "test doubles". Test doubles are used as "stand-in objects" for testing the functionality of related objects in isolation. There are several kinds of test doubles: - -- Mock object: Used for receiving output from a test class. -- Stub object: Used for providing input to a test class. -- Fake object: Behaves similarly to the original class, but in a simplified way. - -Let's start with how to use mock objects. - -## Mock - -A mock object focuses on fully specifying the correct interaction with other objects and detecting when something goes awry. The mock object should know (in advance) the methods that should be called on it during the test and what values the mock object should return. - -Mock objects are great because you can: - -- Run tests a lot quicker. -- Run tests even if you're not connected to the Internet. -- Focus on testing classes in isolation from their dependencies. - -### Writing Tests with Mock Objects in Swift - -#### Sample app - -For example, let's create an app which retrieves data from the Internet: - -* Data from the Internet will be displayed in `ViewController`. -* A custom class will implement the `DataProviderProtocol`, which specifies methods for fetching data. - -`DataProviderProtocol` is defined as follows: - -```swift -protocol DataProviderProtocol: class { - func fetch(callback: (data: String) -> Void) -} -``` - -`fetch()` gets data from the Internet and returns it using a `callback` closure. - -Here is the `DataProvider` class, which conforms to the `DataProviderProtocol` protocol. - -```swift -class DataProvider: NSObject, DataProviderProtocol { - func fetch(callback: (data: String) -> Void) { - let url = URL(string: "http://example.com/")! - let session = URLSession(configuration: .default) - let task = session.dataTask(with: url) { - (data, resp, err) in - let string = String(data: data!, encoding: .utf8) - callback(data: string) - } - task.resume() - } -} -``` - -In our scenario, `fetch()` is called in the `viewDidLoad()` method of `ViewController`. - -```swift -class ViewController: UIViewController { - - // MARK: Properties - @IBOutlet weak var resultLabel: UILabel! - private var dataProvider: DataProviderProtocol? - - // MARK: View Controller Lifecycle - override func viewDidLoad() { - super.viewDidLoad() - - dataProvider = dataProvider ?? DataProvider() - - dataProvider?.fetch({ [unowned self] (data) -> Void in - self.resultLabel.text = data - }) - } -} -``` - -#### Testing using a Mock of `DataProviderProtocol` - -`ViewController` depends on `DataProviderProtocol`. In order to test the view controller in isolation, you can create a mock object which conforms to `DataProviderProtocol`. - -```swift -class MockDataProvider: NSObject, DataProviderProtocol { - var fetchCalled = false - func fetch(callback: (data: String) -> Void) { - fetchCalled = true - callback(data: "foobar") - } -} -``` - -The `fetchCalled` property is set to `true` when `fetch()` is called, so that the test can confirm that it was called. - -The following test verifies that when `ViewController` is loaded, the view controller calls `dataProvider.fetch()`. - -```swift -override func spec() { - describe("view controller") { - it("fetch data with data provider") { - let mockProvider = MockDataProvider() - let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController") as! ViewController - viewController.dataProvider = mockProvider - - expect(mockProvider.fetchCalled).to(beFalse()) - - let _ = viewController.view - - expect(mockProvider.fetchCalled).to(beTrue()) - } - } -} -``` - -If you're interested in learning more about writing tests, continue on to . diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/TestingApps.md b/Carthage/Checkouts/Quick/Documentation/en-us/TestingApps.md deleted file mode 100644 index 4f5ce1d..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/TestingApps.md +++ /dev/null @@ -1,179 +0,0 @@ -# Testing OS X and iOS Applications - -*[Setting Up Tests in Your Xcode Project](SettingUpYourXcodeProject.md)* -covers everything you need to know to test any Objective-C or Swift function or class. -In this section, we'll go over a few additional hints for testing -classes like `UIViewController` subclasses. - -> You can see a short lightning talk covering most of these topics - [here](https://vimeo.com/115671189#t=37m50s) (the talk begins at 37'50"). - -## Triggering `UIViewController` Lifecycle Events - -Normally, UIKit triggers lifecycle events for your view controller as it's -presented within the app. When testing a `UIViewController`, however, you'll -need to trigger these yourself. You can do so in one of three ways: - -1. Accessing `UIViewController.view`, which triggers things like `UIViewController.viewDidLoad()`. -2. Use `UIViewController.beginAppearanceTransition()` to trigger most lifecycle events. -3. Directly calling methods like `UIViewController.viewDidLoad()` or `UIViewController.viewWillAppear()`. - -```swift -// Swift - -import Quick -import Nimble -import BananaApp - -class BananaViewControllerSpec: QuickSpec { - override func spec() { - var viewController: BananaViewController! - beforeEach { - viewController = BananaViewController() - } - - describe(".viewDidLoad()") { - beforeEach { - // Method #1: Access the view to trigger BananaViewController.viewDidLoad(). - let _ = viewController.view - } - - it("sets the banana count label to zero") { - // Since the label is only initialized when the view is loaded, this - // would fail if we didn't access the view in the `beforeEach` above. - expect(viewController.bananaCountLabel.text).to(equal("0")) - } - } - - describe("the view") { - beforeEach { - // Method #2: Triggers .viewDidLoad(), .viewWillAppear(), and .viewDidAppear() events. - viewController.beginAppearanceTransition(true, animated: false) - viewController.endAppearanceTransition() - } - // ... - } - - describe(".viewWillDisappear()") { - beforeEach { - // Method #3: Directly call the lifecycle event. - viewController.viewWillDisappear(false) - } - // ... - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; -#import "BananaViewController.h" - -QuickSpecBegin(BananaViewControllerSpec) - -__block BananaViewController *viewController = nil; -beforeEach(^{ - viewController = [[BananaViewController alloc] init]; -}); - -describe(@"-viewDidLoad", ^{ - beforeEach(^{ - // Method #1: Access the view to trigger -[BananaViewController viewDidLoad]. - [viewController view]; - }); - - it(@"sets the banana count label to zero", ^{ - // Since the label is only initialized when the view is loaded, this - // would fail if we didn't access the view in the `beforeEach` above. - expect(viewController.bananaCountLabel.text).to(equal(@"0")) - }); -}); - -describe(@"the view", ^{ - beforeEach(^{ - // Method #2: Triggers .viewDidLoad(), .viewWillAppear(), and .viewDidAppear() events. - [viewController beginAppearanceTransition:YES animated:NO]; - [viewController endAppearanceTransition]; - }); - // ... -}); - -describe(@"-viewWillDisappear", ^{ - beforeEach(^{ - // Method #3: Directly call the lifecycle event. - [viewController viewWillDisappear:NO]; - }); - // ... -}); - -QuickSpecEnd -``` - -## Initializing View Controllers Defined in Storyboards - -To initialize view controllers defined in a storyboard, you'll need to assign -a **Storyboard ID** to the view controller: - -![](http://f.cl.ly/items/2X2G381K1h1l2B2Q0g3L/Screen%20Shot%202015-02-27%20at%2011.58.06%20AM.png) - -Once you've done so, you can instantiate the view controller from within your tests: - -```swift -// Swift - -var viewController: BananaViewController! -beforeEach { - // 1. Instantiate the storyboard. By default, it's name is "Main.storyboard". - // You'll need to use a different string here if the name of your storyboard is different. - let storyboard = UIStoryboard(name: "Main", bundle: nil) - // 2. Use the storyboard to instantiate the view controller. - viewController = - storyboard.instantiateViewControllerWithIdentifier( - "BananaViewControllerID") as! BananaViewController -} -``` - -```objc -// Objective-C - -__block BananaViewController *viewController = nil; -beforeEach(^{ - // 1. Instantiate the storyboard. By default, it's name is "Main.storyboard". - // You'll need to use a different string here if the name of your storyboard is different. - UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; - // 2. Use the storyboard to instantiate the view controller. - viewController = [storyboard instantiateViewControllerWithIdentifier:@"BananaViewControllerID"]; -}); -``` - -## Triggering UIControl Events Like Button Taps - -Buttons and other UIKit classes inherit from `UIControl`, which defines methods -that allow us to send control events, like button taps, programmatically. -To test behavior that occurs when a button is tapped, you can write: - -```swift -// Swift - -describe("the 'more bananas' button") { - it("increments the banana count label when tapped") { - viewController.moreButton.sendActionsForControlEvents( - UIControlEvents.TouchUpInside) - expect(viewController.bananaCountLabel.text).to(equal("1")) - } -} -``` - -```objc -// Objective-C - -describe(@"the 'more bananas' button", ^{ - it(@"increments the banana count label when tapped", ^{ - [viewController.moreButton sendActionsForControlEvents:UIControlEventTouchUpInside]; - expect(viewController.bananaCountLabel.text).to(equal(@"1")); - }); -}); -``` diff --git a/Carthage/Checkouts/Quick/Documentation/en-us/Troubleshooting.md b/Carthage/Checkouts/Quick/Documentation/en-us/Troubleshooting.md deleted file mode 100644 index c39403c..0000000 --- a/Carthage/Checkouts/Quick/Documentation/en-us/Troubleshooting.md +++ /dev/null @@ -1,9 +0,0 @@ -# Common Installation Issues - -Here are solutions to common issues that come up when using the framework. - -## No such module 'Quick' - -- If you have already run `pod install`, close and reopen the Xcode workspace. If this does not fix the issue, continue below. -- Delete the _entire_ `~/Library/Developer/Xcode/DerivedData` direction, which includes `ModuleCache`. -- Explicitly build (`Cmd+B`) the `Quick`, `Nimble`, and `Pods-ProjectNameTests` targets after enabled their schemes from the Manage Schemes dialog. \ No newline at end of file diff --git a/Carthage/Checkouts/Quick/Documentation/ja/ArrangeActAssert.md b/Carthage/Checkouts/Quick/Documentation/ja/ArrangeActAssert.md deleted file mode 100644 index 2f0a138..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/ArrangeActAssert.md +++ /dev/null @@ -1,212 +0,0 @@ -# Effective Tests Using XCTest: Arrange, Act, and Assert - -XCTest や Quick に限らず、テストフレームワークを使用する際、このパターンに従うことで効率的なユニットテストを書くことができます。 - -1. Arrange(環境構築) -2. Act(実行) -3. Assert(動作確認) - -## パターンに従ってテストを書く - -例として Banana クラスを用意します。 - -```swift -// Banana/Banana.swift - -/** A delicious banana. Tastes better if you peel it first. */ -public class Banana { - private var isPeeled = false - - /** Peels the banana. */ - public func peel() { - isPeeled = true - } - - /** You shouldn't eat a banana unless it's been peeled. */ - public var isEdible: Bool { - return isPeeled - } -} -``` - -ここでは `Banana.peel()` のテストをしてみましょう。このメソッドの期待する振る舞いはこのようになります。 - -```swift -// BananaTests/BananaTests.swift - -class BananaTests: XCTestCase { - func testPeel() { - // Arrange: Create the banana we'll be peeling. - let banana = Banana() - - // Act: Peel the banana. - banana.peel() - - // Assert: Verify that the banana is now edible. - XCTAssertTrue(banana.isEdible) - } -} -``` - -## 簡潔なテスト名を用いる - -この `testPeel()` テストのおかげで `Banana.peel()` が正しく動作しない場合、すぐ気付くことができます。 -我々のアプリケーションコードを変更することで正しく動作しないケース(テストが失敗するケース)はしばしば起こります。 -テストが失敗する場合は下記どちらかのケースになります。 - -1. 間違えてアプリケーションコードを壊してしまっているため、直す必要がある -2. アプリケーションコードは期待したとおりに動いているが、もともと期待した機能が変わっているためテストコードを直す必要がある - -もしテストが失敗した場合、どちらのケースに当てはまる判断する必要が出てきます。そのためテスト名が分かりやすいことが重要になります。 - -良いテスト名とは、 - -1. 何をテストしているか明確であること -2. どのような時にテストがパスするか・失敗するか明確であること - -例に挙げた `testPeel()` は良いテスト名でしょうか?分かりやすくしてみましょう。 - -```diff -// BananaTests.swift - --func testPeel() { -+func testPeel_makesTheBananaEdible() { - // Arrange: Create the banana we'll be peeling. - let banana = Banana() - - // Act: Peel the banana. - banana.peel() - - // Assert: Verify that the banana is now edible. - XCTAssertTrue(banana.isEdible) -} -``` - -新しいテスト名は、 - -1. 何をテストしているか明確である: `testPeel` は `Banana.peel()` メソッドをテストしてることを示す。 -2. どのような時にテストがパスするか明確である: `makesTheBananaEdible` はバナナが食べられるか(edible)どうかをテストしていることを示す。 - -## テスト時の条件 - -人々がバナナを欲しい時、`offer()` というメソッドを使います。 - -```swift -// Banana/Offer.swift - -/** Given a banana, returns a string that can be used to offer someone the banana. */ -public func offer(banana: Banana) -> String { - if banana.isEdible { - return "Hey, want a banana?" - } else { - return "Hey, want me to peel this banana for you?" - } -} -``` - -私達のアプリケーションコードは2つのうちどちらかを実行します: - -1. 食べられる(すでに皮がむかれている)バナナを注文するか -2. まだ食べられない(すでに皮がむかれている)バナナを注文するか - -両方のケースをテストしてみましょう。 - -```swift -// BananaTests/OfferTests.swift - -class OfferTests: XCTestCase { - func testOffer_whenTheBananaIsPeeled_offersTheBanana() { - // Arrange: Create a banana and peel it. - let banana = Banana() - banana.peel() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want a banana?") - } - - func testOffer_whenTheBananaIsntPeeled_offersToPeelTheBanana() { - // Arrange: Create a banana. - let banana = Banana() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want me to peel this banana for you?") - } -} -``` - -私達のテスト名は'どのような条件でテストをパスするか'を明確に表しています。 -`whenTheBananaIsPeeled`, `offer()` のケースでは `offersTheBanana` となるべきです。またバナナの皮がむかれていない場合は? -ここでは両方共テストしています。 - -ここで大事なことはアプリケーションコード内の各`if`文に対してそれぞれ1つのテストを持っていることです。 -これはテストを書く際の重要なアプローチです。このアプローチでは全ての条件(if文)に関してテストされていることを保証します。 -テストのうちどれか1つがでも失敗するようになったらコードの見直しをする必要があります。テスト名が分かりやすいとすぐにチェックすべき箇所が分かります。 - -## `XCTestCase.setUp()`を用いて簡潔に環境構築をする - -`OfferTests` の2つのテストのどちらにも同じ"環境構築"のコードが入っています。 -どちらのテストでも banana を作っています。このコードは一箇所にまとめるべきです。なぜでしょう? - -1. そのままにしておく場合、もし `Banana` の生成方法が変わったら, 私たちは全てのテストを修正しないといけなくなります。 -2. テストコードが短くなり、テストの可読性が向上します。 - -Banana の生成方法を `XCTestCase.setUp()` の中に移しましょう。`XCTestCase.setUp()` は各テストの実行前に一度呼び出されます。 - -```diff -// OfferTests.swift - -class OfferTests: XCTestCase { -+ var banana: Banana! -+ -+ override func setUp() { -+ super.setUp() -+ banana = Banana() -+ } -+ - func testOffer_whenTheBananaIsPeeled_offersTheBanana() { -- // Arrange: Create a banana and peel it. -- let banana = Banana() -+ // Arrange: Peel the banana. - banana.peel() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want a banana?") - } - - func testOffer_whenTheBananaIsntPeeled_offersToPeelTheBanana() { -- // Arrange: Create a banana. -- let banana = Banana() -- - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want me to peel this banana for you?") - } -} -``` - -## 複数のテストにまたがって環境構築を共有する - -もし複数のテストにまたがって同じ環境構築のコードを使っている部分があれば、 test target 内に'ヘルパー関数'を定義しましょう。 - -```swift -// BananaTests/BananaHelpers.swift - -internal func createNewPeeledBanana() -> Banana { - let banana = Banana() - banana.peel() - return banana -} -``` - -> 共通操作を定義するのに関数を使いましょう。関数は継承できず、状態を保持することができません。継承や状態を持たせる場合、テストの可読性が落ちてしまいます。 diff --git a/Carthage/Checkouts/Quick/Documentation/ja/BehavioralTesting.md b/Carthage/Checkouts/Quick/Documentation/ja/BehavioralTesting.md deleted file mode 100644 index af78e50..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/BehavioralTesting.md +++ /dev/null @@ -1,81 +0,0 @@ -# コードをテストせず、動作を確認する - -テストはアプリケーションが**期待と異なる動作** をした時のみ失敗するようにすべきです。 -アプリケーションコードが *何を* したかをテストすべきで、*どのように* したかをテストすべきではありません。 - -- アプリケーションが *何を* したかを確認するテストは **動作テスト(behavioral tests)** といいます。 -- アプリケーションの動作が変わっていなくても、コードを変更すると失敗するようになるテストは **脆弱なテスト(brittle tests)** といいます。 - -ここで `GorillaDB` というバナナのデータベースを用意します。 -`GorillaDB`は Key-Value 型のデータベースでバナナを保存することができます。 - -```swift -let database = GorillaDB() -let banana = Banana() -database.save(banana: banana, key: "my-banana") -``` - -そしてバナナをディスクから取り出すことができます。 - -```swift -let banana = database.load(key: "my-banana") -``` - -## 脆弱なテスト(Brittle Tests) - -どのようにして動作をテストするのでしょう?一つの方法としてここではバナナを保存した後にバナナのデータベースのサイズをチェックします。 - -```swift -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { - // Arrange: Create a database and get its original size. - let database = GorillaDB() - let originalSize = database.size - - // Act: Save a banana to the database. - let banana = Banana() - database.save(banana: banana, key: "test-banana") - - // Assert: The size of the database should have increased by one. - XCTAssertEqual(database.size, originalSize + 1) -} -``` - -ここで `GorillaDB` のソースコードを変更したとします。データベースからの読み出しを速くするためにもっとも頻繁に使用するバナナをキャッシュに保持するようにします。 -`GorillaDB.size` はキャッシュのサイズに合わせて大きくなります。この場合ディスクに保存しなくなるため上記のテストは失敗します。 - -![](https://raw.githubusercontent.com/Quick/Assets/master/Screenshots/Screenshot_database_size_fail.png) - -## 動作テスト(Behavioral Tests) - -動作のテストの重要なポイントは アプリケーションコードに期待する動作を明確にすることです。 - -`testSave_savesTheBananaToTheDatabase` というテストで期待する動作は バナナをデータベースに "保存する" ことでしょうか? -"保存する"というのは 後から読み出すことができる、という意味です。そのためデータベースのサイズが大きくなることをテストするのではなく、 -バナナを読み出すことができるかをテストすべきです。 - - -```diff -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { - // Arrange: Create a database and get its original size. - let database = GorillaDB() -- let originalSize = database.size - - // Act: Save a banana to the database. - let banana = Banana() - database.save(banana: banana, key: "test-banana") - -- // Assert: The size of the database should have increased by one. -- XCTAssertEqual(database.size, originalSize + 1) -+ // Assert: The bananas saved to and loaded from the database should be the same. -+ XCTAssertEqual(database.load(key: "test-banana"), banana) -} -``` - -動作テストを書く際の重要なポイント: - -- アプリケーションコードが何をすべきか明確にしているか? -- テストが *動作のみ* をテストしているか?コードの動作が他の要因で意図しない動きにならないか。 diff --git a/Carthage/Checkouts/Quick/Documentation/ja/ConfiguringQuick.md b/Carthage/Checkouts/Quick/Documentation/ja/ConfiguringQuick.md deleted file mode 100644 index 4226564..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/ConfiguringQuick.md +++ /dev/null @@ -1,101 +0,0 @@ -# Quickの挙動をカスタマイズしましょう - -`QuickConfiguration` を継承したクラスを作成し、`QuickConfiguration.Type.configure()` をオーバーライドすることで Quick の挙動をカスラマイズすることができます。 - -```swift -// Swift - -import Quick - -class ProjectDataTestConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - // ...set options on the configuration object here. - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickConfigurationBegin(ProjectDataTestConfiguration) - -+ (void)configure:(Configuration *configuration) { - // ...set options on the configuration object here. -} - -QuickConfigurationEnd -``` - -一つのプロジェクトで複数の configuration を持つこともできますが -どの順に configuration が実行されるか保証されません。 - -## テスト全体で使う `beforeEach` と `afterEach` を追加する - -`QuickConfiguration.beforeEach` と `QuickConfiguration.afterEach` を使うと -テストスイート内の各テストの実行前・実行後に走らせる処理を記述することができます。 - -```swift -// Swift - -import Quick -import Sea - -class FinConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - configuration.beforeEach { - Dorsal.sharedFin().height = 0 - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -#import "Dorsal.h" - -QuickConfigurationBegin(FinConfiguration) - -+ (void)configure:(Configuration *)configuration { - [configuration beforeEach:^{ - [Dorsal sharedFin].height = 0; - }]; -} - -QuickConfigurationEnd -``` - -さらに現在実行中のテストに関するメタデータを取得することもできます。 - -```swift -// Swift - -import Quick - -class SeaConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - configuration.beforeEach { exampleMetadata in - // ...use the example metadata object to access the current example name, and more. - } - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickConfigurationBegin(SeaConfiguration) - -+ (void)configure:(Configuration *)configuration { - [configuration beforeEachWithMetadata:^(ExampleMetadata *data) { - // ...use the example metadata object to access the current example name, and more. - }]; -} - -QuickConfigurationEnd -``` diff --git a/Carthage/Checkouts/Quick/Documentation/ja/InstallingFileTemplates.md b/Carthage/Checkouts/Quick/Documentation/ja/InstallingFileTemplates.md deleted file mode 100644 index 1c87e52..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/InstallingFileTemplates.md +++ /dev/null @@ -1,26 +0,0 @@ -# Quickファイル・テンプレートのインストール方法 - -Quick のリポジトリには Swift, Objective-C の両方で使用できるテンプレートが含まれています。 - -## Alcatraz - -Quick のテンプレートは Xcode のパッケージマネージャーの [Alcatraz](https://github.com/supermarin/Alcatraz) 経由でインストールできます。 -パッケージマネージャーから検索してみてください。 - -![](http://f.cl.ly/items/3T3q0G1j0b2t1V0M0T04/Screen%20Shot%202014-06-27%20at%202.01.10%20PM.png) - -## Rakefile から手動でインストールする - -手動でインストールすることもできます。 -リポジトリを clone して rake task の `templates:install` を実行してください。 - -```sh -$ git clone git@github.com:Quick/Quick.git -$ rake templates:install -``` - -アンインストールも簡単です、下記コマンドを実行してください。 - -```sh -$ rake templates:uninstall -``` diff --git a/Carthage/Checkouts/Quick/Documentation/ja/InstallingQuick.md b/Carthage/Checkouts/Quick/Documentation/ja/InstallingQuick.md deleted file mode 100644 index 884b8a5..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/InstallingQuick.md +++ /dev/null @@ -1,152 +0,0 @@ -# Quickのインストール方法 - -> **もし Xcode 7.1 を使用していたら** 現時点で最新バージョンの Quick--`v0.9.0` を使用してください -> 最新のリリースは `swift-2.0` branch で開発されています。 - -Quick は examples(テスト) and example groups(テストグループ)の文法を提供します。 -Nimble は `expect(...).to` の文法を提供します。 -テストでは両方を使ってもいいですし、どちらか片方を使う、ということもできます。 - -Quick をテストに組み込むには3つの方法があります。 - -1. [Git Submodules](#git-submodules) -2. [CocoaPods](#cocoapods) -3. [Carthage](#carthage) - -下記のインストール手順の中からどれか選択してインストールを進めてください。 -インストール完了後、テストターゲット内のファイルで Quick を使用(`import Quick`)できるようになります。 - -## Git Submodules - -Git submodules を使って Quick と Nimble をリンクします。手順の流れとしては下記の通りです。 - -1. Quick を submodule として追加. -2. プロジェクトで`.xcworkspace`を使っていなければ作成してください。 ([こちらを参照](https://developer.apple.com/library/ios/recipes/xcode_help-structure_navigator/articles/Adding_an_Existing_Project_to_a_Workspace.html)) -3. `Quick.xcodeproj` をプロジェクトの`.xcworkspace`に追加してください。 -4. `Nimble.xcodeproj` をプロジェクトの`.xcworkspace`に追加してください。 `Nimble.xcodeproj` は `path/to/Quick/Externals/Nimble` にあります。 Quick が依存している Niimble を追加することで Quick のバージョンと Nimble のバージョンを合わせられます。 - -5. `Quick.framework` と `Nimble.framework` を BuildPhase の "Link Binary with Libraries" でリンクします。 - -もしまだ git submodules 用のディレクトリを作っていなかったら、まず始めにディレクトリを作成します。 -`Vendor` という名前のディレクトリを用意しましょう。 - -**Step 1:** Quick と Nimble を Git submodules としてダウンロードする - -```sh -git submodule add git@github.com:Quick/Quick.git Vendor/Quick -git submodule add git@github.com:Quick/Nimble.git Vendor/Nimble -git submodule update --init --recursive -``` - -**Step 2:** `Quick.xcodeproj` と `Nimble.xcodeproj` をプロジェクトの `.xcworkspace` に追加してください。 -例として `Guanaco.xcworkspace` という workspace に Quick と Nimble を追加します。 - -![](http://f.cl.ly/items/2b2R0e1h09003u2f0Z3U/Screen%20Shot%202015-02-27%20at%202.19.37%20PM.png) - -**Step 3:** build phase の `Link Binary with Libraries` に `Quick.framework` を追加してください。 -2種類の `Quick.frameworks` が表示されますが 1 つは OS X 用で、もう 1 つが iOS 用です。 - -![](http://cl.ly/image/2L0G0H1a173C/Screen%20Shot%202014-06-08%20at%204.27.48%20AM.png) - -`Nimble.framework` も同様に追加してください。これで完了です! - -**Submodules をアップデートする:** Quick と Nimble を最新バージョンにアップデートしたい場合は Quick ディレクトリに入って master リポジトリから pull してください。 - -```sh -cd /path/to/your/project/Vendor/Quick -git checkout master -git pull --rebase origin master -``` - -あなたのプロジェクトの Git リポジトリは submodule の変更もトラッキングしているので Quick submodules の更新を commit しておきます。 - -```sh -cd /path/to/your/project -git commit -m "Updated Quick submodule" -``` - -**Quick Submodule を含んだ リポジトリを git clone する:** 他の開発者があなたのリポジトリを clone したあと、submodules を同様に pull してくる必要があります。`git submodule update` コマンドを実行することで pull できます。 - -```sh -git submodule update --init --recursive -``` - -git submodules に詳細な情報は[こちら](http://git-scm.com/book/en/Git-Tools-Submodules)です。 - -## CocoaPods - -CocoaPods でインストールする場合、バージョンは 0.36.0 以降である必要(CocoaPods が Swift をサポートしているバージョン)があります。 - -Podfile に Quick と Nimble を追加して下さい。 Swift では ```use_frameworks!``` も必要です。 - -```rb - -# Podfile - -use_frameworks! - -def testing_pods - pod 'Quick', '~> 0.9.0' - pod 'Nimble', '3.0.0' -end - -target 'MyTests' do - testing_pods -end - -target 'MyUITests' do - testing_pods -end -``` - -その後 pod install でダウンロード、リンクします。 - -```sh -pod install -``` - -### Swift 1.2 で使う - -Quick の最新版(0.4.0)は Swift 2 (Xcode 7) 用ですが、Nimble の最新版(1.0.0) は Swift 1.2 (Xcode 6) 用です。 - -もし Xcode6 で使いたい場合は下記のようにバージョン指定してください。 - -```sh -target 'MyTests' do - use_frameworks! - pod 'Quick', '~>0.3.0' - pod 'Nimble', '~>1.0.0' -end -``` - -## [Carthage](https://github.com/Carthage/Carthage) - -テストターゲットは "Embedded Binaries" section がないので framework はターゲットの "Link Binary With Libraries" に追加する必要があります。 build phase の "Copy Files" も同様にターゲットの framework destination を指定して下さい。 - - > Carthage は dynamic frameworks をビルドするので code signing identity に有効なものを設定しておく必要があります。 - -1. Quick を [`Cartfile.private`](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfileprivate) に追加してください。 - - ``` - github "Quick/Quick" - github "Quick/Nimble" - ``` - -2. `carthage update` を実行してください。 -3. `Carthage/Build/[platform]/` ディレクトリから Quick と Nimble をテストターゲットの "Link Binary With Libraries" に追加してください。 - ![](http://i.imgur.com/pBkDDk5.png) - -4. テストターゲットの build phase で "New Copy Files Phase" を選択してください。 - ![](http://i.imgur.com/jZATIjQ.png) - -5. "Destination" を "Frameworks" に設定して、2つの framework を追加してください。 - ![](http://i.imgur.com/rpnyWGH.png) - -Carthage の dependency の管理方法はこの方法だけではありません。 -詳細な情報はこちらを参照してください [Carthage documentation](https://github.com/Carthage/Carthage/blob/master/README.md) 。 - -### (非推奨) 実機で Quick のテストを走らせる - -Quick で書かれたテストを実機で走らせるためには `Quick.framework` と `Nimble.framework` を `Embedded Binaries` としてテストターゲットの `ホストアプリケーション` に追加されます。 Embedded binary として framework を追加すると Xcode が自動的にホストアプリケーションにリンクしてしまいます。 - -![](http://indiedev.kapsi.fi/images/embed-in-host.png) diff --git a/Carthage/Checkouts/Quick/Documentation/ja/MoreResources.md b/Carthage/Checkouts/Quick/Documentation/ja/MoreResources.md deleted file mode 100644 index 996f2df..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/MoreResources.md +++ /dev/null @@ -1,27 +0,0 @@ -# その他の参考資料 - -## Quick のテストのサンプル - -Quick は[GitHub](https://github.com/github)や[ReactiveCocoa](https://github.com/ReactiveCocoa)を含む多くの企業、OSS プロジェクト、個人で利用されています。 - -下記リポジトリを参考にしてみてください。 - -- https://github.com/ReactiveCocoa/ReactiveCocoa -- https://github.com/github/Archimedes -- https://github.com/libgit2/objective-git -- https://github.com/jspahrsummers/RXSwift -- https://github.com/artsy/eidolon -- https://github.com/Moya/Moya -- https://github.com/nerdyc/Squeal -- https://github.com/pepibumur/SugarRecord - -## OS X と iOS Apps のテストに関する参考資料 - -- **[Quality Coding](http://qualitycoding.org/)**: - ユニットテストにフォーカスした iOS 開発に関するブログ。 -- **[OCMock Tutorials](http://ocmock.org/support/)**: - テストでモックが必要な時に使用する OCMock のチュートリアル。 -- **[Nocilla: Stunning HTTP stubbing for iOS and Mac OS X](https://github.com/luisobo/Nocilla)**: - 通信を行うコードをテストする時はこのライブラリを使用して下さい。 -- **[Pivotal Labs: Writing Beautiful Specs with Jasmine Custom Matchers](http://pivotallabs.com/writing-beautiful-specs-jasmine-custom-matchers/)**: - Nimble の matcher の書き方に関するドキュメントはこちら([the Nimble documentation](https://github.com/Quick/Nimble)) diff --git a/Carthage/Checkouts/Quick/Documentation/ja/NimbleAssertions.md b/Carthage/Checkouts/Quick/Documentation/ja/NimbleAssertions.md deleted file mode 100644 index 8534a71..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/NimbleAssertions.md +++ /dev/null @@ -1,100 +0,0 @@ -# Nimble Assertions を使ってテストをより簡潔に - -テストが期待した通りに動作しない時、ユニットテストは **何が問題か** を明確にすべきです。 - -次の関数はサルの集団から馬鹿なサルだけを取得します。 - -```swift -public func silliest(monkeys: [Monkey]) -> [Monkey] { - return monkeys.filter { $0.silliness == .VerySilly } -} -``` - -ここでこの関数に対するテストを書いてみましょう。 - -```swift -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) - XCTAssertTrue(contains(sillyMonkeys, kiki)) -} -``` - -このテストは下記のメッセージとともに失敗します。 - -``` -XCTAssertTrue failed -``` - -![](http://f.cl.ly/items/1G17453p47090y30203d/Screen%20Shot%202015-02-26%20at%209.08.27%20AM.png) - -失敗した時は多くの情報を残すことが望ましいです。このメッセージのままではよく分かりません。 -true や false だけではそれがなにか分かりません。このままではテストコードから原因を見つけるまでに時間がかかってしまいます。 - -## 良い失敗メッセージを残す: Part 1: XCTAssert に手動でメッセージを渡す - -`XCTAssert` は失敗時にメッセージを指定することができます。 - -```diff -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) -- XCTAssertTrue(contains(sillyMonkeys, kiki)) -+ XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'") -} -``` - -しかし`XCTAssert`では自分でメッセージを指定しないといけません。 - -## 良い失敗メッセージを残す: Part 2: Nimble Failure Messages を使う - -Nimble は Assert, 失敗時のメッセージを読みやすくしてくれます。 - -```diff -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) -- XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'") -+ expect(sillyMonkeys).to(contain(kiki)) -} -``` - -Nimble では自分でメッセージを指定しなくても Nimble がとても読みやすいメッセージを返してくれます。 - -``` -expected to contain , - got <[Monkey(name: Jane, silliness: VerySilly)]> -``` - -![](http://f.cl.ly/items/3N2e3g2K3W123b1L1J0G/Screen%20Shot%202015-02-26%20at%2011.27.02%20AM.png) - -失敗メッセージは何が問題かを明確にします:ここでは `kiki` が `silliest()` の戻り値に含まれることを期待していますが -このテストでは `jane` しか含まれていません。Nimble からのメッセージで何が問題かが分かりやすく伝えられるので、簡単に直すことができます。 - -```diff -public func silliest(monkeys: [Monkey]) -> [Monkey] { -- return monkeys.filter { $0.silliness == .VerySilly } -+ return monkeys.filter { $0.silliness == .VerySilly || $0.silliness == .ExtremelySilly } -} -``` - -Nimble は具体的な失敗メッセージを返してくれる多くの種類の Assertion を提供します。 -`XCTAssert` と違って毎回自分でメッセージを指定することはありません。 - -Nimble の全ての assertion はこちらで確認できます: [Nimble README](https://github.com/Quick/Nimble) 。 -下記に幾つかの例を示します。 - -```swift -expect(1 + 1).to(equal(2)) -expect(1.2).to(beCloseTo(1.1, within: 0.1)) -expect(3) > 2 -expect("seahorse").to(contain("sea")) -expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi")) -expect(ocean.isClean).toEventually(beTruthy()) -``` diff --git a/Carthage/Checkouts/Quick/Documentation/ja/QuickExamplesAndGroups.md b/Carthage/Checkouts/Quick/Documentation/ja/QuickExamplesAndGroups.md deleted file mode 100644 index 2ddad20..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/QuickExamplesAndGroups.md +++ /dev/null @@ -1,477 +0,0 @@ -# QuickのExamplesとExample Groupsで、たくさんのテストでも整理整頓 - -Quick では **examples** と **example groups** という特別な文法があります。 - -*[XCTestで役に立つテストを書く方法:Arrange(環境構築), Act(実行), and Assert(動作確認)](ArrangeActAssert.md)* では, -良いテスト名をつけることがとても重要だということを学びました。 -テストが失敗した時、テスト名はアプリケーションコードを直すべきかテストを修正すべきかを判断する際の重要な材料になります。 - -Quick の examples(テスト) と example groups(テストグループ) は二つの役に立ちます。 - -1. 記述的なテスト名を書くためことをサポートします -2. テスト中の "環境構築" 部分におけるコードを簡略化します - -## Examples の `it` - -Examples は `it` という「コードがどのように動作すべきかを宣言する」関数を持ちます。 -これは XCTest の test methods のようなものです。 - -`it` 関数は2つのパラメータ、example の名前と closure です。 -下記のテストでは `Sea.Dolphin` クラスがどのように動作すべきかを記述しています。 -この example では「新しく生成された Dolphin は smart で friendly であるべき」と書いています。 - -```swift -// Swift - -import Quick -import Nimble -import Sea - -class DolphinSpec: QuickSpec { - override func spec() { - it("is friendly") { - expect(Dolphin().isFriendly).to(beTruthy()) - } - - it("is smart") { - expect(Dolphin().isSmart).to(beTruthy()) - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -it(@"is friendly", ^{ - expect(@([[Dolphin new] isFriendly])).to(beTruthy()); -}); - -it(@"is smart", ^{ - expect(@([[Dolphin new] isSmart])).to(beTruthy()); -}); - -QuickSpecEnd -``` - -Examples が何をテストしているかを明確にするために Description を使います。 -Description は文字数制限がなくどの文字でも(絵文字さえも!)使うことができます。 -:v: :sunglasses: - -## Example Groups の `describe` と `context` - -Example groups では Example のグルーピングができ、 setup と teardown のコードを共有できます。 - -### `describe` を使ってクラスと関数について記述する - -`Dolphin` クラスの `click` 関数の動作を記述する際に、 -言い換えると関数が動作していることをテストする際に、 -複数の `it` example を `describe` を用いてグルーピングすることができます。 -似ている examples をまとめることで可読性が向上します。 - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - describe("its click") { - it("is loud") { - let click = Dolphin().click() - expect(click.isLoud).to(beTruthy()) - } - - it("has a high frequency") { - let click = Dolphin().click() - expect(click.hasHighFrequency).to(beTruthy()) - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - describe(@"its click", ^{ - it(@"is loud", ^{ - Click *click = [[Dolphin new] click]; - expect(@(click.isLoud)).to(beTruthy()); - }); - - it(@"has a high frequency", ^{ - Click *click = [[Dolphin new] click]; - expect(@(click.hasHighFrequency)).to(beTruthy()); - }); - }); -}); - -QuickSpecEnd -``` - -Xcode でこれらの examples を実行すると`describe` と `it` の記述内容も表示されます。上記のテストの場合、下記のような出力になります。 - -1. `DolphinSpec.a_dolphin_its_click_is_loud` -2. `DolphinSpec.a_dolphin_its_click_has_a_high_frequency` - -それぞれの Example が何をテストしているかが明確ですね。 - -### `beforeEach` と `afterEach` を使って Setup/Teardown のコードを共有する - -Example groups はテストの内容をただ分かりやすくするだけでなく同一グループ内のsetup/teardownコードを共有することができます。 - -下記の例では`its click`の Example group のテストを実行する前に `beforeEach`を使って新しい Dolphin のインスタンスを生成しています。 -各 Example において "新しい" 状態でテストが行えます。 - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - var dolphin: Dolphin! - beforeEach { - dolphin = Dolphin() - } - - describe("its click") { - var click: Click! - beforeEach { - click = dolphin.click() - } - - it("is loud") { - expect(click.isLoud).to(beTruthy()) - } - - it("has a high frequency") { - expect(click.hasHighFrequency).to(beTruthy()) - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - __block Dolphin *dolphin = nil; - beforeEach(^{ - dolphin = [Dolphin new]; - }); - - describe(@"its click", ^{ - __block Click *click = nil; - beforeEach(^{ - click = [dolphin click]; - }); - - it(@"is loud", ^{ - expect(@(click.isLoud)).to(beTruthy()); - }); - - it(@"has a high frequency", ^{ - expect(@(click.hasHighFrequency)).to(beTruthy()); - }); - }); -}); - -QuickSpecEnd -``` - -この例では setup を共有することはあまりメリットがないように見えるかもしれませんが -複数の複雑なオブジェクトを生成する時などコード量を節約することができます。 - -それぞれの Example を実行した後に実行したいコードについては`afterEach`を使います。 - -### `context` を使ってある条件での動作を記述する - -例の Dolphins(イルカ達) はエコーロケーションのために カチッと音を立てます(`click` 関数を呼び出します)。 -イルカ達は特に興味のあるものに近づく時、それが何かを調べるために連続してエコーロケーション(`click` 関数を呼び出します)を行います。 - -このシナリオにおいてテストが 異なる状況において `click` 関数の動作は異なる ということを表す必要があります。 - -基本的にイルカは一度音を鳴らすだけですが、イルカ達が興味があるものが近くにあると連続して音を鳴らします。 - -この状況について `context` 関数を使って表します。ある `context` では通常のケースで、もう一方の`context`ではイルカが興味あるものに近づいているケースです。 - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - var dolphin: Dolphin! - beforeEach { dolphin = Dolphin() } - - describe("its click") { - context("when the dolphin is not near anything interesting") { - it("is only emitted once") { - expect(dolphin!.click().count).to(equal(1)) - } - } - - context("when the dolphin is near something interesting") { - beforeEach { - let ship = SunkenShip() - Jamaica.dolphinCove.add(ship) - Jamaica.dolphinCove.add(dolphin) - } - - it("is emitted three times") { - expect(dolphin.click().count).to(equal(3)) - } - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - __block Dolphin *dolphin = nil; - beforeEach(^{ dolphin = [Dolphin new]; }); - - describe(@"its click", ^{ - context(@"when the dolphin is not near anything interesting", ^{ - it(@"is only emitted once", ^{ - expect(@([[dolphin click] count])).to(equal(@1)); - }); - }); - - context(@"when the dolphin is near something interesting", ^{ - beforeEach(^{ - [[Jamaica dolphinCove] add:[SunkenShip new]]; - [[Jamaica dolphinCove] add:dolphin]; - }); - - it(@"is emitted three times", ^{ - expect(@([[dolphin click] count])).to(equal(@3)); - }); - }); - }); -}); - -QuickSpecEnd -``` - -厳密には `context` キーワードは `describe`と同じですがテストを理解しやすくなるので使い分けるとよいです。 - -### テストの可読性: Quick と XCTest - -*[XCTestで役に立つテストを書く方法:Arrange(環境構築), Act(実行), and Assert(動作確認)](ArrangeActAssert.md)*で各条件についてそれぞれテストを用意するのがテストを書く際の重要な方法と述べましたが -このアプローチで XCTest でテストを書くとテスト名が長くなってしまいます。 - -```swift -func testDolphin_click_whenTheDolphinIsNearSomethingInteresting_isEmittedThreeTimes() { - // ... -} -``` - -Quick を使うと条件について読みやすく、しかもそれぞれの Example group について環境構築が効率的に行えます。 - -```swift -describe("a dolphin") { - describe("its click") { - context("when the dolphin is near something interesting") { - it("is emitted three times") { - // ... - } - } - } -} -``` - -## 一時的に Examples や Example Groups を無効にする - -通っていない Example を一時的に無効にすることもできます。 -Example や Example Groups の先頭に `x` をつけると無効になります。 -Examples の名前がテスト結果の中に出力されますがテストは実行されなくなります。 - - -```swift -// Swift - -xdescribe("its click") { - // ...none of the code in this closure will be run. -} - -xcontext("when the dolphin is not near anything interesting") { - // ...none of the code in this closure will be run. -} - -xit("is only emitted once") { - // ...none of the code in this closure will be run. -} -``` - -```objc -// Objective-C - -xdescribe(@"its click", ^{ - // ...none of the code in this closure will be run. -}); - -xcontext(@"when the dolphin is not near anything interesting", ^{ - // ...none of the code in this closure will be run. -}); - -xit(@"is only emitted once", ^{ - // ...none of the code in this closure will be run. -}); -``` - -## 指定した Examples だけ一時的に実行する - -一部の Example だけ実行できると便利なこともあります。 -そのような時は実行したい Example を `fit` 関数を用いて指定します。 -特定の Example group だけ実行したい時は`fdescribe` か `fcontext` を記述します。 -※もともと書いてあるテストコードの先頭に `f` を追記するだけです。 - -```swift -fit("is loud") { - // ...only this focused example will be run. -} - -it("has a high frequency") { - // ...this example is not focused, and will not be run. -} - -fcontext("when the dolphin is near something interesting") { - // ...examples in this group are also focused, so they'll be run. -} -``` - -```objc -fit(@"is loud", { - // ...only this focused example will be run. -}); - -it(@"has a high frequency", ^{ - // ...this example is not focused, and will not be run. -}); - -fcontext(@"when the dolphin is near something interesting", ^{ - // ...examples in this group are also focused, so they'll be run. -}); -``` - -## `beforeSuite` と `afterSuite` を使ってテスト全体に対する Setup/Teardown を行う - -テストの環境構築の中にはどの Example よりも先に、または最後に実行したいものがある場合もあります。 -このような時は `beforeSuite` か `afterSuite` を使います。 - -下記の例では 全ての Example が実行される前に一度だけ海の全ての生物のデータベースが生成され、全ての Exmample が実行された後にデータベースを削除しています。 - -```swift -// Swift - -import Quick - -class DolphinSpec: QuickSpec { - override func spec() { - beforeSuite { - OceanDatabase.createDatabase(name: "test.db") - OceanDatabase.connectToDatabase(name: "test.db") - } - - afterSuite { - OceanDatabase.teardownDatabase(name: "test.db") - } - - describe("a dolphin") { - // ... - } - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickSpecBegin(DolphinSpec) - -beforeSuite(^{ - [OceanDatabase createDatabase:@"test.db"]; - [OceanDatabase connectToDatabase:@"test.db"]; -}); - -afterSuite(^{ - [OceanDatabase teardownDatabase:@"test.db"]; -}); - -describe(@"a dolphin", ^{ - // ... -}); - -QuickSpecEnd -``` - -`beforeSuite` and `afterSuite` は必要な数だけ定義することができます。 -全ての `beforeSuite` の closure は全てのテストが実行される前に実行され、 -全ての `afterSuite` の closure は全てのテストが実行された後に実行されます。 - -複数の `beforeSuite`(`afterSuite`) の closure を記述した場合、これらの実行順序は記述した順序で実行されるかは保証されません。 - -## 実行中の Example でメタデータにアクセスする - -実行中の Example の中で、Example名を知りたいケース、これまでに何件の Example を実行したかを知りたいケースがあるかもしれません。 -Quick ではこれらの情報に `beforeEach` と `afterEach` の closure の中からアクセスすることができます。 - -```swift -beforeEach { exampleMetadata in - println("Example number \(exampleMetadata.exampleIndex) is about to be run.") -} - -afterEach { exampleMetadata in - println("Example number \(exampleMetadata.exampleIndex) has run.") -} -``` - -```objc -beforeEachWithMetadata(^(ExampleMetadata *exampleMetadata){ - NSLog(@"Example number %l is about to be run.", (long)exampleMetadata.exampleIndex); -}); - -afterEachWithMetadata(^(ExampleMetadata *exampleMetadata){ - NSLog(@"Example number %l has run.", (long)exampleMetadata.exampleIndex); -}); -``` diff --git a/Carthage/Checkouts/Quick/Documentation/ja/QuickInObjectiveC.md b/Carthage/Checkouts/Quick/Documentation/ja/QuickInObjectiveC.md deleted file mode 100644 index 6d67044..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/QuickInObjectiveC.md +++ /dev/null @@ -1,48 +0,0 @@ -# Objective-C で Quick を使う - -Quick は Swift でも Objective-C でも問題なく動作します。 - -ですが、Objective-C で Quick を使う場合、2点気を付けておきべきことがあります。 - -## 簡略記法 - -Objective-C で Quick を import すると `it` と `itShouldBehaveLike` というマクロが定義されます。 -また、`context()` and `describe()`といった関数も同様に定義されます。 - -もしプロジェクトですでに同じ名前のシンボルを定義していた場合、重複のためビルドエラーになります。 -その場合は下記のように`QUICK_DISABLE_SHORT_SYNTAX`を定義してこの機能を無効にしてください。 - -```objc -#define QUICK_DISABLE_SHORT_SYNTAX 1 - -@import Quick; - -QuickSpecBegin(DolphinSpec) -// ... -QuickSpecEnd -``` - -`QUICK_DISABLE_SHORT_SYNTAX`マクロは Quick ヘッダを import する前に定義する必要があります。 - - -## Swift のファイルを テストターゲットに含める - -テストターゲットの中に Swift のファイルが含まれていないと Swift stlib が リンクされないため Quick が正しく実行されません。 - -Swift のファイルが含まれていないと下記のようなエラーが発生します。 - -``` -*** Test session exited(82) without checking in. Executable cannot be -loaded for some other reason, such as a problem with a library it -depends on or a code signature/entitlements mismatch. -``` - -修正するためには `SwiftSpec.swift` という名前の空のファイルをテストターゲットに追加してください。 - -```swift -// SwiftSpec.swift - -import Quick -``` - -> この問題に関する詳細情報はこちら https://github.com/Quick/Quick/issues/164. diff --git a/Carthage/Checkouts/Quick/Documentation/ja/README.md b/Carthage/Checkouts/Quick/Documentation/ja/README.md deleted file mode 100644 index 0c4f0d5..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# テストの書き方、Quickの使い方 - -Quickでテストを書くと、SwiftとObjective-Cで書かれたプログラムがどう動作しているか楽に確認できます。 - -ところが、有用なテストはQuickを使わなくても書けます。 -役に立つテストが書けるようになるには、Quickのようなフレームワークの使い方を覚える必要はありません。 - -このディレクトリにあるファイルは、QuickかXCTestかを問わず、 -「役に立つ」テストとは何か、そしてどうやってそういったテストが書けるか、 -それを拙文ながら説明しようとしています。 - -目次: - -(テストについて事前知識がまったくない方は、順に読んでいくことをオススメします。) - -- **[Xcodeでテストを用意しましょう](SettingUpYourXcodeProject.md)**: - アプリのコードがテスト・ファイルから参照できない場合や、 - その他スムーズにテストが動かない場合はこのファイルを読み返すといいかもしれません。 -- **[XCTestで役に立つテストを書く方法:Arrange(環境構築), Act(実行), and Assert(動作確認)](ArrangeActAssert.md)**: - 役に立つテストを書くための基本中の基本。これさえ覚えれば、 - XCTestを使ってあなたも正確に動作するコードをすばやく書けるようになります。 -- **[コードをテストするのではなく、動作の確認をしましょう](BehavioralTesting.md)**: - 同じ「テスト」でも、開発を進めやすくするテストと、邪魔ばかりするテストとがあります。 - 見分ける方法は、このファイルを読めば分かります。 -- **[Nimbleのassertでテストをより読みやすくしましょう](NimbleAssertions.md)**: - Nimbleを使って、テストが失敗したときわかりやすいエラーメッセージを出すようにしましょう。 - わかりやすいメッセージで、テストがなぜ失敗したのかが一瞬でわかって開発の速度があがります。 -- **[QuickのExamplesとExample Groupsで、たくさんのテストでも整理整頓](QuickExamplesAndGroups.md)**: - Quickを使う大きなメリットのひとつはexamplesとexample groupsです。 - これでより簡潔にたくさんのテストが書けるようになります。 -- **[OS XとiOSアプリのテスト](TestingApps.md)**: - AppKitとUIKitを使ったコードをどうやってテストできるか説明します。 -- **[Test doublesを使ったテスト](TestUsingTestDoubles.md)**: - Test doublesを使って対象のクラスのみをテストする方法を説明します。 -- **[assertの共有でボイラープレートコードをなくしましょう](SharedExamples.md)**: - どうやってassertを共有できるか、なぜそうするのが望ましいのか説明します。 -- **[Quickの挙動をカスタマイズしましょう](ConfiguringQuick.md)**: - Quickがテストを実行するときの挙動をどうやって変えられるか説明します。 -- **[Objective-CでQuickを使う方法・注意点](QuickInObjectiveC.md)**: - QuickをObjective-Cで使ったときに思わぬ不具合・トラブルがあった場合、 - これを読んでください。 -- **[Quickのインストール方法](InstallingQuick.md)**: - あなたのプロジェクトにQuickを導入する方法を説明します。Git submodules、 - CocoaPods、Carthage、全部サポートしています! -- **[Quickファイル・テンプレートのインストール方法](InstallingFileTemplates.md)**: - Quickテストをすばやく作成するためのファイル・テンプレートをインストールする方法を説明します。 -- **[その他の参考資料](MoreResources.md)**: - OS X・iOSのテストに関しての資料集を用意しています。 -- **[トラブルシューティング](Troubleshooting.md)**: - その他の不具合に遭遇した場合にこれを読んでください。 diff --git a/Carthage/Checkouts/Quick/Documentation/ja/SettingUpYourXcodeProject.md b/Carthage/Checkouts/Quick/Documentation/ja/SettingUpYourXcodeProject.md deleted file mode 100644 index 9258217..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/SettingUpYourXcodeProject.md +++ /dev/null @@ -1,77 +0,0 @@ -# テストの準備をする - -Xcode7 では Command Line Tool プロジェクトを除き、デフォルトで Unit test target が生成されます。 [参照:コマンドラインツールプロジェクトでテストの準備をする](#コマンドラインツールプロジェクトでテストの準備をする)。 -テストを書くためには Unit test targetから Main target のコードが使用できる必要があります。 - -## Swift のコードを Swift でテストする - -Swift で書かれたコードをテストするためには下記2つの作業を行います。 - -1. プロジェクトファイル `.xcodeproj` の "defines module" を `YES` に設定します。 - - * Xcode で対象のプロジェクトを開き、"Build Settings" の "Defines Modules" の 項目を "Yes" にします。 - -2. 各テストファイルで `@testable import YourAppModuleName` を追記します。 追記することで public, internal のシンボルにアクセスできるようになります。`private` シンボルはアクセスできないままです。 - -```swift -// MyAppTests.swift - -import XCTest -@testable import MyModule - -class MyClassTests: XCTestCase { - // ... -} -``` - -> Swift のファイルを Test target に含める、という方法もありますが、不具合を引き起こす([subtle, hard-to-diagnose -errors](https://github.com/Quick/Quick/issues/91)) ことがあるためお勧めしません。 - -## Objective-C のコードを Swift でテストする - -1. Bridging header を test target に追加します。 -2. Bridging header 内で テストしたいコードを import します。 - -```objc -// MyAppTests-BridgingHeader.h - -#import "MyClass.h" -``` - -これで `MyClass.h` のコードを Swift のテストコードから使用できるようになります。 - -## Swift のコードを Objective-C でテストする - -1. テストしたい Swift のクラスと関数に`@objc`属性を付加します。 -2. テストコードで Module の Swift header を import します。 - -```objc -@import XCTest; -#import "MyModule-Swift.h" - -@interface MyClassTests: XCTestCase -// ... -@end -``` - -## Objective-C のコードを Objective-C でテストする - -テストコード内でテスト対象を import します。 - -```objc -// MyAppTests.m - -@import XCTest; -#import "MyClass.h" - -@interface MyClassTests: XCTestCase -// ... -@end -``` - -### コマンドラインツールプロジェクトでテストの準備をする - -1. プロジェクトのペインからターゲットを追加(+ボタンを押下) -2. "OS X Unit Testing Bundle" または "iOS Unit Testing Bundle" を選択 -3. Main target で "Edit the scheme" を選択 -4. "Test" を選択, "Info" タブで "+" をクリックして追加した testing bundle を選択 diff --git a/Carthage/Checkouts/Quick/Documentation/ja/SharedExamples.md b/Carthage/Checkouts/Quick/Documentation/ja/SharedExamples.md deleted file mode 100644 index a1670d2..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/SharedExamples.md +++ /dev/null @@ -1,122 +0,0 @@ -# assertの共有でボイラープレートコードをなくしましょう - -複数のオブジェクトに対象して同じ内容のテストを行いたい場合があります。 - -例えば `Edible` という protocol があるとします。 -イルカ(dolphin)が何か食べられる(`Edible`な)ものを食べるとイルカが幸せになります。 -サバ(`Mackerel`)とタラ(`Cod`)は食べられる(`Edible`な)ものです。 - -Quick は「イルカがどちらかを食べて幸せになる」ということを簡単にテストすることできます。 - -下記で示すテストは "(何かを食べる)something edible" という共有できるテスト(Shared examples)を定義しています。 -また、この共有できるテストでサバ(Mackerel)とタラ(Cod)を食べることについてのテストを記述しています。 - -```swift -// Swift - -import Quick -import Nimble - -class EdibleSharedExamplesConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - sharedExamples("something edible") { (sharedExampleContext: SharedExampleContext) in - it("makes dolphins happy") { - let dolphin = Dolphin(happy: false) - let edible = sharedExampleContext()["edible"] - dolphin.eat(edible) - expect(dolphin.isHappy).to(beTruthy()) - } - } - } -} - -class MackerelSpec: QuickSpec { - override func spec() { - var mackerel: Mackerel! - beforeEach { - mackerel = Mackerel() - } - - itBehavesLike("something edible") { ["edible": mackerel] } - } -} - -class CodSpec: QuickSpec { - override func spec() { - var cod: Cod! - beforeEach { - cod = Cod() - } - - itBehavesLike("something edible") { ["edible": cod] } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickConfigurationBegin(EdibleSharedExamplesConfiguration) - -+ (void)configure:(Configuration *configuration) { - sharedExamples(@"something edible", ^(QCKDSLSharedExampleContext exampleContext) { - it(@"makes dolphins happy") { - Dolphin *dolphin = [[Dolphin alloc] init]; - dolphin.happy = NO; - id edible = exampleContext()[@"edible"]; - [dolphin eat:edible]; - expect(dolphin.isHappy).to(beTruthy()) - } - }); -} - -QuickConfigurationEnd - -QuickSpecBegin(MackerelSpec) - -__block Mackerel *mackerel = nil; -beforeEach(^{ - mackerel = [[Mackerel alloc] init]; -}); - -itBehavesLike(@"someting edible", ^{ return @{ @"edible": mackerel }; }); - -QuickSpecEnd - -QuickSpecBegin(CodSpec) - -__block Mackerel *cod = nil; -beforeEach(^{ - cod = [[Cod alloc] init]; -}); - -itBehavesLike(@"someting edible", ^{ return @{ @"edible": cod }; }); - -QuickSpecEnd -``` - -Shared examples は `it`, `context` や `describe` のブロックをいくつでも含めることができます。 -これは異なる種類の対象についてテストをする際のコードを節約することができます。 - -あるケースでは context を追加する必要もありません。 -Swift では `sharedExamples` closure を使って共有できるテストを定義することができます。 -このテクニックはある時点での状態をテストしたい時などに役に立つかもしれません。 - -```swift -// Swift - -import Quick - -sharedExamples("everything under the sea") { - // ... -} - -itBehavesLike("everything under the sea") -``` - -> Objective-Cでは, `QCKDSLSharedExampleContext` を引数に取る block を渡すことができます。※QCKDSLSharedExampleContext を使う予定がなくても引数に取る block を用意してください。めんどくさくても。世の中そんなもんです。 :cookie: :bomb: - -`itBehavesLike` の先頭に `f` を加えて(`fitBehavesLike`) として共有できるテストのみ実行することもできます。 diff --git a/Carthage/Checkouts/Quick/Documentation/ja/TestUsingTestDoubles.md b/Carthage/Checkouts/Quick/Documentation/ja/TestUsingTestDoubles.md deleted file mode 100644 index 7251e2e..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/TestUsingTestDoubles.md +++ /dev/null @@ -1,138 +0,0 @@ -# Test doubles を使ったテスト - -## Test doubles - -テストを書いているとしばしば次のような問題にぶつかります。 `車`クラスが`タイヤ`クラスを使用している(依存している)とします。 - -![](https://github.com/Quick/Assets/blob/master/Screenshots/TestUsingMock_BusesA.png) - -ここで 車Tests という (`タイヤ`に依存している)`車` のテストを用意します。ここで `タイヤ` にバグがあった場合、`車`に問題なくても 車Tests は失敗します。 -このような事が頻繁に起こるとバグの究明が難しくなります。 - -この問題を回避するには、`車`Tests において `タイヤ`の 代わりになるクラス`完璧タイヤ` クラス(代理、英語で `Stand-in`といいます)を用意する、という方法があります。 - -![](https://github.com/Quick/Assets/blob/master/Screenshots/TestUsingMock_BusesAmock.png) - -この`完璧タイヤ`は実装は異なりますが`タイヤ`と同じメソッド、プロパティを持ちます。そのため 車Tests において `タイヤ` を `完璧タイヤ` と入れ替えることができます。 - -`完璧タイヤ`クラスのような差し替え可能なオブジェクトのことを一般に'test doubles(テストダブル)'と呼びます。 -'test doubles' にはいくつか種類があります。 - -- Mock object: テスト対象のクラスの出力の検証に用いる -- Stub object: テスト対象のクラスにデータを渡す(入力)際に用いる -- Fake object: 差し替え前のオブジェクトと近い振る舞いをする(実装がより簡単になっている) - -ここではモックを使ったテストの方法を紹介します。 - -## モックとは - -モックとはテスト対象のオブジェクト(クラス、構造体)が呼び出し先のオブジェクトと意図したとおりに協調動作するかどうかをテストするために使うオブジェクトのことです。 - -## Swift でモックを使ったテストを書く - -### サンプルアプリケーション - -ここでは例としてインターネット経由で取得したデータを表示するアプリケーションを考えます。 - -* DataProviderProtocolというプロトコルを実装したクラスがインターネット経由でデータを取得する -* 取得したデータをViewControllerで表示する - -ここで DataProviderProtocol を定義します。 - -```swift -// Swift -protocol DataProviderProtocol: class { - func fetch(callback: (data: String) -> Void) -} -``` - -DataProviderProtocol の `fetch()`関数でデータを取得し、callbackブロックでデータを渡します。 - -ここで DataProviderProtocol を実装する DataProvider クラスを定義します。 - -```swift -// Swift -class DataProvider: NSObject, DataProviderProtocol { - func fetch(callback: (data: String) -> Void) { - let url = NSURL(string: "http://example.com/")! - let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration()) - let task = session.dataTaskWithURL(url, completionHandler: { - (data, resp, err) in - let string = NSString(data:data!, encoding:NSUTF8StringEncoding) as! String - callback(data: string) - }) - task.resume() - } -} -``` - -ViewController の `viewDidLoad` 中にデータの取得(`fetch()`の呼び出し)を行います。 - -コードはこのようになります。 - -```swift -// Swift -class ViewController: UIViewController { - @IBOutlet weak var resultLabel: UILabel! - private var dataProvider: DataProviderProtocol? - - override func viewDidLoad() { - super.viewDidLoad() - - dataProvider = dataProvider ?? DataProvider() - - dataProvider?.fetch({ [unowned self] (data) -> Void in - self.resultLabel.text = data - }) - } -} -``` - -## DataProviderProtocol のモックを使ったテストを書く - -この例では ViewController は DataProviderProtocol に依存しています。 -テスト用に DataProviderProtocol を継承したクラス(モックとして使用します)をテストターゲット内に作成します。 - -モックを作成することで、 -- テストを速く実行できる -- インターネットに接続していなくてもテストができるようになる -- ViewController の動作のテストにフォーカスできる(実際のDataProviderをテスト対象から外すことが出来る) - -```swift -// Swift -class MockDataProvider: NSObject, DataProviderProtocol { - var fetchCalled = false - func fetch(callback: (data: String) -> Void) { - fetchCalled = true - callback(data: "foobar") - } -} -``` - -このモックの中で fetchCalled プロパティを定義しています。 fetchCalled は fetch 関数が呼ばれたら true になります。 -これで準備は完了です。 - -このモックを使ってテストをします。このテストで「 ViewController がロードされた時(viewDidLoad)に dataProvider を使って fetch() を実行するか」という動作をテストしています。 - -```swift -// Swift -override func spec() { - describe("view controller") { - it("fetch data with data provider") { - let mockProvier = MockDataProvider() - let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController") as! ViewController - viewController.dataProvier = mockProvier - - expect(mockProvier.fetchCalled).to(equal(false)) - - let _ = viewController.view - - expect(mockProvier.fetchCalled).to(equal(true)) - } - } -} -``` - -このようにオブジェクトのモックを作ることで動作をテストしやすくなります。 - -テストの書き方について、更に詳細を知りたい方はこちらのビデオを参考にしてください。 https://realm.io/jp/news/testing-in-swift/ 。 diff --git a/Carthage/Checkouts/Quick/Documentation/ja/TestingApps.md b/Carthage/Checkouts/Quick/Documentation/ja/TestingApps.md deleted file mode 100644 index db389ee..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/TestingApps.md +++ /dev/null @@ -1,174 +0,0 @@ -# Testing OS X and iOS Applications - -*[Xcodeでテストを用意しましょう](SettingUpYourXcodeProject.md)*では Objective-C や Swift の関数やクラスを -テストするために必要なことを述べました。ここでは `UIViewController` のサブクラスなどをテストする際のポイントを述べます。 - -> 関連する LT がありますので[こちら](https://vimeo.com/115671189#t=37m50s)も参考にしてください。 (37'50" から始まる部分です)。 - -## `UIViewController` のライフサイクルイベントを発火させる - -通常は UIKit が view controller のライフサイクルイベントを発火しますが、 -テストをする時は自分たちでライフサイクルイベントを発火させる必要があります。 -呼び出すには3つの方法があります。 - -1. `UIViewController.view`にアクセスする、すると `UIViewController.viewDidLoad()` のイベントが発火します。 -2. `UIViewController.beginAppearanceTransition()` を呼び出すとほとんどのライフサイクルイベントが発火します。。 -3. `UIViewController.viewDidLoad()` や `UIViewController.viewWillAppear()` などのライフサイクルに関わる関数を直接呼び出す。 - -```swift -// Swift - -import Quick -import Nimble -import BananaApp - -class BananaViewControllerSpec: QuickSpec { - override func spec() { - var viewController: BananaViewController! - beforeEach { - viewController = BananaViewController() - } - - describe(".viewDidLoad()") { - beforeEach { - // Method #1: Access the view to trigger BananaViewController.viewDidLoad(). - let _ = viewController.view - } - - it("sets the banana count label to zero") { - // Since the label is only initialized when the view is loaded, this - // would fail if we didn't access the view in the `beforeEach` above. - expect(viewController.bananaCountLabel.text).to(equal("0")) - } - } - - describe("the view") { - beforeEach { - // Method #2: Triggers .viewDidLoad(), .viewWillAppear(), and .viewDidAppear() events. - viewController.beginAppearanceTransition(true, animated: false) - viewController.endAppearanceTransition() - } - // ... - } - - describe(".viewWillDisappear()") { - beforeEach { - // Method #3: Directly call the lifecycle event. - viewController.viewWillDisappear(false) - } - // ... - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; -#import "BananaViewController.h" - -QuickSpecBegin(BananaViewControllerSpec) - -__block BananaViewController *viewController = nil; -beforeEach(^{ - viewController = [[BananaViewController alloc] init]; -}); - -describe(@"-viewDidLoad", ^{ - beforeEach(^{ - // Method #1: Access the view to trigger -[BananaViewController viewDidLoad]. - [viewController view]; - }); - - it(@"sets the banana count label to zero", ^{ - // Since the label is only initialized when the view is loaded, this - // would fail if we didn't access the view in the `beforeEach` above. - expect(viewController.bananaCountLabel.text).to(equal(@"0")) - }); -}); - -describe(@"the view", ^{ - beforeEach(^{ - // Method #2: Triggers .viewDidLoad(), .viewWillAppear(), and .viewDidAppear() events. - [viewController beginAppearanceTransition:YES animated:NO]; - [viewController endAppearanceTransition]; - }); - // ... -}); - -describe(@"-viewWillDisappear", ^{ - beforeEach(^{ - // Method #3: Directly call the lifecycle event. - [viewController viewWillDisappear:NO]; - }); - // ... -}); - -QuickSpecEnd -``` - -## Storyboard 内に定義した View Controller を初期化する - -Storyboard 内に定義した View Controller を初期化する際は **Storyboard ID** を定義しておく必要があります。 - -![](http://f.cl.ly/items/2X2G381K1h1l2B2Q0g3L/Screen%20Shot%202015-02-27%20at%2011.58.06%20AM.png) - -**Storyboard ID** を定義しておくとテストコードから ViewController を初期化することができます。 - -```swift -// Swift - -var viewController: BananaViewController! -beforeEach { - // 1. Instantiate the storyboard. By default, it's name is "Main.storyboard". - // You'll need to use a different string here if the name of your storyboard is different. - let storyboard = UIStoryboard(name: "Main", bundle: nil) - // 2. Use the storyboard to instantiate the view controller. - viewController = - storyboard.instantiateViewControllerWithIdentifier( - "BananaViewControllerID") as! BananaViewController -} -``` - -```objc -// Objective-C - -__block BananaViewController *viewController = nil; -beforeEach(^{ - // 1. Instantiate the storyboard. By default, it's name is "Main.storyboard". - // You'll need to use a different string here if the name of your storyboard is different. - UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; - // 2. Use the storyboard to instantiate the view controller. - viewController = [storyboard instantiateViewControllerWithIdentifier:@"BananaViewControllerID"]; -}); -``` - -## ボタンをタップされた、などの UIControl Events を発火させる - -ボタンや他の `UIControl` を継承したクラスは Control イベントを発火させる関数を持っています。 -ボタンをタップされた時の動作をテストするにはこのように書くことができます: - -```swift -// Swift - -describe("the 'more bananas' button") { - it("increments the banana count label when tapped") { - viewController.moreButton.sendActionsForControlEvents( - UIControlEvents.TouchUpInside) - expect(viewController.bananaCountLabel.text).to(equal("1")) - } -} -``` - -```objc -// Objective-C - -describe(@"the 'more bananas' button", ^{ - it(@"increments the banana count label when tapped", ^{ - [viewController.moreButton sendActionsForControlEvents:UIControlEventTouchUpInside]; - expect(viewController.bananaCountLabel.text).to(equal(@"1")); - }); -}); -``` diff --git a/Carthage/Checkouts/Quick/Documentation/ja/Troubleshooting.md b/Carthage/Checkouts/Quick/Documentation/ja/Troubleshooting.md deleted file mode 100644 index 095dad3..0000000 --- a/Carthage/Checkouts/Quick/Documentation/ja/Troubleshooting.md +++ /dev/null @@ -1,9 +0,0 @@ -# トラブルシューティング - -Quick を使用するときによくぶつかる問題の解決策を紹介します。 - -## Cocoapods でインストールした時に「No such module 'Quick'」エラーが出る - -- すでに `pod install` を実行していた場合、一度 Xcode workspace を閉じて再度開いてみてください。それでも解決しない場合は次の手順を試してみてください。 -- `ModuleCache` を含む `~/Library/Developer/Xcode/DerivedData` をすべて削除してください。 -- `Manage Schemes`ダイアログから`Quick`、`Nimble`、`Pods-ProjectNameTests` ターゲットの Scheme が有効なことを確認して、明示的にビルド(`Cmd+B`)をやり直してみてください。 diff --git a/Carthage/Checkouts/Quick/Documentation/pt-br/BehavioralTesting.md b/Carthage/Checkouts/Quick/Documentation/pt-br/BehavioralTesting.md deleted file mode 100644 index 4e41676..0000000 --- a/Carthage/Checkouts/Quick/Documentation/pt-br/BehavioralTesting.md +++ /dev/null @@ -1,78 +0,0 @@ -# Não Teste o Código, Verifique Comportamento - -Testes devem falhar somente se a aplicação **se comportar diferente**. -Eles devem testar *o que* o código da aplicação faz, não *como* faz. - -- Testes que verificam *o que* a aplicação faz são **testes de comportamento**. -- Testes que quebram se o código da aplicação muda, mesmo que o comportamento seja mantido, são **teste frágeis**. - -Vamos supor que temos uma database de bananas, chamada `GorillaDB`. -`GorillaDB` é uma database baseada em chave-valor que guarda bananas. Nós podemos salvar bananas: - -```swift -let database = GorillaDB() -let banana = Banana() -database.save(banana: banana, key: "my-banana") -``` - -E podemos ler bananas: - -```swift -let banana = database.load(key: "my-banana") -``` - -## Testes Frágeis - -Como podemos testar esse comportamento? Um jeito seria checar o tamanho da database depois de salvar uma banana: - -```swift -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { - // Arrange: Create a database and get its original size. - let database = GorillaDB() - let originalSize = database.size - - // Act: Save a banana to the database. - let banana = Banana() - database.save(banana: banana, key: "test-banana") - - // Assert: The size of the database should have increased by one. - XCTAssertEqual(database.size, originalSize + 1) -} -``` - - -Imagine, no entanto, que o código fonte da `GorillaDB` mude. Para que a operação de leitura de bananas da database seja mais rápida, é mantido um cache com as bananas lidas com maior frequência. `GorillaDB.size` aumenta conforme o tamanho do cache aumenta, e nosso teste falha: - -![](https://raw.githubusercontent.com/Quick/Assets/master/Screenshots/Screenshot_database_size_fail.png) - -## Testes de Comportamento - -O segredo para escrever testes de comportamento é determinar exatamente o que se espera que o código da aplicação faça. - -No contexto do teste `testSave_savesTheBananaToTheDatabase`: qual é o comportamento esperado quando uma banana é salva na database? "Salvar" implica que essa banana pode ser lida mais tarde. Então, ao invés de testar que o tamanho da database aumenta, nós devemos testar que é possível ler uma banana. - -```diff -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { - // Arrange: Create a database and get its original size. - let database = GorillaDB() -- let originalSize = database.size - - // Act: Save a banana to the database. - let banana = Banana() - database.save(banana: banana, key: "test-banana") - -- // Assert: The size of the database should have increased by one. -- XCTAssertEqual(database.size, originalSize + 1) -+ // Assert: The bananas saved to and loaded from the database should be the same. -+ XCTAssertEqual(database.load(key: "test-banana"), banana) -} -``` - -O segredo para escrever testes de comportamento é perguntar: - -- O que exatamente o código dessa aplicação deve fazer? -- O meu teste está verificando *apenas* esse comportamento? Ou o teste pode falhar devido à forma como o código funciona? \ No newline at end of file diff --git a/Carthage/Checkouts/Quick/Documentation/pt-br/README.md b/Carthage/Checkouts/Quick/Documentation/pt-br/README.md deleted file mode 100644 index c170942..0000000 --- a/Carthage/Checkouts/Quick/Documentation/pt-br/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Documentação - -Quick te ajuda a verificar como programas em Swift e Objective-C se comportam. - -Fazê-lo de forma eficaz não é apenas questão de saber como usar Quick. Os guias nesse diretório podem te ajudar a escrever testes eficazes --não apenas usando Quick, mas até mesmo XCTest ou outros framework de teste. - -Cada guia cobre um tópico em particular. Se você é completamente novo a teste unitário, considere lê-los na ordem que são introduzidos abaixo: - -- **[Configurar Testes no seu Xcode Project](SettingUpYourXcodeProject.md)**: - Leia isto se você esta com problemas para usar o código da sua aplicação de dentro dos seus arquivos de teste. -- **[Testes Eficazes Usando XCTest: Arrange, Act e Assert](ArrangeActAssert.md)**: - Leia isto para aprender como escrever `XCTestcase` testes que o ajudarão a escrever código mais rápido e mais eficaz. -- **[Não Teste o Código, Verifique Comportamento](BehavioralTesting.md)**: - Leia isto para aprender que tipos de testes te deixam mais rápido e quais os que só vão acabar te deixando mais devagar. -- **[Testes Limpos Usando Nimble Assertions](NimbleAssertions.md)**: - Leia isto para aprender a usar Nimble para gerar melhores mensagens de falha. - Melhores mensagens de falha ajudam a se mover mais rápido, gastando menos tempo tentando descobrir por que -    um teste falhou. -- **[Testes Organizados com Exemplos Quick e Grupos de Exemplo](QuickExamplesAndGroups.md)**: - Leia isto para aprender como Quick pode ajudar ainda mais a escrever testes eficazes, usando *exemplos* e *grupos de exemplos* -- **[Testando Aplicações OS X e iOS](TestingApps.md)**: - Leia isto para aprender mais sobre testar código que utiliza - AppKit e UIKit frameworks. -- **[Testando com testes dublês](TestUsingTestDoubles.md)**: - Leia isto para aprender o que são testes dublês e como usa-lôs. -- **[Reduzindo Teste Boilerplate com Assertions Compartilhados](SharedExamples.md)**: - Leia isto para aprender como compartilhar conjuntos de assertions entre seus testes. -- **[Configurando como Quick se Comporta](ConfiguringQuick.md)**: - Leia isto para aprender como você pode mudar como Quick se comporta quando roda os sua suite de testes. -- **[Usando Quick com Objective-C](QuickInObjectiveC.md)**: - Leia isto se você esta com problemas para usar Quick em Objective-C. -- **[Instalando Quick](InstallingQuick.md)**: - Leia isto para instruções de como adicionar Quick no seu projeto, usando Git submodules, CocoaPods, Carthage, ou Swift Package Manager. -- **[Instalando Arquivos Templates Quick](InstallingFileTemplates.md)**: -Leia isto para aprender como instalar arquivos templates que deixam escrever Quick specs mais rápidos. -- **[Mais Recursos](MoreResources.md)**: - Uma lista de recursos adicionais sobre testes OS X e iOS. -- **[Troubleshooting](Troubleshooting.md)**: - Leia isto quando você tiver outros problemas. diff --git a/Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md b/Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md deleted file mode 100644 index eabde35..0000000 --- a/Carthage/Checkouts/Quick/Documentation/pt-br/SharedExamples.md +++ /dev/null @@ -1,116 +0,0 @@ -# Reduzindo Teste Boilerplate com Assertions Compartilhados - -Em alguns casos, o mesmo conjunto de especificações se aplica a múltiplos objetos. - -Por exemplo, considere um protocol chamado `Edible` (comestível). Quando um golfinho come algo `Edible`, ele fica feliz. `Mackerel` (um tipo de peixe) e `Cod` (bacalhau) são comestíveis. Quick permite testar facilmente que um golfinho fica feliz quando come qualquer um desses peixes. - -O exemplo abaixo define um conjunto de "exemplos compartilhados" para "algo comestível", e especifica que tanto `Mackerel` quanto `Cod` se comportam como "algo comestível": - - -```swift -// Swift - -import Quick -import Nimble - -class EdibleSharedExamplesConfiguration: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - sharedExamples("something edible") { (sharedExampleContext: SharedExampleContext) in - it("makes dolphins happy") { - let dolphin = Dolphin(happy: false) - let edible = sharedExampleContext()["edible"] - dolphin.eat(edible) - expect(dolphin.isHappy).to(beTruthy()) - } - } - } -} - -class MackerelSpec: QuickSpec { - override func spec() { - var mackerel: Mackerel! - beforeEach { - mackerel = Mackerel() - } - - itBehavesLike("something edible") { ["edible": mackerel] } - } -} - -class CodSpec: QuickSpec { - override func spec() { - var cod: Cod! - beforeEach { - cod = Cod() - } - - itBehavesLike("something edible") { ["edible": cod] } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickConfigurationBegin(EdibleSharedExamplesConfiguration) - -+ (void)configure:(Configuration *configuration) { - sharedExamples(@"something edible", ^(QCKDSLSharedExampleContext exampleContext) { - it(@"makes dolphins happy") { - Dolphin *dolphin = [[Dolphin alloc] init]; - dolphin.happy = NO; - id edible = exampleContext()[@"edible"]; - [dolphin eat:edible]; - expect(dolphin.isHappy).to(beTruthy()) - } - }); -} - -QuickConfigurationEnd - -QuickSpecBegin(MackerelSpec) - -__block Mackerel *mackerel = nil; -beforeEach(^{ - mackerel = [[Mackerel alloc] init]; -}); - -itBehavesLike(@"something edible", ^{ return @{ @"edible": mackerel }; }); - -QuickSpecEnd - -QuickSpecBegin(CodSpec) - -__block Mackerel *cod = nil; -beforeEach(^{ - cod = [[Cod alloc] init]; -}); - -itBehavesLike(@"something edible", ^{ return @{ @"edible": cod }; }); - -QuickSpecEnd -``` - -Exemplos compartilhados podem incluir qualquer número de blocos `it`, `context` e `describe`. Isso economiza *muito* quando deve-se escrever os mesmos testes para diferentes objetos. - -Em alguns casos, nenhum `context` adicional é necessário. Em Swift, é possível usar `sharedExamples` closures que não recebem parâmetros. Isso pode ser útil quando se esta algum estado global: - - -```swift -// Swift - -import Quick - -sharedExamples("everything under the sea") { - // ... -} - -itBehavesLike("everything under the sea") -``` - -> Em Objective-C, é necessário passar um bloco que recebe um `QCKDSLSharedExampleContext`, mesmo se esse argumento não for usado. Desculpe, mas é assim que a banda toca! :trumpet: :notes: - -Também é possível "focar" exemplos compartilhados usando a função `fitBehavesLike`. \ No newline at end of file diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/ArrangeActAssert.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/ArrangeActAssert.md deleted file mode 100644 index fda4f8a..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/ArrangeActAssert.md +++ /dev/null @@ -1,205 +0,0 @@ -# 编写高效的 XCTest 测试: Arrange,Act 和 Assert - -当你使用 XCTest,Quick 或者其他测试框架时,你可以遵循下面的模式来编写有效的单元测试: - -1. Arrange - 安排好所有先要条件和输入 -2. Act - 对要测试的对象或方法进行演绎 -3. Assert - 作出预测结果的断言 - -## Arrange, Act, and Assert 三部曲 - -举个例子,假设现在有一个叫 `Banana` 的类: - -```swift -// Banana/Banana.swift - -/** A delicious banana. Tastes better if you peel it first. */ -public class Banana { - private var isPeeled = false - - /** Peels the banana. */ - public func peel() { - isPeeled = true - } - - /** You shouldn't eat a banana unless it's been peeled. */ - public var isEdible: Bool { - return isPeeled - } -} -``` - -现在我们想验证一下 `Banana.peel()` 方法的行为是否跟我们设想的一样: - -```swift -// BananaTests/BananaTests.swift - -class BananaTests: XCTestCase { - func testPeel() { - // Arrange: Create the banana we'll be peeling. - let banana = Banana() - - // Act: Peel the banana. - banana.peel() - - // Assert: Verify that the banana is now edible. - XCTAssertTrue(banana.isEdible) - } -} -``` - -## 使用明确清晰的方法名字 - -我们的 `testPeel()` 函数可以确保如果 `Banana.peel()` 方法出了问题,我们可以第一时间知道。这通常发生在我们修改了应用的代码后,同时也意味着: - -1. 如果我们意外地写错了代码,我们需要修复它从而让代码正常工作。 -2. 或者我们可能为了增加一个新的功能而改变原有的代码 —— 因此我们需要更改现有的测试代码。 - -如果我们的测试开始出现失败,怎么才能知道是哪一个测试用例失败呢?这可能会让你吃惊,最好的办法是从 **测试方法的名字** 找出端倪。好的测试方法会: - -1. 明确什么是对正在被测试的对象。 -2. 明确什么时候测试应该通过,什么时候测试应该失败。 - -那我们上面的 `testPeel()` 方法的命名清晰吗?我们可以让它变得更清晰: - -```diff -// BananaTests.swift - --func testPeel() { -+func testPeel_makesTheBananaEdible() { - // Arrange: Create the banana we'll be peeling. - let banana = Banana() - - // Act: Peel the banana. - banana.peel() - - // Assert: Verify that the banana is now edible. - XCTAssertTrue(banana.isEdible) -} -``` - -新的方法命名: - -1. 明确了什么是正在被测试的对象:`testPeel` 指明了正在被测试的是 `Banana.peel()` 方法。 -2. 明确了测试通过的条件:`makesTheBananaEdible` 指明了只要这个测试方法被调用后,香蕉就已经被剥皮(可食用)。 - -## 对条件进行测试 - -假设我们现在可以向别人提供香蕉,有这样一个叫 `offer()` 的函数: - -```swift -// Banana/Offer.swift - -/** Given a banana, returns a string that can be used to offer someone the banana. */ -public func offer(banana: Banana) -> String { - if banana.isEdible { - return "Hey, want a banana?" - } else { - return "Hey, want me to peel this banana for you?" - } -} -``` - -我们的代码做了以下其中一件事: - -1. 给别人一个已经被剥过皮的香蕉。 -2. 或者给别人一个没剥皮的香蕉。 - -现在让我们为这两种情况编写测试: - -```swift -// BananaTests/OfferTests.swift - -class OfferTests: XCTestCase { - func testOffer_whenTheBananaIsPeeled_offersTheBanana() { - // Arrange: Create a banana and peel it. - let banana = Banana() - banana.peel() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want a banana?") - } - - func testOffer_whenTheBananaIsntPeeled_offersToPeelTheBanana() { - // Arrange: Create a banana. - let banana = Banana() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want me to peel this banana for you?") - } -} -``` - -我们的方法名字清晰地指明了测试通过时所应具备的**条件**:在 `whenTheBananaIsPeeled` 测试中,`offer()` 方法应该 `offersTheBanana`。那香蕉没被剥皮的情况呢?好吧,我们也写了另外一个测试来测试这种情况。 - -注意,我们为每个 `if` 条件单独写了一个测试。在我们写测试时,确保每个条件都能被测试,是一个好的模式。如果其中一个条件不再满足,或者需要修改,我们就很容易知道哪个测试需要处理。 - -## 用 `XCTestCase.setUp()` 来编写更简洁的 "Arrange" - -我们的两个 `OfferTests` 测试都包含了相同的 "Arrange" 代码:他们都初始化了一个香蕉。我们应该把初始化方法移到一个单独的地方。为什么? - -1. 现在,假设需要修改 `Banana` 的初始化方法,那么我们就要对每个方法进行修改。 -2. 我们的测试方法会更加简洁 —— 这对于我们是一件好事,当且**仅当**测试方法能更容易被人阅读的时候。 - -现在我们把 `Banana` 的初始化方法移到 `XCTestCase.setUp()` 方法里,这样当每个测试开始时,初始化方法都会被调用。 - -```diff -// OfferTests.swift - -class OfferTests: XCTestCase { -+ var banana: Banana! -+ -+ override func setUp() { -+ super.setUp() -+ banana = Banana() -+ } -+ - func testOffer_whenTheBananaIsPeeled_offersTheBanana() { -- // Arrange: Create a banana and peel it. -- let banana = Banana() -+ // Arrange: Peel the banana. - banana.peel() - - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want a banana?") - } - - func testOffer_whenTheBananaIsntPeeled_offersToPeelTheBanana() { -- // Arrange: Create a banana. -- let banana = Banana() -- - // Act: Create the string used to offer the banana. - let message = offer(banana) - - // Assert: Verify it's the right string. - XCTAssertEqual(message, "Hey, want me to peel this banana for you?") - } -} -``` - -## 在不同的测试里共享 "Arrange" 代码 - -如果你发现你在很多地方都有相同重复的 "arrange" 方法,你可能想定义一个通用的 helper 函数: - -```swift -// BananaTests/BananaHelpers.swift - -internal func createNewPeeledBanana() -> Banana { - let banana = Banana() - banana.peel() - return banana -} -``` - -> 用一个通用函数来定义那些不能被抽象,或不会保存状态的方法。抽象的子类和可修改的状态会使你的测试难以阅读。 - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/BehavioralTesting.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/BehavioralTesting.md deleted file mode 100644 index 70a0b51..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/BehavioralTesting.md +++ /dev/null @@ -1,75 +0,0 @@ -# 别测试代码,而应该验证程序的行为 - -测试应该只在程序的**行为和预期的不一样**时,才不通过。测试应该测试程序的代码做了什么,而不是测试程序如何实现。 - -- 验证应用程序做了什么的,叫做**行为测试**。 -- 即使应用程序的行为不发生变化,只要应用程序的代码发生了变化,测试就不通过的,叫做**脆性测试**。 - -假设我们有一个香蕉数据库,叫做 `GorillaDB`。`GorillaDB` 是一个以键-值对来储存香蕉的数据库。我们可以用这样的方式储存香蕉: - -```swift -let database = GorillaDB() -let banana = Banana() -database.save(banana: banana, key: "my-banana") -``` - -之后可以从数据库里取回香蕉: - -```swift -let banana = database.load(key: "my-banana") -``` - -## 脆性测试 - -我们如何测试这个存取的行为呢?一种方式是每当我们储存一根香蕉后就检查数据库的大小: - -```swift -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { -// Arrange: Create a database and get its original size. -let database = GorillaDB() -let originalSize = database.size - -// Act: Save a banana to the database. -let banana = Banana() -database.save(banana: banana, key: "test-banana") - -// Assert: The size of the database should have increased by one. -XCTAssertEqual(database.size, originalSize + 1) -} -``` - -然而,设想一下 `GorillaDB` 的源代码发生了变化。为了从数据库里更快地取出香蕉,数据库预留了一部份缓存空间用于存放经常使用的香蕉。`GorillaDB.size` 就会随着缓存的增加而增加,这样我们的测试就不能通过了: - -![](https://raw.githubusercontent.com/Quick/Assets/master/Screenshots/Screenshot_database_size_fail.png) - -## 行为测试 - -编写行为测试的关键,就是准确的定位你想让你的程序代码做什么。 - -在我们的 `testSave_savesTheBananaToTheDatabase` 的测试中:当我们在数据库中储存一根香蕉时,我们所希望程序完成的是一个怎样的行为呢?应该是保存香蕉,即之后可以取回香蕉。因此,我们不该测试数据库大小的增加,而应该测试我们能不能从数据库里取回香蕉。 - -```diff -// GorillaDBTests.swift - -func testSave_savesTheBananaToTheDatabase() { -// Arrange: Create a database and get its original size. -let database = GorillaDB() -- let originalSize = database.size - -// Act: Save a banana to the database. -let banana = Banana() -database.save(banana: banana, key: "test-banana") - -- // Assert: The size of the database should have increased by one. -- XCTAssertEqual(database.size, originalSize + 1) -+ // Assert: The bananas saved to and loaded from the database should be the same. -+ XCTAssertEqual(database.load(key: "test-banana"), banana) -} -``` - -编写行为测试的关键,就在于思考这些问题: - -- 这段程序代码是用来做什么的? -- 我的测试只验证了程序的行为吗?它可能因为代码运行的其他原因而不通过吗? diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/ConfiguringQuick.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/ConfiguringQuick.md deleted file mode 100644 index fc5ba90..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/ConfiguringQuick.md +++ /dev/null @@ -1,102 +0,0 @@ -# 配置 Quick 的行为 - -你可以通过继承 `QuickConfiguration` 并且 -重写 `QuickConfiguration.Type.configure()` 类方法的方式来自定义 Quick 的行为。 - -```swift -// Swift - -import Quick - -class ProjectDataTestConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - // ...set options on the configuration object here. - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickConfigurationBegin(ProjectDataTestConfiguration) - -+ (void)configure:(Configuration *configuration) { - // ...set options on the configuration object here. -} - -QuickConfigurationEnd -``` - -一个项目可能包含多个配置。Quick 不保证这些配置执行的先后顺序。 - -## 添加全局闭包 `beforeEach` 和 `afterEach` - -你可以通过使用 `QuickConfiguration.beforeEach` 和 `QuickConfiguration.afterEach` ,执行测试中每个例子运行前或运行后特定的闭包代码: - -```swift -// Swift - -import Quick -import Sea - -class FinConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - configuration.beforeEach { - Dorsal.sharedFin().height = 0 - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -#import "Dorsal.h" - -QuickConfigurationBegin(FinConfiguration) - -+ (void)configure:(Configuration *)configuration { - [configuration beforeEach:^{ - [Dorsal sharedFin].height = 0; - }]; -} - -QuickConfigurationEnd -``` - -另外,Quick 允许你根据当前正在运行的例子,访问元数据: - -```swift -// Swift - -import Quick - -class SeaConfiguration: QuickConfiguration { - override class func configure(configuration: Configuration) { - configuration.beforeEach { exampleMetadata in - // ...use the example metadata object to access the current example name, and more. - } - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickConfigurationBegin(SeaConfiguration) - -+ (void)configure:(Configuration *)configuration { - [configuration beforeEachWithMetadata:^(ExampleMetadata *data) { - // ...use the example metadata object to access the current example name, and more. - }]; -} - -QuickConfigurationEnd -``` - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingFileTemplates.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingFileTemplates.md deleted file mode 100644 index 7e35365..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingFileTemplates.md +++ /dev/null @@ -1,26 +0,0 @@ -# 安装 Quick 文件模板 - -Quick 仓库包含了 Swift 和 Objective-C 规范的文件模板。 - -## Alcatraz - -Quick 模板可以通过 [Alcatraz](https://github.com/supermarin/Alcatraz) 安装,这是一个 Xcode 的包管理器。只需在包管理器里搜索 Quick : - -![](http://f.cl.ly/items/3T3q0G1j0b2t1V0M0T04/Screen%20Shot%202014-06-27%20at%202.01.10%20PM.png) - -## 使用 Rakefile 手动安装 - -如果想手动安装模板,那么只需克隆仓库并运行 rake 命令 `templates:install` : - -```sh -$ git clone git@github.com:Quick/Quick.git -$ rake templates:install -``` - -若要卸载模板,可以运行命令: - -```sh -$ rake templates:uninstall -``` - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingQuick.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingQuick.md deleted file mode 100644 index 2f54b0a..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/InstallingQuick.md +++ /dev/null @@ -1,157 +0,0 @@ -# 安装 Quick - -> **如果你的 Xcode 版本是7.1,** 请使用新的 Quick--`v0.9.0` 写测试代码。 -> 新发布的版本是基于 `swift-2.0` 这个分支开发的。 - - - -Quick 提供了定义例子和例子群的语法。 Nimble 提供了如 `expect(...).to` 的断言语法。 在写测试代码的时候,你可以使用它们中的任意一个或者同时使用它们。 - -下面是几种主要的方法,用来添加 Quick 支持: - -1. [Git Submodules](#git-submodules) -2. [CocoaPods](#cocoapods) -3. [Carthage](#carthage) -4. [Swift Package Manager (experimental)](#swift-package-manager) - -你可以选择其中一种方法,并按照下面的步骤进行。完成之后,就可以通过 `import Quick` 使你的测试支持 Quick 。 - -## Git Submodules - -通过以下步骤可以使用 Git 的子模块(submodules) 为项目添加 Quick 和 Nimble : - -1. 添加子模块 Quick。 -2. 为你的项目新建一个 `.xcworkspace` 文件,如果原本已经有这个文件,则跳过此步骤。 ([如何添加请看这里](https://developer.apple.com/library/ios/recipes/xcode_help-structure_navigator/articles/Adding_an_Existing_Project_to_a_Workspace.html)) -3. 把 `Quick.xcodeproj` 添加到项目的 `.xcworkspace`中。 -4. 把 `Nimble.xcodeproj` 添加到项目的 `.xcworkspace`中。它所在的目录是: `path/to/Quick/Externals/Nimble`。 通过从 Quick 的依赖库中添加 Nimble (而不是直接添加为子模块),可以确保无论所用的 Quick 是什么版本,都能使用正确版本的 Nimble 。 -5. 把 `Quick.framework` 和 `Nimble.framework` 添加到项目 "build phase" 选项页的 "Link Binary with Libraries" 列表中。 - -首先,你需要有一个 Git 子模块的目录,如果没有的话,就创建一个。假设这个目录的名称是 "Vendor" 。 - -**第一步:** 下载 Quick 和 Nimble 作为 Git 的子模块: - -```sh -git submodule add git@github.com:Quick/Quick.git Vendor/Quick -git submodule add git@github.com:Quick/Nimble.git Vendor/Nimble -git submodule update --init --recursive -``` - -**第二步:** 把下载完的 `Quick.xcodeproj` 和 `Nimble.xcodeproj` 文件添加到项目的 `.xcworkspace` 上。 例如:下图是 `Guanaco.xcworkspace` 已经添加了 Quick 和 Nimble : - -![](http://f.cl.ly/items/2b2R0e1h09003u2f0Z3U/Screen%20Shot%202015-02-27%20at%202.19.37%20PM.png) - -**第三步:** 把 `Quick.framework` 添加到测试目标(target)的 `Link Binary with Libraries` 列表中。你会发现有两个 `Quick.frameworks`;其中一个是 OS X 平台的,另一个是 iOS 平台的。 - -![](http://cl.ly/image/2L0G0H1a173C/Screen%20Shot%202014-06-08%20at%204.27.48%20AM.png) - -重复上面的步骤,添加 `Nimble.framework`。 - -**更新子模块:** 如果你想把 Quick 和 Nimble 模块升级到最新版本,你可以在 Quick 目录下使用 `pull` 来更新,如下: - -```sh -cd /path/to/your/project/Vendor/Quick -git checkout master -git pull --rebase origin master -``` - -你的 Git 仓库会自动同步更改到子模块中。如果你想确保已经更新了 Quick 子模块,那么可以这样: - -```sh -cd /path/to/your/project -git commit -m "Updated Quick submodule" -``` - -**克隆一个包含有 Quick 子模块的仓库:** 当其他人克隆了你的仓库后,他们会同时拥有这些子模块。 -他们可以运行 `git submodule update` 命令: - -```sh -git submodule update --init --recursive -``` - -更多关于子模块的内容,可以参考[这里](http://git-scm.com/book/en/Git-Tools-Submodules)。 - -## CocoaPods - -首先,请把 CocoaPods 升级到0.36或者更高的版本,这样才能在 Swift 下使用 CocoaPods 。 - -然后在你的 Podfile 中添加 Quick 和 Nimble 。并且为了在 Swift 中使用 CocoaPods ,记得加上这一行: ```use_frameworks!``` 。 - -```rb - -# Podfile - -use_frameworks! - -def testing_pods - pod 'Quick' - pod 'Nimble' -end - -target 'MyTests' do - testing_pods -end - -target 'MyUITests' do - testing_pods -end -``` - -最后,下载并将 Quick 和 Nimble 导入到你的测试中: - -```sh -pod install -``` - -### 使用 Swift 1.2 ? - -最近发布的 Quick (0.4.0) 适用于 Swift 2 (Xcode 7),但是 Nimble (1.0.0) 适用于 Swift 1.2 (Xcode 6)。 - -如果你想在 Xcode 6 中使用它们,请使用以下这段代码: - -```sh -target 'MyTests' do - use_frameworks! - pod 'Quick', '~>0.3.0' - pod 'Nimble', '~>1.0.0' -end -``` - -## [Carthage](https://github.com/Carthage/Carthage) - -在一个项目中,测试所在的目标(target)并没有 "Embedded Binaries" 这部分内容, 因此必须把框架添加到目标的 "Link Binary With Libraries" 里,并且在 build phase 选项页中新建一条 "Copy Files" 把它们复制到目标的框架列表中。 - - > 因为 Carthage 生成的是动态的框架,所以你需要有一个合法的身份标识。 - -1. 在 [`Cartfile.private`](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfileprivate) 中添加 Quick ,如下: - - ``` - github "Quick/Quick" - github "Quick/Nimble" - ``` - -2. 运行 `carthage update`。 -3. 从 `Carthage/Build/[platform]/` 目录下, 找到 Quick 框架和 Nimble 框架,把它们添加到测试目标的 "Link Binary With Libraries" 列表中: - ![](http://i.imgur.com/pBkDDk5.png) - -4. 在你的测试目标下新建一条 "Copy Files" : - ![](http://i.imgur.com/jZATIjQ.png) - -5. 将 "Destination" 设为 "Frameworks",然后添加这两个框架: - ![](http://i.imgur.com/rpnyWGH.png) - -注意,这并不是使用 Carthage 来管理依赖的唯一方法。更多的方法请参考 [Carthage documentation](https://github.com/Carthage/Carthage/blob/master/README.md)。 - -## [Swift Package Manager](https://github.com/apple/swift-package-manager) -随着 [swift.org](https://swift.org) 上一个开源项目的出现, Swift 现在有了一个官方的包管理器。 尽管它刚问世不久,但是它首次使在非苹果平台上使用 Quick 成为了可能。经过初期的开发,现在已经可以利用 Swift Package Manager 为测试项目添加 Quick 支持了。但是由于这个包管理器正在开发中,在使用的过程中可能会出现一些问题。 - -在更新的帮助文档发布之前,这个项目阐述了如何在 SwiftPM 的 `Package.swift` 中添加 Quick 。 - -https://github.com/Quick/QuickOnLinuxExample - -### (不建议) 在真实的iOS设备上运行用Quick书写的代码 - -为了在设备上运行 Quick 形式的代码,你需要把 `Quick.framework` 和 `Nimble.framework` 作为 `Embedded Binaries` 添加到项目目标的 `Host Application` 里。 当以二进制文件的形式把框架添加到 Xcode 中,Xcode 会自动为 App 添加 Quick 框架。 - -![](http://indiedev.kapsi.fi/images/embed-in-host.png) - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/MoreResources.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/MoreResources.md deleted file mode 100644 index 0a9ed84..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/MoreResources.md +++ /dev/null @@ -1,23 +0,0 @@ -# 更多资源 - -## Quick Specs 的例子 - -很多公司、开源项目和独立开发者都使用了 Quick ,包括 [GitHub](https://github.com/github) 和 [ReactiveCocoa](https://github.com/ReactiveCocoa)。具体例子请参考以下链接: - -- https://github.com/ReactiveCocoa/ReactiveCocoa -- https://github.com/github/Archimedes -- https://github.com/libgit2/objective-git -- https://github.com/jspahrsummers/RXSwift -- https://github.com/artsy/eidolon -- https://github.com/AshFurrow/Moya -- https://github.com/nerdyc/Squeal -- https://github.com/pepibumur/SugarRecord - -## 关于 OS X 和 iOS 应用单元测试的更多信息 - -- **[Quality Coding](http://qualitycoding.org/)**:一个关注单元测试的 iOS 开发博客。 -- **[OCMock Tutorials](http://ocmock.org/support/)**:当你需要在测试中使用伪对象时,使用 OCMock 。 -- **[Nocilla: Stunning HTTP stubbing for iOS and Mac OS X](https://github.com/luisobo/Nocilla)**:使用这个库来测试那些与互联网进行数据交换的代码。 -- **[Pivotal Labs: Writing Beautiful Specs with Jasmine Custom Matchers](http://pivotallabs.com/writing-beautiful-specs-jasmine-custom-matchers/)**:参考 [the Nimble documentation](https://github.com/Quick/Nimble) ,了解如何用 Nimble 编写自定义的匹配器。 - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/NimbleAssertions.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/NimbleAssertions.md deleted file mode 100644 index b64919c..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/NimbleAssertions.md +++ /dev/null @@ -1,100 +0,0 @@ -# 使用 Nimble 断言,让测试更清晰 - -当代码不能如预期那样正常运行时,单元测试应该能够反映出问题的所在。 - -例如,下面这个函数能够从所给的一组猴子中筛选并返回其中的傻猴子: - -```swift -public func silliest(monkeys: [Monkey]) -> [Monkey] { - return monkeys.filter { $0.silliness == .VerySilly } -} -``` - -现在有一个针对这个函数的单元测试: - -```swift -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) - XCTAssertTrue(contains(sillyMonkeys, kiki)) -} -``` - -这个测试运行失败,并返回以下信息: - -``` -XCTAssertTrue failed -``` - -![](http://f.cl.ly/items/1G17453p47090y30203d/Screen%20Shot%202015-02-26%20at%209.08.27%20AM.png) - -我们无法从失败信息中获得有用的东西,只能说:“好吧,原本预期为真的表达式,现在却为假。但这是为什么呢?” -像这样的困惑会降低我们的效率,因为我们现在不得不花时间理解这些测试代码。 - -## 更好的失败返回信息,第一部分:手动设定 `XCTAssert` 的返回信息 - -`XCTAssert` 这个断言(Assertion)允许我们设定运行失败时的返回信息(下面简称“返回信息”),这当然有一定的作用: - -```diff -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) -- XCTAssertTrue(contains(sillyMonkeys, kiki)) -+ XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'") -} -``` - -但是,我们就不得不亲自设置这些返回信息。 - -## 更好的失败返回信息,第二部分:Nimble 的返回信息 - -Nimble 能让你的测试断言及其返回信息更便于阅读: - -```diff -func testSilliest_whenMonkeysContainSillyMonkeys_theyreIncludedInTheResult() { - let kiki = Monkey(name: "Kiki", silliness: .ExtremelySilly) - let carl = Monkey(name: "Carl", silliness: .NotSilly) - let jane = Monkey(name: "Jane", silliness: .VerySilly) - let sillyMonkeys = silliest([kiki, carl, jane]) -- XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'") -+ expect(sillyMonkeys).to(contain(kiki)) -} -``` - -我们不需要再亲自设置返回信息,因为 Nimble 提供的信息已经非常清楚了: - -``` -expected to contain , - got <[Monkey(name: Jane, silliness: VerySilly)]> -``` - -![](http://f.cl.ly/items/3N2e3g2K3W123b1L1J0G/Screen%20Shot%202015-02-26%20at%2011.27.02%20AM.png) - -这个返回信息清楚地点明了出错的地方:预期中 `kiki` 应该包含在 `silliest()` 的返回值里面,但是实际的返回值只包含 `jane` 。现在我们知道问题出在哪了,因此很容易解决问题: - -```diff -public func silliest(monkeys: [Monkey]) -> [Monkey] { -- return monkeys.filter { $0.silliness == .VerySilly } -+ return monkeys.filter { $0.silliness == .VerySilly || $0.silliness == .ExtremelySilly } -} -``` - -Nimble 提供了很多种类的断言,每个断言都带有清晰的返回信息。与 `XCTAssert` 不同,你不需要每次都亲自设定返回信息。 - -完整的 Nimble 断言列表,请参考 [Nimble README](https://github.com/Quick/Nimble) 。 -下面是一些例子,先睹为快: - -```swift -expect(1 + 1).to(equal(2)) -expect(1.2).to(beCloseTo(1.1, within: 0.1)) -expect(3) > 2 -expect("seahorse").to(contain("sea")) -expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi")) -expect(ocean.isClean).toEventually(beTruthy()) -``` - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickExamplesAndGroups.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickExamplesAndGroups.md deleted file mode 100644 index f17281d..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickExamplesAndGroups.md +++ /dev/null @@ -1,461 +0,0 @@ -# 用 Quick 例子和例子群组织测试 - -Quick 使用特殊的语法定义**例子(examples)**和**例子群(example groups)**。 - -在*[编写高效的 XCTest 测试: Arrange,Act 和 Assert](ArrangeActAssert.md)*,我们了解了一个好的测试方法名称是至关重要的,尤其是当测试失败时。它能够帮助我们判断是修改程序代码或者是更新测试内容。 - -Quick 的例子和例子群主要有两个目的: - -1. 它们促使你使用具有描述性的测试名称。 -2. 它们极大地简化了 Arrange 步骤的测试代码。 - -## 例子:使用 `it` - -定义了 `it` 函数的例子,使用断言代码指明了程序应有的行为。这些就像 XCTest 中的测试方法一样。 - -`it` 函数有两个参数:例子的名称和闭包。下面这个例子具体说明了 `Sea.Dolphin` 类应有的行为。 -一只新的海豚(dolphin)应该是聪明(smart)且友好(friendly)的: - -```swift -// Swift - -import Quick -import Nimble -import Sea - -class DolphinSpec: QuickSpec { - override func spec() { - it("is friendly") { - expect(Dolphin().isFriendly).to(beTruthy()) - } - - it("is smart") { - expect(Dolphin().isSmart).to(beTruthy()) - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -it(@"is friendly", ^{ - expect(@([[Dolphin new] isFriendly])).to(beTruthy()); -}); - -it(@"is smart", ^{ - expect(@([[Dolphin new] isSmart])).to(beTruthy()); -}); - -QuickSpecEnd -``` - -用描述性的语言使例子所测试的内容清晰明了。 -描述性的语言可以是任意长度、任意字符的,涵盖了英语以及其他语言的字符,甚至可以是表情符号!:v: :sunglasses: - -## 例子群:使用 `describe` 和 `context` - -例子群是按一定逻辑关系组织的例子。例子群里可以共享配置(setup)和卸载(teardown)代码。 - -### 使用 `describe` 描述类和方法 - -为了具体说明 `Dolphin` 类中 `click` 方法的行为 —— 换句话说,为了验证这个方法可用 —— 我们可以把多个 `it` 例子用 `describe` 函数组织成为一个群。把相同的例子组织在一起能更方便阅读: - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - describe("its click") { - it("is loud") { - let click = Dolphin().click() - expect(click.isLoud).to(beTruthy()) - } - - it("has a high frequency") { - let click = Dolphin().click() - expect(click.hasHighFrequency).to(beTruthy()) - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - describe(@"its click", ^{ - it(@"is loud", ^{ - Click *click = [[Dolphin new] click]; - expect(@(click.isLoud)).to(beTruthy()); - }); - - it(@"has a high frequency", ^{ - Click *click = [[Dolphin new] click]; - expect(@(click.hasHighFrequency)).to(beTruthy()); - }); - }); -}); - -QuickSpecEnd -``` - -当这两个例子在 Xcode 中运行的时候,它们会从 `describe` 和 `it` 函数中输出一些描述性的语言: - -1. `DolphinSpec.a_dolphin_its_click_is_loud` -2. `DolphinSpec.a_dolphin_its_click_has_a_high_frequency` - -显然,这两个测试各自测试的内容都很清晰明了。 - -### 使用 `beforeEach` 和 `afterEach` 共享配置/卸载代码 - -例子群不仅使它包含的例子更清晰易懂,还有助于在群里共享配置和卸载的代码。 - -在下面的这个示例里,例子群中的每一个例子前面,都用 `beforeEach` 这个函数创建一种新类型的海豚以及它特定的叫声。 -这就保证了对每个例子进行了初始化: - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - var dolphin: Dolphin! - beforeEach { - dolphin = Dolphin() - } - - describe("its click") { - var click: Click! - beforeEach { - click = dolphin.click() - } - - it("is loud") { - expect(click.isLoud).to(beTruthy()) - } - - it("has a high frequency") { - expect(click.hasHighFrequency).to(beTruthy()) - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - __block Dolphin *dolphin = nil; - beforeEach(^{ - dolphin = [Dolphin new]; - }); - - describe(@"its click", ^{ - __block Click *click = nil; - beforeEach(^{ - click = [dolphin click]; - }); - - it(@"is loud", ^{ - expect(@(click.isLoud)).to(beTruthy()); - }); - - it(@"has a high frequency", ^{ - expect(@(click.hasHighFrequency)).to(beTruthy()); - }); - }); -}); - -QuickSpecEnd -``` - -对于海豚这个例子来说,像这样共享配置代码并不是一个很大的工程。但是对于更复杂的对象,共享代码能够省去大量写代码的时间! - -如果想在每个例子后面执行特定的代码,可以使用 `afterEach`。 - -### 使用 `context` 指定条件的行为 - -海豚使用叫声进行回声定位。当接近了它们感兴趣的东西时,海豚会发出一系列的超声波对其进行更准确的探测。 - -这个测试需要展示在不同环境下,`click` 方法的不同行为。通常,海豚只叫(click)一声。但是当海豚接近它们感兴趣的东西时,它会发出很多次叫声。 - -这种情况可以用 `context` 函数来表示:一个 `context` 代表正常情况,另一个 `context` 代表海豚接近感兴趣的东西: - -```swift -// Swift - -import Quick -import Nimble - -class DolphinSpec: QuickSpec { - override func spec() { - describe("a dolphin") { - var dolphin: Dolphin! - beforeEach { dolphin = Dolphin() } - - describe("its click") { - context("when the dolphin is not near anything interesting") { - it("is only emitted once") { - expect(dolphin!.click().count).to(equal(1)) - } - } - - context("when the dolphin is near something interesting") { - beforeEach { - let ship = SunkenShip() - Jamaica.dolphinCove.add(ship) - Jamaica.dolphinCove.add(dolphin) - } - - it("is emitted three times") { - expect(dolphin.click().count).to(equal(3)) - } - } - } - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickSpecBegin(DolphinSpec) - -describe(@"a dolphin", ^{ - __block Dolphin *dolphin = nil; - beforeEach(^{ dolphin = [Dolphin new]; }); - - describe(@"its click", ^{ - context(@"when the dolphin is not near anything interesting", ^{ - it(@"is only emitted once", ^{ - expect(@([[dolphin click] count])).to(equal(@1)); - }); - }); - - context(@"when the dolphin is near something interesting", ^{ - beforeEach(^{ - [[Jamaica dolphinCove] add:[SunkenShip new]]; - [[Jamaica dolphinCove] add:dolphin]; - }); - - it(@"is emitted three times", ^{ - expect(@([[dolphin click] count])).to(equal(@3)); - }); - }); - }); -}); - -QuickSpecEnd -``` - -严格地说,`context` 是 `describe` 的一种同义的表达,但是像这样有目的地使用能够让你的代码更容易理解。 - -### 测试的可读性:Quick 和 XCTest - -在*[编写高效的 XCTest 测试: Arrange,Act 和 Assert](ArrangeActAssert.md)*里,我们知道了对每种情况进行一个测试能够很方便地组织测试代码。 -在 XCTest 里,这样做会导致出现冗长的测试方法名称: - -```swift -func testDolphin_click_whenTheDolphinIsNearSomethingInteresting_isEmittedThreeTimes() { - // ... -} -``` - -使用 Quick ,每种情况会更容易阅读,并且我们能够为每一个例子群进行配置: - -```swift -describe("a dolphin") { - describe("its click") { - context("when the dolphin is near something interesting") { - it("is emitted three times") { - // ... - } - } - } -} -``` - -## 临时禁用例子或例子群 - -你可以临时禁用那些测试不通过的例子和例子群。 -这些例子的名称会随着测试结果一起打印在控制台里,但它们并不运行。 - -通过添加前缀 `x` 就能禁用例子或例子群: - -```swift -// Swift - -xdescribe("its click") { - // ...none of the code in this closure will be run. -} - -xcontext("when the dolphin is not near anything interesting") { - // ...none of the code in this closure will be run. -} - -xit("is only emitted once") { - // ...none of the code in this closure will be run. -} -``` - -```objc -// Objective-C - -xdescribe(@"its click", ^{ - // ...none of the code in this closure will be run. -}); - -xcontext(@"when the dolphin is not near anything interesting", ^{ - // ...none of the code in this closure will be run. -}); - -xit(@"is only emitted once", ^{ - // ...none of the code in this closure will be run. -}); -``` - -## 临时运行一部分例子 - -在某些情况下,只关注一个或几个例子有助于测试。毕竟只运行一两个例子比运行整个测试快多了。通过使用 `fit` 函数,你可以只运行一两个例子。你还可以使用 `fdescribe` 或 `fcontext` 把测试重点放在一个例子群: - -```swift -fit("is loud") { - // ...only this focused example will be run. -} - -it("has a high frequency") { - // ...this example is not focused, and will not be run. -} - -fcontext("when the dolphin is near something interesting") { - // ...examples in this group are also focused, so they'll be run. -} -``` - -```objc -fit(@"is loud", { - // ...only this focused example will be run. -}); - -it(@"has a high frequency", ^{ - // ...this example is not focused, and will not be run. -}); - -fcontext(@"when the dolphin is near something interesting", ^{ - // ...examples in this group are also focused, so they'll be run. -}); -``` - -## 使用 `beforeSuite` 和 `afterSuite` 进行全局配置/卸载 - -有一些测试的配置需要在所有例子运行之前进行。对于这种情况,可以使用 `beforeSuite` 和 `afterSuite` 。 - -下面的示例展示了在所有其他例子运行之前,创建一个包含了海洋中所有生物的数据库。当所有例子运行结束的时候,这个数据库就被卸载: - -```swift -// Swift - -import Quick - -class DolphinSpec: QuickSpec { - override func spec() { - beforeSuite { - OceanDatabase.createDatabase(name: "test.db") - OceanDatabase.connectToDatabase(name: "test.db") - } - - afterSuite { - OceanDatabase.teardownDatabase(name: "test.db") - } - - describe("a dolphin") { - // ... - } - } -} -``` - -```objc -// Objective-C - -@import Quick; - -QuickSpecBegin(DolphinSpec) - -beforeSuite(^{ - [OceanDatabase createDatabase:@"test.db"]; - [OceanDatabase connectToDatabase:@"test.db"]; -}); - -afterSuite(^{ - [OceanDatabase teardownDatabase:@"test.db"]; -}); - -describe(@"a dolphin", ^{ - // ... -}); - -QuickSpecEnd -``` - -你可以添加多个 `beforeSuite` 和 `afterSuite` 。所有的 -`beforeSuite` 闭包都会在其它测试运行前执行,同样,所有的 -`afterSuite` 闭包都会在其它测试运行结束后执行。 -但是这些闭包并不一定按先后顺序执行。 - -## 访问当前例子的元数据 - -在某些情况下,你会想知道当前运行的例子的名称,或者目前已经运行了多少例子。Quick 提供了闭包 `beforeEach` 和 `afterEach` ,通过这些闭包,可以访问元数据。 - -```swift -beforeEach { exampleMetadata in - println("Example number \(exampleMetadata.exampleIndex) is about to be run.") -} - -afterEach { exampleMetadata in - println("Example number \(exampleMetadata.exampleIndex) has run.") -} -``` - -```objc -beforeEachWithMetadata(^(ExampleMetadata *exampleMetadata){ - NSLog(@"Example number %l is about to be run.", (long)exampleMetadata.exampleIndex); -}); - -afterEachWithMetadata(^(ExampleMetadata *exampleMetadata){ - NSLog(@"Example number %l has run.", (long)exampleMetadata.exampleIndex); -}); -``` - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickInObjectiveC.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickInObjectiveC.md deleted file mode 100644 index 22318a0..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/QuickInObjectiveC.md +++ /dev/null @@ -1,52 +0,0 @@ -# 在 Objective-C 中使用 Quick - -Quick 既支持 Swift ,也支持 Objective-C 。 - -但是,在 Objective-C 下使用 Quick 时,有以下两点需要注意。 - -## 可选的速记语法 - -在 Objective-C 文件中导入的 Quick 框架,包含了名为 `it` 和 -`itShouldBehaveLike` 的宏,还包含了名为 `context()` 和 `describe()` 的函数。 - -如果你在测试项目的时候,也定义了同名的量或者函数,那么就会出现错误。因此,这种情况下,你可以通过禁用 Quick 的可选速记语法来避免命名冲突: - -```objc -#define QUICK_DISABLE_SHORT_SYNTAX 1 - -@import Quick; - -QuickSpecBegin(DolphinSpec) -// ... -QuickSpecEnd -``` - -注意,必须在 `@import Quick;` 之前,定义宏:`QUICK_DISABLE_SHORT_SYNTAX` 。 - -当然,你也可以选择在测试目标(target)的设置里面定义宏: - -![](http://d.twobitlabs.com/VFEamhvixX.png) - -## 你的测试目标必需至少包含一个 Swift 文件 - -如果你的测试目标没有*至少包含一个 Swift 文件*,那么 Swift 标准库就不会链接到你的测试目标,因而会导致 Quick 无法正常编译。 - -当没有至少包含一个 Swift 文件时,测试运行后就会终止并且返回以下错误: - -``` -*** Test session exited(82) without checking in. Executable cannot be -loaded for some other reason, such as a problem with a library it -depends on or a code signature/entitlements mismatch. -``` - -只需要在测试目标下添加一个空的 Swift 文件,如 `SwiftSpec.swift` 就可以解决这个问题: - -```swift -// SwiftSpec.swift - -import Quick -``` - -> 更多关于这个问题的细节,请参考 https://github.com/Quick/Quick/issues/164 。 - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/README.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/README.md deleted file mode 100644 index 2c48f4c..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# 文档 - -Quick 能够帮助你验证你的 Swift 和 Objective-C 程序的行为。然而,能提高你的测试技巧的不仅仅是了解如何使用 Quick。下面这些指南能够帮助你更有效地写测试 —— 不仅是和 Quick 相关的,更包括 XCTest 还有其他的测试框架。 - -每份指南都有一个主题。如果你对单元测试完全陌生,建议你按照从上往下的顺序阅读。 - -- **[在项目中添加测试](SettingUpYourXcodeProject.md)**:如果你遇到在项目中构建测试的问题,请阅读这份指南。 -- **[编写高效的 XCTest 测试: Arrange,Act 和 Assert](ArrangeActAssert.md)**:阅读这份指南来了解如何更高效快速地编写 `XCTestCase` 测试。 -- **[不要测试代码,而应该测试行为](BehavioralTesting.md)**:通过这份指南你能学习到哪些是好的测试,哪些是不好的测试。 -- **[测试 OS X 和 iOS 应用](TestingApps.md)**:了解如何为使用 AppKit 和 UIKit 框架的代码编写测试。 -- **[使用测试替身进行测试](TestUsingTestDoubles.md)**:阅读这份指南来了解什么是测试替身,以及如何使用它们。 -- **[使用 Shared Assertion 来复用测试模板代码](SharedExamples.md)**:学习如何在测试中共享测试代码。 -- **[配置 Quick 的行为](ConfiguringQuick.md)**:阅读这份指南来了解如何在运行测试代码时改变 Quick 的行为。 -- **[在 Objective-C 中使用 Quick](QuickInObjectiveC.md)**:如果你在 Objective-C 项目使用 Quick 的过程中遇到了困难,请阅读这份指南。 -- **[安装 Quick](InstallingQuick.md)**:通过这份指南了解在项目中添加 Quick 的方法:Git submodules,CocoaPods,Carthage 和 Swift Package Manager 。 -- **[安装 Quick 文件模板](InstallingFileTemplates.md)**:阅读这份指南来了解如何安装文件模板以提高编写 Quick specs 的效率。 -- **[更多资料](MoreResources.md)**:更多关于 OS X 和 iOS 测试的资源。 -- **[常见的问题](Troubleshooting.md)**:当你遇到问题的时候,请阅读这份指南。 diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/SettingUpYourXcodeProject.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/SettingUpYourXcodeProject.md deleted file mode 100644 index e902c6f..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/SettingUpYourXcodeProject.md +++ /dev/null @@ -1,75 +0,0 @@ -# 在项目中添加测试 - -除了命令行项目以外,当你在 Xcode 7 中创建新项目时,单元测试 Target 默认是包含的。[为命令行项目设置测试 Target](#setting-up-a-test-target-for-a-command-line-tool-project) 要编写单元测试,你需要能够在测试 Target 中使用主 target 代码。 - -## 用 Swift 测试 Swift 项目代码 - -为了测试用 Swift 写的代码,你需要做以下两件事: - -1. 将 `.xcodeproj` 中的 "defines module" 设置为 `YES`。 - - * Xcode 中具体操作方法:选中你的项目,选择 "Build Settings" 选项列表,选中 "Defines Modules" 行,修改其值为 "Yes"。 - -2. 在单元测试中添加 `@testable import YourAppModuleName`。这会把所有 `public` 和 `internal` (默认访问修饰符) 修饰符暴露给测试代码。但 `private` 修饰符仍旧保持私有。 - -```swift -// MyAppTests.swift - -import XCTest -@testable import MyModule - -class MyClassTests: XCTestCase { - // ... -} -``` - -> 一些开发者提倡添加 Swift 源文件至测试 target。然而这会导致以下问题 [subtle, hard-to-diagnose errors](https://github.com/Quick/Quick/issues/91),所以并不推荐。 - -## 使用 Swift 测试 Objective-C 项目代码 - -1. 给你的测试 target 添加 bridging header 文件。 -2. 在 bridging header 文件中,引入待测试的代码文件。 - -```objc -// MyAppTests-BridgingHeader.h - -#import "MyClass.h" -``` - -现在就可以在 Swift 测试文件中使用 `MyClass.h` 中的代码了。 - -## 使用 Objective-C 测试 Swift 项目代码 - -1. 使用 `@objc` 桥接需要使用 Objective-C 测试的 Swift 类和方法。 -2. 在单元测试中引入模块的 Swift 头文件。 - -```objc -@import XCTest; -#import "MyModule-Swift.h" - -@interface MyClassTests: XCTestCase -// ... -@end -``` - -## 使用 Objective-C 测试 Objective-C 项目代码 - -在测试 target 中引入待测试的代码文件: - -```objc -// MyAppTests.m - -@import XCTest; -#import "MyClass.h" - -@interface MyClassTests: XCTestCase -// ... -@end -``` - -### 为命令行项目设置测试 Target - -1. 在项目窗格中添加一个项目target。 -2. 选择 "OS X Unit Testing Bundle"。 -3. 编辑主target的 scheme。 -4. 选中 "Test" 条目,单击 "Info" 下的 "+",选择需要测试的 bundle。 diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/SharedExamples.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/SharedExamples.md deleted file mode 100644 index ec87138..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/SharedExamples.md +++ /dev/null @@ -1,113 +0,0 @@ -# 使用 Shared Assertion 来复用测试模板代码 - -在某种场合下,一些特定的测试代码可以应用在不同的对象上。 - -比如,假设有一个叫 `Edible` 的协议。当一只海豚吃了标识为 `Edible` 的食物时,它会变得高兴。`Mackerel` 和 `Cod` 都遵循 `Edible` 协议。这个时候,Quick 的 shared example(共享用例)能帮你更容易地测试 `Mackerel` 和 `Cod` 的行为。 - -下面的例子为一些 `Edible` 的食物定义了一组共享用例,以测试 mackerel 和 cod 的行为。 - -```swift -// Swift - -import Quick -import Nimble - -class EdibleSharedExamplesConfiguration: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - sharedExamples("something edible") { (sharedExampleContext: SharedExampleContext) in - it("makes dolphins happy") { - let dolphin = Dolphin(happy: false) - let edible = sharedExampleContext()["edible"] - dolphin.eat(edible) - expect(dolphin.isHappy).to(beTruthy()) - } - } - } -} - -class MackerelSpec: QuickSpec { - override func spec() { - var mackerel: Mackerel! - beforeEach { - mackerel = Mackerel() - } - - itBehavesLike("something edible") { ["edible": mackerel] } - } -} - -class CodSpec: QuickSpec { - override func spec() { - var cod: Cod! - beforeEach { - cod = Cod() - } - - itBehavesLike("something edible") { ["edible": cod] } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; - -QuickConfigurationBegin(EdibleSharedExamplesConfiguration) - -+ (void)configure:(Configuration *configuration) { - sharedExamples(@"something edible", ^(QCKDSLSharedExampleContext exampleContext) { - it(@"makes dolphins happy") { - Dolphin *dolphin = [[Dolphin alloc] init]; - dolphin.happy = NO; - id edible = exampleContext()[@"edible"]; - [dolphin eat:edible]; - expect(dolphin.isHappy).to(beTruthy()) - } - }); -} - -QuickConfigurationEnd - -QuickSpecBegin(MackerelSpec) - -__block Mackerel *mackerel = nil; -beforeEach(^{ - mackerel = [[Mackerel alloc] init]; -}); - -itBehavesLike(@"someting edible", ^{ return @{ @"edible": mackerel }; }); - -QuickSpecEnd - -QuickSpecBegin(CodSpec) - -__block Mackerel *cod = nil; -beforeEach(^{ - cod = [[Cod alloc] init]; -}); - -itBehavesLike(@"someting edible", ^{ return @{ @"edible": cod }; }); - -QuickSpecEnd -``` - -共享用例可以包括任意数量的 `it`, `context` 和 `describe` 代码块。当使用它们来测试不同对象的相同行为时,你可以少写*很多*不必要的重复代码。 - -一般来说,你使用共享用例进行测试时不需要依赖其他额外的对象。在 Swift 中,你可以简单地用一个不带参数的 `sharedExample` 闭包来使用共享用例。当你需要进行全局测试时,这很有用。 - -```swift -// Swift - -import Quick - -sharedExamples("everything under the sea") { - // ... -} - -itBehavesLike("everything under the sea") -``` -> 如果你使用 Objective-C 的话,你需要传入一个带 `QCKDSLSharedExampleContext` 参数的 block,即使你并不打算使用它。不好意思,你只能这样做,人生有时就是这么的无奈。:cookie: :bomb: - -你也可以使用 `fitBehavesLike` 函数来单独测试共享用例。 diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/TestUsingTestDoubles.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/TestUsingTestDoubles.md deleted file mode 100644 index 9e83ead..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/TestUsingTestDoubles.md +++ /dev/null @@ -1,131 +0,0 @@ -# 使用模拟对象进行测试 - -## 测试替身 - -下面的问题在写测试时经常出现。比如:`Car` 依赖于/使用 `Tire` 。 - -![](https://github.com/Quick/Assets/blob/master/Screenshots/TestUsingMock_BusesA.png) - -`CarTests` 用来测试调用了 `Tire` 的 `Car` 。这时候,在 `Tire` 里出现的 bug 会导致 `CarTests` 测试失败(即使 `Car` 是没有错误的)。 - -这时候很难说清楚到底是什么出错了。为了避免这个问题,我们可以使用一个替身对象,来代替 `CarTests` 里面的 `Tire` 。对于这个问题,我们会为 `Tire` 创建一个替身对象,命名为 `PerfectTire` 。 - -![](https://github.com/Quick/Assets/blob/master/Screenshots/TestUsingMock_BusesAmock.png) - -`PerfectTire` 具有和 `Tire` 一样的函数和属性。但是,这些函数和属性的实现可能会有所不同。 - -像 `PerfectTire` 这样的对象叫做“测试替身”。测试替身充当替身对象,用于独立测试多个相关对象的功能。以下是测试替身的几种类型: - -- 模拟对象:用于从测试类中接收输出。 -- 桩对象:用于为测试类提供输入。 -- 伪对象:具有与原来的类相似的行为。 - -我们先了解一下如何使用模拟对象。 - -## 模拟对象 - -模拟对象着眼于说明它与其它对象的正确交互,并且当出现错误时用来检测问题。模拟对象应该事先知道测试时会发生什么,并且该做出怎样的反应。 - -### 在 Swift 中使用模拟对象来写测试 - -#### 应用案例 - -例如,我们有一个应用,它会从互联网上获取数据。 - -* 在 `ViewController` 中展示从互联网上获取的数据。 -* 自定义类,实现 `DataProviderProtocol` ,负责获取数据。 - -`DataProviderProtocol` 如下定义: - -```swift -protocol DataProviderProtocol: class { - func fetch(callback: (data: String) -> Void) -} -``` - -`fetch()` 从互联网上获取数据,并通过闭包 `callback` 返回数据。 - -下面的 `DataProvider` 实现了 `DataProviderProtocol` 协议。 - -```swift -class DataProvider: NSObject, DataProviderProtocol { - func fetch(callback: (data: String) -> Void) { - let url = NSURL(string: "http://example.com/")! - let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration()) - let task = session.dataTaskWithURL(url, completionHandler: { - (data, resp, err) in - let string = NSString(data:data!, encoding:NSUTF8StringEncoding) as! String - callback(data: string) - }) - task.resume() - } -} -``` - -在我们这个场景里,`ViewController` 的 `viewDidLoad()` 里调用了 `fetch()` 。 - -```swift -class ViewController: UIViewController { - - // MARK: Properties - @IBOutlet weak var resultLabel: UILabel! - private var dataProvider: DataProviderProtocol? - - // MARK: View Controller Lifecycle - override func viewDidLoad() { - super.viewDidLoad() - - dataProvider = dataProvider ?? DataProvider() - - dataProvider?.fetch({ [unowned self] (data) -> Void in - self.resultLabel.text = data - }) - } -} -``` - -#### 用 `DataProviderProtocol` 协议的模拟对象进行测试 - -`ViewController` 依赖于 `DataProviderProtocol` 协议。为了测试这个 viewController ,要创建一个遵循 `DataProviderProtocol` 的模拟对象。 - -模拟对象是非常有用的。因为使用它,你可以: - -- 更快地运行测试。 -- 即使未联网也可以进行测试。 -- 对 `ViewController` 进行独立测试。 - -```swift -class MockDataProvider: NSObject, DataProviderProtocol { - var fetchCalled = false - func fetch(callback: (data: String) -> Void) { - fetchCalled = true - callback(data: "foobar") - } -} -``` - -当 `fetch()` 被调用的时候,`fetchCalled` 会被设为 `true` 。这样能使测试代码确认对象是否准备好进行测试。 - -下面的代码验证了当 `ViewController` 加载时,会运行 `dataProvider.fetch()` 。 - -```swift -override func spec() { - describe("view controller") { - it("fetch data with data provider") { - let mockProvier = MockDataProvider() - let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController") as! ViewController - viewController.dataProvier = mockProvier - - expect(mockProvier.fetchCalled).to(equal(false)) - - let _ = viewController.view - - expect(mockProvier.fetchCalled).to(equal(true)) - } - } -} -``` - -如果你对写测试感兴趣,想学习更多的内容,请参考 https://realm.io/news/testing-in-swift/ 。 - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/TestingApps.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/TestingApps.md deleted file mode 100644 index 59f68d8..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/TestingApps.md +++ /dev/null @@ -1,174 +0,0 @@ -# 测试 OS X 和 iOS 应用 - -*[在项目中添加测试](SettingUpYourXcodeProject.md)* 这篇文章详细介绍了有关如何测试 Objective-C 和 Swift 的函数和类的内容。 -本文将介绍一些额外的技巧,用来测试**类**,如 `UIViewController` 及其子类。 - -> 你可以参考这个简短的 [Lightning Talk](https://vimeo.com/115671189#t=37m50s)(从37分50秒开始),它涵盖了绝大多数这方面的话题。 - -## 触发 `UIViewController` 生命周期事件 - -通常,当你的视图控制器(view controller)呈现在应用中,UIKit 会自动触发生命周期事件。然而,在测试 `UIViewController` 的时候,你需要自己手动触发这些事件。你可以通过以下任意一种方法来实现它: - -1. 通过访问 `UIViewController.view` 来触发事件,如: `UIViewController.viewDidLoad()` 。 -2. 使用 `UIViewController.beginAppearanceTransition()` 来触发大多数生命周期事件。 -3. 直接调用方法,如:`UIViewController.viewDidLoad()` 或 `UIViewController.viewWillAppear()` 。 - -```swift -// Swift - -import Quick -import Nimble -import BananaApp - -class BananaViewControllerSpec: QuickSpec { - override func spec() { - var viewController: BananaViewController! - beforeEach { - viewController = BananaViewController() - } - - describe(".viewDidLoad()") { - beforeEach { - // Method #1: Access the view to trigger BananaViewController.viewDidLoad(). - let _ = viewController.view - } - - it("sets the banana count label to zero") { - // Since the label is only initialized when the view is loaded, this - // would fail if we didn't access the view in the `beforeEach` above. - expect(viewController.bananaCountLabel.text).to(equal("0")) - } - } - - describe("the view") { - beforeEach { - // Method #2: Triggers .viewDidLoad(), .viewWillAppear(), and .viewDidAppear() events. - viewController.beginAppearanceTransition(true, animated: false) - viewController.endAppearanceTransition() - } - // ... - } - - describe(".viewWillDisappear()") { - beforeEach { - // Method #3: Directly call the lifecycle event. - viewController.viewWillDisappear(false) - } - // ... - } - } -} -``` - -```objc -// Objective-C - -@import Quick; -@import Nimble; -#import "BananaViewController.h" - -QuickSpecBegin(BananaViewControllerSpec) - -__block BananaViewController *viewController = nil; -beforeEach(^{ - viewController = [[BananaViewController alloc] init]; -}); - -describe(@"-viewDidLoad", ^{ - beforeEach(^{ - // Method #1: Access the view to trigger -[BananaViewController viewDidLoad]. - [viewController view]; - }); - - it(@"sets the banana count label to zero", ^{ - // Since the label is only initialized when the view is loaded, this - // would fail if we didn't access the view in the `beforeEach` above. - expect(viewController.bananaCountLabel.text).to(equal(@"0")) - }); -}); - -describe(@"the view", ^{ - beforeEach(^{ - // Method #2: Triggers .viewDidLoad(), .viewWillAppear(), and .viewDidAppear() events. - [viewController beginAppearanceTransition:YES animated:NO]; - [viewController endAppearanceTransition]; - }); - // ... -}); - -describe(@"-viewWillDisappear", ^{ - beforeEach(^{ - // Method #3: Directly call the lifecycle event. - [viewController viewWillDisappear:NO]; - }); - // ... -}); - -QuickSpecEnd -``` - -## 初始化在故事板(Storyboard)中定义的视图控制器 - -为了初始化在故事板中定义的视图控制器,你需要先为它分配一个 **Storyboard ID** : - -![](http://f.cl.ly/items/2X2G381K1h1l2B2Q0g3L/Screen%20Shot%202015-02-27%20at%2011.58.06%20AM.png) - -为视图控制器分配 ID 后,就可以在测试中初始化了: - -```swift -// Swift - -var viewController: BananaViewController! -beforeEach { - // 1. Instantiate the storyboard. By default, it's name is "Main.storyboard". - // You'll need to use a different string here if the name of your storyboard is different. - let storyboard = UIStoryboard(name: "Main", bundle: nil) - // 2. Use the storyboard to instantiate the view controller. - viewController = - storyboard.instantiateViewControllerWithIdentifier( - "BananaViewControllerID") as! BananaViewController -} -``` - -```objc -// Objective-C - -__block BananaViewController *viewController = nil; -beforeEach(^{ - // 1. Instantiate the storyboard. By default, it's name is "Main.storyboard". - // You'll need to use a different string here if the name of your storyboard is different. - UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; - // 2. Use the storyboard to instantiate the view controller. - viewController = [storyboard instantiateViewControllerWithIdentifier:@"BananaViewControllerID"]; -}); -``` - -## 触发 UIControl 事件(如:点击按钮) - -按钮以及其他继承自 `UIControl` 的 UIKit 类定义了一些方法,使我们能够通过程序代码发送控制事件,如:点击按钮。 -以下代码演示了如何测试点击按钮触发的行为: - -```swift -// Swift - -describe("the 'more bananas' button") { - it("increments the banana count label when tapped") { - viewController.moreButton.sendActionsForControlEvents( - UIControlEvents.TouchUpInside) - expect(viewController.bananaCountLabel.text).to(equal("1")) - } -} -``` - -```objc -// Objective-C - -describe(@"the 'more bananas' button", ^{ - it(@"increments the banana count label when tapped", ^{ - [viewController.moreButton sendActionsForControlEvents:UIControlEventTouchUpInside]; - expect(viewController.bananaCountLabel.text).to(equal(@"1")); - }); -}); -``` - - diff --git a/Carthage/Checkouts/Quick/Documentation/zh-cn/Troubleshooting.md b/Carthage/Checkouts/Quick/Documentation/zh-cn/Troubleshooting.md deleted file mode 100644 index c89e25e..0000000 --- a/Carthage/Checkouts/Quick/Documentation/zh-cn/Troubleshooting.md +++ /dev/null @@ -1,10 +0,0 @@ -# 常见的安装问题 - -这里有一些解决方案,用来处理使用框架时遇到的一些问题。 - -## No such module 'Quick' - -- 如果你已经运行了 `pod install` ,那么关闭并重新打开 Xcode workspace 。如果这样做还没解决问题,那么请接着进行下面的步骤。 -- 删除 `~/Library/Developer/Xcode/DerivedData` **整个**目录,这里面包含了 `ModuleCache` 。 -- 在 Manage Schemes 对话框中,勾选 `Quick` 、`Nimble` 、`Pods-ProjectnameTests` ,然后重新编译它们(`Cmd+B`)。 - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE b/Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE deleted file mode 100644 index 85e591e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.github/ISSUE_TEMPLATE +++ /dev/null @@ -1,36 +0,0 @@ -- [ ] I have read [CONTRIBUTING](https://github.com/Quick/Nimble/blob/master/CONTRIBUTING.md) and have done my best to follow them. - -### What did you do? - -Please replace this with what you did. - -### What did you expect to happen? - -Please replace this with what you expected to happen. - -### What actually happened instead? - -Please replace this with what happened instead. - -### Environment - -List the software versions you're using: - - - Quick: *?.?.?* - - Nimble: *?.?.?* - - Xcode Version: *?.? (????)* (Open Xcode; In menubar: Xcode > About Xcode) - - Swift Version: *?.?* (Open Xcode Preferences; Components > Toolchains. If none, use `Xcode Default`.) - -Please also mention which package manager you used and its version. Delete the -other package managers in this list: - - - Cocoapods: *?.?.?* (Use `pod --version` in Terminal) - - Carthage: *?.?* (Use `carthage version` in Terminal) - - Swift Package Manager *?.?.? (swiftpm-???)* (Use `swift build --version` in Terminal) - -### Project that demonstrates the issue - -Please link to a project we can download that reproduces the issue. Feel free -to delete this section if it's not relevant to the issue (eg - feature request). - -The project should be [short, self-contained, and correct example](http://sscce.org/). diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE b/Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE deleted file mode 100644 index 20e40c8..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.github/PULL_REQUEST_TEMPLATE +++ /dev/null @@ -1,14 +0,0 @@ -The PR should summarize what was changed and why. Here are some questions to -help you if you're not sure: - - - What behavior was changed? - - What code was refactored / updated to support this change? - - What issues are related to this PR? Or why was this change introduced? - -Checklist - While not every PR needs it, new features should consider this list: - - - [ ] Does this have tests? - - [ ] Does this have documentation? - - [ ] Does this break the public API (Requires major version bump)? - - [ ] Is this a new feature (Requires minor version bump)? - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.gitignore b/Carthage/Checkouts/Quick/Externals/Nimble/.gitignore deleted file mode 100644 index e50906d..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -**/xcuserdata/* -**/*.xccheckout -**/*.xcscmblueprint -build/ -.idea -DerivedData/ -Nimble.framework.zip - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -.build/ diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml b/Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml deleted file mode 100644 index b867fd9..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.hound.yml +++ /dev/null @@ -1,2 +0,0 @@ -swift: - config_file: .swiftlint.yml diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.swift-version b/Carthage/Checkouts/Quick/Externals/Nimble/.swift-version deleted file mode 100644 index 9f55b2c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.swift-version +++ /dev/null @@ -1 +0,0 @@ -3.0 diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml b/Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml deleted file mode 100644 index d412589..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.swiftlint.yml +++ /dev/null @@ -1,16 +0,0 @@ -disabled_rules: - - line_length - - todo - - variable_name - - force_try - - function_parameter_count - - force_cast - - type_name - - large_tuple - -included: - - Sources - - Tests - -trailing_comma: - mandatory_comma: true diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/.travis.yml b/Carthage/Checkouts/Quick/Externals/Nimble/.travis.yml deleted file mode 100644 index 3e2f896..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -osx_image: xcode8 -language: generic -matrix: - include: - - os: osx - sudo: required - env: TYPE=podspec - - os: osx - env: TYPE=ios NIMBLE_RUNTIME_IOS_SDK_VERSION=10.0 - - os: osx - env: TYPE=tvos NIMBLE_RUNTIME_TVOS_SDK_VERSION=10.0 - - os: osx - env: TYPE=macos - - os: osx - env: TYPE=swiftpm - - os: linux - dist: trusty - sudo: required - env: TYPE=swiftpm - install: - - eval "$(curl -sL https://gist.githubusercontent.com/kylef/5c0475ff02b7c7671d2a/raw/9f442512a46d7a2af7b850d65a7e9bd31edfb09b/swiftenv-install.sh)" -install: - - if [[ "$TYPE" == "podspec" ]]; then sudo gem install bundler; bundle install; fi -script: - - ./test $TYPE diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/CONTRIBUTING.md b/Carthage/Checkouts/Quick/Externals/Nimble/CONTRIBUTING.md deleted file mode 100644 index d9c4ba6..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/CONTRIBUTING.md +++ /dev/null @@ -1,120 +0,0 @@ - - - -- [Welcome to Nimble!](#welcome-to-nimble!) - - [Reporting Bugs](#reporting-bugs) - - [Building the Project](#building-the-project) - - [Pull Requests](#pull-requests) - - [Style Conventions](#style-conventions) - - [Core Members](#core-members) - - [Code of Conduct](#code-of-conduct) - - - -# Welcome to Nimble! - -We're building a testing framework for a new generation of Swift and -Objective-C developers. - -Nimble should be easy to use and easy to maintain. Let's keep things -simple and well-tested. - -**tl;dr:** If you've added a file to the project, make sure it's -included in both the OS X and iOS targets. - -## Reporting Bugs - -Nothing is off-limits. If you're having a problem, we want to hear about -it. - -- See a crash? File an issue. -- Code isn't compiling, but you don't know why? Sounds like you should - submit a new issue, bud. -- Went to the kitchen, only to forget why you went in the first place? - Better submit an issue. - -Be sure to include in your issue: - -- Your Xcode version (eg - Xcode 7.0.1 7A1001) -- Your version of Nimble (eg - v2.0.0 or git sha `20a3f3b4e63cc8d97c92c4164bf36f2a2c9a6e1b`) -- What are the steps to reproduce this issue? -- What platform are you using? (eg - OS X, iOS, watchOS, tvOS) -- If the problem is on a UI Testing Bundle, Unit Testing Bundle, or some other target configuration -- Are you using carthage or cocoapods? - -## Building the Project - -- Use `Nimble.xcodeproj` to work on Nimble. - -## Running the Swift Package Manager tests - -1. Install `swiftenv` by running a line from the build script (`.travis.yml`): - - eval "$(curl -sL https://gist.githubusercontent.com/kylef/5c0475ff02b7c7671d2a/raw/02090c7ede5a637b76e6df1710e83cd0bbe7dcdf/swiftenv-install.sh)" - -2. Run `./test swiftpm` - -## Pull Requests - -- Nothing is trivial. Submit pull requests for anything: typos, - whitespace, you name it. -- Not all pull requests will be merged, but all will be acknowledged. If - no one has provided feedback on your request, ping one of the owners - by name. -- Make sure your pull request includes any necessary updates to the - README or other documentation. -- Be sure the unit tests for both the OS X and iOS targets of Nimble - before submitting your pull request. You can run all the OS X & iOS unit - tests using `./test`. -- If you've added a file to the project, make sure it's included in both - the OS X and iOS targets. -- The `master` branch will always support the stable Xcode version. Other - branches will point to their corresponding versions they support. -- If you're making a configuration change, make sure to edit both the xcode - project and the podspec file. - -### Style Conventions - -- Indent using 4 spaces. -- Keep lines 100 characters or shorter. Break long statements into - shorter ones over multiple lines. -- In Objective-C, use `#pragma mark -` to mark public, internal, - protocol, and superclass methods. - -## Core Members - -If a few of your pull requests have been merged, and you'd like a -controlling stake in the project, file an issue asking for write access -to the repository. - -### Code of Conduct - -Your conduct as a core member is your own responsibility, but here are -some "ground rules": - -- Feel free to push whatever you want to master, and (if you have - ownership permissions) to create any repositories you'd like. - - Ideally, however, all changes should be submitted as GitHub pull - requests. No one should merge their own pull request, unless no - other core members respond for at least a few days. - - If you'd like to create a new repository, it'd be nice if you created - a GitHub issue and gathered some feedback first. - -- It'd be awesome if you could review, provide feedback on, and close - issues or pull requests submitted to the project. Please provide kind, - constructive feedback. Please don't be sarcastic or snarky. - -### Creating a Release - -The process is relatively straight forward, but here's is a useful checklist for tagging: - -- Look at changes from the previously tagged release and write release notes: `git log v0.4.0...HEAD` -- Run the release script: `./script/release A.B.C release-notes-file` -- The script will prompt you to create a new [GitHub release](https://github.com/Quick/Nimble/releases). - - Use the same release notes you created for the tag, but tweak up formatting for GitHub. -- Update [Quick](https://github.com/Quick/Quick) - - Update Quick's submodule reference to the newly released Nimble version - - Update Nimble version in `README.md` and Documentation in [Quick](https://github.com/Quick/Quick) if it's not a patch version update. -- Announce! diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile b/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile deleted file mode 100644 index a6dc312..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# A sample Gemfile -source "https://rubygems.org" - -gem 'cocoapods', '1.1.0.rc.3' diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile.lock b/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile.lock deleted file mode 100644 index 87dc02b..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Gemfile.lock +++ /dev/null @@ -1,69 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (4.2.7.1) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - claide (1.0.1) - cocoapods (1.1.0.rc.3) - activesupport (>= 4.0.2, < 5) - claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.1.0.rc.3) - cocoapods-deintegrate (>= 1.0.1, < 2.0) - cocoapods-downloader (>= 1.1.1, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (= 1.1.0.beta.1) - cocoapods-try (>= 1.1.0, < 2.0) - colored (~> 1.2) - escape (~> 0.0.4) - fourflusher (~> 2.0) - gh_inspector (~> 1.0) - molinillo (~> 0.5.1) - nap (~> 1.0) - xcodeproj (>= 1.3.2, < 2.0) - cocoapods-core (1.1.0.rc.3) - activesupport (>= 4.0.2, < 5) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - cocoapods-deintegrate (1.0.1) - cocoapods-downloader (1.1.1) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.0) - cocoapods-stats (1.0.0) - cocoapods-trunk (1.1.0.beta.1) - nap (>= 0.8, < 2.0) - netrc (= 0.7.8) - cocoapods-try (1.1.0) - colored (1.2) - escape (0.0.4) - fourflusher (2.0.1) - fuzzy_match (2.0.4) - gh_inspector (1.0.2) - i18n (0.7.0) - json (1.8.3) - minitest (5.9.1) - molinillo (0.5.1) - nap (1.1.0) - netrc (0.7.8) - thread_safe (0.3.5) - tzinfo (1.2.2) - thread_safe (~> 0.1) - xcodeproj (1.3.2) - activesupport (>= 3) - claide (>= 1.0.1, < 2.0) - colored (~> 1.2) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (= 1.1.0.rc.3) - -BUNDLED WITH - 1.13.1 diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE b/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE deleted file mode 100644 index 82b84bf..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 Quick Team - - 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. diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec deleted file mode 100644 index d9ad8a0..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.podspec +++ /dev/null @@ -1,47 +0,0 @@ -Pod::Spec.new do |s| - s.name = "Nimble" - s.version = "6.0.1" - s.summary = "A Matcher Framework for Swift and Objective-C" - s.description = <<-DESC - Use Nimble to express the expected outcomes of Swift or Objective-C expressions. Inspired by Cedar. - DESC - s.homepage = "https://github.com/Quick/Nimble" - s.license = { :type => "Apache 2.0", :file => "LICENSE" } - s.author = "Quick Contributors" - s.ios.deployment_target = "8.0" - s.osx.deployment_target = "10.10" - s.tvos.deployment_target = "9.0" - s.source = { :git => "https://github.com/Quick/Nimble.git", - :tag => "v#{s.version}" } - - s.source_files = "Sources/**/*.{swift,h,m,c}" - - s.osx.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift", - ] - s.ios.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift", - ] - s.tvos.exclude_files = [ - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift", - "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.{h,c}", - "Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.swift", - "Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException.m", - ] - - s.private_header_files = "Sources/NimbleObjectiveC/CurrentTestCaseTracker.h" - s.tvos.private_header_files = "Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h" - - s.exclude_files = "Sources/Nimble/Adapters/NonObjectiveC/*.swift" - s.weak_framework = "XCTest" - s.requires_arc = true - s.compiler_flags = '-DPRODUCT_NAME=Nimble/Nimble' - s.pod_target_xcconfig = { - 'ENABLE_BITCODE' => 'NO', - 'OTHER_LDFLAGS' => '-weak-lswiftXCTest', - 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"', - } -end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj deleted file mode 100644 index 54f1cce..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2171 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 1F0648CC19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; - 1F0648CD19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; - 1F0648D41963AAB2001F9C46 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; - 1F0648D51963AAB2001F9C46 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; - 1F14FB64194180C5009F2A08 /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; - 1F1871C51CA89EDB00A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; - 1F1871C71CA89EDB00A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871C81CA89EDB00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; }; - 1F1871C91CA89EDB00A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871CA1CA89EDB00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; }; - 1F1871CB1CA89EDB00A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; }; - 1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; }; - 1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; - 1F1871D31CA89EEE00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; }; - 1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; }; - 1F1871D61CA89EEF00A34BF2 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BD1CA89EDB00A34BF2 /* DSL.m */; }; - 1F1871D71CA89EEF00A34BF2 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */; }; - 1F1871D81CA89EEF00A34BF2 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */; }; - 1F1871D91CA89EF100A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; }; - 1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; }; - 1F1871DB1CA89EF100A34BF2 /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */; }; - 1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */; }; - 1F1871DD1CA89EF500A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871DE1CA89EF500A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871DF1CA89EF500A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E01CA89EF600A34BF2 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BC1CA89EDB00A34BF2 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E11CA89EF600A34BF2 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E21CA89EF600A34BF2 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1871E41CA89FB600A34BF2 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */; }; - 1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; }; - 1F1871E71CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */; }; - 1F1871E81CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */; }; - 1F1871E91CA8A18700A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; }; - 1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */; }; - 1F1A742F1940169200FFFC47 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F1A74351940169200FFFC47 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F1A74291940169200FFFC47 /* Nimble.framework */; }; - 1F1B5AD41963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; - 1F1B5AD51963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; - 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F2D175B1DB618ED00EE9C7A /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0261C6D0BB0000693EE /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F2D175C1DB618F000EE9C7A /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0221C6D0B82000693EE /* mach_excServer.c */; }; - 1F43728A1A1B343800EB80F8 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; - 1F43728B1A1B343900EB80F8 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; - 1F43728C1A1B343C00EB80F8 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; - 1F43728D1A1B343D00EB80F8 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; - 1F43728E1A1B343F00EB80F8 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD281968AB07008ED995 /* Stringers.swift */; }; - 1F43728F1A1B344000EB80F8 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD281968AB07008ED995 /* Stringers.swift */; }; - 1F4999A61DBF2DD100BF8877 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F4A56661A3B305F009E1637 /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; }; - 1F4A56671A3B305F009E1637 /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; }; - 1F4A566A1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; }; - 1F4A566B1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; }; - 1F4A566D1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */; }; - 1F4A566E1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */; }; - 1F4A56701A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */; }; - 1F4A56711A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */; }; - 1F4A56731A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */; }; - 1F4A56741A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */; }; - 1F4A56761A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */; }; - 1F4A56771A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */; }; - 1F4A56791A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */; }; - 1F4A567A1A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */; }; - 1F4A567C1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */; }; - 1F4A567D1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */; }; - 1F4A567F1A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */; }; - 1F4A56801A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */; }; - 1F4A56821A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */; }; - 1F4A56831A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */; }; - 1F4A56851A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */; }; - 1F4A56861A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */; }; - 1F4A56881A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */; }; - 1F4A56891A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */; }; - 1F4A568B1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */; }; - 1F4A568C1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */; }; - 1F4A568E1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */; }; - 1F4A568F1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */; }; - 1F4A56911A3B344A009E1637 /* ObjCBeNilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */; }; - 1F4A56921A3B344A009E1637 /* ObjCBeNilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */; }; - 1F4A56941A3B346F009E1637 /* ObjCContainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */; }; - 1F4A56951A3B346F009E1637 /* ObjCContainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */; }; - 1F4A56971A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */; }; - 1F4A56981A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */; }; - 1F4A569A1A3B3539009E1637 /* ObjCEqualTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */; }; - 1F4A569B1A3B3539009E1637 /* ObjCEqualTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */; }; - 1F4A569D1A3B3565009E1637 /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; - 1F4A569E1A3B3565009E1637 /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; - 1F4A56A01A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - 1F4A56A11A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - 1F4BB8A41DAC9DC90048464B /* CwlCatchBadInstructionPOSIX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB89D1DAC9D930048464B /* CwlCatchBadInstructionPOSIX.swift */; }; - 1F4BB8AB1DAC9DE50048464B /* CwlCatchBadInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F4BB8AE1DAC9DED0048464B /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0161C6D0B2F000693EE /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F4BB8B61DACA0E30048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F4BB8B71DACA0E40048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F4BB8B81DACAACF0048464B /* ThrowAssertionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */; }; - 1F4BB8BA1DACBFCF0048464B /* CwlCatchBadInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */; }; - 1F4BB8BB1DACBFD00048464B /* CwlCatchBadInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */; }; - 1F5DF15F1BDCA0CE00C3A531 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */; }; - 1F5DF16C1BDCA0F500C3A531 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; - 1F5DF16D1BDCA0F500C3A531 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; - 1F5DF16E1BDCA0F500C3A531 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */; }; - 1F5DF16F1BDCA0F500C3A531 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; - 1F5DF1701BDCA0F500C3A531 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD081968AB07008ED995 /* DSL.swift */; }; - 1F5DF1711BDCA0F500C3A531 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */; }; - 1F5DF1721BDCA0F500C3A531 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD091968AB07008ED995 /* Expectation.swift */; }; - 1F5DF1741BDCA0F500C3A531 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0A1968AB07008ED995 /* Expression.swift */; }; - 1F5DF1751BDCA0F500C3A531 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */; }; - 1F5DF1761BDCA0F500C3A531 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB1BC781A92235600F743C3 /* AllPass.swift */; }; - 1F5DF1771BDCA0F500C3A531 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */; }; - 1F5DF1781BDCA0F500C3A531 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */; }; - 1F5DF1791BDCA0F500C3A531 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */; }; - 1F5DF17A1BDCA0F500C3A531 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD101968AB07008ED995 /* BeEmpty.swift */; }; - 1F5DF17B1BDCA0F500C3A531 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD111968AB07008ED995 /* BeginWith.swift */; }; - 1F5DF17C1BDCA0F500C3A531 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */; }; - 1F5DF17D1BDCA0F500C3A531 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */; }; - 1F5DF17E1BDCA0F500C3A531 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */; }; - 1F5DF17F1BDCA0F500C3A531 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD151968AB07008ED995 /* BeLessThan.swift */; }; - 1F5DF1801BDCA0F500C3A531 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */; }; - 1F5DF1811BDCA0F500C3A531 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD171968AB07008ED995 /* BeLogical.swift */; }; - 1F5DF1821BDCA0F500C3A531 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD181968AB07008ED995 /* BeNil.swift */; }; - 1F5DF1831BDCA0F500C3A531 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1A1968AB07008ED995 /* Contain.swift */; }; - 1F5DF1841BDCA0F500C3A531 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1B1968AB07008ED995 /* EndWith.swift */; }; - 1F5DF1851BDCA0F500C3A531 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1C1968AB07008ED995 /* Equal.swift */; }; - 1F5DF1861BDCA0F500C3A531 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1341B9E085700C7B8DA /* HaveCount.swift */; }; - 1F5DF1871BDCA0F500C3A531 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EC19FE43C200E9D9FE /* Match.swift */; }; - 1F5DF1881BDCA0F500C3A531 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */; }; - 1F5DF1891BDCA0F500C3A531 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */; }; - 1F5DF18A1BDCA0F500C3A531 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; - 1F5DF18B1BDCA0F500C3A531 /* Functional.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD251968AB07008ED995 /* Functional.swift */; }; - 1F5DF18C1BDCA0F500C3A531 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; - 1F5DF18D1BDCA0F500C3A531 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD271968AB07008ED995 /* SourceLocation.swift */; }; - 1F5DF18E1BDCA0F500C3A531 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD281968AB07008ED995 /* Stringers.swift */; }; - 1F5DF1921BDCA10200C3A531 /* AsynchronousTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE5195C121200ED456B /* AsynchronousTest.swift */; }; - 1F5DF1931BDCA10200C3A531 /* SynchronousTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */; }; - 1F5DF1941BDCA10200C3A531 /* UserDescriptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */; }; - 1F5DF1951BDCA10200C3A531 /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; - 1F5DF1961BDCA10200C3A531 /* ObjectWithLazyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */; }; - 1F5DF1971BDCA10200C3A531 /* AllPassTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD72EC631A93874A002F7651 /* AllPassTest.swift */; }; - 1F5DF1981BDCA10200C3A531 /* BeAKindOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */; }; - 1F5DF1991BDCA10200C3A531 /* BeAnInstanceOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */; }; - 1F5DF19A1BDCA10200C3A531 /* BeCloseToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF5195C147800ED456B /* BeCloseToTest.swift */; }; - 1F5DF19B1BDCA10200C3A531 /* BeEmptyTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */; }; - 1F5DF19C1BDCA10200C3A531 /* BeginWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFB195C186800ED456B /* BeginWithTest.swift */; }; - 1F5DF19D1BDCA10200C3A531 /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; - 1F5DF19E1BDCA10200C3A531 /* BeGreaterThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */; }; - 1F5DF19F1BDCA10200C3A531 /* BeIdenticalToObjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */; }; - 1F5DF1A01BDCA10200C3A531 /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; - 1F5DF1A11BDCA10200C3A531 /* BeLessThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */; }; - 1F5DF1A21BDCA10200C3A531 /* BeLessThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */; }; - 1F5DF1A31BDCA10200C3A531 /* BeLogicalTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEE195C136500ED456B /* BeLogicalTest.swift */; }; - 1F5DF1A41BDCA10200C3A531 /* BeNilTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF8195C175000ED456B /* BeNilTest.swift */; }; - 1F5DF1A51BDCA10200C3A531 /* ContainTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F01195C189500ED456B /* ContainTest.swift */; }; - 1F5DF1A61BDCA10200C3A531 /* EndWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFE195C187600ED456B /* EndWithTest.swift */; }; - 1F5DF1A71BDCA10200C3A531 /* EqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F04195C18B700ED456B /* EqualTest.swift */; }; - 1F5DF1A81BDCA10200C3A531 /* HaveCountTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */; }; - 1F5DF1A91BDCA10200C3A531 /* MatchTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */; }; - 1F5DF1AA1BDCA10200C3A531 /* RaisesExceptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */; }; - 1F5DF1AB1BDCA10200C3A531 /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; - 1F8A37B01B7C5042001C8357 /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; }; - 1F8A37B11B7C5042001C8357 /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; }; - 1F91DD2D1C74BF36002C309F /* BeVoidTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */; }; - 1F91DD2E1C74BF36002C309F /* BeVoidTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */; }; - 1F91DD2F1C74BF36002C309F /* BeVoidTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */; }; - 1F91DD311C74BF61002C309F /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD301C74BF61002C309F /* BeVoid.swift */; }; - 1F91DD321C74BF61002C309F /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD301C74BF61002C309F /* BeVoid.swift */; }; - 1F91DD331C74BF61002C309F /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F91DD301C74BF61002C309F /* BeVoid.swift */; }; - 1F925EB8195C0D6300ED456B /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F925EAD195C0D6300ED456B /* Nimble.framework */; }; - 1F925EC7195C0DD100ED456B /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1A742E1940169200FFFC47 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F925EE2195C0DFD00ED456B /* utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F14FB63194180C5009F2A08 /* utils.swift */; }; - 1F925EE6195C121200ED456B /* AsynchronousTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE5195C121200ED456B /* AsynchronousTest.swift */; }; - 1F925EE7195C121200ED456B /* AsynchronousTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE5195C121200ED456B /* AsynchronousTest.swift */; }; - 1F925EE9195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */; }; - 1F925EEA195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */; }; - 1F925EEC195C12C800ED456B /* RaisesExceptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */; }; - 1F925EED195C12C800ED456B /* RaisesExceptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */; }; - 1F925EEF195C136500ED456B /* BeLogicalTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEE195C136500ED456B /* BeLogicalTest.swift */; }; - 1F925EF0195C136500ED456B /* BeLogicalTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EEE195C136500ED456B /* BeLogicalTest.swift */; }; - 1F925EF6195C147800ED456B /* BeCloseToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF5195C147800ED456B /* BeCloseToTest.swift */; }; - 1F925EF7195C147800ED456B /* BeCloseToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF5195C147800ED456B /* BeCloseToTest.swift */; }; - 1F925EF9195C175000ED456B /* BeNilTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF8195C175000ED456B /* BeNilTest.swift */; }; - 1F925EFA195C175000ED456B /* BeNilTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EF8195C175000ED456B /* BeNilTest.swift */; }; - 1F925EFC195C186800ED456B /* BeginWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFB195C186800ED456B /* BeginWithTest.swift */; }; - 1F925EFD195C186800ED456B /* BeginWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFB195C186800ED456B /* BeginWithTest.swift */; }; - 1F925EFF195C187600ED456B /* EndWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFE195C187600ED456B /* EndWithTest.swift */; }; - 1F925F00195C187600ED456B /* EndWithTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925EFE195C187600ED456B /* EndWithTest.swift */; }; - 1F925F02195C189500ED456B /* ContainTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F01195C189500ED456B /* ContainTest.swift */; }; - 1F925F03195C189500ED456B /* ContainTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F01195C189500ED456B /* ContainTest.swift */; }; - 1F925F05195C18B700ED456B /* EqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F04195C18B700ED456B /* EqualTest.swift */; }; - 1F925F06195C18B700ED456B /* EqualTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F04195C18B700ED456B /* EqualTest.swift */; }; - 1F925F08195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */; }; - 1F925F09195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */; }; - 1F925F0B195C18E100ED456B /* BeLessThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */; }; - 1F925F0C195C18E100ED456B /* BeLessThanTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */; }; - 1F925F0E195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */; }; - 1F925F0F195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */; }; - 1F925F11195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; - 1F925F12195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */; }; - 1F9DB8FB1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; - 1F9DB8FC1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; - 1FB90098195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; - 1FB90099195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */; }; - 1FC494AA1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; - 1FC494AB1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; - 1FC494AC1C29CBA40010975C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */; }; - 1FCF914F1C61C85A00B15DCB /* PostNotificationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */; }; - 1FCF91501C61C85A00B15DCB /* PostNotificationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */; }; - 1FCF91511C61C85A00B15DCB /* PostNotificationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */; }; - 1FCF91531C61C8A400B15DCB /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF91521C61C8A400B15DCB /* PostNotification.swift */; }; - 1FCF91541C61C8A400B15DCB /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF91521C61C8A400B15DCB /* PostNotification.swift */; }; - 1FCF91551C61C8A400B15DCB /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FCF91521C61C8A400B15DCB /* PostNotification.swift */; }; - 1FD8CD2E1968AB07008ED995 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; - 1FD8CD2F1968AB07008ED995 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */; }; - 1FD8CD301968AB07008ED995 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; - 1FD8CD311968AB07008ED995 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */; }; - 1FD8CD321968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */; }; - 1FD8CD331968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */; }; - 1FD8CD341968AB07008ED995 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD081968AB07008ED995 /* DSL.swift */; }; - 1FD8CD351968AB07008ED995 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD081968AB07008ED995 /* DSL.swift */; }; - 1FD8CD361968AB07008ED995 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD091968AB07008ED995 /* Expectation.swift */; }; - 1FD8CD371968AB07008ED995 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD091968AB07008ED995 /* Expectation.swift */; }; - 1FD8CD381968AB07008ED995 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0A1968AB07008ED995 /* Expression.swift */; }; - 1FD8CD391968AB07008ED995 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0A1968AB07008ED995 /* Expression.swift */; }; - 1FD8CD3A1968AB07008ED995 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */; }; - 1FD8CD3B1968AB07008ED995 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */; }; - 1FD8CD3C1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */; }; - 1FD8CD3D1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */; }; - 1FD8CD3E1968AB07008ED995 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */; }; - 1FD8CD3F1968AB07008ED995 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */; }; - 1FD8CD401968AB07008ED995 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */; }; - 1FD8CD411968AB07008ED995 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */; }; - 1FD8CD421968AB07008ED995 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD101968AB07008ED995 /* BeEmpty.swift */; }; - 1FD8CD431968AB07008ED995 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD101968AB07008ED995 /* BeEmpty.swift */; }; - 1FD8CD441968AB07008ED995 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD111968AB07008ED995 /* BeginWith.swift */; }; - 1FD8CD451968AB07008ED995 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD111968AB07008ED995 /* BeginWith.swift */; }; - 1FD8CD461968AB07008ED995 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */; }; - 1FD8CD471968AB07008ED995 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */; }; - 1FD8CD481968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */; }; - 1FD8CD491968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */; }; - 1FD8CD4A1968AB07008ED995 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */; }; - 1FD8CD4B1968AB07008ED995 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */; }; - 1FD8CD4C1968AB07008ED995 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD151968AB07008ED995 /* BeLessThan.swift */; }; - 1FD8CD4D1968AB07008ED995 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD151968AB07008ED995 /* BeLessThan.swift */; }; - 1FD8CD4E1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */; }; - 1FD8CD4F1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */; }; - 1FD8CD501968AB07008ED995 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD171968AB07008ED995 /* BeLogical.swift */; }; - 1FD8CD511968AB07008ED995 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD171968AB07008ED995 /* BeLogical.swift */; }; - 1FD8CD521968AB07008ED995 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD181968AB07008ED995 /* BeNil.swift */; }; - 1FD8CD531968AB07008ED995 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD181968AB07008ED995 /* BeNil.swift */; }; - 1FD8CD561968AB07008ED995 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1A1968AB07008ED995 /* Contain.swift */; }; - 1FD8CD571968AB07008ED995 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1A1968AB07008ED995 /* Contain.swift */; }; - 1FD8CD581968AB07008ED995 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1B1968AB07008ED995 /* EndWith.swift */; }; - 1FD8CD591968AB07008ED995 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1B1968AB07008ED995 /* EndWith.swift */; }; - 1FD8CD5A1968AB07008ED995 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1C1968AB07008ED995 /* Equal.swift */; }; - 1FD8CD5B1968AB07008ED995 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1C1968AB07008ED995 /* Equal.swift */; }; - 1FD8CD5C1968AB07008ED995 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */; }; - 1FD8CD5D1968AB07008ED995 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */; }; - 1FD8CD5E1968AB07008ED995 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */; }; - 1FD8CD5F1968AB07008ED995 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */; }; - 1FD8CD6A1968AB07008ED995 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; - 1FD8CD6B1968AB07008ED995 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD8CD261968AB07008ED995 /* Async.swift */; }; - 1FDBD8671AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; - 1FDBD8681AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */; }; - 29EA59631B551ED2002D767E /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; - 29EA59641B551ED2002D767E /* ThrowErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */; }; - 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; - 29EA59671B551EE6002D767E /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EA59651B551EE6002D767E /* ThrowError.swift */; }; - 347155CA1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */; }; - 347155CB1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */; }; - 347155CC1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */; }; - 472FD1351B9E085700C7B8DA /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1341B9E085700C7B8DA /* HaveCount.swift */; }; - 472FD1391B9E0A9700C7B8DA /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1341B9E085700C7B8DA /* HaveCount.swift */; }; - 472FD13A1B9E0A9F00C7B8DA /* HaveCountTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */; }; - 472FD13B1B9E0CFE00C7B8DA /* HaveCountTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */; }; - 4793854D1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */; }; - 4793854E1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */; }; - 6CAEDD0A1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; - 6CAEDD0B1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; - 6CAEDD0C1CAEA86F003F1584 /* LinuxSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */; }; - 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; - 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; - 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */; }; - 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; - 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; - 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */; }; - 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; - 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; - 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */; }; - 7B5358BA1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; - 7B5358BB1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; - 7B5358BC1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */; }; - 7B5358BE1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 7B5358BF1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */; }; - 9630C00D1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C00E1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C0131C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */; }; - 9630C0141C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */; }; - 9630C0191C6D0B2F000693EE /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0161C6D0B2F000693EE /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C01A1C6D0B2F000693EE /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0161C6D0B2F000693EE /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C01C1C6D0B2F000693EE /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0171C6D0B2F000693EE /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - 9630C01D1C6D0B2F000693EE /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0171C6D0B2F000693EE /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - 9630C01F1C6D0B2F000693EE /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */; }; - 9630C0201C6D0B2F000693EE /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */; }; - 9630C0231C6D0B82000693EE /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9630C0221C6D0B82000693EE /* mach_excServer.c */; }; - 9630C0271C6D0BB0000693EE /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9630C0261C6D0BB0000693EE /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9630C02C1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */; }; - 9630C02D1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */; }; - 9630C0301C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */; }; - 9630C0311C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */; }; - 964CFEFD1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; - 964CFEFE1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; - 964CFEFF1C4FF48900513336 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */; }; - 965B0D091B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */; }; - 965B0D0A1B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */; }; - 965B0D0C1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */; }; - 965B0D0D1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */; }; - AE4BA9AD1C88DDB500B73906 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE4BA9AC1C88DDB500B73906 /* Errors.swift */; }; - AE4BA9AE1C88DDB500B73906 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE4BA9AC1C88DDB500B73906 /* Errors.swift */; }; - AE4BA9AF1C88DDB500B73906 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE4BA9AC1C88DDB500B73906 /* Errors.swift */; }; - AE7ADE451C80BF8000B94CD3 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE441C80BF8000B94CD3 /* MatchError.swift */; }; - AE7ADE461C80BF8000B94CD3 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE441C80BF8000B94CD3 /* MatchError.swift */; }; - AE7ADE471C80BF8000B94CD3 /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE441C80BF8000B94CD3 /* MatchError.swift */; }; - AE7ADE491C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */; }; - AE7ADE4A1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */; }; - AE7ADE4B1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */; }; - CD79C99E1D2CC832004B6F9A /* ObjCAsyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */; }; - CD79C99F1D2CC835004B6F9A /* ObjCSyncTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */; }; - CD79C9A01D2CC839004B6F9A /* ObjCBeAnInstanceOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */; }; - CD79C9A11D2CC83B004B6F9A /* ObjCBeCloseToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */; }; - CD79C9A21D2CC83E004B6F9A /* ObjCBeEmptyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */; }; - CD79C9A31D2CC841004B6F9A /* ObjCBeFalseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */; }; - CD79C9A41D2CC848004B6F9A /* ObjCBeFalsyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */; }; - CD79C9A51D2CC848004B6F9A /* ObjCBeginWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */; }; - CD79C9A61D2CC848004B6F9A /* ObjCBeGreaterThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */; }; - CD79C9A71D2CC848004B6F9A /* ObjCBeGreaterThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */; }; - CD79C9A81D2CC848004B6F9A /* ObjCBeIdenticalToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */; }; - CD79C9A91D2CC848004B6F9A /* ObjCBeKindOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */; }; - CD79C9AA1D2CC848004B6F9A /* ObjCBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */; }; - CD79C9AB1D2CC848004B6F9A /* ObjCBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */; }; - CD79C9AC1D2CC848004B6F9A /* ObjCBeNilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */; }; - CD79C9AD1D2CC848004B6F9A /* ObjCBeTrueTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */; }; - CD79C9AE1D2CC848004B6F9A /* ObjCBeTruthyTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */; }; - CD79C9AF1D2CC848004B6F9A /* ObjCContainTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */; }; - CD79C9B01D2CC848004B6F9A /* ObjCEndWithTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */; }; - CD79C9B11D2CC848004B6F9A /* ObjCEqualTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */; }; - CD79C9B21D2CC848004B6F9A /* ObjCHaveCount.m in Sources */ = {isa = PBXBuildFile; fileRef = 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */; }; - CD79C9B31D2CC848004B6F9A /* ObjCMatchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */; }; - CD79C9B41D2CC848004B6F9A /* ObjCRaiseExceptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */; }; - CD79C9B51D2CC848004B6F9A /* ObjCUserDescriptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */; }; - CD79C9B61D2CC848004B6F9A /* ObjCAllPassTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */; }; - CD79C9B71D2CC848004B6F9A /* ObjCSatisfyAnyOfTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */; }; - DA9E8C821A414BB9002633C2 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */; }; - DA9E8C831A414BB9002633C2 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */; }; - DD72EC641A93874A002F7651 /* AllPassTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD72EC631A93874A002F7651 /* AllPassTest.swift */; }; - DD72EC651A93874A002F7651 /* AllPassTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD72EC631A93874A002F7651 /* AllPassTest.swift */; }; - DD9A9A8F19CF439B00706F49 /* BeIdenticalToObjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */; }; - DD9A9A9019CF43AD00706F49 /* BeIdenticalToObjectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */; }; - DDB1BC791A92235600F743C3 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB1BC781A92235600F743C3 /* AllPass.swift */; }; - DDB1BC7A1A92235600F743C3 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB1BC781A92235600F743C3 /* AllPass.swift */; }; - DDB4D5ED19FE43C200E9D9FE /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EC19FE43C200E9D9FE /* Match.swift */; }; - DDB4D5EE19FE43C200E9D9FE /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EC19FE43C200E9D9FE /* Match.swift */; }; - DDB4D5F019FE442800E9D9FE /* MatchTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */; }; - DDB4D5F119FE442800E9D9FE /* MatchTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */; }; - DDEFAEB41A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */; }; - DDEFAEB51A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */; }; - F8A1BE2F1CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */; }; - F8A1BE301CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */; }; - F8A1BE311CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1F1A74361940169200FFFC47 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = "Nimble-iOS"; - }; - 1F5DF1601BDCA0CE00C3A531 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F5DF1541BDCA0CE00C3A531; - remoteInfo = "Nimble-tvOS"; - }; - 1F6BB82A1968BFF9009F1DBB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = "Nimble-iOS"; - }; - 1F925EA4195C0C8500ED456B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = Nimble; - }; - 1F925EA6195C0C8500ED456B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F1A74281940169200FFFC47; - remoteInfo = Nimble; - }; - 1F925EB9195C0D6300ED456B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; - 1F9B7BFD1968AD760094EB8F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; - 1F9B7BFF1968AD760094EB8F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; - 1F9B7C011968AD820094EB8F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 1F1A74201940169200FFFC47 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1F925EAC195C0D6300ED456B; - remoteInfo = "Nimble-macOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectWithLazyProperty.swift; sourceTree = ""; }; - 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronousTests.swift; sourceTree = ""; }; - 1F14FB63194180C5009F2A08 /* utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = utils.swift; sourceTree = ""; }; - 1F1871BC1CA89EDB00A34BF2 /* DSL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DSL.h; sourceTree = ""; }; - 1F1871BD1CA89EDB00A34BF2 /* DSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DSL.m; sourceTree = ""; }; - 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMBExceptionCapture.h; sourceTree = ""; }; - 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMBExceptionCapture.m; sourceTree = ""; }; - 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NMBStringify.h; sourceTree = ""; }; - 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NMBStringify.m; sourceTree = ""; }; - 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NMBExpectation.swift; sourceTree = ""; }; - 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NMBObjCMatcher.swift; sourceTree = ""; }; - 1F1871CD1CA89EE000A34BF2 /* ExceptionCapture.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExceptionCapture.swift; sourceTree = ""; }; - 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsyncMatcherWrapper.swift; sourceTree = ""; }; - 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatcherFunc.swift; sourceTree = ""; }; - 1F1A74291940169200FFFC47 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F1A742D1940169200FFFC47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1F1A742E1940169200FFFC47 /* Nimble.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Nimble.h; sourceTree = ""; }; - 1F1A74341940169200FFFC47 /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F1A743A1940169200FFFC47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeAKindOfTest.swift; sourceTree = ""; }; - 1F2752D119445B8400052A26 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; lineEnding = 0; path = README.md; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.markdown; }; - 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeEmptyTest.swift; sourceTree = ""; }; - 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCAsyncTest.m; sourceTree = ""; }; - 1F4A56681A3B3074009E1637 /* NimbleSpecHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NimbleSpecHelper.h; sourceTree = ""; }; - 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeAnInstanceOfTest.m; sourceTree = ""; }; - 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeKindOfTest.m; sourceTree = ""; }; - 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeCloseToTest.m; sourceTree = ""; }; - 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeginWithTest.m; sourceTree = ""; }; - 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeGreaterThanTest.m; sourceTree = ""; }; - 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeGreaterThanOrEqualToTest.m; sourceTree = ""; }; - 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeIdenticalToTest.m; sourceTree = ""; }; - 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeLessThanTest.m; sourceTree = ""; }; - 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeLessThanOrEqualToTest.m; sourceTree = ""; }; - 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeTruthyTest.m; sourceTree = ""; }; - 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeFalsyTest.m; sourceTree = ""; }; - 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeTrueTest.m; sourceTree = ""; }; - 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeFalseTest.m; sourceTree = ""; }; - 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeNilTest.m; sourceTree = ""; }; - 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCContainTest.m; sourceTree = ""; }; - 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCEndWithTest.m; sourceTree = ""; }; - 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCEqualTest.m; sourceTree = ""; }; - 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCMatchTest.m; sourceTree = ""; }; - 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCRaiseExceptionTest.m; sourceTree = ""; }; - 1F4BB89D1DAC9D930048464B /* CwlCatchBadInstructionPOSIX.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstructionPOSIX.swift; path = CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift; sourceTree = ""; }; - 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowAssertionTest.swift; sourceTree = ""; }; - 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCSyncTest.m; sourceTree = ""; }; - 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeVoidTest.swift; sourceTree = ""; }; - 1F91DD301C74BF61002C309F /* BeVoid.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeVoid.swift; sourceTree = ""; }; - 1F925EAD195C0D6300ED456B /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F925EB7195C0D6300ED456B /* NimbleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NimbleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1F925EE5195C121200ED456B /* AsynchronousTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AsynchronousTest.swift; sourceTree = ""; }; - 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOfTest.swift; sourceTree = ""; }; - 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RaisesExceptionTest.swift; sourceTree = ""; }; - 1F925EEE195C136500ED456B /* BeLogicalTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLogicalTest.swift; sourceTree = ""; }; - 1F925EF5195C147800ED456B /* BeCloseToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeCloseToTest.swift; sourceTree = ""; }; - 1F925EF8195C175000ED456B /* BeNilTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeNilTest.swift; sourceTree = ""; }; - 1F925EFB195C186800ED456B /* BeginWithTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeginWithTest.swift; sourceTree = ""; }; - 1F925EFE195C187600ED456B /* EndWithTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EndWithTest.swift; sourceTree = ""; }; - 1F925F01195C189500ED456B /* ContainTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainTest.swift; sourceTree = ""; }; - 1F925F04195C18B700ED456B /* EqualTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EqualTest.swift; sourceTree = ""; }; - 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeGreaterThanTest.swift; sourceTree = ""; }; - 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLessThanTest.swift; sourceTree = ""; }; - 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeLessThanOrEqualToTest.swift; sourceTree = ""; }; - 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeGreaterThanOrEqualToTest.swift; sourceTree = ""; }; - 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCBeEmptyTest.m; sourceTree = ""; }; - 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeIdenticalToTest.swift; sourceTree = ""; }; - 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NimbleEnvironment.swift; sourceTree = ""; }; - 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostNotificationTest.swift; sourceTree = ""; }; - 1FCF91521C61C8A400B15DCB /* PostNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostNotification.swift; sourceTree = ""; }; - 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssertionRecorder.swift; sourceTree = ""; }; - 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AdapterProtocols.swift; sourceTree = ""; }; - 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NimbleXCTestHandler.swift; sourceTree = ""; }; - 1FD8CD081968AB07008ED995 /* DSL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DSL.swift; sourceTree = ""; }; - 1FD8CD091968AB07008ED995 /* Expectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Expectation.swift; sourceTree = ""; }; - 1FD8CD0A1968AB07008ED995 /* Expression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Expression.swift; sourceTree = ""; }; - 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FailureMessage.swift; sourceTree = ""; }; - 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeAnInstanceOf.swift; sourceTree = ""; }; - 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeAKindOf.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeCloseTo.swift; sourceTree = ""; }; - 1FD8CD101968AB07008ED995 /* BeEmpty.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeEmpty.swift; sourceTree = ""; }; - 1FD8CD111968AB07008ED995 /* BeginWith.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeginWith.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeGreaterThan.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeGreaterThanOrEqualTo.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeIdenticalTo.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD151968AB07008ED995 /* BeLessThan.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeLessThan.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeLessThanOrEqual.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD171968AB07008ED995 /* BeLogical.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeLogical.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD181968AB07008ED995 /* BeNil.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = BeNil.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD1A1968AB07008ED995 /* Contain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Contain.swift; sourceTree = ""; }; - 1FD8CD1B1968AB07008ED995 /* EndWith.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EndWith.swift; sourceTree = ""; }; - 1FD8CD1C1968AB07008ED995 /* Equal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = Equal.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatcherProtocols.swift; sourceTree = ""; }; - 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = RaisesException.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 1FD8CD251968AB07008ED995 /* Functional.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Functional.swift; sourceTree = ""; }; - 1FD8CD261968AB07008ED995 /* Async.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Async.swift; sourceTree = ""; }; - 1FD8CD271968AB07008ED995 /* SourceLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = ""; }; - 1FD8CD281968AB07008ED995 /* Stringers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stringers.swift; sourceTree = ""; }; - 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssertionDispatcher.swift; sourceTree = ""; }; - 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowErrorTest.swift; sourceTree = ""; }; - 29EA59651B551EE6002D767E /* ThrowError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowError.swift; sourceTree = ""; }; - 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseProvider.swift; sourceTree = ""; }; - 472FD1341B9E085700C7B8DA /* HaveCount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HaveCount.swift; sourceTree = ""; }; - 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HaveCountTest.swift; sourceTree = ""; }; - 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCHaveCount.m; sourceTree = ""; }; - 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinuxSupport.swift; sourceTree = ""; }; - 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfying.swift; sourceTree = ""; }; - 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCContainElementSatisfying.m; sourceTree = ""; }; - 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContainElementSatisfyingTest.swift; sourceTree = ""; }; - 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOfTest.swift; sourceTree = ""; }; - 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SatisfyAnyOf.swift; sourceTree = ""; }; - 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCSatisfyAnyOfTest.m; sourceTree = ""; }; - 8DF1C3F61C94FC75004B2D36 /* ObjcStringersTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjcStringersTest.m; sourceTree = ""; }; - 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CwlCatchBadInstruction.h; path = CwlPreconditionTesting/CwlCatchBadInstruction.h; sourceTree = ""; }; - 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CwlCatchBadInstruction.m; path = CwlPreconditionTesting/CwlCatchBadInstruction.m; sourceTree = ""; }; - 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = ""; }; - 9630C0161C6D0B2F000693EE /* CwlCatchException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CwlCatchException.h; path = CwlCatchException/CwlCatchException/CwlCatchException.h; sourceTree = ""; }; - 9630C0171C6D0B2F000693EE /* CwlCatchException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CwlCatchException.m; path = CwlCatchException/CwlCatchException/CwlCatchException.m; sourceTree = ""; }; - 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = CwlCatchException/CwlCatchException/CwlCatchException.swift; sourceTree = ""; }; - 9630C0221C6D0B82000693EE /* mach_excServer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mach_excServer.c; path = CwlPreconditionTesting/mach_excServer.c; sourceTree = ""; }; - 9630C0261C6D0BB0000693EE /* mach_excServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mach_excServer.h; path = CwlPreconditionTesting/mach_excServer.h; sourceTree = ""; }; - 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = ""; }; - 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = ""; }; - 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThrowAssertion.swift; sourceTree = ""; }; - 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCUserDescriptionTest.m; sourceTree = ""; }; - 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDescriptionTest.swift; sourceTree = ""; }; - AE4BA9AC1C88DDB500B73906 /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - AE7ADE441C80BF8000B94CD3 /* MatchError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchError.swift; sourceTree = ""; }; - AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchErrorTest.swift; sourceTree = ""; }; - DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DSL+Wait.swift"; sourceTree = ""; }; - DD72EC631A93874A002F7651 /* AllPassTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AllPassTest.swift; sourceTree = ""; }; - DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BeIdenticalToObjectTest.swift; sourceTree = ""; }; - DDB1BC781A92235600F743C3 /* AllPass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AllPass.swift; sourceTree = ""; }; - DDB4D5EC19FE43C200E9D9FE /* Match.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = Match.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MatchTest.swift; sourceTree = ""; }; - DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCAllPassTest.m; sourceTree = ""; }; - F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "XCTestObservationCenter+Register.m"; sourceTree = ""; }; - F8A1BE321CB3777F00031679 /* CurrentTestCaseTracker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CurrentTestCaseTracker.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1F1A74251940169200FFFC47 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F1A74311940169200FFFC47 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F1A74351940169200FFFC47 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1511BDCA0CE00C3A531 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF15B1BDCA0CE00C3A531 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F5DF15F1BDCA0CE00C3A531 /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EA9195C0D6300ED456B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EB4195C0D6300ED456B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F925EB8195C0D6300ED456B /* Nimble.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1F14FB61194180A7009F2A08 /* Helpers */ = { - isa = PBXGroup; - children = ( - 1F14FB63194180C5009F2A08 /* utils.swift */, - 1F0648CB19639F5A001F9C46 /* ObjectWithLazyProperty.swift */, - 347155C91C337C8900549F03 /* XCTestCaseProvider.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 1F1871B91CA89E1B00A34BF2 /* NimbleObjectiveC */ = { - isa = PBXGroup; - children = ( - F8A1BE321CB3777F00031679 /* CurrentTestCaseTracker.h */, - 1F1871BC1CA89EDB00A34BF2 /* DSL.h */, - 1F1871BD1CA89EDB00A34BF2 /* DSL.m */, - 1F1871BE1CA89EDB00A34BF2 /* NMBExceptionCapture.h */, - 1F1871BF1CA89EDB00A34BF2 /* NMBExceptionCapture.m */, - 1F1871C01CA89EDB00A34BF2 /* NMBStringify.h */, - 1F1871C11CA89EDB00A34BF2 /* NMBStringify.m */, - F8A1BE2B1CB3710900031679 /* XCTestObservationCenter+Register.m */, - ); - name = NimbleObjectiveC; - path = Sources/NimbleObjectiveC; - sourceTree = ""; - }; - 1F1871BA1CA89E2500A34BF2 /* NonObjectiveC */ = { - isa = PBXGroup; - children = ( - 1F1871CD1CA89EE000A34BF2 /* ExceptionCapture.swift */, - ); - path = NonObjectiveC; - sourceTree = ""; - }; - 1F1A741F1940169200FFFC47 = { - isa = PBXGroup; - children = ( - 1F2752D119445B8400052A26 /* README.md */, - 1F1A742B1940169200FFFC47 /* Nimble */, - 1F1871B91CA89E1B00A34BF2 /* NimbleObjectiveC */, - 1F1A74381940169200FFFC47 /* NimbleTests */, - 9630C0081C6D0AB3000693EE /* Lib */, - 1F1A742A1940169200FFFC47 /* Products */, - ); - indentWidth = 4; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 1F1A742A1940169200FFFC47 /* Products */ = { - isa = PBXGroup; - children = ( - 1F1A74291940169200FFFC47 /* Nimble.framework */, - 1F1A74341940169200FFFC47 /* NimbleTests.xctest */, - 1F925EAD195C0D6300ED456B /* Nimble.framework */, - 1F925EB7195C0D6300ED456B /* NimbleTests.xctest */, - 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */, - 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 1F1A742B1940169200FFFC47 /* Nimble */ = { - isa = PBXGroup; - children = ( - 1FD8CD041968AB07008ED995 /* Adapters */, - 1FD8CD081968AB07008ED995 /* DSL.swift */, - DA9E8C811A414BB9002633C2 /* DSL+Wait.swift */, - 1FD8CD091968AB07008ED995 /* Expectation.swift */, - 1FD8CD0A1968AB07008ED995 /* Expression.swift */, - 1FD8CD0B1968AB07008ED995 /* FailureMessage.swift */, - 1F1A742D1940169200FFFC47 /* Info.plist */, - 1FD8CD0C1968AB07008ED995 /* Matchers */, - 1F1A742E1940169200FFFC47 /* Nimble.h */, - 1FD8CD241968AB07008ED995 /* Utils */, - ); - name = Nimble; - path = Sources/Nimble; - sourceTree = ""; - }; - 1F1A74381940169200FFFC47 /* NimbleTests */ = { - isa = PBXGroup; - children = ( - 1F925EE5195C121200ED456B /* AsynchronousTest.swift */, - 1F0648D31963AAB2001F9C46 /* SynchronousTests.swift */, - 965B0D0B1B62C06D0005AE66 /* UserDescriptionTest.swift */, - 6CAEDD091CAEA86F003F1584 /* LinuxSupport.swift */, - 1FFD729A1963FC8200CD29A2 /* objc */, - 1F14FB61194180A7009F2A08 /* Helpers */, - 1F925EE3195C11B000ED456B /* Matchers */, - 1F1A74391940169200FFFC47 /* Supporting Files */, - ); - name = NimbleTests; - path = Tests/NimbleTests; - sourceTree = ""; - }; - 1F1A74391940169200FFFC47 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 1F1A743A1940169200FFFC47 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 1F925EE3195C11B000ED456B /* Matchers */ = { - isa = PBXGroup; - children = ( - DD72EC631A93874A002F7651 /* AllPassTest.swift */, - 1F1B5AD31963E13900CA8BF9 /* BeAKindOfTest.swift */, - 1F925EE8195C124400ED456B /* BeAnInstanceOfTest.swift */, - 1F925EF5195C147800ED456B /* BeCloseToTest.swift */, - 1F299EAA19627B2D002641AF /* BeEmptyTest.swift */, - 1F925EFB195C186800ED456B /* BeginWithTest.swift */, - 1F925F10195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift */, - 1F925F07195C18CF00ED456B /* BeGreaterThanTest.swift */, - DD9A9A8D19CF413800706F49 /* BeIdenticalToObjectTest.swift */, - 1FB90097195EC4B8001D7FAE /* BeIdenticalToTest.swift */, - 1F925F0D195C18F500ED456B /* BeLessThanOrEqualToTest.swift */, - 1F925F0A195C18E100ED456B /* BeLessThanTest.swift */, - 1F925EEE195C136500ED456B /* BeLogicalTest.swift */, - 1F925EF8195C175000ED456B /* BeNilTest.swift */, - 1F91DD2C1C74BF36002C309F /* BeVoidTest.swift */, - 7B13BA091DD360DE00C9098C /* ContainElementSatisfyingTest.swift */, - 1F925F01195C189500ED456B /* ContainTest.swift */, - 1F925EFE195C187600ED456B /* EndWithTest.swift */, - 1F925F04195C18B700ED456B /* EqualTest.swift */, - 472FD1361B9E094B00C7B8DA /* HaveCountTest.swift */, - DDB4D5EF19FE442800E9D9FE /* MatchTest.swift */, - 1F925EEB195C12C800ED456B /* RaisesExceptionTest.swift */, - 29EA59621B551ED2002D767E /* ThrowErrorTest.swift */, - 7B5358B91C3846C900A23FAA /* SatisfyAnyOfTest.swift */, - 1FCF914E1C61C85A00B15DCB /* PostNotificationTest.swift */, - AE7ADE481C80C00D00B94CD3 /* MatchErrorTest.swift */, - 1F4BB8B31DACA0D00048464B /* ThrowAssertionTest.swift */, - ); - path = Matchers; - sourceTree = ""; - }; - 1FD8CD041968AB07008ED995 /* Adapters */ = { - isa = PBXGroup; - children = ( - 1FD8CD061968AB07008ED995 /* AdapterProtocols.swift */, - 1FDBD8661AF8A4FF0089F27B /* AssertionDispatcher.swift */, - 1FD8CD051968AB07008ED995 /* AssertionRecorder.swift */, - 1FC494A91C29CBA40010975C /* NimbleEnvironment.swift */, - 1FD8CD071968AB07008ED995 /* NimbleXCTestHandler.swift */, - 1F1871BA1CA89E2500A34BF2 /* NonObjectiveC */, - 1F1871C21CA89EDB00A34BF2 /* NMBExpectation.swift */, - 1F1871C31CA89EDB00A34BF2 /* NMBObjCMatcher.swift */, - ); - path = Adapters; - sourceTree = ""; - }; - 1FD8CD0C1968AB07008ED995 /* Matchers */ = { - isa = PBXGroup; - children = ( - DDB1BC781A92235600F743C3 /* AllPass.swift */, - 1F1871E31CA89FB600A34BF2 /* AsyncMatcherWrapper.swift */, - 1FD8CD0E1968AB07008ED995 /* BeAKindOf.swift */, - 1FD8CD0D1968AB07008ED995 /* BeAnInstanceOf.swift */, - 1FD8CD0F1968AB07008ED995 /* BeCloseTo.swift */, - 1FD8CD101968AB07008ED995 /* BeEmpty.swift */, - 1FD8CD111968AB07008ED995 /* BeginWith.swift */, - 1FD8CD121968AB07008ED995 /* BeGreaterThan.swift */, - 1FD8CD131968AB07008ED995 /* BeGreaterThanOrEqualTo.swift */, - 1FD8CD141968AB07008ED995 /* BeIdenticalTo.swift */, - 1FD8CD151968AB07008ED995 /* BeLessThan.swift */, - 1FD8CD161968AB07008ED995 /* BeLessThanOrEqual.swift */, - 1FD8CD171968AB07008ED995 /* BeLogical.swift */, - 1FD8CD181968AB07008ED995 /* BeNil.swift */, - 1F91DD301C74BF61002C309F /* BeVoid.swift */, - 7B13BA051DD360AA00C9098C /* ContainElementSatisfying.swift */, - 1FD8CD1A1968AB07008ED995 /* Contain.swift */, - 1FD8CD1B1968AB07008ED995 /* EndWith.swift */, - 1FD8CD1C1968AB07008ED995 /* Equal.swift */, - 472FD1341B9E085700C7B8DA /* HaveCount.swift */, - DDB4D5EC19FE43C200E9D9FE /* Match.swift */, - 1F1871E51CA89FCD00A34BF2 /* MatcherFunc.swift */, - 1FD8CD1D1968AB07008ED995 /* MatcherProtocols.swift */, - AE7ADE441C80BF8000B94CD3 /* MatchError.swift */, - 1FCF91521C61C8A400B15DCB /* PostNotification.swift */, - 1FD8CD1E1968AB07008ED995 /* RaisesException.swift */, - 964CFEFC1C4FF48900513336 /* ThrowAssertion.swift */, - 7B5358BD1C38479700A23FAA /* SatisfyAnyOf.swift */, - 29EA59651B551EE6002D767E /* ThrowError.swift */, - ); - path = Matchers; - sourceTree = ""; - }; - 1FD8CD241968AB07008ED995 /* Utils */ = { - isa = PBXGroup; - children = ( - 1FD8CD251968AB07008ED995 /* Functional.swift */, - 1FD8CD261968AB07008ED995 /* Async.swift */, - 1FD8CD271968AB07008ED995 /* SourceLocation.swift */, - 1FD8CD281968AB07008ED995 /* Stringers.swift */, - AE4BA9AC1C88DDB500B73906 /* Errors.swift */, - ); - path = Utils; - sourceTree = ""; - }; - 1FFD729A1963FC8200CD29A2 /* objc */ = { - isa = PBXGroup; - children = ( - 1F4A56681A3B3074009E1637 /* NimbleSpecHelper.h */, - 1F4A56651A3B305F009E1637 /* ObjCAsyncTest.m */, - 1F8A37AF1B7C5042001C8357 /* ObjCSyncTest.m */, - 1F4A56691A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m */, - 1F4A566F1A3B319F009E1637 /* ObjCBeCloseToTest.m */, - 1F9DB8FA1A74E793002E96AD /* ObjCBeEmptyTest.m */, - 1F4A568D1A3B342B009E1637 /* ObjCBeFalseTest.m */, - 1F4A56871A3B33CB009E1637 /* ObjCBeFalsyTest.m */, - 1F4A56721A3B3210009E1637 /* ObjCBeginWithTest.m */, - 1F4A56781A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m */, - 1F4A56751A3B3253009E1637 /* ObjCBeGreaterThanTest.m */, - 1F4A567B1A3B3311009E1637 /* ObjCBeIdenticalToTest.m */, - 1F4A566C1A3B3159009E1637 /* ObjCBeKindOfTest.m */, - 1F4A56811A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m */, - 1F4A567E1A3B333F009E1637 /* ObjCBeLessThanTest.m */, - 1F4A56901A3B344A009E1637 /* ObjCBeNilTest.m */, - 1F4A568A1A3B3407009E1637 /* ObjCBeTrueTest.m */, - 1F4A56841A3B33A0009E1637 /* ObjCBeTruthyTest.m */, - 7B13BA071DD360C300C9098C /* ObjCContainElementSatisfying.m */, - 1F4A56931A3B346F009E1637 /* ObjCContainTest.m */, - 1F4A56961A3B34AA009E1637 /* ObjCEndWithTest.m */, - 1F4A56991A3B3539009E1637 /* ObjCEqualTest.m */, - 4793854C1BA0BB2500296F85 /* ObjCHaveCount.m */, - 1F4A569C1A3B3565009E1637 /* ObjCMatchTest.m */, - 1F4A569F1A3B359E009E1637 /* ObjCRaiseExceptionTest.m */, - 965B0D081B62B8ED0005AE66 /* ObjCUserDescriptionTest.m */, - DDEFAEB31A93CBE6005CA37A /* ObjCAllPassTest.m */, - 7B5358C11C39155600A23FAA /* ObjCSatisfyAnyOfTest.m */, - 8DF1C3F61C94FC75004B2D36 /* ObjcStringersTest.m */, - ); - path = objc; - sourceTree = ""; - }; - 9630C0081C6D0AB3000693EE /* Lib */ = { - isa = PBXGroup; - children = ( - 9630C0091C6D0ABA000693EE /* CwlPreconditionTesting */, - ); - name = Lib; - path = Sources/Lib; - sourceTree = ""; - }; - 9630C0091C6D0ABA000693EE /* CwlPreconditionTesting */ = { - isa = PBXGroup; - children = ( - 1F4BB89D1DAC9D930048464B /* CwlCatchBadInstructionPOSIX.swift */, - 9630C02B1C6D125F000693EE /* CwlBadInstructionException.swift */, - 9630C00C1C6D0B18000693EE /* CwlCatchBadInstruction.swift */, - 9630C00A1C6D0B18000693EE /* CwlCatchBadInstruction.h */, - 9630C00B1C6D0B18000693EE /* CwlCatchBadInstruction.m */, - 9630C0181C6D0B2F000693EE /* CwlCatchException.swift */, - 9630C0161C6D0B2F000693EE /* CwlCatchException.h */, - 9630C0171C6D0B2F000693EE /* CwlCatchException.m */, - 9630C02F1C6D139F000693EE /* CwlDarwinDefinitions.swift */, - 9630C0261C6D0BB0000693EE /* mach_excServer.h */, - 9630C0221C6D0B82000693EE /* mach_excServer.c */, - ); - path = CwlPreconditionTesting; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 1F1A74261940169200FFFC47 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9630C00D1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */, - 9630C0191C6D0B2F000693EE /* CwlCatchException.h in Headers */, - 1F1871C91CA89EDB00A34BF2 /* NMBStringify.h in Headers */, - 1F1871C51CA89EDB00A34BF2 /* DSL.h in Headers */, - 1F1871C71CA89EDB00A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F1A742F1940169200FFFC47 /* Nimble.h in Headers */, - 9630C0271C6D0BB0000693EE /* mach_excServer.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1521BDCA0CE00C3A531 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F4BB8AE1DAC9DED0048464B /* CwlCatchException.h in Headers */, - 1F1871E21CA89EF600A34BF2 /* NMBStringify.h in Headers */, - 1F1871E01CA89EF600A34BF2 /* DSL.h in Headers */, - 1F1871E11CA89EF600A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F4BB8AB1DAC9DE50048464B /* CwlCatchBadInstruction.h in Headers */, - 1F4999A61DBF2DD100BF8877 /* Nimble.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EAA195C0D6300ED456B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9630C00E1C6D0B18000693EE /* CwlCatchBadInstruction.h in Headers */, - 9630C01A1C6D0B2F000693EE /* CwlCatchException.h in Headers */, - 1F2D175B1DB618ED00EE9C7A /* mach_excServer.h in Headers */, - 1F1871DF1CA89EF500A34BF2 /* NMBStringify.h in Headers */, - 1F1871DD1CA89EF500A34BF2 /* DSL.h in Headers */, - 1F1871DE1CA89EF500A34BF2 /* NMBExceptionCapture.h in Headers */, - 1F925EC7195C0DD100ED456B /* Nimble.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 1F1A74281940169200FFFC47 /* Nimble-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F1A743F1940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOS" */; - buildPhases = ( - 1F1A74241940169200FFFC47 /* Sources */, - 1F1A74251940169200FFFC47 /* Frameworks */, - 1F1A74261940169200FFFC47 /* Headers */, - 1F1A74271940169200FFFC47 /* Resources */, - 36D948361E0C6F4E0088F9E9 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Nimble-iOS"; - productName = "Nimble-iOS"; - productReference = 1F1A74291940169200FFFC47 /* Nimble.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F1A74331940169200FFFC47 /* Nimble-iOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F1A74421940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOSTests" */; - buildPhases = ( - 1F1A74301940169200FFFC47 /* Sources */, - 1F1A74311940169200FFFC47 /* Frameworks */, - 1F1A74321940169200FFFC47 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F1A74371940169200FFFC47 /* PBXTargetDependency */, - 1F925EA5195C0C8500ED456B /* PBXTargetDependency */, - 1F925EA7195C0C8500ED456B /* PBXTargetDependency */, - 1F6BB82B1968BFF9009F1DBB /* PBXTargetDependency */, - ); - name = "Nimble-iOSTests"; - productName = "Nimble-iOSTests"; - productReference = 1F1A74341940169200FFFC47 /* NimbleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F5DF16A1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOS" */; - buildPhases = ( - 1F5DF1501BDCA0CE00C3A531 /* Sources */, - 1F5DF1511BDCA0CE00C3A531 /* Frameworks */, - 1F5DF1521BDCA0CE00C3A531 /* Headers */, - 1F5DF1531BDCA0CE00C3A531 /* Resources */, - 36D948371E0C6F590088F9E9 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Nimble-tvOS"; - productName = "Nimble-tvOS"; - productReference = 1F5DF1551BDCA0CE00C3A531 /* Nimble.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F5DF15D1BDCA0CE00C3A531 /* Nimble-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F5DF16B1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOSTests" */; - buildPhases = ( - 1F5DF15A1BDCA0CE00C3A531 /* Sources */, - 1F5DF15B1BDCA0CE00C3A531 /* Frameworks */, - 1F5DF15C1BDCA0CE00C3A531 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F5DF1611BDCA0CE00C3A531 /* PBXTargetDependency */, - ); - name = "Nimble-tvOSTests"; - productName = "Nimble-tvOSTests"; - productReference = 1F5DF15E1BDCA0CE00C3A531 /* NimbleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 1F925EAC195C0D6300ED456B /* Nimble-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F925EC0195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOS" */; - buildPhases = ( - 1F925EA8195C0D6300ED456B /* Sources */, - 1F925EA9195C0D6300ED456B /* Frameworks */, - 1F925EAA195C0D6300ED456B /* Headers */, - 1F925EAB195C0D6300ED456B /* Resources */, - 36D948351E0C6F420088F9E9 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Nimble-macOS"; - productName = "Nimble-macOS"; - productReference = 1F925EAD195C0D6300ED456B /* Nimble.framework */; - productType = "com.apple.product-type.framework"; - }; - 1F925EB6195C0D6300ED456B /* Nimble-macOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F925EC3195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOSTests" */; - buildPhases = ( - 1F925EB3195C0D6300ED456B /* Sources */, - 1F925EB4195C0D6300ED456B /* Frameworks */, - 1F925EB5195C0D6300ED456B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 1F925EBA195C0D6300ED456B /* PBXTargetDependency */, - 1F9B7BFE1968AD760094EB8F /* PBXTargetDependency */, - 1F9B7C001968AD760094EB8F /* PBXTargetDependency */, - 1F9B7C021968AD820094EB8F /* PBXTargetDependency */, - ); - name = "Nimble-macOSTests"; - productName = "Nimble-OSXTests"; - productReference = 1F925EB7195C0D6300ED456B /* NimbleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 1F1A74201940169200FFFC47 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0800; - ORGANIZATIONNAME = "Jeff Hui"; - TargetAttributes = { - 1F1A74281940169200FFFC47 = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - }; - 1F1A74331940169200FFFC47 = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - TestTargetID = 1F1A74281940169200FFFC47; - }; - 1F5DF1541BDCA0CE00C3A531 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 1F5DF15D1BDCA0CE00C3A531 = { - CreatedOnToolsVersion = 7.1; - LastSwiftMigration = 0800; - }; - 1F925EAC195C0D6300ED456B = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - }; - 1F925EB6195C0D6300ED456B = { - CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0800; - TestTargetID = 1F925EAC195C0D6300ED456B; - }; - }; - }; - buildConfigurationList = 1F1A74231940169200FFFC47 /* Build configuration list for PBXProject "Nimble" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 1F1A741F1940169200FFFC47; - productRefGroup = 1F1A742A1940169200FFFC47 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1F925EAC195C0D6300ED456B /* Nimble-macOS */, - 1F925EB6195C0D6300ED456B /* Nimble-macOSTests */, - 1F1A74281940169200FFFC47 /* Nimble-iOS */, - 1F1A74331940169200FFFC47 /* Nimble-iOSTests */, - 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */, - 1F5DF15D1BDCA0CE00C3A531 /* Nimble-tvOSTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1F1A74271940169200FFFC47 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F1A74321940169200FFFC47 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1531BDCA0CE00C3A531 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF15C1BDCA0CE00C3A531 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EAB195C0D6300ED456B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EB5195C0D6300ED456B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 36D948351E0C6F420088F9E9 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; - }; - 36D948361E0C6F4E0088F9E9 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; - }; - 36D948371E0C6F590088F9E9 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nfi"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1F1A74241940169200FFFC47 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1FD8CD401968AB07008ED995 /* BeCloseTo.swift in Sources */, - 1F1871C81CA89EDB00A34BF2 /* NMBExceptionCapture.m in Sources */, - 1FD8CD361968AB07008ED995 /* Expectation.swift in Sources */, - 1FD8CD321968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */, - 1F43728F1A1B344000EB80F8 /* Stringers.swift in Sources */, - 1F43728D1A1B343D00EB80F8 /* SourceLocation.swift in Sources */, - 1FD8CD4E1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */, - 1FDBD8671AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */, - 1F43728A1A1B343800EB80F8 /* Functional.swift in Sources */, - AE4BA9AD1C88DDB500B73906 /* Errors.swift in Sources */, - 1FD8CD3C1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */, - 1FD8CD501968AB07008ED995 /* BeLogical.swift in Sources */, - 1F1871CB1CA89EDB00A34BF2 /* NMBExpectation.swift in Sources */, - DA9E8C821A414BB9002633C2 /* DSL+Wait.swift in Sources */, - DDB1BC791A92235600F743C3 /* AllPass.swift in Sources */, - 1FD8CD3E1968AB07008ED995 /* BeAKindOf.swift in Sources */, - DDB4D5ED19FE43C200E9D9FE /* Match.swift in Sources */, - 1F91DD311C74BF61002C309F /* BeVoid.swift in Sources */, - 7B13BA0B1DD361D200C9098C /* ContainElementSatisfying.swift in Sources */, - 1FCF91531C61C8A400B15DCB /* PostNotification.swift in Sources */, - 1FD8CD2E1968AB07008ED995 /* AssertionRecorder.swift in Sources */, - 29EA59661B551EE6002D767E /* ThrowError.swift in Sources */, - 1FD8CD5A1968AB07008ED995 /* Equal.swift in Sources */, - 1FD8CD4C1968AB07008ED995 /* BeLessThan.swift in Sources */, - 1F1871CC1CA89EDB00A34BF2 /* NMBObjCMatcher.swift in Sources */, - 1FD8CD461968AB07008ED995 /* BeGreaterThan.swift in Sources */, - F8A1BE2F1CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, - 1F1871C61CA89EDB00A34BF2 /* DSL.m in Sources */, - 1FD8CD301968AB07008ED995 /* AdapterProtocols.swift in Sources */, - AE7ADE451C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1F4BB8BA1DACBFCF0048464B /* CwlCatchBadInstruction.m in Sources */, - 1FC494AA1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, - 1FD8CD5E1968AB07008ED995 /* RaisesException.swift in Sources */, - 1FD8CD561968AB07008ED995 /* Contain.swift in Sources */, - 1FD8CD481968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */, - 1FD8CD441968AB07008ED995 /* BeginWith.swift in Sources */, - 1FD8CD4A1968AB07008ED995 /* BeIdenticalTo.swift in Sources */, - 1F1871E61CA89FCD00A34BF2 /* MatcherFunc.swift in Sources */, - 1FD8CD421968AB07008ED995 /* BeEmpty.swift in Sources */, - 1F1871E41CA89FB600A34BF2 /* AsyncMatcherWrapper.swift in Sources */, - 1F1871CA1CA89EDB00A34BF2 /* NMBStringify.m in Sources */, - 1FD8CD521968AB07008ED995 /* BeNil.swift in Sources */, - 1FD8CD6A1968AB07008ED995 /* Async.swift in Sources */, - 1FD8CD581968AB07008ED995 /* EndWith.swift in Sources */, - 1FD8CD5C1968AB07008ED995 /* MatcherProtocols.swift in Sources */, - 1FD8CD341968AB07008ED995 /* DSL.swift in Sources */, - 7B5358BE1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, - 1FD8CD381968AB07008ED995 /* Expression.swift in Sources */, - 1FD8CD3A1968AB07008ED995 /* FailureMessage.swift in Sources */, - 472FD1351B9E085700C7B8DA /* HaveCount.swift in Sources */, - 9630C0301C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */, - 9630C0231C6D0B82000693EE /* mach_excServer.c in Sources */, - 9630C01F1C6D0B2F000693EE /* CwlCatchException.swift in Sources */, - 9630C0131C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */, - 9630C01C1C6D0B2F000693EE /* CwlCatchException.m in Sources */, - 9630C02C1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */, - 964CFEFD1C4FF48900513336 /* ThrowAssertion.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F1A74301940169200FFFC47 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F4A569A1A3B3539009E1637 /* ObjCEqualTest.m in Sources */, - 1F925EEC195C12C800ED456B /* RaisesExceptionTest.swift in Sources */, - 1F925EFF195C187600ED456B /* EndWithTest.swift in Sources */, - 1F1B5AD41963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */, - 1F925F0E195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */, - 1F4A56661A3B305F009E1637 /* ObjCAsyncTest.m in Sources */, - 1F925EFC195C186800ED456B /* BeginWithTest.swift in Sources */, - 1F14FB64194180C5009F2A08 /* utils.swift in Sources */, - DDB4D5F019FE442800E9D9FE /* MatchTest.swift in Sources */, - 1F4A56731A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, - 1F4A56821A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, - 7B13BA0E1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, - 1F925F02195C189500ED456B /* ContainTest.swift in Sources */, - 1F4A56881A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, - 1F4A568E1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, - 1F925F11195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */, - 1F925EEF195C136500ED456B /* BeLogicalTest.swift in Sources */, - 1F4A56A01A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */, - 1F925F0B195C18E100ED456B /* BeLessThanTest.swift in Sources */, - 1F9DB8FB1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */, - 1FB90098195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */, - 1F91DD2D1C74BF36002C309F /* BeVoidTest.swift in Sources */, - 1F4A56761A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */, - 1F925EF9195C175000ED456B /* BeNilTest.swift in Sources */, - 1F4A56701A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */, - 1F4A56971A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */, - 1F4A567C1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */, - 965B0D0C1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */, - 1FCF914F1C61C85A00B15DCB /* PostNotificationTest.swift in Sources */, - 965B0D091B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */, - 1F4A56911A3B344A009E1637 /* ObjCBeNilTest.m in Sources */, - 1F8A37B01B7C5042001C8357 /* ObjCSyncTest.m in Sources */, - 1F4A56941A3B346F009E1637 /* ObjCContainTest.m in Sources */, - 1F299EAB19627B2D002641AF /* BeEmptyTest.swift in Sources */, - 7B13BA111DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, - 1F925EF6195C147800ED456B /* BeCloseToTest.swift in Sources */, - 1F4A56791A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, - AE7ADE491C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, - 1F4A568B1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */, - DDEFAEB41A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */, - 1F4A567F1A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */, - 1F925EE6195C121200ED456B /* AsynchronousTest.swift in Sources */, - 1F0648CC19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */, - 1F4A56851A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */, - DD9A9A8F19CF439B00706F49 /* BeIdenticalToObjectTest.swift in Sources */, - 1F4BB8B71DACA0E40048464B /* ThrowAssertionTest.swift in Sources */, - 1F0648D41963AAB2001F9C46 /* SynchronousTests.swift in Sources */, - 347155CA1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, - 4793854D1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */, - 1F925F08195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */, - 7B5358BA1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */, - 1F925F05195C18B700ED456B /* EqualTest.swift in Sources */, - 1F4A566D1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */, - DD72EC641A93874A002F7651 /* AllPassTest.swift in Sources */, - 1F4A569D1A3B3565009E1637 /* ObjCMatchTest.m in Sources */, - 1F925EE9195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */, - 29EA59631B551ED2002D767E /* ThrowErrorTest.swift in Sources */, - 6CAEDD0A1CAEA86F003F1584 /* LinuxSupport.swift in Sources */, - 1F4A566A1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */, - 472FD13B1B9E0CFE00C7B8DA /* HaveCountTest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF1501BDCA0CE00C3A531 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F5DF1791BDCA0F500C3A531 /* BeCloseTo.swift in Sources */, - 1F5DF16C1BDCA0F500C3A531 /* AssertionRecorder.swift in Sources */, - 1F1871D71CA89EEF00A34BF2 /* NMBExceptionCapture.m in Sources */, - 1F5DF1881BDCA0F500C3A531 /* MatcherProtocols.swift in Sources */, - 1F5DF16E1BDCA0F500C3A531 /* NimbleXCTestHandler.swift in Sources */, - 1F5DF1751BDCA0F500C3A531 /* FailureMessage.swift in Sources */, - 1F5DF1801BDCA0F500C3A531 /* BeLessThanOrEqual.swift in Sources */, - 1F1871E81CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */, - 1F5DF18A1BDCA0F500C3A531 /* ThrowError.swift in Sources */, - 1F5DF1891BDCA0F500C3A531 /* RaisesException.swift in Sources */, - 1F5DF1761BDCA0F500C3A531 /* AllPass.swift in Sources */, - AE4BA9AF1C88DDB500B73906 /* Errors.swift in Sources */, - 1F5DF1861BDCA0F500C3A531 /* HaveCount.swift in Sources */, - 1F5DF1811BDCA0F500C3A531 /* BeLogical.swift in Sources */, - 1F1871DB1CA89EF100A34BF2 /* NMBExpectation.swift in Sources */, - 1F5DF1741BDCA0F500C3A531 /* Expression.swift in Sources */, - 1F5DF1781BDCA0F500C3A531 /* BeAnInstanceOf.swift in Sources */, - 1F5DF1771BDCA0F500C3A531 /* BeAKindOf.swift in Sources */, - 1F5DF17F1BDCA0F500C3A531 /* BeLessThan.swift in Sources */, - 1F4BB8A41DAC9DC90048464B /* CwlCatchBadInstructionPOSIX.swift in Sources */, - 1F5DF17C1BDCA0F500C3A531 /* BeGreaterThan.swift in Sources */, - 1F91DD331C74BF61002C309F /* BeVoid.swift in Sources */, - 1FCF91551C61C8A400B15DCB /* PostNotification.swift in Sources */, - 1F5DF1831BDCA0F500C3A531 /* Contain.swift in Sources */, - 1F5DF1851BDCA0F500C3A531 /* Equal.swift in Sources */, - 1F1871DC1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */, - F8A1BE311CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, - 1F5DF1711BDCA0F500C3A531 /* DSL+Wait.swift in Sources */, - 1F1871D61CA89EEF00A34BF2 /* DSL.m in Sources */, - 1F5DF17D1BDCA0F500C3A531 /* BeGreaterThanOrEqualTo.swift in Sources */, - AE7ADE471C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1FC494AC1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, - 1F5DF18E1BDCA0F500C3A531 /* Stringers.swift in Sources */, - 1F5DF16D1BDCA0F500C3A531 /* AdapterProtocols.swift in Sources */, - 1F5DF17B1BDCA0F500C3A531 /* BeginWith.swift in Sources */, - 1F5DF17E1BDCA0F500C3A531 /* BeIdenticalTo.swift in Sources */, - 1F1871E91CA8A18700A34BF2 /* MatcherFunc.swift in Sources */, - 1F5DF17A1BDCA0F500C3A531 /* BeEmpty.swift in Sources */, - 1F5DF18C1BDCA0F500C3A531 /* Async.swift in Sources */, - 1F1871D81CA89EEF00A34BF2 /* NMBStringify.m in Sources */, - 1F5DF1821BDCA0F500C3A531 /* BeNil.swift in Sources */, - 1F5DF16F1BDCA0F500C3A531 /* AssertionDispatcher.swift in Sources */, - 964CFEFF1C4FF48900513336 /* ThrowAssertion.swift in Sources */, - 1F5DF1841BDCA0F500C3A531 /* EndWith.swift in Sources */, - 1F5DF18D1BDCA0F500C3A531 /* SourceLocation.swift in Sources */, - 1F5DF1701BDCA0F500C3A531 /* DSL.swift in Sources */, - 1F5DF1721BDCA0F500C3A531 /* Expectation.swift in Sources */, - 7B5358C01C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, - 7B13BA0C1DD361D300C9098C /* ContainElementSatisfying.swift in Sources */, - 1F5DF18B1BDCA0F500C3A531 /* Functional.swift in Sources */, - 1F5DF1871BDCA0F500C3A531 /* Match.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F5DF15A1BDCA0CE00C3A531 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CD79C9AD1D2CC848004B6F9A /* ObjCBeTrueTest.m in Sources */, - CD79C9B41D2CC848004B6F9A /* ObjCRaiseExceptionTest.m in Sources */, - 1F5DF1A31BDCA10200C3A531 /* BeLogicalTest.swift in Sources */, - 1F5DF1951BDCA10200C3A531 /* utils.swift in Sources */, - CD79C9B01D2CC848004B6F9A /* ObjCEndWithTest.m in Sources */, - CD79C9B21D2CC848004B6F9A /* ObjCHaveCount.m in Sources */, - CD79C9A41D2CC848004B6F9A /* ObjCBeFalsyTest.m in Sources */, - 1F5DF1981BDCA10200C3A531 /* BeAKindOfTest.swift in Sources */, - 1F5DF19B1BDCA10200C3A531 /* BeEmptyTest.swift in Sources */, - 7B5358BC1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */, - 1F5DF1A11BDCA10200C3A531 /* BeLessThanOrEqualToTest.swift in Sources */, - 1F5DF1961BDCA10200C3A531 /* ObjectWithLazyProperty.swift in Sources */, - 1F5DF1AB1BDCA10200C3A531 /* ThrowErrorTest.swift in Sources */, - CD79C9A91D2CC848004B6F9A /* ObjCBeKindOfTest.m in Sources */, - 1F5DF1A51BDCA10200C3A531 /* ContainTest.swift in Sources */, - 7B13BA121DD361EB00C9098C /* ObjCContainElementSatisfying.m in Sources */, - AE7ADE4B1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, - 7B13BA0F1DD361DF00C9098C /* ContainElementSatisfyingTest.swift in Sources */, - CD79C9B31D2CC848004B6F9A /* ObjCMatchTest.m in Sources */, - 1F5DF19E1BDCA10200C3A531 /* BeGreaterThanTest.swift in Sources */, - 1F5DF1A21BDCA10200C3A531 /* BeLessThanTest.swift in Sources */, - CD79C9AB1D2CC848004B6F9A /* ObjCBeLessThanTest.m in Sources */, - CD79C9A81D2CC848004B6F9A /* ObjCBeIdenticalToTest.m in Sources */, - CD79C9AE1D2CC848004B6F9A /* ObjCBeTruthyTest.m in Sources */, - 1F5DF1921BDCA10200C3A531 /* AsynchronousTest.swift in Sources */, - 1F5DF1A91BDCA10200C3A531 /* MatchTest.swift in Sources */, - 1F5DF1A81BDCA10200C3A531 /* HaveCountTest.swift in Sources */, - 1F5DF1971BDCA10200C3A531 /* AllPassTest.swift in Sources */, - CD79C9A61D2CC848004B6F9A /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, - CD79C99F1D2CC835004B6F9A /* ObjCSyncTest.m in Sources */, - 1FCF91511C61C85A00B15DCB /* PostNotificationTest.swift in Sources */, - CD79C9B51D2CC848004B6F9A /* ObjCUserDescriptionTest.m in Sources */, - 1F5DF19C1BDCA10200C3A531 /* BeginWithTest.swift in Sources */, - 1F5DF1A01BDCA10200C3A531 /* BeIdenticalToTest.swift in Sources */, - 1F5DF19A1BDCA10200C3A531 /* BeCloseToTest.swift in Sources */, - 1F5DF1A61BDCA10200C3A531 /* EndWithTest.swift in Sources */, - CD79C9A31D2CC841004B6F9A /* ObjCBeFalseTest.m in Sources */, - 1F5DF1A71BDCA10200C3A531 /* EqualTest.swift in Sources */, - CD79C9AA1D2CC848004B6F9A /* ObjCBeLessThanOrEqualToTest.m in Sources */, - 1F5DF1931BDCA10200C3A531 /* SynchronousTests.swift in Sources */, - CD79C9A11D2CC83B004B6F9A /* ObjCBeCloseToTest.m in Sources */, - 1F5DF19D1BDCA10200C3A531 /* BeGreaterThanOrEqualToTest.swift in Sources */, - 1F5DF1A41BDCA10200C3A531 /* BeNilTest.swift in Sources */, - CD79C9A71D2CC848004B6F9A /* ObjCBeGreaterThanTest.m in Sources */, - CD79C9A51D2CC848004B6F9A /* ObjCBeginWithTest.m in Sources */, - 347155CC1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, - 1F5DF1AA1BDCA10200C3A531 /* RaisesExceptionTest.swift in Sources */, - 1F5DF1941BDCA10200C3A531 /* UserDescriptionTest.swift in Sources */, - CD79C9AF1D2CC848004B6F9A /* ObjCContainTest.m in Sources */, - 1F5DF19F1BDCA10200C3A531 /* BeIdenticalToObjectTest.swift in Sources */, - CD79C99E1D2CC832004B6F9A /* ObjCAsyncTest.m in Sources */, - 1F91DD2F1C74BF36002C309F /* BeVoidTest.swift in Sources */, - 6CAEDD0C1CAEA86F003F1584 /* LinuxSupport.swift in Sources */, - 1F4BB8B81DACAACF0048464B /* ThrowAssertionTest.swift in Sources */, - CD79C9B71D2CC848004B6F9A /* ObjCSatisfyAnyOfTest.m in Sources */, - 1F5DF1991BDCA10200C3A531 /* BeAnInstanceOfTest.swift in Sources */, - CD79C9B11D2CC848004B6F9A /* ObjCEqualTest.m in Sources */, - CD79C9A21D2CC83E004B6F9A /* ObjCBeEmptyTest.m in Sources */, - CD79C9AC1D2CC848004B6F9A /* ObjCBeNilTest.m in Sources */, - CD79C9A01D2CC839004B6F9A /* ObjCBeAnInstanceOfTest.m in Sources */, - CD79C9B61D2CC848004B6F9A /* ObjCAllPassTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EA8195C0D6300ED456B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1FD8CD411968AB07008ED995 /* BeCloseTo.swift in Sources */, - 1F1871D31CA89EEE00A34BF2 /* NMBExceptionCapture.m in Sources */, - 1FD8CD371968AB07008ED995 /* Expectation.swift in Sources */, - 1FD8CD331968AB07008ED995 /* NimbleXCTestHandler.swift in Sources */, - 1F43728E1A1B343F00EB80F8 /* Stringers.swift in Sources */, - 1F43728C1A1B343C00EB80F8 /* SourceLocation.swift in Sources */, - 1FD8CD4F1968AB07008ED995 /* BeLessThanOrEqual.swift in Sources */, - 1F1871E71CA8A18400A34BF2 /* AsyncMatcherWrapper.swift in Sources */, - 1FDBD8681AF8A4FF0089F27B /* AssertionDispatcher.swift in Sources */, - 1F43728B1A1B343900EB80F8 /* Functional.swift in Sources */, - AE4BA9AE1C88DDB500B73906 /* Errors.swift in Sources */, - 1FD8CD3D1968AB07008ED995 /* BeAnInstanceOf.swift in Sources */, - 1FD8CD511968AB07008ED995 /* BeLogical.swift in Sources */, - 1F1871D91CA89EF100A34BF2 /* NMBExpectation.swift in Sources */, - DA9E8C831A414BB9002633C2 /* DSL+Wait.swift in Sources */, - DDB1BC7A1A92235600F743C3 /* AllPass.swift in Sources */, - 1FD8CD3F1968AB07008ED995 /* BeAKindOf.swift in Sources */, - 1FD8CD2F1968AB07008ED995 /* AssertionRecorder.swift in Sources */, - 7B13BA061DD360AA00C9098C /* ContainElementSatisfying.swift in Sources */, - 1F91DD321C74BF61002C309F /* BeVoid.swift in Sources */, - 1FCF91541C61C8A400B15DCB /* PostNotification.swift in Sources */, - DDB4D5EE19FE43C200E9D9FE /* Match.swift in Sources */, - 29EA59671B551EE6002D767E /* ThrowError.swift in Sources */, - 1FD8CD5B1968AB07008ED995 /* Equal.swift in Sources */, - 1FD8CD4D1968AB07008ED995 /* BeLessThan.swift in Sources */, - 1FD8CD471968AB07008ED995 /* BeGreaterThan.swift in Sources */, - F8A1BE301CB3710900031679 /* XCTestObservationCenter+Register.m in Sources */, - 1F1871DA1CA89EF100A34BF2 /* NMBObjCMatcher.swift in Sources */, - 1FD8CD311968AB07008ED995 /* AdapterProtocols.swift in Sources */, - 1F2D175C1DB618F000EE9C7A /* mach_excServer.c in Sources */, - 1F1871D21CA89EEE00A34BF2 /* DSL.m in Sources */, - 1F4BB8BB1DACBFD00048464B /* CwlCatchBadInstruction.m in Sources */, - AE7ADE461C80BF8000B94CD3 /* MatchError.swift in Sources */, - 1FC494AB1C29CBA40010975C /* NimbleEnvironment.swift in Sources */, - 1FD8CD5F1968AB07008ED995 /* RaisesException.swift in Sources */, - 1FD8CD571968AB07008ED995 /* Contain.swift in Sources */, - 1FD8CD491968AB07008ED995 /* BeGreaterThanOrEqualTo.swift in Sources */, - 1FD8CD451968AB07008ED995 /* BeginWith.swift in Sources */, - 1F1871EB1CA8A18800A34BF2 /* MatcherFunc.swift in Sources */, - 1FD8CD4B1968AB07008ED995 /* BeIdenticalTo.swift in Sources */, - 1FD8CD431968AB07008ED995 /* BeEmpty.swift in Sources */, - 1F1871D41CA89EEE00A34BF2 /* NMBStringify.m in Sources */, - 1FD8CD531968AB07008ED995 /* BeNil.swift in Sources */, - 1FD8CD6B1968AB07008ED995 /* Async.swift in Sources */, - 964CFEFE1C4FF48900513336 /* ThrowAssertion.swift in Sources */, - 1FD8CD591968AB07008ED995 /* EndWith.swift in Sources */, - 1FD8CD5D1968AB07008ED995 /* MatcherProtocols.swift in Sources */, - 1FD8CD351968AB07008ED995 /* DSL.swift in Sources */, - 7B5358BF1C38479700A23FAA /* SatisfyAnyOf.swift in Sources */, - 1FD8CD391968AB07008ED995 /* Expression.swift in Sources */, - 1FD8CD3B1968AB07008ED995 /* FailureMessage.swift in Sources */, - 472FD1391B9E0A9700C7B8DA /* HaveCount.swift in Sources */, - 9630C0311C6D139F000693EE /* CwlDarwinDefinitions.swift in Sources */, - 9630C0201C6D0B2F000693EE /* CwlCatchException.swift in Sources */, - 9630C0141C6D0B18000693EE /* CwlCatchBadInstruction.swift in Sources */, - 9630C01D1C6D0B2F000693EE /* CwlCatchException.m in Sources */, - 9630C02D1C6D125F000693EE /* CwlBadInstructionException.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1F925EB3195C0D6300ED456B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1F4A569B1A3B3539009E1637 /* ObjCEqualTest.m in Sources */, - 1F925EED195C12C800ED456B /* RaisesExceptionTest.swift in Sources */, - 1F925F00195C187600ED456B /* EndWithTest.swift in Sources */, - 1F1B5AD51963E13900CA8BF9 /* BeAKindOfTest.swift in Sources */, - 1F925F0F195C18F500ED456B /* BeLessThanOrEqualToTest.swift in Sources */, - 1F4A56671A3B305F009E1637 /* ObjCAsyncTest.m in Sources */, - 1F925EFD195C186800ED456B /* BeginWithTest.swift in Sources */, - 1F925EE2195C0DFD00ED456B /* utils.swift in Sources */, - DDB4D5F119FE442800E9D9FE /* MatchTest.swift in Sources */, - 1F4A56741A3B3210009E1637 /* ObjCBeginWithTest.m in Sources */, - 1F4A56831A3B336F009E1637 /* ObjCBeLessThanOrEqualToTest.m in Sources */, - 7B13BA0D1DD361DE00C9098C /* ContainElementSatisfyingTest.swift in Sources */, - 1F925F03195C189500ED456B /* ContainTest.swift in Sources */, - 1F4A56891A3B33CB009E1637 /* ObjCBeFalsyTest.m in Sources */, - 1F4A568F1A3B342B009E1637 /* ObjCBeFalseTest.m in Sources */, - 1F925F12195C190B00ED456B /* BeGreaterThanOrEqualToTest.swift in Sources */, - 1F925EF0195C136500ED456B /* BeLogicalTest.swift in Sources */, - 1F4A56A11A3B359E009E1637 /* ObjCRaiseExceptionTest.m in Sources */, - 1F925F0C195C18E100ED456B /* BeLessThanTest.swift in Sources */, - 1F9DB8FC1A74E793002E96AD /* ObjCBeEmptyTest.m in Sources */, - 1FB90099195EC4B8001D7FAE /* BeIdenticalToTest.swift in Sources */, - 1F91DD2E1C74BF36002C309F /* BeVoidTest.swift in Sources */, - 1F4A56771A3B3253009E1637 /* ObjCBeGreaterThanTest.m in Sources */, - 1F925EFA195C175000ED456B /* BeNilTest.swift in Sources */, - 1F4A56711A3B319F009E1637 /* ObjCBeCloseToTest.m in Sources */, - 1F4A56981A3B34AA009E1637 /* ObjCEndWithTest.m in Sources */, - 1F4A567D1A3B3311009E1637 /* ObjCBeIdenticalToTest.m in Sources */, - 965B0D0D1B62C06D0005AE66 /* UserDescriptionTest.swift in Sources */, - 1FCF91501C61C85A00B15DCB /* PostNotificationTest.swift in Sources */, - 965B0D0A1B62B8ED0005AE66 /* ObjCUserDescriptionTest.m in Sources */, - 1F4A56921A3B344A009E1637 /* ObjCBeNilTest.m in Sources */, - 1F8A37B11B7C5042001C8357 /* ObjCSyncTest.m in Sources */, - 1F4A56951A3B346F009E1637 /* ObjCContainTest.m in Sources */, - 1F299EAC19627B2D002641AF /* BeEmptyTest.swift in Sources */, - 7B13BA101DD361EA00C9098C /* ObjCContainElementSatisfying.m in Sources */, - 1F925EF7195C147800ED456B /* BeCloseToTest.swift in Sources */, - 1F4A567A1A3B32E3009E1637 /* ObjCBeGreaterThanOrEqualToTest.m in Sources */, - AE7ADE4A1C80C00D00B94CD3 /* MatchErrorTest.swift in Sources */, - 1F4A568C1A3B3407009E1637 /* ObjCBeTrueTest.m in Sources */, - DDEFAEB51A93CBE6005CA37A /* ObjCAllPassTest.m in Sources */, - 1F4A56801A3B333F009E1637 /* ObjCBeLessThanTest.m in Sources */, - 1F925EE7195C121200ED456B /* AsynchronousTest.swift in Sources */, - 1F0648CD19639F5A001F9C46 /* ObjectWithLazyProperty.swift in Sources */, - 1F4A56861A3B33A0009E1637 /* ObjCBeTruthyTest.m in Sources */, - DD9A9A9019CF43AD00706F49 /* BeIdenticalToObjectTest.swift in Sources */, - 1F4BB8B61DACA0E30048464B /* ThrowAssertionTest.swift in Sources */, - 1F0648D51963AAB2001F9C46 /* SynchronousTests.swift in Sources */, - 347155CB1C337C8900549F03 /* XCTestCaseProvider.swift in Sources */, - 4793854E1BA0BB2500296F85 /* ObjCHaveCount.m in Sources */, - 1F925F09195C18CF00ED456B /* BeGreaterThanTest.swift in Sources */, - 7B5358BB1C3846C900A23FAA /* SatisfyAnyOfTest.swift in Sources */, - 1F925F06195C18B700ED456B /* EqualTest.swift in Sources */, - 1F4A566E1A3B3159009E1637 /* ObjCBeKindOfTest.m in Sources */, - DD72EC651A93874A002F7651 /* AllPassTest.swift in Sources */, - 1F4A569E1A3B3565009E1637 /* ObjCMatchTest.m in Sources */, - 1F925EEA195C124400ED456B /* BeAnInstanceOfTest.swift in Sources */, - 29EA59641B551ED2002D767E /* ThrowErrorTest.swift in Sources */, - 6CAEDD0B1CAEA86F003F1584 /* LinuxSupport.swift in Sources */, - 1F4A566B1A3B3108009E1637 /* ObjCBeAnInstanceOfTest.m in Sources */, - 472FD13A1B9E0A9F00C7B8DA /* HaveCountTest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1F1A74371940169200FFFC47 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F1A74361940169200FFFC47 /* PBXContainerItemProxy */; - }; - 1F5DF1611BDCA0CE00C3A531 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F5DF1541BDCA0CE00C3A531 /* Nimble-tvOS */; - targetProxy = 1F5DF1601BDCA0CE00C3A531 /* PBXContainerItemProxy */; - }; - 1F6BB82B1968BFF9009F1DBB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F6BB82A1968BFF9009F1DBB /* PBXContainerItemProxy */; - }; - 1F925EA5195C0C8500ED456B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F925EA4195C0C8500ED456B /* PBXContainerItemProxy */; - }; - 1F925EA7195C0C8500ED456B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F1A74281940169200FFFC47 /* Nimble-iOS */; - targetProxy = 1F925EA6195C0C8500ED456B /* PBXContainerItemProxy */; - }; - 1F925EBA195C0D6300ED456B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F925EB9195C0D6300ED456B /* PBXContainerItemProxy */; - }; - 1F9B7BFE1968AD760094EB8F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F9B7BFD1968AD760094EB8F /* PBXContainerItemProxy */; - }; - 1F9B7C001968AD760094EB8F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F9B7BFF1968AD760094EB8F /* PBXContainerItemProxy */; - }; - 1F9B7C021968AD820094EB8F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1F925EAC195C0D6300ED456B /* Nimble-macOS */; - targetProxy = 1F9B7C011968AD820094EB8F /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1F1A743D1940169200FFFC47 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_IDENTITY = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.9; - METAL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 1F1A743E1940169200FFFC47 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - CODE_SIGN_IDENTITY = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.9; - METAL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 1F1A74401940169200FFFC47 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - ONLY_ACTIVE_ARCH = NO; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 1F1A74411940169200FFFC47 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - 1F1A74431940169200FFFC47 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 1F1A74441940169200FFFC47 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; - 1F5DF1661BDCA0CE00C3A531 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 1F5DF1671BDCA0CE00C3A531 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; - 1F5DF1681BDCA0CE00C3A531 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = dwarf; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 1F5DF1691BDCA0CE00C3A531 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CODE_SIGN_FLAGS = "--verbose"; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = appletvos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; - 1F925EC1195C0D6300ED456B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - FRAMEWORK_VERSION = A; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VALID_ARCHS = x86_64; - }; - name = Debug; - }; - 1F925EC2195C0D6300ED456B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); - FRAMEWORK_VERSION = A; - GCC_PREPROCESSOR_DEFINITIONS = ( - "PRODUCT_NAME=$(PRODUCT_NAME)/$(PRODUCT_NAME)", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - INFOPLIST_FILE = Sources/Nimble/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ( - "-weak_framework", - XCTest, - "-weak-lswiftXCTest", - ); - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_MODULE_NAME = Nimble; - PRODUCT_NAME = Nimble; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALID_ARCHS = x86_64; - }; - name = Release; - }; - 1F925EC4195C0D6300ED456B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 1F925EC5195C0D6300ED456B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(DEVELOPER_FRAMEWORKS_DIR)", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/NimbleTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - METAL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "net.jeffhui.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = NimbleTests; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1F1A74231940169200FFFC47 /* Build configuration list for PBXProject "Nimble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F1A743D1940169200FFFC47 /* Debug */, - 1F1A743E1940169200FFFC47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F1A743F1940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F1A74401940169200FFFC47 /* Debug */, - 1F1A74411940169200FFFC47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F1A74421940169200FFFC47 /* Build configuration list for PBXNativeTarget "Nimble-iOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F1A74431940169200FFFC47 /* Debug */, - 1F1A74441940169200FFFC47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F5DF16A1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F5DF1661BDCA0CE00C3A531 /* Debug */, - 1F5DF1671BDCA0CE00C3A531 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F5DF16B1BDCA0CE00C3A531 /* Build configuration list for PBXNativeTarget "Nimble-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F5DF1681BDCA0CE00C3A531 /* Debug */, - 1F5DF1691BDCA0CE00C3A531 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F925EC0195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F925EC1195C0D6300ED456B /* Debug */, - 1F925EC2195C0D6300ED456B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1F925EC3195C0D6300ED456B /* Build configuration list for PBXNativeTarget "Nimble-macOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1F925EC4195C0D6300ED456B /* Debug */, - 1F925EC5195C0D6300ED456B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 1F1A74201940169200FFFC47 /* Project object */; -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index a822b74..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme deleted file mode 100644 index 4a6682b..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-iOS.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme deleted file mode 100644 index 4aa936e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-macOS.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme b/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme deleted file mode 100644 index 2309132..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Nimble.xcodeproj/xcshareddata/xcschemes/Nimble-tvOS.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Package.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Package.swift deleted file mode 100644 index 46d1ff6..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Package.swift +++ /dev/null @@ -1,10 +0,0 @@ -import PackageDescription - -let package = Package( - name: "Nimble", - exclude: [ - "Sources/Lib", - "Sources/NimbleObjectiveC", - "Tests/NimbleTests/objc", - ] -) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/README.md b/Carthage/Checkouts/Quick/Externals/Nimble/README.md deleted file mode 100644 index ecf9501..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/README.md +++ /dev/null @@ -1,1443 +0,0 @@ -# Nimble - -Use Nimble to express the expected outcomes of Swift -or Objective-C expressions. Inspired by -[Cedar](https://github.com/pivotal/cedar). - -```swift -// Swift -expect(1 + 1).to(equal(2)) -expect(1.2).to(beCloseTo(1.1, within: 0.1)) -expect(3) > 2 -expect("seahorse").to(contain("sea")) -expect(["Atlantic", "Pacific"]).toNot(contain("Mississippi")) -expect(ocean.isClean).toEventually(beTruthy()) -``` - -# How to Use Nimble - - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Some Background: Expressing Outcomes Using Assertions in XCTest](#some-background-expressing-outcomes-using-assertions-in-xctest) -- [Nimble: Expectations Using `expect(...).to`](#nimble-expectations-using-expectto) - - [Custom Failure Messages](#custom-failure-messages) - - [Type Safety](#type-safety) - - [Operator Overloads](#operator-overloads) - - [Lazily Computed Values](#lazily-computed-values) - - [C Primitives](#c-primitives) - - [Asynchronous Expectations](#asynchronous-expectations) - - [Objective-C Support](#objective-c-support) - - [Disabling Objective-C Shorthand](#disabling-objective-c-shorthand) -- [Built-in Matcher Functions](#built-in-matcher-functions) - - [Type Checking](#type-checking) - - [Equivalence](#equivalence) - - [Identity](#identity) - - [Comparisons](#comparisons) - - [Types/Classes](#typesclasses) - - [Truthiness](#truthiness) - - [Swift Assertions](#swift-assertions) - - [Swift Error Handling](#swift-error-handling) - - [Exceptions](#exceptions) - - [Collection Membership](#collection-membership) - - [Strings](#strings) - - [Checking if all elements of a collection pass a condition](#checking-if-all-elements-of-a-collection-pass-a-condition) - - [Verify collection count](#verify-collection-count) - - [Verify a notification was posted](#verifying-a-notification-was-posted) - - [Matching a value to any of a group of matchers](#matching-a-value-to-any-of-a-group-of-matchers) -- [Writing Your Own Matchers](#writing-your-own-matchers) - - [Lazy Evaluation](#lazy-evaluation) - - [Type Checking via Swift Generics](#type-checking-via-swift-generics) - - [Customizing Failure Messages](#customizing-failure-messages) - - [Supporting Objective-C](#supporting-objective-c) - - [Properly Handling `nil` in Objective-C Matchers](#properly-handling-nil-in-objective-c-matchers) -- [Installing Nimble](#installing-nimble) - - [Installing Nimble as a Submodule](#installing-nimble-as-a-submodule) - - [Installing Nimble via CocoaPods](#installing-nimble-via-cocoapods) - - [Using Nimble without XCTest](#using-nimble-without-xctest) - - - -# Some Background: Expressing Outcomes Using Assertions in XCTest - -Apple's Xcode includes the XCTest framework, which provides -assertion macros to test whether code behaves properly. -For example, to assert that `1 + 1 = 2`, XCTest has you write: - -```swift -// Swift - -XCTAssertEqual(1 + 1, 2, "expected one plus one to equal two") -``` - -Or, in Objective-C: - -```objc -// Objective-C - -XCTAssertEqual(1 + 1, 2, @"expected one plus one to equal two"); -``` - -XCTest assertions have a couple of drawbacks: - -1. **Not enough macros.** There's no easy way to assert that a string - contains a particular substring, or that a number is less than or - equal to another. -2. **It's hard to write asynchronous tests.** XCTest forces you to write - a lot of boilerplate code. - -Nimble addresses these concerns. - -# Nimble: Expectations Using `expect(...).to` - -Nimble allows you to express expectations using a natural, -easily understood language: - -```swift -// Swift - -import Nimble - -expect(seagull.squawk).to(equal("Squee!")) -``` - -```objc -// Objective-C - -@import Nimble; - -expect(seagull.squawk).to(equal(@"Squee!")); -``` - -> The `expect` function autocompletes to include `file:` and `line:`, - but these parameters are optional. Use the default values to have - Xcode highlight the correct line when an expectation is not met. - -To perform the opposite expectation--to assert something is *not* -equal--use `toNot` or `notTo`: - -```swift -// Swift - -import Nimble - -expect(seagull.squawk).toNot(equal("Oh, hello there!")) -expect(seagull.squawk).notTo(equal("Oh, hello there!")) -``` - -```objc -// Objective-C - -@import Nimble; - -expect(seagull.squawk).toNot(equal(@"Oh, hello there!")); -expect(seagull.squawk).notTo(equal(@"Oh, hello there!")); -``` - -## Custom Failure Messages - -Would you like to add more information to the test's failure messages? Use the `description` optional argument to add your own text: - -```swift -// Swift - -expect(1 + 1).to(equal(3)) -// failed - expected to equal <3>, got <2> - -expect(1 + 1).to(equal(3), description: "Make sure libKindergartenMath is loaded") -// failed - Make sure libKindergartenMath is loaded -// expected to equal <3>, got <2> -``` - -Or the *WithDescription version in Objective-C: - -```objc -// Objective-C - -@import Nimble; - -expect(@(1+1)).to(equal(@3)); -// failed - expected to equal <3.0000>, got <2.0000> - -expect(@(1+1)).toWithDescription(equal(@3), @"Make sure libKindergartenMath is loaded"); -// failed - Make sure libKindergartenMath is loaded -// expected to equal <3.0000>, got <2.0000> -``` - -## Type Safety - -Nimble makes sure you don't compare two types that don't match: - -```swift -// Swift - -// Does not compile: -expect(1 + 1).to(equal("Squee!")) -``` - -> Nimble uses generics--only available in Swift--to ensure - type correctness. That means type checking is - not available when using Nimble in Objective-C. :sob: - -## Operator Overloads - -Tired of so much typing? With Nimble, you can use overloaded operators -like `==` for equivalence, or `>` for comparisons: - -```swift -// Swift - -// Passes if squawk does not equal "Hi!": -expect(seagull.squawk) != "Hi!" - -// Passes if 10 is greater than 2: -expect(10) > 2 -``` - -> Operator overloads are only available in Swift, so you won't be able - to use this syntax in Objective-C. :broken_heart: - -## Lazily Computed Values - -The `expect` function doesn't evaluate the value it's given until it's -time to match. So Nimble can test whether an expression raises an -exception once evaluated: - -```swift -// Swift - -// Note: Swift currently doesn't have exceptions. -// Only Objective-C code can raise exceptions -// that Nimble will catch. -// (see https://github.com/Quick/Nimble/issues/220#issuecomment-172667064) -let exception = NSException( - name: NSInternalInconsistencyException, - reason: "Not enough fish in the sea.", - userInfo: ["something": "is fishy"]) -expect { exception.raise() }.to(raiseException()) - -// Also, you can customize raiseException to be more specific -expect { exception.raise() }.to(raiseException(named: NSInternalInconsistencyException)) -expect { exception.raise() }.to(raiseException( - named: NSInternalInconsistencyException, - reason: "Not enough fish in the sea")) -expect { exception.raise() }.to(raiseException( - named: NSInternalInconsistencyException, - reason: "Not enough fish in the sea", - userInfo: ["something": "is fishy"])) -``` - -Objective-C works the same way, but you must use the `expectAction` -macro when making an expectation on an expression that has no return -value: - -```objc -// Objective-C - -NSException *exception = [NSException exceptionWithName:NSInternalInconsistencyException - reason:@"Not enough fish in the sea." - userInfo:nil]; -expectAction(^{ [exception raise]; }).to(raiseException()); - -// Use the property-block syntax to be more specific. -expectAction(^{ [exception raise]; }).to(raiseException().named(NSInternalInconsistencyException)); -expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInternalInconsistencyException). - reason("Not enough fish in the sea")); -expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInternalInconsistencyException). - reason("Not enough fish in the sea"). - userInfo(@{@"something": @"is fishy"})); - -// You can also pass a block for custom matching of the raised exception -expectAction(exception.raise()).to(raiseException().satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(beginWith(NSInternalInconsistencyException)); -})); -``` - -## C Primitives - -Some testing frameworks make it hard to test primitive C values. -In Nimble, it just works: - -```swift -// Swift - -let actual: CInt = 1 -let expectedValue: CInt = 1 -expect(actual).to(equal(expectedValue)) -``` - -In fact, Nimble uses type inference, so you can write the above -without explicitly specifying both types: - -```swift -// Swift - -expect(1 as CInt).to(equal(1)) -``` - -> In Objective-C, Nimble only supports Objective-C objects. To - make expectations on primitive C values, wrap then in an object - literal: - - ```objc - expect(@(1 + 1)).to(equal(@2)); - ``` - -## Asynchronous Expectations - -In Nimble, it's easy to make expectations on values that are updated -asynchronously. Just use `toEventually` or `toEventuallyNot`: - -```swift -// Swift - -dispatch_async(dispatch_get_main_queue()) { - ocean.add("dolphins") - ocean.add("whales") -} -expect(ocean).toEventually(contain("dolphins", "whales")) -``` - - -```objc -// Objective-C -dispatch_async(dispatch_get_main_queue(), ^{ - [ocean add:@"dolphins"]; - [ocean add:@"whales"]; -}); -expect(ocean).toEventually(contain(@"dolphins", @"whales")); -``` - -Note: toEventually triggers its polls on the main thread. Blocking the main -thread will cause Nimble to stop the run loop. This can cause test pollution -for whatever incomplete code that was running on the main thread. Blocking the -main thread can be caused by blocking IO, calls to sleep(), deadlocks, and -synchronous IPC. - -In the above example, `ocean` is constantly re-evaluated. If it ever -contains dolphins and whales, the expectation passes. If `ocean` still -doesn't contain them, even after being continuously re-evaluated for one -whole second, the expectation fails. - -Sometimes it takes more than a second for a value to update. In those -cases, use the `timeout` parameter: - -```swift -// Swift - -// Waits three seconds for ocean to contain "starfish": -expect(ocean).toEventually(contain("starfish"), timeout: 3) - -// Evaluate someValue every 0.2 seconds repeatedly until it equals 100, or fails if it timeouts after 5.5 seconds. -expect(someValue).toEventually(equal(100), timeout: 5.5, pollInterval: 0.2) -``` - -```objc -// Objective-C - -// Waits three seconds for ocean to contain "starfish": -expect(ocean).withTimeout(3).toEventually(contain(@"starfish")); -``` - -You can also provide a callback by using the `waitUntil` function: - -```swift -// Swift - -waitUntil { done in - // do some stuff that takes a while... - NSThread.sleepForTimeInterval(0.5) - done() -} -``` - -```objc -// Objective-C - -waitUntil(^(void (^done)(void)){ - // do some stuff that takes a while... - [NSThread sleepForTimeInterval:0.5]; - done(); -}); -``` - -`waitUntil` also optionally takes a timeout parameter: - -```swift -// Swift - -waitUntil(timeout: 10) { done in - // do some stuff that takes a while... - NSThread.sleepForTimeInterval(1) - done() -} -``` - -```objc -// Objective-C - -waitUntilTimeout(10, ^(void (^done)(void)){ - // do some stuff that takes a while... - [NSThread sleepForTimeInterval:1]; - done(); -}); -``` - -Note: waitUntil triggers its timeout code on the main thread. Blocking the main -thread will cause Nimble to stop the run loop to continue. This can cause test -pollution for whatever incomplete code that was running on the main thread. -Blocking the main thread can be caused by blocking IO, calls to sleep(), -deadlocks, and synchronous IPC. - -In some cases (e.g. when running on slower machines) it can be useful to modify -the default timeout and poll interval values. This can be done as follows: - -```swift -// Swift - -// Increase the global timeout to 5 seconds: -Nimble.AsyncDefaults.Timeout = 5 - -// Slow the polling interval to 0.1 seconds: -Nimble.AsyncDefaults.PollInterval = 0.1 -``` - -## Objective-C Support - -Nimble has full support for Objective-C. However, there are two things -to keep in mind when using Nimble in Objective-C: - -1. All parameters passed to the `expect` function, as well as matcher - functions like `equal`, must be Objective-C objects or can be converted into - an `NSObject` equivalent: - - ```objc - // Objective-C - - @import Nimble; - - expect(@(1 + 1)).to(equal(@2)); - expect(@"Hello world").to(contain(@"world")); - - // Boxed as NSNumber * - expect(2).to(equal(2)); - expect(1.2).to(beLessThan(2.0)); - expect(true).to(beTruthy()); - - // Boxed as NSString * - expect("Hello world").to(equal("Hello world")); - - // Boxed as NSRange - expect(NSMakeRange(1, 10)).to(equal(NSMakeRange(1, 10))); - ``` - -2. To make an expectation on an expression that does not return a value, - such as `-[NSException raise]`, use `expectAction` instead of - `expect`: - - ```objc - // Objective-C - - expectAction(^{ [exception raise]; }).to(raiseException()); - ``` - -The following types are currently converted to an `NSObject` type: - - - **C Numeric types** are converted to `NSNumber *` - - `NSRange` is converted to `NSValue *` - - `char *` is converted to `NSString *` - -For the following matchers: - -- `equal` -- `beGreaterThan` -- `beGreaterThanOrEqual` -- `beLessThan` -- `beLessThanOrEqual` -- `beCloseTo` -- `beTrue` -- `beFalse` -- `beTruthy` -- `beFalsy` -- `haveCount` - -If you would like to see more, [file an issue](https://github.com/Quick/Nimble/issues). - -## Disabling Objective-C Shorthand - -Nimble provides a shorthand for expressing expectations using the -`expect` function. To disable this shorthand in Objective-C, define the -`NIMBLE_DISABLE_SHORT_SYNTAX` macro somewhere in your code before -importing Nimble: - -```objc -#define NIMBLE_DISABLE_SHORT_SYNTAX 1 - -@import Nimble; - -NMB_expect(^{ return seagull.squawk; }, __FILE__, __LINE__).to(NMB_equal(@"Squee!")); -``` - -> Disabling the shorthand is useful if you're testing functions with - names that conflict with Nimble functions, such as `expect` or - `equal`. If that's not the case, there's no point in disabling the - shorthand. - -# Built-in Matcher Functions - -Nimble includes a wide variety of matcher functions. - -## Type Checking - -Nimble supports checking the type membership of any kind of object, whether -Objective-C conformant or not: - -```swift -// Swift - -protocol SomeProtocol{} -class SomeClassConformingToProtocol: SomeProtocol{} -struct SomeStructConformingToProtocol: SomeProtocol{} - -// The following tests pass -expect(1).to(beKindOf(Int.self)) -expect("turtle").to(beKindOf(String.self)) - -let classObject = SomeClassConformingToProtocol() -expect(classObject).to(beKindOf(SomeProtocol.self)) -expect(classObject).to(beKindOf(SomeClassConformingToProtocol.self)) -expect(classObject).toNot(beKindOf(SomeStructConformingToProtocol.self)) - -let structObject = SomeStructConformingToProtocol() -expect(structObject).to(beKindOf(SomeProtocol.self)) -expect(structObject).to(beKindOf(SomeStructConformingToProtocol.self)) -expect(structObject).toNot(beKindOf(SomeClassConformingToProtocol.self)) -``` - -```objc -// Objective-C - -// The following tests pass -NSMutableArray *array = [NSMutableArray array]; -expect(array).to(beAKindOf([NSArray class])); -expect(@1).toNot(beAKindOf([NSNull class])); -``` - -Objects can be tested for their exact types using the `beAnInstanceOf` matcher: -```swift -// Swift - -protocol SomeProtocol{} -class SomeClassConformingToProtocol: SomeProtocol{} -struct SomeStructConformingToProtocol: SomeProtocol{} - -// Unlike the 'beKindOf' matcher, the 'beAnInstanceOf' matcher only -// passes if the object is the EXACT type requested. The following -// tests pass -- note its behavior when working in an inheritance hierarchy. -expect(1).to(beAnInstanceOf(Int.self)) -expect("turtle").to(beAnInstanceOf(String.self)) - -let classObject = SomeClassConformingToProtocol() -expect(classObject).toNot(beAnInstanceOf(SomeProtocol.self)) -expect(classObject).to(beAnInstanceOf(SomeClassConformingToProtocol.self)) -expect(classObject).toNot(beAnInstanceOf(SomeStructConformingToProtocol.self)) - -let structObject = SomeStructConformingToProtocol() -expect(structObject).toNot(beAnInstanceOf(SomeProtocol.self)) -expect(structObject).to(beAnInstanceOf(SomeStructConformingToProtocol.self)) -expect(structObject).toNot(beAnInstanceOf(SomeClassConformingToProtocol.self)) -```` - -## Equivalence - -```swift -// Swift - -// Passes if actual is equivalent to expected: -expect(actual).to(equal(expected)) -expect(actual) == expected - -// Passes if actual is not equivalent to expected: -expect(actual).toNot(equal(expected)) -expect(actual) != expected -``` - -```objc -// Objective-C - -// Passes if actual is equivalent to expected: -expect(actual).to(equal(expected)) - -// Passes if actual is not equivalent to expected: -expect(actual).toNot(equal(expected)) -``` - -Values must be `Equatable`, `Comparable`, or subclasses of `NSObject`. -`equal` will always fail when used to compare one or more `nil` values. - -## Identity - -```swift -// Swift - -// Passes if actual has the same pointer address as expected: -expect(actual).to(beIdenticalTo(expected)) -expect(actual) === expected - -// Passes if actual does not have the same pointer address as expected: -expect(actual).toNot(beIdenticalTo(expected)) -expect(actual) !== expected -``` - -Its important to remember that `beIdenticalTo` only makes sense when comparing types with reference semantics, which have a notion of identity. In Swift, that means a `class`. This matcher will not work with types with value semantics such as `struct` or `enum`. If you need to compare two value types, you can either compare individual properties or if it makes sense to do so, make your type implement `Equatable` and use Nimble's equivalence matchers instead. - - -```objc -// Objective-C - -// Passes if actual has the same pointer address as expected: -expect(actual).to(beIdenticalTo(expected)); - -// Passes if actual does not have the same pointer address as expected: -expect(actual).toNot(beIdenticalTo(expected)); -``` - -## Comparisons - -```swift -// Swift - -expect(actual).to(beLessThan(expected)) -expect(actual) < expected - -expect(actual).to(beLessThanOrEqualTo(expected)) -expect(actual) <= expected - -expect(actual).to(beGreaterThan(expected)) -expect(actual) > expected - -expect(actual).to(beGreaterThanOrEqualTo(expected)) -expect(actual) >= expected -``` - -```objc -// Objective-C - -expect(actual).to(beLessThan(expected)); -expect(actual).to(beLessThanOrEqualTo(expected)); -expect(actual).to(beGreaterThan(expected)); -expect(actual).to(beGreaterThanOrEqualTo(expected)); -``` - -> Values given to the comparison matchers above must implement - `Comparable`. - -Because of how computers represent floating point numbers, assertions -that two floating point numbers be equal will sometimes fail. To express -that two numbers should be close to one another within a certain margin -of error, use `beCloseTo`: - -```swift -// Swift - -expect(actual).to(beCloseTo(expected, within: delta)) -``` - -```objc -// Objective-C - -expect(actual).to(beCloseTo(expected).within(delta)); -``` - -For example, to assert that `10.01` is close to `10`, you can write: - -```swift -// Swift - -expect(10.01).to(beCloseTo(10, within: 0.1)) -``` - -```objc -// Objective-C - -expect(@(10.01)).to(beCloseTo(@10).within(0.1)); -``` - -There is also an operator shortcut available in Swift: - -```swift -// Swift - -expect(actual) ≈ expected -expect(actual) ≈ (expected, delta) - -``` -(Type Option-x to get ≈ on a U.S. keyboard) - -The former version uses the default delta of 0.0001. Here is yet another way to do this: - -```swift -// Swift - -expect(actual) ≈ expected ± delta -expect(actual) == expected ± delta - -``` -(Type Option-Shift-= to get ± on a U.S. keyboard) - -If you are comparing arrays of floating point numbers, you'll find the following useful: - -```swift -// Swift - -expect([0.0, 2.0]) ≈ [0.0001, 2.0001] -expect([0.0, 2.0]).to(beCloseTo([0.1, 2.1], within: 0.1)) - -``` - -> Values given to the `beCloseTo` matcher must be coercable into a - `Double`. - -## Types/Classes - -```swift -// Swift - -// Passes if instance is an instance of aClass: -expect(instance).to(beAnInstanceOf(aClass)) - -// Passes if instance is an instance of aClass or any of its subclasses: -expect(instance).to(beAKindOf(aClass)) -``` - -```objc -// Objective-C - -// Passes if instance is an instance of aClass: -expect(instance).to(beAnInstanceOf(aClass)); - -// Passes if instance is an instance of aClass or any of its subclasses: -expect(instance).to(beAKindOf(aClass)); -``` - -> Instances must be Objective-C objects: subclasses of `NSObject`, - or Swift objects bridged to Objective-C with the `@objc` prefix. - -For example, to assert that `dolphin` is a kind of `Mammal`: - -```swift -// Swift - -expect(dolphin).to(beAKindOf(Mammal)) -``` - -```objc -// Objective-C - -expect(dolphin).to(beAKindOf([Mammal class])); -``` - -> `beAnInstanceOf` uses the `-[NSObject isMemberOfClass:]` method to - test membership. `beAKindOf` uses `-[NSObject isKindOfClass:]`. - -## Truthiness - -```swift -// Passes if actual is not nil, true, or an object with a boolean value of true: -expect(actual).to(beTruthy()) - -// Passes if actual is only true (not nil or an object conforming to Boolean true): -expect(actual).to(beTrue()) - -// Passes if actual is nil, false, or an object with a boolean value of false: -expect(actual).to(beFalsy()) - -// Passes if actual is only false (not nil or an object conforming to Boolean false): -expect(actual).to(beFalse()) - -// Passes if actual is nil: -expect(actual).to(beNil()) -``` - -```objc -// Objective-C - -// Passes if actual is not nil, true, or an object with a boolean value of true: -expect(actual).to(beTruthy()); - -// Passes if actual is only true (not nil or an object conforming to Boolean true): -expect(actual).to(beTrue()); - -// Passes if actual is nil, false, or an object with a boolean value of false: -expect(actual).to(beFalsy()); - -// Passes if actual is only false (not nil or an object conforming to Boolean false): -expect(actual).to(beFalse()); - -// Passes if actual is nil: -expect(actual).to(beNil()); -``` - -## Swift Assertions - -If you're using Swift, you can use the `throwAssertion` matcher to check if an assertion is thrown (e.g. `fatalError()`). This is made possible by [@mattgallagher](https://github.com/mattgallagher)'s [CwlPreconditionTesting](https://github.com/mattgallagher/CwlPreconditionTesting) library. - -```swift -// Swift - -// Passes if somethingThatThrows() throws an assertion, such as calling fatalError() or precondition fails: -expect { () -> Void in fatalError() }.to(throwAssertion()) -expect { precondition(false) }.to(throwAssertion()) - -// Passes if throwing a NSError is not equal to throwing an assertion: -expect { throw NSError(domain: "test", code: 0, userInfo: nil) }.toNot(throwAssertion()) - -// Passes if the post assertion code is not run: -var reachedPoint1 = false -var reachedPoint2 = false -expect { - reachedPoint1 = true - precondition(false, "condition message") - reachedPoint2 = true -}.to(throwAssertion()) - -expect(reachedPoint1) == true -expect(reachedPoint2) == false -``` - -Notes: - -* This feature is only available in Swift. -* It is only supported for `x86_64` binaries, meaning _you cannot run this matcher on iOS devices, only simulators_. -* The tvOS simulator is supported, but using a different mechanism, requiring you to turn off the `Debug executable` scheme setting for your tvOS scheme's Test configuration. - -## Swift Error Handling - -If you're using Swift 2.0+, you can use the `throwError` matcher to check if an error is thrown. - -```swift -// Swift - -// Passes if somethingThatThrows() throws an ErrorProtocol: -expect{ try somethingThatThrows() }.to(throwError()) - -// Passes if somethingThatThrows() throws an error with a given domain: -expect{ try somethingThatThrows() }.to(throwError { (error: ErrorProtocol) in - expect(error._domain).to(equal(NSCocoaErrorDomain)) -}) - -// Passes if somethingThatThrows() throws an error with a given case: -expect{ try somethingThatThrows() }.to(throwError(NSCocoaError.PropertyListReadCorruptError)) - -// Passes if somethingThatThrows() throws an error with a given type: -expect{ try somethingThatThrows() }.to(throwError(errorType: NimbleError.self)) -``` - -If you are working directly with `ErrorProtocol` values, as is sometimes the case when using `Result` or `Promise` types, you can use the `matchError` matcher to check if the error is the same error is is supposed to be, without requiring explicit casting. - -```swift -// Swift - -let actual: ErrorProtocol = … - -// Passes if actual contains any error value from the NimbleErrorEnum type: -expect(actual).to(matchError(NimbleErrorEnum)) - -// Passes if actual contains the Timeout value from the NimbleErrorEnum type: -expect(actual).to(matchError(NimbleErrorEnum.Timeout)) - -// Passes if actual contains an NSError equal to the given one: -expect(actual).to(matchError(NSError(domain: "err", code: 123, userInfo: nil))) -``` - -Note: This feature is only available in Swift. - -## Exceptions - -```swift -// Swift - -// Passes if actual, when evaluated, raises an exception: -expect(actual).to(raiseException()) - -// Passes if actual raises an exception with the given name: -expect(actual).to(raiseException(named: name)) - -// Passes if actual raises an exception with the given name and reason: -expect(actual).to(raiseException(named: name, reason: reason)) - -// Passes if actual raises an exception and it passes expectations in the block -// (in this case, if name begins with 'a r') -expect { exception.raise() }.to(raiseException { (exception: NSException) in - expect(exception.name).to(beginWith("a r")) -}) -``` - -```objc -// Objective-C - -// Passes if actual, when evaluated, raises an exception: -expect(actual).to(raiseException()) - -// Passes if actual raises an exception with the given name -expect(actual).to(raiseException().named(name)) - -// Passes if actual raises an exception with the given name and reason: -expect(actual).to(raiseException().named(name).reason(reason)) - -// Passes if actual raises an exception and it passes expectations in the block -// (in this case, if name begins with 'a r') -expect(actual).to(raiseException().satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(beginWith(@"a r")); -})); -``` - -Note: Swift currently doesn't have exceptions (see [#220](https://github.com/Quick/Nimble/issues/220#issuecomment-172667064)). Only Objective-C code can raise -exceptions that Nimble will catch. - -## Collection Membership - -```swift -// Swift - -// Passes if all of the expected values are members of actual: -expect(actual).to(contain(expected...)) - -// Passes if actual is an empty collection (it contains no elements): -expect(actual).to(beEmpty()) -``` - -```objc -// Objective-C - -// Passes if expected is a member of actual: -expect(actual).to(contain(expected)); - -// Passes if actual is an empty collection (it contains no elements): -expect(actual).to(beEmpty()); -``` - -> In Swift `contain` takes any number of arguments. The expectation - passes if all of them are members of the collection. In Objective-C, - `contain` only takes one argument [for now](https://github.com/Quick/Nimble/issues/27). - -For example, to assert that a list of sea creature names contains -"dolphin" and "starfish": - -```swift -// Swift - -expect(["whale", "dolphin", "starfish"]).to(contain("dolphin", "starfish")) -``` - -```objc -// Objective-C - -expect(@[@"whale", @"dolphin", @"starfish"]).to(contain(@"dolphin")); -expect(@[@"whale", @"dolphin", @"starfish"]).to(contain(@"starfish")); -``` - -> `contain` and `beEmpty` expect collections to be instances of - `NSArray`, `NSSet`, or a Swift collection composed of `Equatable` elements. - -To test whether a set of elements is present at the beginning or end of -an ordered collection, use `beginWith` and `endWith`: - -```swift -// Swift - -// Passes if the elements in expected appear at the beginning of actual: -expect(actual).to(beginWith(expected...)) - -// Passes if the the elements in expected come at the end of actual: -expect(actual).to(endWith(expected...)) -``` - -```objc -// Objective-C - -// Passes if the elements in expected appear at the beginning of actual: -expect(actual).to(beginWith(expected)); - -// Passes if the the elements in expected come at the end of actual: -expect(actual).to(endWith(expected)); -``` - -> `beginWith` and `endWith` expect collections to be instances of - `NSArray`, or ordered Swift collections composed of `Equatable` - elements. - - Like `contain`, in Objective-C `beginWith` and `endWith` only support - a single argument [for now](https://github.com/Quick/Nimble/issues/27). - -For code that returns collections of complex objects without a strict -ordering, there is the `containElementSatisfying` matcher: - -```swift -struct Turtle { - var color: String! -} - -var turtles = functionThatReturnsSomeTurtlesInAnyOrder() - -// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] -// or [{color: "green"}, {color: "blue"}] -expect(turtles).to(containElementSatisfying({ turtle in - return turtle.color == "green" -})) -expect(turtles).to(containElementSatisfying({ turtle in - return turtle.color == "blue" -}, "that is a turtle with color 'blue'")) - -// The second matcher will incorporate the provided string in the error message -// should it fail -``` - -```objc -@interface Turtle: NSObject -@property(nonatomic) NSString *color; -@end -@implementation Turtle @end - -NSArray *turtles = functionThatReturnsSomeTurtlesInAnyOrder(); - -// This set of matchers passes whether the array is [{color: "blue"}, {color: "green"}] -// or [{color: "green"}, {color: "blue"}] -expect(turtles).to(containElementSatisfying(^BOOL(id object) { - return [turtle.color isEqualToString:@"green"]; -})); -expect(turtles).to(containElementSatisfying(^BOOL(id object) { - return [turtle.color isEqualToString:@"blue"]; -})); -``` - -## Strings - -```swift -// Swift - -// Passes if actual contains substring expected: -expect(actual).to(contain(expected)) - -// Passes if actual begins with substring: -expect(actual).to(beginWith(expected)) - -// Passes if actual ends with substring: -expect(actual).to(endWith(expected)) - -// Passes if actual is an empty string, "": -expect(actual).to(beEmpty()) - -// Passes if actual matches the regular expression defined in expected: -expect(actual).to(match(expected)) -``` - -```objc -// Objective-C - -// Passes if actual contains substring expected: -expect(actual).to(contain(expected)); - -// Passes if actual begins with substring: -expect(actual).to(beginWith(expected)); - -// Passes if actual ends with substring: -expect(actual).to(endWith(expected)); - -// Passes if actual is an empty string, "": -expect(actual).to(beEmpty()); - -// Passes if actual matches the regular expression defined in expected: -expect(actual).to(match(expected)) -``` - -## Checking if all elements of a collection pass a condition - -```swift -// Swift - -// with a custom function: -expect([1,2,3,4]).to(allPass({$0 < 5})) - -// with another matcher: -expect([1,2,3,4]).to(allPass(beLessThan(5))) -``` - -```objc -// Objective-C - -expect(@[@1, @2, @3,@4]).to(allPass(beLessThan(@5))); -``` - -For Swift the actual value has to be a Sequence, e.g. an array, a set or a custom seqence type. - -For Objective-C the actual value has to be a NSFastEnumeration, e.g. NSArray and NSSet, of NSObjects and only the variant which -uses another matcher is available here. - -## Verify collection count - -```swift -// Swift - -// passes if actual collection's count is equal to expected -expect(actual).to(haveCount(expected)) - -// passes if actual collection's count is not equal to expected -expect(actual).notTo(haveCount(expected)) -``` - -```objc -// Objective-C - -// passes if actual collection's count is equal to expected -expect(actual).to(haveCount(expected)) - -// passes if actual collection's count is not equal to expected -expect(actual).notTo(haveCount(expected)) -``` - -For Swift the actual value must be a `Collection` such as array, dictionary or set. - -For Objective-C the actual value has to be one of the following classes `NSArray`, `NSDictionary`, `NSSet`, `NSHashTable` or one of their subclasses. - -## Foundation - -### Verifying a Notification was posted - -```swift -// Swift -let testNotification = Notification(name: "Foo", object: nil) - -// passes if the closure in expect { ... } posts a notification to the default -// notification center. -expect { - NotificationCenter.default.postNotification(testNotification) -}.to(postNotifications(equal([testNotification])) - -// passes if the closure in expect { ... } posts a notification to a given -// notification center -let notificationCenter = NotificationCenter() -expect { - notificationCenter.postNotification(testNotification) -}.to(postNotifications(equal([testNotification]), fromNotificationCenter: notificationCenter)) -``` - -> This matcher is only available in Swift. - -## Matching a value to any of a group of matchers - -```swift -// passes if actual is either less than 10 or greater than 20 -expect(actual).to(satisfyAnyOf(beLessThan(10), beGreaterThan(20))) - -// can include any number of matchers -- the following will pass -// **be careful** -- too many matchers can be the sign of an unfocused test -expect(6).to(satisfyAnyOf(equal(2), equal(3), equal(4), equal(5), equal(6), equal(7))) - -// in Swift you also have the option to use the || operator to achieve a similar function -expect(82).to(beLessThan(50) || beGreaterThan(80)) -``` - -```objc -// passes if actual is either less than 10 or greater than 20 -expect(actual).to(satisfyAnyOf(beLessThan(@10), beGreaterThan(@20))) - -// can include any number of matchers -- the following will pass -// **be careful** -- too many matchers can be the sign of an unfocused test -expect(@6).to(satisfyAnyOf(equal(@2), equal(@3), equal(@4), equal(@5), equal(@6), equal(@7))) -``` - -Note: This matcher allows you to chain any number of matchers together. This provides flexibility, - but if you find yourself chaining many matchers together in one test, consider whether you - could instead refactor that single test into multiple, more precisely focused tests for - better coverage. - -# Writing Your Own Matchers - -In Nimble, matchers are Swift functions that take an expected -value and return a `MatcherFunc` closure. Take `equal`, for example: - -```swift -// Swift - -public func equal(expectedValue: T?) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(expectedValue)>" - if let actualValue = try actualExpression.evaluate() { - return actualValue == expectedValue - } else { - return false - } - } -} -``` - -The return value of a `MatcherFunc` closure is a `Bool` that indicates -whether the actual value matches the expectation: `true` if it does, or -`false` if it doesn't. - -> The actual `equal` matcher function does not match when either - `actual` or `expected` are nil; the example above has been edited for - brevity. - -Since matchers are just Swift functions, you can define them anywhere: -at the top of your test file, in a file shared by all of your tests, or -in an Xcode project you distribute to others. - -> If you write a matcher you think everyone can use, consider adding it - to Nimble's built-in set of matchers by sending a pull request! Or - distribute it yourself via GitHub. - -For examples of how to write your own matchers, just check out the -[`Matchers` directory](https://github.com/Quick/Nimble/tree/master/Sources/Nimble/Matchers) -to see how Nimble's built-in set of matchers are implemented. You can -also check out the tips below. - -## Lazy Evaluation - -`actualExpression` is a lazy, memoized closure around the value provided to the -`expect` function. The expression can either be a closure or a value directly -passed to `expect(...)`. In order to determine whether that value matches, -custom matchers should call `actualExpression.evaluate()`: - -```swift -// Swift - -public func beNil() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be nil" - return actualExpression.evaluate() == nil - } -} -``` - -In the above example, `actualExpression` is not `nil`--it is a closure -that returns a value. The value it returns, which is accessed via the -`evaluate()` method, may be `nil`. If that value is `nil`, the `beNil` -matcher function returns `true`, indicating that the expectation passed. - -Use `expression.isClosure` to determine if the expression will be invoking -a closure to produce its value. - -## Type Checking via Swift Generics - -Using Swift's generics, matchers can constrain the type of the actual value -passed to the `expect` function by modifying the return type. - -For example, the following matcher, `haveDescription`, only accepts actual -values that implement the `Printable` protocol. It checks their `description` -against the one provided to the matcher function, and passes if they are the same: - -```swift -// Swift - -public func haveDescription(description: String) -> MatcherFunc { - return MatcherFunc { actual, failureMessage in - return actual.evaluate().description == description - } -} -``` - -## Customizing Failure Messages - -By default, Nimble outputs the following failure message when an -expectation fails: - -``` -expected to match, got <\(actual)> -``` - -You can customize this message by modifying the `failureMessage` struct -from within your `MatcherFunc` closure. To change the verb "match" to -something else, update the `postfixMessage` property: - -```swift -// Swift - -// Outputs: expected to be under the sea, got <\(actual)> -failureMessage.postfixMessage = "be under the sea" -``` - -You can change how the `actual` value is displayed by updating -`failureMessage.actualValue`. Or, to remove it altogether, set it to -`nil`: - -```swift -// Swift - -// Outputs: expected to be under the sea -failureMessage.actualValue = nil -failureMessage.postfixMessage = "be under the sea" -``` - -## Supporting Objective-C - -To use a custom matcher written in Swift from Objective-C, you'll have -to extend the `NMBObjCMatcher` class, adding a new class method for your -custom matcher. The example below defines the class method -`+[NMBObjCMatcher beNilMatcher]`: - -```swift -// Swift - -extension NMBObjCMatcher { - public class func beNilMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualBlock, failureMessage, location in - let block = ({ actualBlock() as NSObject? }) - let expr = Expression(expression: block, location: location) - return beNil().matches(expr, failureMessage: failureMessage) - } - } -} -``` - -The above allows you to use the matcher from Objective-C: - -```objc -// Objective-C - -expect(actual).to([NMBObjCMatcher beNilMatcher]()); -``` - -To make the syntax easier to use, define a C function that calls the -class method: - -```objc -// Objective-C - -FOUNDATION_EXPORT id beNil() { - return [NMBObjCMatcher beNilMatcher]; -} -``` - -### Properly Handling `nil` in Objective-C Matchers - -When supporting Objective-C, make sure you handle `nil` appropriately. -Like [Cedar](https://github.com/pivotal/cedar/issues/100), -**most matchers do not match with nil**. This is to bring prevent test -writers from being surprised by `nil` values where they did not expect -them. - -Nimble provides the `beNil` matcher function for test writer that want -to make expectations on `nil` objects: - -```objc -// Objective-C - -expect(nil).to(equal(nil)); // fails -expect(nil).to(beNil()); // passes -``` - -If your matcher does not want to match with nil, you use `NonNilMatcherFunc` -and the `canMatchNil` constructor on `NMBObjCMatcher`. Using both types will -automatically generate expected value failure messages when they're nil. - -```swift - -public func beginWith(startingElement: T) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - if let actualValue = actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - return actualGenerator.next() == startingElement - } - return false - } -} - -extension NMBObjCMatcher { - public class func beginWithMatcher(expected: AnyObject) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = actualExpression.evaluate() - let expr = actualExpression.cast { $0 as? NMBOrderedCollection } - return beginWith(expected).matches(expr, failureMessage: failureMessage) - } - } -} -``` - -# Installing Nimble - -> Nimble can be used on its own, or in conjunction with its sister - project, [Quick](https://github.com/Quick/Quick). To install both - Quick and Nimble, follow [the installation instructions in the Quick - Documentation](https://github.com/Quick/Quick/blob/master/Documentation/en-us/InstallingQuick.md). - -Nimble can currently be installed in one of two ways: using CocoaPods, or with -git submodules. - -## Installing Nimble as a Submodule - -To use Nimble as a submodule to test your macOS, iOS or tvOS applications, follow -these 4 easy steps: - -1. Clone the Nimble repository -2. Add Nimble.xcodeproj to the Xcode workspace for your project -3. Link Nimble.framework to your test target -4. Start writing expectations! - -For more detailed instructions on each of these steps, -read [How to Install Quick](https://github.com/Quick/Quick#how-to-install-quick). -Ignore the steps involving adding Quick to your project in order to -install just Nimble. - -## Installing Nimble via CocoaPods - -To use Nimble in CocoaPods to test your macOS, iOS or tvOS applications, add -Nimble to your podfile and add the ```use_frameworks!``` line to enable Swift -support for CocoaPods. - -```ruby -platform :ios, '8.0' - -source 'https://github.com/CocoaPods/Specs.git' - -# Whatever pods you need for your app go here - -target 'YOUR_APP_NAME_HERE_Tests', :exclusive => true do - use_frameworks! - pod 'Nimble', '~> 5.0.0' -end -``` - -Finally run `pod install`. - -## Using Nimble without XCTest - -Nimble is integrated with XCTest to allow it work well when used in Xcode test -bundles, however it can also be used in a standalone app. After installing -Nimble using one of the above methods, there are two additional steps required -to make this work. - -1. Create a custom assertion handler and assign an instance of it to the - global `NimbleAssertionHandler` variable. For example: - -```swift -class MyAssertionHandler : AssertionHandler { - func assert(assertion: Bool, message: FailureMessage, location: SourceLocation) { - if (!assertion) { - print("Expectation failed: \(message.stringValue)") - } - } -} -``` -```swift -// Somewhere before you use any assertions -NimbleAssertionHandler = MyAssertionHandler() -``` - -2. Add a post-build action to fix an issue with the Swift XCTest support - library being unnecessarily copied into your app - * Edit your scheme in Xcode, and navigate to Build -> Post-actions - * Click the "+" icon and select "New Run Script Action" - * Open the "Provide build settings from" dropdown and select your target - * Enter the following script contents: -``` -rm "${SWIFT_STDLIB_TOOL_DESTINATION_DIR}/libswiftXCTest.dylib" -``` - -You can now use Nimble assertions in your code and handle failures as you see -fit. diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore deleted file mode 100644 index 5b05d7e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -project.xcworkspace/ -xcuserdata/ diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h deleted file mode 100644 index 6ec6a29..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// CwlCatchException.h -// CwlCatchException -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import - -//! Project version number for CwlCatchException. -FOUNDATION_EXPORT double CwlCatchExceptionVersionNumber; - -//! Project version string for CwlCatchException. -FOUNDATION_EXPORT const unsigned char CwlCatchExceptionVersionString[]; - -__attribute__((visibility("hidden"))) -NSException* __nullable catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()); diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m deleted file mode 100644 index 4f9772c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.m +++ /dev/null @@ -1,35 +0,0 @@ -// -// CwlCatchException.m -// CwlAssertionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#import "CwlCatchException.h" - -__attribute__((visibility("hidden"))) -NSException* catchExceptionOfKind(Class __nonnull type, __attribute__((noescape)) void (^ __nonnull inBlock)()) { - @try { - inBlock(); - } @catch (NSException *exception) { - if ([exception isKindOfClass:type]) { - return exception; - } else { - @throw; - } - } - return nil; -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift deleted file mode 100644 index b44a232..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/CwlCatchException.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// CwlCatchException.swift -// CwlAssertionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -// We can't simply cast to Self? in the catchInBlock method so we need this generic function wrapper to do the conversion for us. Mildly annoying. -private func catchReturnTypeConverter(_ type: T.Type, block: () -> Void) -> T? { - return catchExceptionOfKind(type, block) as? T -} - -extension NSException { - public static func catchException(in block: () -> Void) -> Self? { - return catchReturnTypeConverter(self, block: block) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist deleted file mode 100644 index f14cf1e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlCatchException/CwlCatchException/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Matt Gallagher. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift deleted file mode 100644 index 5bf2794..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlBadInstructionException.swift +++ /dev/null @@ -1,76 +0,0 @@ -// -// CwlBadInstructionException.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -private func raiseBadInstructionException() { - BadInstructionException().raise() -} - -/// A simple NSException subclass. It's not required to subclass NSException (since the exception type is represented in the name) but this helps for identifying the exception through runtime type. -@objc public class BadInstructionException: NSException { - static var name: String = "com.cocoawithlove.BadInstruction" - - init() { - super.init(name: NSExceptionName(rawValue: BadInstructionException.name), reason: nil, userInfo: nil) - } - - required public init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } - - /// An Objective-C callable function, invoked from the `mach_exc_server` callback function `catch_mach_exception_raise_state` to push the `raiseBadInstructionException` function onto the stack. - public class func catch_mach_exception_raise_state(_ exception_port: mach_port_t, exception: exception_type_t, code: UnsafePointer, codeCnt: mach_msg_type_number_t, flavor: UnsafeMutablePointer, old_state: UnsafePointer, old_stateCnt: mach_msg_type_number_t, new_state: thread_state_t, new_stateCnt: UnsafeMutablePointer) -> kern_return_t { - - #if arch(x86_64) - // Make sure we've been given enough memory - if old_stateCnt != x86_THREAD_STATE64_COUNT || new_stateCnt.pointee < x86_THREAD_STATE64_COUNT { - return KERN_INVALID_ARGUMENT - } - - // Read the old thread state - var state = old_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { return $0.pointee } - - // 1. Decrement the stack pointer - state.__rsp -= __uint64_t(MemoryLayout.size) - - // 2. Save the old Instruction Pointer to the stack. - if let pointer = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(state.__rsp)) { - pointer.pointee = state.__rip - } else { - return KERN_INVALID_ARGUMENT - } - - // 3. Set the Instruction Pointer to the new function's address - var f: @convention(c) () -> Void = raiseBadInstructionException - withUnsafePointer(to: &f) { - state.__rip = $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { return $0.pointee } - } - - // Write the new thread state - new_state.withMemoryRebound(to: x86_thread_state64_t.self, capacity: 1) { $0.pointee = state } - new_stateCnt.pointee = x86_THREAD_STATE64_COUNT - - return KERN_SUCCESS - #else - fatalError("Unavailable for this CPU architecture") - #endif - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h deleted file mode 100644 index 0333ed2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// CwlCatchBadInstruction.h -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#if defined(__x86_64__) - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -// The request_mach_exception_raise_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. -typedef struct -{ - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; -} request_mach_exception_raise_t; - -// The reply_mach_exception_raise_state_t struct is passed to mach_msg which assumes its exact layout. To avoid problems with different layouts, we keep the definition in C rather than Swift. -typedef struct -{ - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; -} reply_mach_exception_raise_state_t; - -extern boolean_t mach_exc_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -NS_ASSUME_NONNULL_END - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m deleted file mode 100644 index 22c1377..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.m +++ /dev/null @@ -1,50 +0,0 @@ -// -// CwlCatchBadInstruction.m -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -#if defined(__x86_64__) - -#import "CwlCatchBadInstruction.h" - -// Assuming the "PRODUCT_NAME" macro is defined, this will create the name of the Swift generated header file -#define STRINGIZE_NO_EXPANSION(A) #A -#define STRINGIZE_WITH_EXPANSION(A) STRINGIZE_NO_EXPANSION(A) -#define SWIFT_INCLUDE STRINGIZE_WITH_EXPANSION(PRODUCT_NAME-Swift.h) - -// Include the Swift generated header file -#import SWIFT_INCLUDE - -/// A basic function that receives callbacks from mach_exc_server and relays them to the Swift implemented BadInstructionException.catch_mach_exception_raise_state. -kern_return_t catch_mach_exception_raise_state(mach_port_t exception_port, exception_type_t exception, const mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, const thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { - return [BadInstructionException catch_mach_exception_raise_state:exception_port exception:exception code:code codeCnt:codeCnt flavor:flavor old_state:old_state old_stateCnt:old_stateCnt new_state:new_state new_stateCnt:new_stateCnt]; -} - -// The mach port should be configured so that this function is never used. -kern_return_t catch_mach_exception_raise(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt) { - assert(false); - return KERN_FAILURE; -} - -// The mach port should be configured so that this function is never used. -kern_return_t catch_mach_exception_raise_state_identity(mach_port_t exception_port, mach_port_t thread, mach_port_t task, exception_type_t exception, mach_exception_data_t code, mach_msg_type_number_t codeCnt, int *flavor, thread_state_t old_state, mach_msg_type_number_t old_stateCnt, thread_state_t new_state, mach_msg_type_number_t *new_stateCnt) { - assert(false); - return KERN_FAILURE; -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift deleted file mode 100644 index 4d82f7a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstruction.swift +++ /dev/null @@ -1,193 +0,0 @@ -// -// CwlCatchBadInstruction.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -#if arch(x86_64) - - private enum PthreadError: Error { case code(Int32) } - private enum MachExcServer: Error { case code(kern_return_t) } - - /// A quick function for converting Mach error results into Swift errors - private func kernCheck(_ f: () -> Int32) throws { - let r = f() - guard r == KERN_SUCCESS else { - throw NSError(domain: NSMachErrorDomain, code: Int(r), userInfo: nil) - } - } - - extension execTypesCountTuple { - mutating func pointer(in block: (UnsafeMutablePointer) -> R) -> R { - return withUnsafeMutablePointer(to: &self) { p -> R in - return p.withMemoryRebound(to: T.self, capacity: EXC_TYPES_COUNT) { ptr -> R in - return block(ptr) - } - } - } - } - - extension request_mach_exception_raise_t { - mutating func withMsgHeaderPointer(in block: (UnsafeMutablePointer) -> R) -> R { - return withUnsafeMutablePointer(to: &self) { p -> R in - return p.withMemoryRebound(to: mach_msg_header_t.self, capacity: 1) { ptr -> R in - return block(ptr) - } - } - } - } - - extension reply_mach_exception_raise_state_t { - mutating func withMsgHeaderPointer(in block: (UnsafeMutablePointer) -> R) -> R { - return withUnsafeMutablePointer(to: &self) { p -> R in - return p.withMemoryRebound(to: mach_msg_header_t.self, capacity: 1) { ptr -> R in - return block(ptr) - } - } - } - } - - /// A structure used to store context associated with the Mach message port - private struct MachContext { - var masks = execTypesCountTuple() - var count: mach_msg_type_number_t = 0 - var ports = execTypesCountTuple() - var behaviors = execTypesCountTuple() - var flavors = execTypesCountTuple() - var currentExceptionPort: mach_port_t = 0 - var handlerThread: pthread_t? = nil - - mutating func withUnsafeMutablePointers(in block: (UnsafeMutablePointer, UnsafeMutablePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> R) -> R { - return masks.pointer { masksPtr in - return ports.pointer { portsPtr in - return behaviors.pointer { behaviorsPtr in - return flavors.pointer { flavorsPtr in - return block(masksPtr, portsPtr, behaviorsPtr, flavorsPtr) - } - } - } - } - } - } - - /// A function for receiving mach messages and parsing the first with mach_exc_server (and if any others are received, throwing them away). - private func machMessageHandler(_ arg: UnsafeMutableRawPointer) -> UnsafeMutableRawPointer? { - let context = arg.assumingMemoryBound(to: MachContext.self).pointee - var request = request_mach_exception_raise_t() - var reply = reply_mach_exception_raise_state_t() - - var handledfirstException = false - repeat { do { - // Request the next mach message from the port - request.Head.msgh_local_port = context.currentExceptionPort - request.Head.msgh_size = UInt32(MemoryLayout.size) - try kernCheck { request.withMsgHeaderPointer { requestPtr in - mach_msg(requestPtr, MACH_RCV_MSG | MACH_RCV_INTERRUPT, 0, request.Head.msgh_size, context.currentExceptionPort, 0, UInt32(MACH_PORT_NULL)) - } } - - // Prepare the reply structure - reply.Head.msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(request.Head.msgh_bits), 0) - reply.Head.msgh_local_port = UInt32(MACH_PORT_NULL) - reply.Head.msgh_remote_port = request.Head.msgh_remote_port - reply.Head.msgh_size = UInt32(MemoryLayout.size) - reply.NDR = NDR_record - - if !handledfirstException { - // Use the MiG generated server to invoke our handler for the request and fill in the rest of the reply structure - guard request.withMsgHeaderPointer(in: { requestPtr in reply.withMsgHeaderPointer { replyPtr in - mach_exc_server(requestPtr, replyPtr) - } }) != 0 else { throw MachExcServer.code(reply.RetCode) } - - handledfirstException = true - } else { - // If multiple fatal errors occur, don't handle subsquent errors (let the program crash) - reply.RetCode = KERN_FAILURE - } - - // Send the reply - try kernCheck { reply.withMsgHeaderPointer { replyPtr in - mach_msg(replyPtr, MACH_SEND_MSG, reply.Head.msgh_size, 0, UInt32(MACH_PORT_NULL), 0, UInt32(MACH_PORT_NULL)) - } } - } catch let error as NSError where (error.domain == NSMachErrorDomain && (error.code == Int(MACH_RCV_PORT_CHANGED) || error.code == Int(MACH_RCV_INVALID_NAME))) { - // Port was already closed before we started or closed while we were listening. - // This means the controlling thread shut down. - return nil - } catch { - // Should never be reached but this is testing code, don't try to recover, just abort - fatalError("Mach message error: \(error)") - } } while true - } - - /// Run the provided block. If a mach "BAD_INSTRUCTION" exception is raised, catch it and return a BadInstructionException (which captures stack information about the throw site, if desired). Otherwise return nil. - /// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a "BAD_INSTRUCTION" exception is raised, the block will be exited before completion via Objective-C exception. The risks associated with an Objective-C exception apply here: most Swift/Objective-C functions are *not* exception-safe. Memory may be leaked and the program will not necessarily be left in a safe state. - /// - parameter block: a function without parameters that will be run - /// - returns: if an EXC_BAD_INSTRUCTION is raised during the execution of `block` then a BadInstructionException will be returned, otherwise `nil`. - public func catchBadInstruction(in block: () -> Void) -> BadInstructionException? { - var context = MachContext() - var result: BadInstructionException? = nil - do { - var handlerThread: pthread_t? = nil - defer { - // 8. Wait for the thread to terminate *if* we actually made it to the creation point - // The mach port should be destroyed *before* calling pthread_join to avoid a deadlock. - if handlerThread != nil { - pthread_join(handlerThread!, nil) - } - } - - try kernCheck { - // 1. Create the mach port - mach_port_allocate(mach_task_self_, MACH_PORT_RIGHT_RECEIVE, &context.currentExceptionPort) - } - defer { - // 7. Cleanup the mach port - mach_port_destroy(mach_task_self_, context.currentExceptionPort) - } - - try kernCheck { - // 2. Configure the mach port - mach_port_insert_right(mach_task_self_, context.currentExceptionPort, context.currentExceptionPort, MACH_MSG_TYPE_MAKE_SEND) - } - - try kernCheck { context.withUnsafeMutablePointers { masksPtr, portsPtr, behaviorsPtr, flavorsPtr in - // 3. Apply the mach port as the handler for this thread - thread_swap_exception_ports(mach_thread_self(), EXC_MASK_BAD_INSTRUCTION, context.currentExceptionPort, Int32(bitPattern: UInt32(EXCEPTION_STATE) | MACH_EXCEPTION_CODES), x86_THREAD_STATE64, masksPtr, &context.count, portsPtr, behaviorsPtr, flavorsPtr) - } } - - defer { context.withUnsafeMutablePointers { masksPtr, portsPtr, behaviorsPtr, flavorsPtr in - // 6. Unapply the mach port - _ = thread_swap_exception_ports(mach_thread_self(), EXC_MASK_BAD_INSTRUCTION, 0, EXCEPTION_DEFAULT, THREAD_STATE_NONE, masksPtr, &context.count, portsPtr, behaviorsPtr, flavorsPtr) - } } - - try withUnsafeMutablePointer(to: &context) { c throws in - // 4. Create the thread - let e = pthread_create(&handlerThread, nil, machMessageHandler, c) - guard e == 0 else { throw PthreadError.code(e) } - - // 5. Run the block - result = BadInstructionException.catchException(in: block) - } - } catch { - // Should never be reached but this is testing code, don't try to recover, just abort - fatalError("Mach port error: \(error)") - } - return result - } - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift deleted file mode 100644 index bf30908..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlCatchBadInstructionPOSIX.swift +++ /dev/null @@ -1,100 +0,0 @@ -// -// CwlCatchBadInstructionPOSIX.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 8/02/2016. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Foundation - -#if arch(x86_64) - -// This file is an alternative implementation to CwlCatchBadInstruction.swift that uses a SIGILL signal action and setenv/longjmp instead of a Mach exception handler and Objective-C exception raising. -// -// WARNING: -// This code is quick and dirty. It's a proof of concept for using a SIGILL handler and setjmp/longjmp where Mach exceptions and the Obj-C runtime aren't available. I ran the automated tests when I first wrote this code but I don't personally use it at all so by the time you're reading this comment, it probably broke and I didn't notice. -// Obvious limitations: -// * It doesn't work when debugging with lldb. -// * It doesn't scope correctly to the thread (it's global) -// * In violation of rules for signal handlers, it writes to the "red zone" on the stack -// * It isn't re-entrant -// * Plus all of the same caveats as the Mach exceptions version (doesn't play well with other handlers, probably leaks ARC memory, etc) -// Treat it like a loaded shotgun. Don't point it at your face. - -private var env = jmp_buf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - -private func triggerLongJmp() { - longjmp(&env.0, 1) -} - -private func sigIllHandler(code: Int32, info: UnsafeMutablePointer<__siginfo>?, uap: UnsafeMutableRawPointer?) -> Void { - guard let context = uap?.assumingMemoryBound(to: ucontext64_t.self) else { return } - - // 1. Decrement the stack pointer - context.pointee.uc_mcontext64.pointee.__ss.__rsp -= __uint64_t(MemoryLayout.size) - - // 2. Save the old Instruction Pointer to the stack. - let rsp = context.pointee.uc_mcontext64.pointee.__ss.__rsp - if let ump = UnsafeMutablePointer<__uint64_t>(bitPattern: UInt(rsp)) { - ump.pointee = rsp - } - - // 3. Set the Instruction Pointer to the new function's address - var f: @convention(c) () -> Void = triggerLongJmp - withUnsafePointer(to: &f) { $0.withMemoryRebound(to: __uint64_t.self, capacity: 1) { ptr in - context.pointee.uc_mcontext64.pointee.__ss.__rip = ptr.pointee - } } -} - -/// Without Mach exceptions or the Objective-C runtime, there's nothing to put in the exception object. It's really just a boolean – either a SIGILL was caught or not. -public class BadInstructionException { -} - -/// Run the provided block. If a POSIX SIGILL is received, handle it and return a BadInstructionException (which is just an empty object in this POSIX signal version). Otherwise return nil. -/// NOTE: This function is only intended for use in test harnesses – use in a distributed build is almost certainly a bad choice. If a SIGILL is received, the block will be interrupted using a C `longjmp`. The risks associated with abrupt jumps apply here: most Swift functions are *not* interrupt-safe. Memory may be leaked and the program will not necessarily be left in a safe state. -/// - parameter block: a function without parameters that will be run -/// - returns: if an SIGILL is raised during the execution of `block` then a BadInstructionException will be returned, otherwise `nil`. -public func catchBadInstruction( block: () -> Void) -> BadInstructionException? { - // Construct the signal action - var sigActionPrev = sigaction() - let action = __sigaction_u(__sa_sigaction: sigIllHandler) - var sigActionNew = sigaction(__sigaction_u: action, sa_mask: sigset_t(), sa_flags: SA_SIGINFO) - - // Install the signal action - if sigaction(SIGILL, &sigActionNew, &sigActionPrev) != 0 { - fatalError("Sigaction error: \(errno)") - } - - defer { - // Restore the previous signal action - if sigaction(SIGILL, &sigActionPrev, nil) != 0 { - fatalError("Sigaction error: \(errno)") - } - } - - // Prepare the jump point - if setjmp(&env.0) != 0 { - // Handle jump received - return BadInstructionException() - } - - // Run the block - block() - - return nil -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift deleted file mode 100644 index 35e1ad5..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/CwlDarwinDefinitions.swift +++ /dev/null @@ -1,63 +0,0 @@ -// -// CwlDarwinDefinitions.swift -// CwlPreconditionTesting -// -// Created by Matt Gallagher on 2016/01/10. -// Copyright © 2016 Matt Gallagher ( http://cocoawithlove.com ). All rights reserved. -// -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. -// -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -// - -import Darwin - -#if arch(x86_64) - -// From /usr/include/mach/port.h -// #define MACH_PORT_RIGHT_RECEIVE ((mach_port_right_t) 1) -let MACH_PORT_RIGHT_RECEIVE: mach_port_right_t = 1 - -// From /usr/include/mach/message.h -// #define MACH_MSG_TYPE_MAKE_SEND 20 /* Must hold receive right */ -// #define MACH_MSGH_BITS_REMOTE(bits) \ -// ((bits) & MACH_MSGH_BITS_REMOTE_MASK) -// #define MACH_MSGH_BITS(remote, local) /* legacy */ \ -// ((remote) | ((local) << 8)) -let MACH_MSG_TYPE_MAKE_SEND: UInt32 = 20 -func MACH_MSGH_BITS_REMOTE(_ bits: UInt32) -> UInt32 { return bits & UInt32(MACH_MSGH_BITS_REMOTE_MASK) } -func MACH_MSGH_BITS(_ remote: UInt32, _ local: UInt32) -> UInt32 { return ((remote) | ((local) << 8)) } - -// From /usr/include/mach/exception_types.h -// #define EXC_BAD_INSTRUCTION 2 /* Instruction failed */ -// #define EXC_MASK_BAD_INSTRUCTION (1 << EXC_BAD_INSTRUCTION) -// #define EXCEPTION_DEFAULT 1 -let EXC_BAD_INSTRUCTION: UInt32 = 2 -let EXC_MASK_BAD_INSTRUCTION: UInt32 = 1 << EXC_BAD_INSTRUCTION -let EXCEPTION_DEFAULT: Int32 = 1 - -// From /usr/include/mach/i386/thread_status.h -// #define THREAD_STATE_NONE 13 -// #define x86_THREAD_STATE64_COUNT ((mach_msg_type_number_t) \ -// ( sizeof (x86_thread_state64_t) / sizeof (int) )) -let THREAD_STATE_NONE: Int32 = 13 -let x86_THREAD_STATE64_COUNT = UInt32(MemoryLayout.size / MemoryLayout.size) - -let EXC_TYPES_COUNT = 14 -struct execTypesCountTuple { - // From /usr/include/mach/i386/exception.h - // #define EXC_TYPES_COUNT 14 /* incl. illegal exception 0 */ - var value: (T, T, T, T, T, T, T, T, T, T, T, T, T, T) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - init() { - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist deleted file mode 100644 index f14cf1e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Matt Gallagher. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c deleted file mode 100644 index 2334538..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.c +++ /dev/null @@ -1,537 +0,0 @@ -/* - * IDENTIFICATION: - * stub generated Mon Jan 11 00:24:26 2016 - * with a MiG generated by bootstrap_cmds-93 - * OPTIONS: - */ - -/* Module mach_exc */ - -#if defined(__x86_64__) - -#define __MIG_check__Request__mach_exc_subsystem__ 1 - -#include "mach_excServer.h" - -#ifndef mig_internal -#define mig_internal static __inline__ -#endif /* mig_internal */ - -#ifndef mig_external -#define mig_external -#endif /* mig_external */ - -#if !defined(__MigTypeCheck) && defined(TypeCheck) -#define __MigTypeCheck TypeCheck /* Legacy setting */ -#endif /* !defined(__MigTypeCheck) */ - -#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_) -#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */ -#endif /* !defined(__MigKernelSpecificCode) */ - -#ifndef LimitCheck -#define LimitCheck 0 -#endif /* LimitCheck */ - -#ifndef min -#define min(a,b) ( ((a) < (b))? (a): (b) ) -#endif /* min */ - -#if !defined(_WALIGN_) -#define _WALIGN_(x) (((x) + 3) & ~3) -#endif /* !defined(_WALIGN_) */ - -#if !defined(_WALIGNSZ_) -#define _WALIGNSZ_(x) _WALIGN_(sizeof(x)) -#endif /* !defined(_WALIGNSZ_) */ - -#ifndef UseStaticTemplates -#define UseStaticTemplates 0 -#endif /* UseStaticTemplates */ - -#ifndef __DeclareRcvRpc -#define __DeclareRcvRpc(_NUM_, _NAME_) -#endif /* __DeclareRcvRpc */ - -#ifndef __BeforeRcvRpc -#define __BeforeRcvRpc(_NUM_, _NAME_) -#endif /* __BeforeRcvRpc */ - -#ifndef __AfterRcvRpc -#define __AfterRcvRpc(_NUM_, _NAME_) -#endif /* __AfterRcvRpc */ - -#ifndef __DeclareRcvSimple -#define __DeclareRcvSimple(_NUM_, _NAME_) -#endif /* __DeclareRcvSimple */ - -#ifndef __BeforeRcvSimple -#define __BeforeRcvSimple(_NUM_, _NAME_) -#endif /* __BeforeRcvSimple */ - -#ifndef __AfterRcvSimple -#define __AfterRcvSimple(_NUM_, _NAME_) -#endif /* __AfterRcvSimple */ - -#define novalue void - -#define msgh_request_port msgh_local_port -#define MACH_MSGH_BITS_REQUEST(bits) MACH_MSGH_BITS_LOCAL(bits) -#define msgh_reply_port msgh_remote_port -#define MACH_MSGH_BITS_REPLY(bits) MACH_MSGH_BITS_REMOTE(bits) - -#define MIG_RETURN_ERROR(X, code) {\ - ((mig_reply_error_t *)X)->RetCode = code;\ - ((mig_reply_error_t *)X)->NDR = NDR_record;\ - return;\ - } - -/* Forward Declarations */ - - -mig_internal novalue _Xmach_exception_raise - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -mig_internal novalue _Xmach_exception_raise_state - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - -mig_internal novalue _Xmach_exception_raise_state_identity - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP); - - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_t__defined) -#define __MIG_check__Request__mach_exception_raise_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_t(__attribute__((__unused__)) __Request__mach_exception_raise_t *In0P) -{ - - typedef __Request__mach_exception_raise_t __Request; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (In0P->msgh_body.msgh_descriptor_count != 2) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 16)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->thread.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->task.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_t__codeCnt__defined */ -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 16)) / 8 < In0P->codeCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 16) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise */ -mig_internal novalue _Xmach_exception_raise - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_t __Request; - typedef __Reply__mach_exception_raise_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_t__defined */ - - __DeclareRcvRpc(2405, "mach_exception_raise") - __BeforeRcvRpc(2405, "mach_exception_raise") - -#if defined(__MIG_check__Request__mach_exception_raise_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_t((__Request *)In0P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_t__defined) */ - - OutP->RetCode = catch_mach_exception_raise(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt); - - OutP->NDR = NDR_record; - - - __AfterRcvRpc(2405, "mach_exception_raise") -} - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) -#define __MIG_check__Request__mach_exception_raise_state_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_t **In1PP) -{ - - typedef __Request__mach_exception_raise_state_t __Request; - __Request *In1P; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - unsigned int msgh_size_delta; - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if ((In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__codeCnt__defined */ - msgh_size_delta = (8 * In0P->codeCnt); -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; - msgh_size -= msgh_size_delta; -#endif /* __MigTypeCheck */ - - *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_t__old_stateCnt__defined */ -#if __MigTypeCheck - if ( In1P->old_stateCnt > 224 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise_state */ -mig_internal novalue _Xmach_exception_raise_state - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_state_t __Request; - typedef __Reply__mach_exception_raise_state_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Request *In1P; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_state_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_state_t__defined */ - - __DeclareRcvRpc(2406, "mach_exception_raise_state") - __BeforeRcvRpc(2406, "mach_exception_raise_state") - -#if defined(__MIG_check__Request__mach_exception_raise_state_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_state_t((__Request *)In0P, (__Request **)&In1P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_state_t__defined) */ - - OutP->new_stateCnt = 224; - - OutP->RetCode = catch_mach_exception_raise_state(In0P->Head.msgh_request_port, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); - if (OutP->RetCode != KERN_SUCCESS) { - MIG_RETURN_ERROR(OutP, OutP->RetCode); - } - - OutP->NDR = NDR_record; - - - OutP->flavor = In1P->flavor; - OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); - - __AfterRcvRpc(2406, "mach_exception_raise_state") -} - -#if ( __MigTypeCheck ) -#if __MIG_check__Request__mach_exc_subsystem__ -#if !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) -#define __MIG_check__Request__mach_exception_raise_state_identity_t__defined - -mig_internal kern_return_t __MIG_check__Request__mach_exception_raise_state_identity_t(__attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t *In0P, __attribute__((__unused__)) __Request__mach_exception_raise_state_identity_t **In1PP) -{ - - typedef __Request__mach_exception_raise_state_identity_t __Request; - __Request *In1P; -#if __MigTypeCheck - unsigned int msgh_size; -#endif /* __MigTypeCheck */ - unsigned int msgh_size_delta; - -#if __MigTypeCheck - msgh_size = In0P->Head.msgh_size; - if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) || - (In0P->msgh_body.msgh_descriptor_count != 2) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->thread.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if __MigTypeCheck - if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR || - In0P->task.disposition != 17) - return MIG_TYPE_ERROR; -#endif /* __MigTypeCheck */ - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__codeCnt__defined */ - msgh_size_delta = (8 * In0P->codeCnt); -#if __MigTypeCheck - if ( In0P->codeCnt > 2 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 8 < In0P->codeCnt) || - (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 912) + (8 * In0P->codeCnt))) - return MIG_BAD_ARGUMENTS; - msgh_size -= msgh_size_delta; -#endif /* __MigTypeCheck */ - - *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 16); - -#if defined(__NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined) - if (In0P->NDR.int_rep != NDR_record.int_rep) - __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep); -#endif /* __NDR_convert__int_rep__Request__mach_exception_raise_state_identity_t__old_stateCnt__defined */ -#if __MigTypeCheck - if ( In1P->old_stateCnt > 224 ) - return MIG_BAD_ARGUMENTS; - if (((msgh_size - (mach_msg_size_t)(sizeof(__Request) - 912)) / 4 < In1P->old_stateCnt) || - (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 912) + (4 * In1P->old_stateCnt))) - return MIG_BAD_ARGUMENTS; -#endif /* __MigTypeCheck */ - - return MACH_MSG_SUCCESS; -} -#endif /* !defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ -#endif /* __MIG_check__Request__mach_exc_subsystem__ */ -#endif /* ( __MigTypeCheck ) */ - - -/* Routine mach_exception_raise_state_identity */ -mig_internal novalue _Xmach_exception_raise_state_identity - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - mach_msg_trailer_t trailer; - } Request __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - typedef __Request__mach_exception_raise_state_identity_t __Request; - typedef __Reply__mach_exception_raise_state_identity_t Reply __attribute__((unused)); - - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - Request *In0P = (Request *) InHeadP; - Request *In1P; - Reply *OutP = (Reply *) OutHeadP; -#ifdef __MIG_check__Request__mach_exception_raise_state_identity_t__defined - kern_return_t check_result; -#endif /* __MIG_check__Request__mach_exception_raise_state_identity_t__defined */ - - __DeclareRcvRpc(2407, "mach_exception_raise_state_identity") - __BeforeRcvRpc(2407, "mach_exception_raise_state_identity") - -#if defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) - check_result = __MIG_check__Request__mach_exception_raise_state_identity_t((__Request *)In0P, (__Request **)&In1P); - if (check_result != MACH_MSG_SUCCESS) - { MIG_RETURN_ERROR(OutP, check_result); } -#endif /* defined(__MIG_check__Request__mach_exception_raise_state_identity_t__defined) */ - - OutP->new_stateCnt = 224; - - OutP->RetCode = catch_mach_exception_raise_state_identity(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt); - if (OutP->RetCode != KERN_SUCCESS) { - MIG_RETURN_ERROR(OutP, OutP->RetCode); - } - - OutP->NDR = NDR_record; - - - OutP->flavor = In1P->flavor; - OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 896) + (((4 * OutP->new_stateCnt))); - - __AfterRcvRpc(2407, "mach_exception_raise_state_identity") -} - - - -/* Description of this subsystem, for use in direct RPC */ -const struct catch_mach_exc_subsystem catch_mach_exc_subsystem = { - mach_exc_server_routine, - 2405, - 2408, - (mach_msg_size_t)sizeof(union __ReplyUnion__catch_mach_exc_subsystem), - (vm_address_t)0, - { - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise, 6, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_t)}, - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise_state, 9, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_t)}, - { (mig_impl_routine_t) 0, - (mig_stub_routine_t) _Xmach_exception_raise_state_identity, 11, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__mach_exception_raise_state_identity_t)}, - } -}; - -mig_external boolean_t mach_exc_server - (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP) -{ - /* - * typedef struct { - * mach_msg_header_t Head; - * NDR_record_t NDR; - * kern_return_t RetCode; - * } mig_reply_error_t; - */ - - register mig_routine_t routine; - - OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0); - OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port; - /* Minimal size: routine() will update it if different */ - OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t); - OutHeadP->msgh_local_port = MACH_PORT_NULL; - OutHeadP->msgh_id = InHeadP->msgh_id + 100; - - if ((InHeadP->msgh_id > 2407) || (InHeadP->msgh_id < 2405) || - ((routine = catch_mach_exc_subsystem.routine[InHeadP->msgh_id - 2405].stub_routine) == 0)) { - ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record; - ((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID; - return FALSE; - } - (*routine) (InHeadP, OutHeadP); - return TRUE; -} - -mig_external mig_routine_t mach_exc_server_routine - (mach_msg_header_t *InHeadP) -{ - register int msgh_id; - - msgh_id = InHeadP->msgh_id - 2405; - - if ((msgh_id > 2) || (msgh_id < 0)) - return 0; - - return catch_mach_exc_subsystem.routine[msgh_id].stub_routine; -} - -#endif - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h deleted file mode 100644 index 766ba11..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/CwlPreconditionTesting/mach_excServer.h +++ /dev/null @@ -1,298 +0,0 @@ -#ifndef _mach_exc_server_ -#define _mach_exc_server_ - -/* Module mach_exc */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* BEGIN VOUCHER CODE */ - -#ifndef KERNEL -#if defined(__has_include) -#if __has_include() -#ifndef USING_VOUCHERS -#define USING_VOUCHERS -#endif -#ifndef __VOUCHER_FORWARD_TYPE_DECLS__ -#define __VOUCHER_FORWARD_TYPE_DECLS__ -#ifdef __cplusplus -extern "C" { -#endif - extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import)); -#ifdef __cplusplus -} -#endif -#endif // __VOUCHER_FORWARD_TYPE_DECLS__ -#endif // __has_include() -#endif // __has_include -#endif // !KERNEL - -/* END VOUCHER CODE */ - - -#ifdef AUTOTEST -#ifndef FUNCTION_PTR_T -#define FUNCTION_PTR_T -typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t); -typedef struct { - char *name; - function_ptr_t function; -} function_table_entry; -typedef function_table_entry *function_table_t; -#endif /* FUNCTION_PTR_T */ -#endif /* AUTOTEST */ - -#ifndef mach_exc_MSG_COUNT -#define mach_exc_MSG_COUNT 3 -#endif /* mach_exc_MSG_COUNT */ - -#include -#include -#include -#include - -#ifdef __BeforeMigServerHeader -__BeforeMigServerHeader -#endif /* __BeforeMigServerHeader */ - - -/* Routine mach_exception_raise */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise -( - mach_port_t exception_port, - mach_port_t thread, - mach_port_t task, - exception_type_t exception, - mach_exception_data_t code, - mach_msg_type_number_t codeCnt -); - -/* Routine mach_exception_raise_state */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise_state -( - mach_port_t exception_port, - exception_type_t exception, - const mach_exception_data_t code, - mach_msg_type_number_t codeCnt, - int *flavor, - const thread_state_t old_state, - mach_msg_type_number_t old_stateCnt, - thread_state_t new_state, - mach_msg_type_number_t *new_stateCnt -); - -/* Routine mach_exception_raise_state_identity */ -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -kern_return_t catch_mach_exception_raise_state_identity -( - mach_port_t exception_port, - mach_port_t thread, - mach_port_t task, - exception_type_t exception, - mach_exception_data_t code, - mach_msg_type_number_t codeCnt, - int *flavor, - thread_state_t old_state, - mach_msg_type_number_t old_stateCnt, - thread_state_t new_state, - mach_msg_type_number_t *new_stateCnt -); - -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -boolean_t mach_exc_server( - mach_msg_header_t *InHeadP, - mach_msg_header_t *OutHeadP); - -#ifdef mig_external -mig_external -#else -extern -#endif /* mig_external */ -mig_routine_t mach_exc_server_routine( - mach_msg_header_t *InHeadP); - - -/* Description of this subsystem, for use in direct RPC */ -extern const struct catch_mach_exc_subsystem { - mig_server_routine_t server; /* Server routine */ - mach_msg_id_t start; /* Min routine number */ - mach_msg_id_t end; /* Max routine number + 1 */ - unsigned int maxsize; /* Max msg size */ - vm_address_t reserved; /* Reserved */ - struct routine_descriptor /*Array of routine descriptors */ - routine[3]; -} catch_mach_exc_subsystem; - -/* typedefs for all requests */ - -#ifndef __Request__mach_exc_subsystem__defined -#define __Request__mach_exc_subsystem__defined - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - } __Request__mach_exception_raise_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - } __Request__mach_exception_raise_state_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - /* start of the kernel processed data */ - mach_msg_body_t msgh_body; - mach_msg_port_descriptor_t thread; - mach_msg_port_descriptor_t task; - /* end of the kernel processed data */ - NDR_record_t NDR; - exception_type_t exception; - mach_msg_type_number_t codeCnt; - int64_t code[2]; - int flavor; - mach_msg_type_number_t old_stateCnt; - natural_t old_state[224]; - } __Request__mach_exception_raise_state_identity_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif -#endif /* !__Request__mach_exc_subsystem__defined */ - - -/* union of all requests */ - -#ifndef __RequestUnion__catch_mach_exc_subsystem__defined -#define __RequestUnion__catch_mach_exc_subsystem__defined -union __RequestUnion__catch_mach_exc_subsystem { - __Request__mach_exception_raise_t Request_mach_exception_raise; - __Request__mach_exception_raise_state_t Request_mach_exception_raise_state; - __Request__mach_exception_raise_state_identity_t Request_mach_exception_raise_state_identity; -}; -#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ -/* typedefs for all replies */ - -#ifndef __Reply__mach_exc_subsystem__defined -#define __Reply__mach_exc_subsystem__defined - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - } __Reply__mach_exception_raise_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; - } __Reply__mach_exception_raise_state_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif - -#ifdef __MigPackStructs -#pragma pack(4) -#endif - typedef struct { - mach_msg_header_t Head; - NDR_record_t NDR; - kern_return_t RetCode; - int flavor; - mach_msg_type_number_t new_stateCnt; - natural_t new_state[224]; - } __Reply__mach_exception_raise_state_identity_t __attribute__((unused)); -#ifdef __MigPackStructs -#pragma pack() -#endif -#endif /* !__Reply__mach_exc_subsystem__defined */ - - -/* union of all replies */ - -#ifndef __ReplyUnion__catch_mach_exc_subsystem__defined -#define __ReplyUnion__catch_mach_exc_subsystem__defined -union __ReplyUnion__catch_mach_exc_subsystem { - __Reply__mach_exception_raise_t Reply_mach_exception_raise; - __Reply__mach_exception_raise_state_t Reply_mach_exception_raise_state; - __Reply__mach_exception_raise_state_identity_t Reply_mach_exception_raise_state_identity; -}; -#endif /* __RequestUnion__catch_mach_exc_subsystem__defined */ - -#ifndef subsystem_to_name_map_mach_exc -#define subsystem_to_name_map_mach_exc \ - { "mach_exception_raise", 2405 },\ - { "mach_exception_raise_state", 2406 },\ - { "mach_exception_raise_state_identity", 2407 } -#endif - -#ifdef __AfterMigServerHeader -__AfterMigServerHeader -#endif /* __AfterMigServerHeader */ - -#endif /* _mach_exc_server_ */ diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/README.md b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/README.md deleted file mode 100644 index a1a9a70..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Lib/CwlPreconditionTesting/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# CwlPreconditionTesting - -A Mach exception handler, written in Swift and Objective-C, that allows `EXC_BAD_INSTRUCTION` (as raised by Swift's `assertionFailure`/`preconditionFailure`/`fatalError`) to be caught and tested. - -For an extended discussion of this code, please see the Cocoa with Love article: - -[Partial functions in Swift, Part 2: Catching precondition failures](http://cocoawithlove.com/blog/2016/02/02/partial-functions-part-two-catching-precondition-failures.html) - -## Usage - -The short version is: - -1. `git clone https://github.com/mattgallagher/CwlPreconditionTesting.git` -2. drag the "CwlPreconditionTesting.xcodeproj" file into your project's file tree in Xcode -3. go to your testing target's Build Phase settings and under "Target Dependencies" press the "+" button and select the relevant "CwlPreconditionTesting" target ("_iOS" or "_OSX", depending on your testing target's SDK) -4. write `import CwlPreconditionTesting` at the top of any test file where you want to use `catchBadInstruction` (Swift should handle the linkage automatically when you do this) -5. use the `catchBadInstruction` function as shown in the [CwlCatchBadInstructionTests.swift tests file](https://github.com/mattgallagher/CwlPreconditionTesting/blob/master/CwlPreconditionTestingTests/CwlCatchBadInstructionTests.swift?ts=4) - -### Project details - -The "CwlPreconditionTesting.xcodeproj" contains two targets: - -* CwlPreconditionTesting_OSX -* CwlPreconditionTesting_iOS - -both build a framework named "CwlPreconditionTesting.framework". If you're linking manually, be certain to select the "CwlPreconditionTesting.framework" from the appropriate target. - -Remember: the iOS build is useful only in the simulator. All Mach exception handling code will be conditionally excluded in any device build. - -### Static inclusion - -Due to the complications associated with needing to call into and out of Objective-C, static inclusion in other projects is not a single file nor a quick drag and drop. There's at least 7 files and you'll need to add some project settings. - -All of the following files: - -* CwlCatchBadInstruction.swift -* CwlCatchBadInstruction.h -* CwlCatchBadInstruction.m -* CwlCatchException.swift -* CwlCatchException.h -* CwlCatchException.m - -and either: - -* $(SDKROOT)/usr/include/mach/mach_exc.defs -* mach_excServer.c - -need to be added to the testing target for OS X projects or iOS projects, respectively. - -Your target will also need to have the following macros defined in the "Apple LLVM - Preprocessing" → "Preprocessor Macros" build setting: - - PRODUCT_NAME=$(PRODUCT_NAME) - -This lets the Objective-C file generate the include directive for the autogenerated Swift header so it can call back into Swift during the Mach exception handler callbacks. This macro should stay in sync if you change the target name but if you do anything else in your project that changes the name of the autogenerated Swift header independent of the target name (or you want to add spaces or other command-line complications to the target name), you'll want to update "CwlCatchBadInstruction.m" directly with the correct include directive. - -Additionally, you'll need a standard Objective-C "Bridging header" for your testing target and it will need to include the following import statements: - -``` -#if defined(__x86_64__) -#import -#endif - -#import -``` - -### Using POSIX signals and setjmp/longjmp - -For comparison or for anyone running this code on a platform without Mach exceptions or the Objective-C runtime, I've added a proof-of-concept implementation of `catchBadInstruction` that uses a POSIX SIGILL `sigaction` and `setjmp`/`longjmp` to perform the throw. - -In Xcode, you can simply select the CwlPreconditionTesting_POSIX target (instead of the OSX or iOS targets). If you're building without Xcode: all you need is the CwlCatchBadInstructionPOSIX.swift file (compared to the Mach exception handler, the code is tiny doesn't have any weird Objective-C/MiG file dependencies). - -**Warning No. 1**: on OS X, this approach can't be used when lldb is attached since lldb's Mach exception handler blocks the SIGILL from ever occurring (I've disabled the "Debug Executable" setting for the tests in Xcode - re-enable it to witness the problem). - -**Warning No. 2**: if you're switching between the CwlPreconditionTesting_OSX and CwlPreconditionTesting_POSIX targets, Xcode (as of Xcode 7.2.1) will not detect the change and will not remove the old framework correctly so you'll need to *clean your project* otherwise the old framework will hang around. - -Additional problems in decreasing severity include: - -* the signal handler is whole process (rather than correctly scoped to the thread where the "catch" occurs) -* the signal handler doesn't deal with re-entrancy whereas the mach exception handler remains deterministic in the face of multiple fatal errors -* the signal handler overwrites the "[red zone](https://en.wikipedia.org/wiki/Red_zone_(computing))" which is technically frowned upon in signal handlers (although unlikely to cause problems here) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift deleted file mode 100644 index 2e58fdf..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift +++ /dev/null @@ -1,17 +0,0 @@ -import Foundation - -/// Protocol for the assertion handler that Nimble uses for all expectations. -public protocol AssertionHandler { - func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) -} - -/// Global backing interface for assertions that Nimble creates. -/// Defaults to a private test handler that passes through to XCTest. -/// -/// If XCTest is not available, you must assign your own assertion handler -/// before using any matchers, otherwise Nimble will abort the program. -/// -/// @see AssertionHandler -public var NimbleAssertionHandler: AssertionHandler = { () -> AssertionHandler in - return isXCTestAvailable() ? NimbleXCTestHandler() : NimbleXCTestUnavailableHandler() -}() diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift deleted file mode 100644 index 94a9030..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift +++ /dev/null @@ -1,19 +0,0 @@ -/// AssertionDispatcher allows multiple AssertionHandlers to receive -/// assertion messages. -/// -/// @warning Does not fully dispatch if one of the handlers raises an exception. -/// This is possible with XCTest-based assertion handlers. -/// -public class AssertionDispatcher: AssertionHandler { - let handlers: [AssertionHandler] - - public init(handlers: [AssertionHandler]) { - self.handlers = handlers - } - - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - for handler in handlers { - handler.assert(assertion, message: message, location: location) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift deleted file mode 100644 index 740c392..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/AssertionRecorder.swift +++ /dev/null @@ -1,100 +0,0 @@ -import Foundation - -/// A data structure that stores information about an assertion when -/// AssertionRecorder is set as the Nimble assertion handler. -/// -/// @see AssertionRecorder -/// @see AssertionHandler -public struct AssertionRecord: CustomStringConvertible { - /// Whether the assertion succeeded or failed - public let success: Bool - /// The failure message the assertion would display on failure. - public let message: FailureMessage - /// The source location the expectation occurred on. - public let location: SourceLocation - - public var description: String { - return "AssertionRecord { success=\(success), message='\(message.stringValue)', location=\(location) }" - } -} - -/// An AssertionHandler that silently records assertions that Nimble makes. -/// This is useful for testing failure messages for matchers. -/// -/// @see AssertionHandler -public class AssertionRecorder: AssertionHandler { - /// All the assertions that were captured by this recorder - public var assertions = [AssertionRecord]() - - public init() {} - - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - assertions.append( - AssertionRecord( - success: assertion, - message: message, - location: location)) - } -} - -/// Allows you to temporarily replace the current Nimble assertion handler with -/// the one provided for the scope of the closure. -/// -/// Once the closure finishes, then the original Nimble assertion handler is restored. -/// -/// @see AssertionHandler -public func withAssertionHandler(_ tempAssertionHandler: AssertionHandler, closure: () throws -> Void) { - let environment = NimbleEnvironment.activeInstance - let oldRecorder = environment.assertionHandler - let capturer = NMBExceptionCapture(handler: nil, finally: ({ - environment.assertionHandler = oldRecorder - })) - environment.assertionHandler = tempAssertionHandler - capturer.tryBlock { - try! closure() - } -} - -/// Captures expectations that occur in the given closure. Note that all -/// expectations will still go through to the default Nimble handler. -/// -/// This can be useful if you want to gather information about expectations -/// that occur within a closure. -/// -/// @param silently expectations are no longer send to the default Nimble -/// assertion handler when this is true. Defaults to false. -/// -/// @see gatherFailingExpectations -public func gatherExpectations(silently: Bool = false, closure: @escaping () -> Void) -> [AssertionRecord] { - let previousRecorder = NimbleEnvironment.activeInstance.assertionHandler - let recorder = AssertionRecorder() - let handlers: [AssertionHandler] - - if silently { - handlers = [recorder] - } else { - handlers = [recorder, previousRecorder] - } - - let dispatcher = AssertionDispatcher(handlers: handlers) - withAssertionHandler(dispatcher, closure: closure) - return recorder.assertions -} - -/// Captures failed expectations that occur in the given closure. Note that all -/// expectations will still go through to the default Nimble handler. -/// -/// This can be useful if you want to gather information about failed -/// expectations that occur within a closure. -/// -/// @param silently expectations are no longer send to the default Nimble -/// assertion handler when this is true. Defaults to false. -/// -/// @see gatherExpectations -/// @see raiseException source for an example use case. -public func gatherFailingExpectations(silently: Bool = false, closure: @escaping () -> Void) -> [AssertionRecord] { - let assertions = gatherExpectations(silently: silently, closure: closure) - return assertions.filter { assertion in - !assertion.success - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift deleted file mode 100644 index 1c51cd7..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBExpectation.swift +++ /dev/null @@ -1,131 +0,0 @@ -import Foundation - -#if _runtime(_ObjC) - -internal struct ObjCMatcherWrapper: Matcher { - let matcher: NMBMatcher - - func matches(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - return matcher.matches( - ({ try! actualExpression.evaluate() }), - failureMessage: failureMessage, - location: actualExpression.location) - } - - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - return matcher.doesNotMatch( - ({ try! actualExpression.evaluate() }), - failureMessage: failureMessage, - location: actualExpression.location) - } -} - -// Equivalent to Expectation, but for Nimble's Objective-C interface -public class NMBExpectation: NSObject { - internal let _actualBlock: () -> NSObject! - internal var _negative: Bool - internal let _file: FileString - internal let _line: UInt - internal var _timeout: TimeInterval = 1.0 - - public init(actualBlock: @escaping () -> NSObject!, negative: Bool, file: FileString, line: UInt) { - self._actualBlock = actualBlock - self._negative = negative - self._file = file - self._line = line - } - - private var expectValue: Expectation { - return expect(_file, line: _line) { - self._actualBlock() as NSObject? - } - } - - public var withTimeout: (TimeInterval) -> NMBExpectation { - return ({ timeout in self._timeout = timeout - return self - }) - } - - public var to: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.to(ObjCMatcherWrapper(matcher: matcher)) - }) - } - - public var toWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.to(ObjCMatcherWrapper(matcher: matcher), description: description) - }) - } - - public var toNot: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.toNot( - ObjCMatcherWrapper(matcher: matcher) - ) - }) - } - - public var toNotWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.toNot( - ObjCMatcherWrapper(matcher: matcher), description: description - ) - }) - } - - public var notTo: (NMBMatcher) -> Void { return toNot } - - public var notToWithDescription: (NMBMatcher, String) -> Void { return toNotWithDescription } - - public var toEventually: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.toEventually( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: nil - ) - }) - } - - public var toEventuallyWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.toEventually( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: description - ) - }) - } - - public var toEventuallyNot: (NMBMatcher) -> Void { - return ({ matcher in - self.expectValue.toEventuallyNot( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: nil - ) - }) - } - - public var toEventuallyNotWithDescription: (NMBMatcher, String) -> Void { - return ({ matcher, description in - self.expectValue.toEventuallyNot( - ObjCMatcherWrapper(matcher: matcher), - timeout: self._timeout, - description: description - ) - }) - } - - public var toNotEventually: (NMBMatcher) -> Void { return toEventuallyNot } - - public var toNotEventuallyWithDescription: (NMBMatcher, String) -> Void { return toEventuallyNotWithDescription } - - public class func failWithMessage(_ message: String, file: FileString, line: UInt) { - fail(message, location: SourceLocation(file: file, line: line)) - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift deleted file mode 100644 index 19a4567..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NMBObjCMatcher.swift +++ /dev/null @@ -1,81 +0,0 @@ -import Foundation - -#if _runtime(_ObjC) - -public typealias MatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage) -> Bool -public typealias FullMatcherBlock = (_ actualExpression: Expression, _ failureMessage: FailureMessage, _ shouldNotMatch: Bool) -> Bool - -public class NMBObjCMatcher: NSObject, NMBMatcher { - let _match: MatcherBlock - let _doesNotMatch: MatcherBlock - let canMatchNil: Bool - - public init(canMatchNil: Bool, matcher: @escaping MatcherBlock, notMatcher: @escaping MatcherBlock) { - self.canMatchNil = canMatchNil - self._match = matcher - self._doesNotMatch = notMatcher - } - - public convenience init(matcher: @escaping MatcherBlock) { - self.init(canMatchNil: true, matcher: matcher) - } - - public convenience init(canMatchNil: Bool, matcher: @escaping MatcherBlock) { - self.init(canMatchNil: canMatchNil, matcher: matcher, notMatcher: ({ actualExpression, failureMessage in - return !matcher(actualExpression, failureMessage) - })) - } - - public convenience init(matcher: @escaping FullMatcherBlock) { - self.init(canMatchNil: true, matcher: matcher) - } - - public convenience init(canMatchNil: Bool, matcher: @escaping FullMatcherBlock) { - self.init(canMatchNil: canMatchNil, matcher: ({ actualExpression, failureMessage in - return matcher(actualExpression, failureMessage, false) - }), notMatcher: ({ actualExpression, failureMessage in - return matcher(actualExpression, failureMessage, true) - })) - } - - private func canMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - do { - if !canMatchNil { - if try actualExpression.evaluate() == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - return false - } - } - } catch let error { - failureMessage.actualValue = "an unexpected error thrown: \(error)" - return false - } - return true - } - - public func matches(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let expr = Expression(expression: actualBlock, location: location) - let result = _match( - expr, - failureMessage) - if self.canMatch(Expression(expression: actualBlock, location: location), failureMessage: failureMessage) { - return result - } else { - return false - } - } - - public func doesNotMatch(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let expr = Expression(expression: actualBlock, location: location) - let result = _doesNotMatch( - expr, - failureMessage) - if self.canMatch(Expression(expression: actualBlock, location: location), failureMessage: failureMessage) { - return result - } else { - return false - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift deleted file mode 100644 index a55cb27..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleEnvironment.swift +++ /dev/null @@ -1,45 +0,0 @@ -import Dispatch -import Foundation - -/// "Global" state of Nimble is stored here. Only DSL functions should access / be aware of this -/// class' existance -internal class NimbleEnvironment { - static var activeInstance: NimbleEnvironment { - get { - let env = Thread.current.threadDictionary["NimbleEnvironment"] - if let env = env as? NimbleEnvironment { - return env - } else { - let newEnv = NimbleEnvironment() - self.activeInstance = newEnv - return newEnv - } - } - set { - Thread.current.threadDictionary["NimbleEnvironment"] = newValue - } - } - - // TODO: eventually migrate the global to this environment value - var assertionHandler: AssertionHandler { - get { return NimbleAssertionHandler } - set { NimbleAssertionHandler = newValue } - } - - var suppressTVOSAssertionWarning: Bool = false - var awaiter: Awaiter - - init() { - let timeoutQueue: DispatchQueue - if #available(OSX 10.10, *) { - timeoutQueue = DispatchQueue.global(qos: .userInitiated) - } else { - timeoutQueue = DispatchQueue.global(priority: .high) - } - - awaiter = Awaiter( - waitLock: AssertionWaitLock(), - asyncQueue: .main, - timeoutQueue: timeoutQueue) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift deleted file mode 100644 index 78e6dd9..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NimbleXCTestHandler.swift +++ /dev/null @@ -1,76 +0,0 @@ -import Foundation -import XCTest - -/// Default handler for Nimble. This assertion handler passes failures along to -/// XCTest. -public class NimbleXCTestHandler: AssertionHandler { - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - if !assertion { - recordFailure("\(message.stringValue)\n", location: location) - } - } -} - -/// Alternative handler for Nimble. This assertion handler passes failures along -/// to XCTest by attempting to reduce the failure message size. -public class NimbleShortXCTestHandler: AssertionHandler { - public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - if !assertion { - let msg: String - if let actual = message.actualValue { - msg = "got: \(actual) \(message.postfixActual)" - } else { - msg = "expected \(message.to) \(message.postfixMessage)" - } - recordFailure("\(msg)\n", location: location) - } - } -} - -/// Fallback handler in case XCTest is unavailable. This assertion handler will abort -/// the program if it is invoked. -class NimbleXCTestUnavailableHandler: AssertionHandler { - func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { - fatalError("XCTest is not available and no custom assertion handler was configured. Aborting.") - } -} - -#if !SWIFT_PACKAGE -/// Helper class providing access to the currently executing XCTestCase instance, if any -@objc final internal class CurrentTestCaseTracker: NSObject, XCTestObservation { - @objc static let sharedInstance = CurrentTestCaseTracker() - - private(set) var currentTestCase: XCTestCase? - - @objc func testCaseWillStart(_ testCase: XCTestCase) { - currentTestCase = testCase - } - - @objc func testCaseDidFinish(_ testCase: XCTestCase) { - currentTestCase = nil - } -} -#endif - -func isXCTestAvailable() -> Bool { -#if _runtime(_ObjC) - // XCTest is weakly linked and so may not be present - return NSClassFromString("XCTestCase") != nil -#else - return true -#endif -} - -private func recordFailure(_ message: String, location: SourceLocation) { -#if SWIFT_PACKAGE - XCTFail("\(message)", file: location.file, line: location.line) -#else - if let testCase = CurrentTestCaseTracker.sharedInstance.currentTestCase { - testCase.recordFailure(withDescription: message, inFile: location.file, atLine: location.line, expected: true) - } else { - let msg = "Attempted to report a test failure to XCTest while no test case was running. " + - "The failure was:\n\"\(message)\"\nIt occurred at: \(location.file):\(location.line)" - NSException(name: .internalInconsistencyException, reason: msg, userInfo: nil).raise() - } -#endif -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift deleted file mode 100644 index dd02aa4..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Adapters/NonObjectiveC/ExceptionCapture.swift +++ /dev/null @@ -1,31 +0,0 @@ -import Foundation - -#if !_runtime(_ObjC) -// swift-corelibs-foundation doesn't provide NSException at all, so provide a dummy -class NSException {} -#endif - -// NOTE: This file is not intended to be included in the Xcode project. It -// is picked up by the Swift Package Manager during its build process. - -/// A dummy reimplementation of the `NMBExceptionCapture` class to serve -/// as a stand-in for build and runtime environments that don't support -/// Objective C. -internal class ExceptionCapture { - let finally: (() -> Void)? - - init(handler: ((NSException) -> Void)?, finally: (() -> Void)?) { - self.finally = finally - } - - func tryBlock(_ unsafeBlock: (() -> Void)) { - // We have no way of handling Objective C exceptions in Swift, - // so we just go ahead and run the unsafeBlock as-is - unsafeBlock() - - finally?() - } -} - -/// Compatibility with the actual Objective-C implementation -typealias NMBExceptionCapture = ExceptionCapture diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift deleted file mode 100644 index f7f373f..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL+Wait.swift +++ /dev/null @@ -1,98 +0,0 @@ -import Dispatch -import Foundation - -private enum ErrorResult { - case exception(NSException) - case error(Error) - case none -} - -/// Only classes, protocols, methods, properties, and subscript declarations can be -/// bridges to Objective-C via the @objc keyword. This class encapsulates callback-style -/// asynchronous waiting logic so that it may be called from Objective-C and Swift. -internal class NMBWait: NSObject { - internal class func until( - timeout: TimeInterval, - file: FileString = #file, - line: UInt = #line, - action: @escaping (@escaping () -> Void) -> Void) -> Void { - return throwableUntil(timeout: timeout, file: file, line: line) { done in - action(done) - } - } - - // Using a throwable closure makes this method not objc compatible. - internal class func throwableUntil( - timeout: TimeInterval, - file: FileString = #file, - line: UInt = #line, - action: @escaping (@escaping () -> Void) throws -> Void) -> Void { - let awaiter = NimbleEnvironment.activeInstance.awaiter - let leeway = timeout / 2.0 - let result = awaiter.performBlock { (done: @escaping (ErrorResult) -> Void) throws -> Void in - DispatchQueue.main.async { - let capture = NMBExceptionCapture( - handler: ({ exception in - done(.exception(exception)) - }), - finally: ({ }) - ) - capture.tryBlock { - do { - try action { - done(.none) - } - } catch let e { - done(.error(e)) - } - } - } - }.timeout(timeout, forcefullyAbortTimeout: leeway).wait("waitUntil(...)", file: file, line: line) - - switch result { - case .incomplete: internalError("Reached .incomplete state for waitUntil(...).") - case .blockedRunLoop: - fail(blockedRunLoopErrorMessageFor("-waitUntil()", leeway: leeway), - file: file, line: line) - case .timedOut: - let pluralize = (timeout == 1 ? "" : "s") - fail("Waited more than \(timeout) second\(pluralize)", file: file, line: line) - case let .raisedException(exception): - fail("Unexpected exception raised: \(exception)") - case let .errorThrown(error): - fail("Unexpected error thrown: \(error)") - case .completed(.exception(let exception)): - fail("Unexpected exception raised: \(exception)") - case .completed(.error(let error)): - fail("Unexpected error thrown: \(error)") - case .completed(.none): // success - break - } - } - - #if SWIFT_PACKAGE - internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) -> Void { - until(timeout: 1, file: file, line: line, action: action) - } - #else - @objc(untilFile:line:action:) - internal class func until(_ file: FileString = #file, line: UInt = #line, action: @escaping (() -> Void) -> Void) -> Void { - until(timeout: 1, file: file, line: line, action: action) - } - #endif -} - -internal func blockedRunLoopErrorMessageFor(_ fnName: String, leeway: TimeInterval) -> String { - return "\(fnName) timed out but was unable to run the timeout handler because the main thread is unresponsive (\(leeway) seconds is allow after the wait times out). Conditions that may cause this include processing blocking IO on the main thread, calls to sleep(), deadlocks, and synchronous IPC. Nimble forcefully stopped run loop which may cause future failures in test run." -} - -/// Wait asynchronously until the done closure is called or the timeout has been reached. -/// -/// @discussion -/// Call the done() closure to indicate the waiting has completed. -/// -/// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function -/// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. -public func waitUntil(timeout: TimeInterval = 1, file: FileString = #file, line: UInt = #line, action: @escaping (@escaping () -> Void) -> Void) -> Void { - NMBWait.until(timeout: timeout, file: file, line: line, action: action) -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL.swift deleted file mode 100644 index 7ebd684..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/DSL.swift +++ /dev/null @@ -1,64 +0,0 @@ -import Foundation - -/// Make an expectation on a given actual value. The value given is lazily evaluated. -public func expect(_ expression: @autoclosure @escaping () throws -> T?, file: FileString = #file, line: UInt = #line) -> Expectation { - return Expectation( - expression: Expression( - expression: expression, - location: SourceLocation(file: file, line: line), - isClosure: true)) -} - -/// Make an expectation on a given actual value. The closure is lazily invoked. -public func expect(_ file: FileString = #file, line: UInt = #line, expression: @escaping () throws -> T?) -> Expectation { - return Expectation( - expression: Expression( - expression: expression, - location: SourceLocation(file: file, line: line), - isClosure: true)) -} - -/// Always fails the test with a message and a specified location. -public func fail(_ message: String, location: SourceLocation) { - let handler = NimbleEnvironment.activeInstance.assertionHandler - handler.assert(false, message: FailureMessage(stringValue: message), location: location) -} - -/// Always fails the test with a message. -public func fail(_ message: String, file: FileString = #file, line: UInt = #line) { - fail(message, location: SourceLocation(file: file, line: line)) -} - -/// Always fails the test. -public func fail(_ file: FileString = #file, line: UInt = #line) { - fail("fail() always fails", file: file, line: line) -} - -/// Like Swift's precondition(), but raises NSExceptions instead of sigaborts -internal func nimblePrecondition( - _ expr: @autoclosure() -> Bool, - _ name: @autoclosure() -> String, - _ message: @autoclosure() -> String, - file: StaticString = #file, - line: UInt = #line) { - let result = expr() - if !result { -#if _runtime(_ObjC) - let e = NSException( - name: NSExceptionName(name()), - reason: message(), - userInfo: nil) - e.raise() -#else - preconditionFailure("\(name()) - \(message())", file: file, line: line) -#endif - } -} - -internal func internalError(_ msg: String, file: FileString = #file, line: UInt = #line) -> Never { - fatalError( - "Nimble Bug Found: \(msg) at \(file):\(line).\n" + - "Please file a bug to Nimble: https://github.com/Quick/Nimble/issues with the " + - "code snippet that caused this error." - ) -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift deleted file mode 100644 index c5978f4..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expectation.swift +++ /dev/null @@ -1,71 +0,0 @@ -import Foundation - -internal func expressionMatches(_ expression: Expression, matcher: U, to: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T { - let msg = FailureMessage() - msg.userDescription = description - msg.to = to - do { - let pass = try matcher.matches(expression, failureMessage: msg) - if msg.actualValue == "" { - msg.actualValue = "<\(stringify(try expression.evaluate()))>" - } - return (pass, msg) - } catch let error { - msg.actualValue = "an unexpected error thrown: <\(error)>" - return (false, msg) - } -} - -internal func expressionDoesNotMatch(_ expression: Expression, matcher: U, toNot: String, description: String?) -> (Bool, FailureMessage) - where U: Matcher, U.ValueType == T { - let msg = FailureMessage() - msg.userDescription = description - msg.to = toNot - do { - let pass = try matcher.doesNotMatch(expression, failureMessage: msg) - if msg.actualValue == "" { - msg.actualValue = "<\(stringify(try expression.evaluate()))>" - } - return (pass, msg) - } catch let error { - msg.actualValue = "an unexpected error thrown: <\(error)>" - return (false, msg) - } -} - -public struct Expectation { - - public let expression: Expression - - public func verify(_ pass: Bool, _ message: FailureMessage) { - let handler = NimbleEnvironment.activeInstance.assertionHandler - handler.assert(pass, message: message, location: expression.location) - } - - /// Tests the actual value using a matcher to match. - public func to(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T { - let (pass, msg) = expressionMatches(expression, matcher: matcher, to: "to", description: description) - verify(pass, msg) - } - - /// Tests the actual value using a matcher to not match. - public func toNot(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T { - let (pass, msg) = expressionDoesNotMatch(expression, matcher: matcher, toNot: "to not", description: description) - verify(pass, msg) - } - - /// Tests the actual value using a matcher to not match. - /// - /// Alias to toNot(). - public func notTo(_ matcher: U, description: String? = nil) - where U: Matcher, U.ValueType == T { - toNot(matcher, description: description) - } - - // see: - // - AsyncMatcherWrapper for extension - // - NMBExpectation for Objective-C interface -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift deleted file mode 100644 index f7afffe..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Expression.swift +++ /dev/null @@ -1,90 +0,0 @@ -import Foundation - -// Memoizes the given closure, only calling the passed -// closure once; even if repeat calls to the returned closure -internal func memoizedClosure(_ closure: @escaping () throws -> T) -> (Bool) throws -> T { - var cache: T? - return ({ withoutCaching in - if withoutCaching || cache == nil { - cache = try closure() - } - return cache! - }) -} - -/// Expression represents the closure of the value inside expect(...). -/// Expressions are memoized by default. This makes them safe to call -/// evaluate() multiple times without causing a re-evaluation of the underlying -/// closure. -/// -/// @warning Since the closure can be any code, Objective-C code may choose -/// to raise an exception. Currently, Expression does not memoize -/// exception raising. -/// -/// This provides a common consumable API for matchers to utilize to allow -/// Nimble to change internals to how the captured closure is managed. -public struct Expression { - internal let _expression: (Bool) throws -> T? - internal let _withoutCaching: Bool - public let location: SourceLocation - public let isClosure: Bool - - /// Creates a new expression struct. Normally, expect(...) will manage this - /// creation process. The expression is memoized. - /// - /// @param expression The closure that produces a given value. - /// @param location The source location that this closure originates from. - /// @param isClosure A bool indicating if the captured expression is a - /// closure or internally produced closure. Some matchers - /// may require closures. For example, toEventually() - /// requires an explicit closure. This gives Nimble - /// flexibility if @autoclosure behavior changes between - /// Swift versions. Nimble internals always sets this true. - public init(expression: @escaping () throws -> T?, location: SourceLocation, isClosure: Bool = true) { - self._expression = memoizedClosure(expression) - self.location = location - self._withoutCaching = false - self.isClosure = isClosure - } - - /// Creates a new expression struct. Normally, expect(...) will manage this - /// creation process. - /// - /// @param expression The closure that produces a given value. - /// @param location The source location that this closure originates from. - /// @param withoutCaching Indicates if the struct should memoize the given - /// closure's result. Subsequent evaluate() calls will - /// not call the given closure if this is true. - /// @param isClosure A bool indicating if the captured expression is a - /// closure or internally produced closure. Some matchers - /// may require closures. For example, toEventually() - /// requires an explicit closure. This gives Nimble - /// flexibility if @autoclosure behavior changes between - /// Swift versions. Nimble internals always sets this true. - public init(memoizedExpression: @escaping (Bool) throws -> T?, location: SourceLocation, withoutCaching: Bool, isClosure: Bool = true) { - self._expression = memoizedExpression - self.location = location - self._withoutCaching = withoutCaching - self.isClosure = isClosure - } - - /// Returns a new Expression from the given expression. Identical to a map() - /// on this type. This should be used only to typecast the Expression's - /// closure value. - /// - /// The returned expression will preserve location and isClosure. - /// - /// @param block The block that can cast the current Expression value to a - /// new type. - public func cast(_ block: @escaping (T?) throws -> U?) -> Expression { - return Expression(expression: ({ try block(self.evaluate()) }), location: self.location, isClosure: self.isClosure) - } - - public func evaluate() throws -> T? { - return try self._expression(_withoutCaching) - } - - public func withoutCaching() -> Expression { - return Expression(memoizedExpression: self._expression, location: location, withoutCaching: true, isClosure: isClosure) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift deleted file mode 100644 index 24b6c8f..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/FailureMessage.swift +++ /dev/null @@ -1,65 +0,0 @@ -import Foundation - -/// Encapsulates the failure message that matchers can report to the end user. -/// -/// This is shared state between Nimble and matchers that mutate this value. -public class FailureMessage: NSObject { - public var expected: String = "expected" - public var actualValue: String? = "" // empty string -> use default; nil -> exclude - public var to: String = "to" - public var postfixMessage: String = "match" - public var postfixActual: String = "" - /// An optional message that will be appended as a new line and provides additional details - /// about the failure. This message will only be visible in the issue navigator / in logs but - /// not directly in the source editor since only a single line is presented there. - public var extendedMessage: String? = nil - public var userDescription: String? = nil - - public var stringValue: String { - get { - if let value = _stringValueOverride { - return value - } else { - return computeStringValue() - } - } - set { - _stringValueOverride = newValue - } - } - - internal var _stringValueOverride: String? - - public override init() { - } - - public init(stringValue: String) { - _stringValueOverride = stringValue - } - - internal func stripNewlines(_ str: String) -> String { - let whitespaces = CharacterSet.whitespacesAndNewlines - return str - .components(separatedBy: "\n") - .map { line in line.trimmingCharacters(in: whitespaces) } - .joined(separator: "") - } - - internal func computeStringValue() -> String { - var value = "\(expected) \(to) \(postfixMessage)" - if let actualValue = actualValue { - value = "\(expected) \(to) \(postfixMessage), got \(actualValue)\(postfixActual)" - } - value = stripNewlines(value) - - if let extendedMessage = extendedMessage { - value += "\n\(stripNewlines(extendedMessage))" - } - - if let userDescription = userDescription { - return "\(userDescription)\n\(value)" - } - - return value - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Info.plist b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Info.plist deleted file mode 100644 index 6ac80b8..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSHumanReadableCopyright - Copyright © 2014 Jeff Hui. All rights reserved. - NSPrincipalClass - - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift deleted file mode 100644 index 73e79d3..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AllPass.swift +++ /dev/null @@ -1,94 +0,0 @@ -import Foundation - -public func allPass - (_ passFunc: @escaping (T?) -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T { - return allPass("pass a condition", passFunc) -} - -public func allPass - (_ passName: String, _ passFunc: @escaping (T?) -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T { - return createAllPassMatcher { expression, failureMessage in - failureMessage.postfixMessage = passName - return passFunc(try expression.evaluate()) - } -} - -public func allPass - (_ matcher: V) -> NonNilMatcherFunc - where U: Sequence, V: Matcher, U.Iterator.Element == V.ValueType { - return createAllPassMatcher { - try matcher.matches($0, failureMessage: $1) - } -} - -private func createAllPassMatcher - (_ elementEvaluator: @escaping (Expression, FailureMessage) throws -> Bool) -> NonNilMatcherFunc - where U: Sequence, U.Iterator.Element == T { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.actualValue = nil - if let actualValue = try actualExpression.evaluate() { - for currentElement in actualValue { - let exp = Expression( - expression: {currentElement}, location: actualExpression.location) - if try !elementEvaluator(exp, failureMessage) { - failureMessage.postfixMessage = - "all \(failureMessage.postfixMessage)," - + " but failed first at element <\(stringify(currentElement))>" - + " in <\(stringify(actualValue))>" - return false - } - } - failureMessage.postfixMessage = "all \(failureMessage.postfixMessage)" - } else { - failureMessage.postfixMessage = "all pass (use beNil() to match nils)" - return false - } - - return true - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func allPassMatcher(_ matcher: NMBObjCMatcher) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - var nsObjects = [NSObject]() - - var collectionIsUsable = true - if let value = actualValue as? NSFastEnumeration { - let generator = NSFastEnumerationIterator(value) - while let obj = generator.next() { - if let nsObject = obj as? NSObject { - nsObjects.append(nsObject) - } else { - collectionIsUsable = false - break - } - } - } else { - collectionIsUsable = false - } - - if !collectionIsUsable { - failureMessage.postfixMessage = - "allPass only works with NSFastEnumeration (NSArray, NSSet, ...) of NSObjects" - failureMessage.expected = "" - failureMessage.to = "" - return false - } - - let expr = Expression(expression: ({ nsObjects }), location: location) - let elementEvaluator: (Expression, FailureMessage) -> Bool = { - expression, failureMessage in - return matcher.matches({try! expression.evaluate()}, failureMessage: failureMessage, location: expr.location) - } - return try! createAllPassMatcher(elementEvaluator).matches( - expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift deleted file mode 100644 index b971ccc..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/AsyncMatcherWrapper.swift +++ /dev/null @@ -1,141 +0,0 @@ -import Foundation - -/// If you are running on a slower machine, it could be useful to increase the default timeout value -/// or slow down poll interval. Default timeout interval is 1, and poll interval is 0.01. -public struct AsyncDefaults { - public static var Timeout: TimeInterval = 1 - public static var PollInterval: TimeInterval = 0.01 -} - -internal struct AsyncMatcherWrapper: Matcher - where U: Matcher, U.ValueType == T { - let fullMatcher: U - let timeoutInterval: TimeInterval - let pollInterval: TimeInterval - - init(fullMatcher: U, timeoutInterval: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval) { - self.fullMatcher = fullMatcher - self.timeoutInterval = timeoutInterval - self.pollInterval = pollInterval - } - - func matches(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - let uncachedExpression = actualExpression.withoutCaching() - let fnName = "expect(...).toEventually(...)" - let result = pollBlock( - pollInterval: pollInterval, - timeoutInterval: timeoutInterval, - file: actualExpression.location.file, - line: actualExpression.location.line, - fnName: fnName) { - try self.fullMatcher.matches(uncachedExpression, failureMessage: failureMessage) - } - switch result { - case let .completed(isSuccessful): return isSuccessful - case .timedOut: return false - case let .errorThrown(error): - failureMessage.actualValue = "an unexpected error thrown: <\(error)>" - return false - case let .raisedException(exception): - failureMessage.actualValue = "an unexpected exception thrown: <\(exception)>" - return false - case .blockedRunLoop: - failureMessage.postfixMessage += " (timed out, but main thread was unresponsive)." - return false - case .incomplete: - internalError("Reached .incomplete state for toEventually(...).") - } - } - - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) -> Bool { - let uncachedExpression = actualExpression.withoutCaching() - let result = pollBlock( - pollInterval: pollInterval, - timeoutInterval: timeoutInterval, - file: actualExpression.location.file, - line: actualExpression.location.line, - fnName: "expect(...).toEventuallyNot(...)") { - try self.fullMatcher.doesNotMatch(uncachedExpression, failureMessage: failureMessage) - } - switch result { - case let .completed(isSuccessful): return isSuccessful - case .timedOut: return false - case let .errorThrown(error): - failureMessage.actualValue = "an unexpected error thrown: <\(error)>" - return false - case let .raisedException(exception): - failureMessage.actualValue = "an unexpected exception thrown: <\(exception)>" - return false - case .blockedRunLoop: - failureMessage.postfixMessage += " (timed out, but main thread was unresponsive)." - return false - case .incomplete: - internalError("Reached .incomplete state for toEventuallyNot(...).") - } - } -} - -private let toEventuallyRequiresClosureError = FailureMessage(stringValue: "expect(...).toEventually(...) requires an explicit closure (eg - expect { ... }.toEventually(...) )\nSwift 1.2 @autoclosure behavior has changed in an incompatible way for Nimble to function") - -extension Expectation { - /// Tests the actual value using a matcher to match by checking continuously - /// at each pollInterval until the timeout is reached. - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T { - if expression.isClosure { - let (pass, msg) = expressionMatches( - expression, - matcher: AsyncMatcherWrapper( - fullMatcher: matcher, - timeoutInterval: timeout, - pollInterval: pollInterval), - to: "to eventually", - description: description - ) - verify(pass, msg) - } else { - verify(false, toEventuallyRequiresClosureError) - } - } - - /// Tests the actual value using a matcher to not match by checking - /// continuously at each pollInterval until the timeout is reached. - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toEventuallyNot(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T { - if expression.isClosure { - let (pass, msg) = expressionDoesNotMatch( - expression, - matcher: AsyncMatcherWrapper( - fullMatcher: matcher, - timeoutInterval: timeout, - pollInterval: pollInterval), - toNot: "to eventually not", - description: description - ) - verify(pass, msg) - } else { - verify(false, toEventuallyRequiresClosureError) - } - } - - /// Tests the actual value using a matcher to not match by checking - /// continuously at each pollInterval until the timeout is reached. - /// - /// Alias of toEventuallyNot() - /// - /// @discussion - /// This function manages the main run loop (`NSRunLoop.mainRunLoop()`) while this function - /// is executing. Any attempts to touch the run loop may cause non-deterministic behavior. - public func toNotEventually(_ matcher: U, timeout: TimeInterval = AsyncDefaults.Timeout, pollInterval: TimeInterval = AsyncDefaults.PollInterval, description: String? = nil) - where U: Matcher, U.ValueType == T { - return toEventuallyNot(matcher, timeout: timeout, pollInterval: pollInterval, description: description) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift deleted file mode 100644 index f636a72..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAKindOf.swift +++ /dev/null @@ -1,48 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is an instance of the given class. -public func beAKindOf(_ expectedType: T.Type) -> NonNilMatcherFunc { - return NonNilMatcherFunc {actualExpression, failureMessage in - failureMessage.postfixMessage = "be a kind of \(String(describing: expectedType))" - let instance = try actualExpression.evaluate() - guard let validInstance = instance else { - failureMessage.actualValue = "" - return false - } - - failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" - - guard validInstance is T else { - return false - } - - return true - } -} - -#if _runtime(_ObjC) - -/// A Nimble matcher that succeeds when the actual value is an instance of the given class. -/// @see beAnInstanceOf if you want to match against the exact class -public func beAKindOf(_ expectedClass: AnyClass) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - let instance = try actualExpression.evaluate() - if let validInstance = instance { - failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" - } else { - failureMessage.actualValue = "" - } - failureMessage.postfixMessage = "be a kind of \(String(describing: expectedClass))" - return instance != nil && instance!.isKind(of: expectedClass) - } -} - -extension NMBObjCMatcher { - public class func beAKindOfMatcher(_ expected: AnyClass) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - return try! beAKindOf(expected).matches(actualExpression, failureMessage: failureMessage) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift deleted file mode 100644 index 07ce3d3..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeAnInstanceOf.swift +++ /dev/null @@ -1,50 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is an _exact_ instance of the given class. -public func beAnInstanceOf(_ expectedType: T.Type) -> NonNilMatcherFunc { - return NonNilMatcherFunc {actualExpression, failureMessage in - failureMessage.postfixMessage = "be an instance of \(String(describing: expectedType))" - let instance = try actualExpression.evaluate() - guard let validInstance = instance else { - failureMessage.actualValue = "" - return false - } - - failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" - - if type(of: validInstance) == expectedType { - return true - } - - return false - } -} - -/// A Nimble matcher that succeeds when the actual value is an instance of the given class. -/// @see beAKindOf if you want to match against subclasses -public func beAnInstanceOf(_ expectedClass: AnyClass) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - let instance = try actualExpression.evaluate() - if let validInstance = instance { - failureMessage.actualValue = "<\(String(describing: type(of: validInstance))) instance>" - } else { - failureMessage.actualValue = "" - } - failureMessage.postfixMessage = "be an instance of \(String(describing: expectedClass))" -#if _runtime(_ObjC) - return instance != nil && instance!.isMember(of: expectedClass) -#else - return instance != nil && type(of: instance!) == expectedClass -#endif - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beAnInstanceOfMatcher(_ expected: AnyClass) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - return try! beAnInstanceOf(expected).matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift deleted file mode 100644 index 95c52cf..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeCloseTo.swift +++ /dev/null @@ -1,122 +0,0 @@ -import Foundation - -internal let DefaultDelta = 0.0001 - -internal func isCloseTo(_ actualValue: NMBDoubleConvertible?, expectedValue: NMBDoubleConvertible, delta: Double, failureMessage: FailureMessage) -> Bool { - failureMessage.postfixMessage = "be close to <\(stringify(expectedValue))> (within \(stringify(delta)))" - failureMessage.actualValue = "<\(stringify(actualValue))>" - return actualValue != nil && abs(actualValue!.doubleValue - expectedValue.doubleValue) < delta -} - -/// A Nimble matcher that succeeds when a value is close to another. This is used for floating -/// point values which can have imprecise results when doing arithmetic on them. -/// -/// @see equal -public func beCloseTo(_ expectedValue: Double, within delta: Double = DefaultDelta) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta, failureMessage: failureMessage) - } -} - -/// A Nimble matcher that succeeds when a value is close to another. This is used for floating -/// point values which can have imprecise results when doing arithmetic on them. -/// -/// @see equal -public func beCloseTo(_ expectedValue: NMBDoubleConvertible, within delta: Double = DefaultDelta) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - return isCloseTo(try actualExpression.evaluate(), expectedValue: expectedValue, delta: delta, failureMessage: failureMessage) - } -} - -#if _runtime(_ObjC) -public class NMBObjCBeCloseToMatcher: NSObject, NMBMatcher { - var _expected: NSNumber - var _delta: CDouble - init(expected: NSNumber, within: CDouble) { - _expected = expected - _delta = within - } - - public func matches(_ actualExpression: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let actualBlock: () -> NMBDoubleConvertible? = ({ - return actualExpression() as? NMBDoubleConvertible - }) - let expr = Expression(expression: actualBlock, location: location) - let matcher = beCloseTo(self._expected, within: self._delta) - return try! matcher.matches(expr, failureMessage: failureMessage) - } - - public func doesNotMatch(_ actualExpression: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let actualBlock: () -> NMBDoubleConvertible? = ({ - return actualExpression() as? NMBDoubleConvertible - }) - let expr = Expression(expression: actualBlock, location: location) - let matcher = beCloseTo(self._expected, within: self._delta) - return try! matcher.doesNotMatch(expr, failureMessage: failureMessage) - } - - public var within: (CDouble) -> NMBObjCBeCloseToMatcher { - return ({ delta in - return NMBObjCBeCloseToMatcher(expected: self._expected, within: delta) - }) - } -} - -extension NMBObjCMatcher { - public class func beCloseToMatcher(_ expected: NSNumber, within: CDouble) -> NMBObjCBeCloseToMatcher { - return NMBObjCBeCloseToMatcher(expected: expected, within: within) - } -} -#endif - -public func beCloseTo(_ expectedValues: [Double], within delta: Double = DefaultDelta) -> NonNilMatcherFunc <[Double]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be close to <\(stringify(expectedValues))> (each within \(stringify(delta)))" - if let actual = try actualExpression.evaluate() { - failureMessage.actualValue = "<\(stringify(actual))>" - - if actual.count != expectedValues.count { - return false - } else { - for (index, actualItem) in actual.enumerated() { - if fabs(actualItem - expectedValues[index]) > delta { - return false - } - } - return true - } - } - return false - } -} - -// MARK: - Operators - -infix operator ≈ : ComparisonPrecedence - -public func ≈(lhs: Expectation<[Double]>, rhs: [Double]) { - lhs.to(beCloseTo(rhs)) -} - -public func ≈(lhs: Expectation, rhs: NMBDoubleConvertible) { - lhs.to(beCloseTo(rhs)) -} - -public func ≈(lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { - lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) -} - -public func == (lhs: Expectation, rhs: (expected: NMBDoubleConvertible, delta: Double)) { - lhs.to(beCloseTo(rhs.expected, within: rhs.delta)) -} - -// make this higher precedence than exponents so the Doubles either end aren't pulled in -// unexpectantly -precedencegroup PlusMinusOperatorPrecedence { - higherThan: BitwiseShiftPrecedence -} - -infix operator ± : PlusMinusOperatorPrecedence -public func ±(lhs: NMBDoubleConvertible, rhs: Double) -> (expected: NMBDoubleConvertible, delta: Double) { - return (expected: lhs, delta: rhs) -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift deleted file mode 100644 index 2ea2cdb..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeEmpty.swift +++ /dev/null @@ -1,91 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" - let actualSeq = try actualExpression.evaluate() - if actualSeq == nil { - return true - } - var generator = actualSeq!.makeIterator() - return generator.next() == nil - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" - let actualString = try actualExpression.evaluate() - return actualString == nil || NSString(string: actualString!).length == 0 - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For NSString instances, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" - let actualString = try actualExpression.evaluate() - return actualString == nil || actualString!.length == 0 - } -} - -// Without specific overrides, beEmpty() is ambiguous for NSDictionary, NSArray, -// etc, since they conform to Sequence as well as NMBCollection. - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" - let actualDictionary = try actualExpression.evaluate() - return actualDictionary == nil || actualDictionary!.count == 0 - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" - let actualArray = try actualExpression.evaluate() - return actualArray == nil || actualArray!.count == 0 - } -} - -/// A Nimble matcher that succeeds when a value is "empty". For collections, this -/// means the are no items in that collection. For strings, it is an empty string. -public func beEmpty() -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be empty" - let actual = try actualExpression.evaluate() - return actual == nil || actual!.count == 0 - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beEmptyMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - failureMessage.postfixMessage = "be empty" - if let value = actualValue as? NMBCollection { - let expr = Expression(expression: ({ value as NMBCollection }), location: location) - return try! beEmpty().matches(expr, failureMessage: failureMessage) - } else if let value = actualValue as? NSString { - let expr = Expression(expression: ({ value as String }), location: location) - return try! beEmpty().matches(expr, failureMessage: failureMessage) - } else if let actualValue = actualValue { - failureMessage.postfixMessage = "be empty (only works for NSArrays, NSSets, NSIndexSets, NSDictionaries, NSHashTables, and NSStrings)" - failureMessage.actualValue = "\(String(describing: type(of: actualValue))) type" - } - return false - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift deleted file mode 100644 index c7eb84c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThan.swift +++ /dev/null @@ -1,41 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is greater than the expected value. -public func beGreaterThan(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than <\(stringify(expectedValue))>" - if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return actual > expected - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual value is greater than the expected value. -public func beGreaterThan(_ expectedValue: NMBComparable?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) == ComparisonResult.orderedDescending - return matches - } -} - -public func >(lhs: Expectation, rhs: T) { - lhs.to(beGreaterThan(rhs)) -} - -public func > (lhs: Expectation, rhs: NMBComparable?) { - lhs.to(beGreaterThan(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beGreaterThanMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beGreaterThan(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift deleted file mode 100644 index 2949fce..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift +++ /dev/null @@ -1,44 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is greater than -/// or equal to the expected value. -public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than or equal to <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - if let actual = actualValue, let expected = expectedValue { - return actual >= expected - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual value is greater than -/// or equal to the expected value. -public func beGreaterThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be greater than or equal to <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) != ComparisonResult.orderedAscending - return matches - } -} - -public func >=(lhs: Expectation, rhs: T) { - lhs.to(beGreaterThanOrEqualTo(rhs)) -} - -public func >=(lhs: Expectation, rhs: T) { - lhs.to(beGreaterThanOrEqualTo(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beGreaterThanOrEqualToMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beGreaterThanOrEqualTo(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift deleted file mode 100644 index 8df7e5f..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeIdenticalTo.swift +++ /dev/null @@ -1,46 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is the same instance -/// as the expected instance. -public func beIdenticalTo(_ expected: Any?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - #if os(Linux) - let actual = try actualExpression.evaluate() as? AnyObject - #else - let actual = try actualExpression.evaluate() as AnyObject? - #endif - failureMessage.actualValue = "\(identityAsString(actual))" - failureMessage.postfixMessage = "be identical to \(identityAsString(expected))" - #if os(Linux) - return actual === (expected as? AnyObject) && actual !== nil - #else - return actual === (expected as AnyObject?) && actual !== nil - #endif - } -} - -public func === (lhs: Expectation, rhs: Any?) { - lhs.to(beIdenticalTo(rhs)) -} -public func !== (lhs: Expectation, rhs: Any?) { - lhs.toNot(beIdenticalTo(rhs)) -} - -/// A Nimble matcher that succeeds when the actual value is the same instance -/// as the expected instance. -/// -/// Alias for "beIdenticalTo". -public func be(_ expected: Any?) -> NonNilMatcherFunc { - return beIdenticalTo(expected) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beIdenticalToMatcher(_ expected: NSObject?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let aExpr = actualExpression.cast { $0 as Any? } - return try! beIdenticalTo(expected).matches(aExpr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift deleted file mode 100644 index 5bbbf36..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThan.swift +++ /dev/null @@ -1,41 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is less than the expected value. -public func beLessThan(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than <\(stringify(expectedValue))>" - if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return actual < expected - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual value is less than the expected value. -public func beLessThan(_ expectedValue: NMBComparable?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue != nil && actualValue!.NMB_compare(expectedValue) == ComparisonResult.orderedAscending - return matches - } -} - -public func <(lhs: Expectation, rhs: T) { - lhs.to(beLessThan(rhs)) -} - -public func < (lhs: Expectation, rhs: NMBComparable?) { - lhs.to(beLessThan(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beLessThanMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beLessThan(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift deleted file mode 100644 index a0cd2f0..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLessThanOrEqual.swift +++ /dev/null @@ -1,42 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is less than -/// or equal to the expected value. -public func beLessThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than or equal to <\(stringify(expectedValue))>" - if let actual = try actualExpression.evaluate(), let expected = expectedValue { - return actual <= expected - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual value is less than -/// or equal to the expected value. -public func beLessThanOrEqualTo(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be less than or equal to <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - return actualValue != nil && actualValue!.NMB_compare(expectedValue) != ComparisonResult.orderedDescending - } -} - -public func <=(lhs: Expectation, rhs: T) { - lhs.to(beLessThanOrEqualTo(rhs)) -} - -public func <=(lhs: Expectation, rhs: T) { - lhs.to(beLessThanOrEqualTo(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beLessThanOrEqualToMatcher(_ expected: NMBComparable?) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil:false) { actualExpression, failureMessage in - let expr = actualExpression.cast { $0 as? NMBComparable } - return try! beLessThanOrEqualTo(expected).matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLogical.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLogical.swift deleted file mode 100644 index 49272a3..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeLogical.swift +++ /dev/null @@ -1,173 +0,0 @@ -import Foundation - -extension Int8: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int8Value - } -} - -extension UInt8: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint8Value - } -} - -extension Int16: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int16Value - } -} - -extension UInt16: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint16Value - } -} - -extension Int32: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int32Value - } -} - -extension UInt32: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint32Value - } -} - -extension Int64: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).int64Value - } -} - -extension UInt64: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uint64Value - } -} - -extension Float: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).floatValue - } -} - -extension Double: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).doubleValue - } -} - -extension Int: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).intValue - } -} - -extension UInt: ExpressibleByBooleanLiteral { - public init(booleanLiteral value: Bool) { - self = NSNumber(value: value).uintValue - } -} - -internal func matcherWithFailureMessage(_ matcher: NonNilMatcherFunc, postprocessor: @escaping (FailureMessage) -> Void) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - defer { postprocessor(failureMessage) } - return try matcher.matcher(actualExpression, failureMessage) - } -} - -// MARK: beTrue() / beFalse() - -/// A Nimble matcher that succeeds when the actual value is exactly true. -/// This matcher will not match against nils. -public func beTrue() -> NonNilMatcherFunc { - return matcherWithFailureMessage(equal(true)) { failureMessage in - failureMessage.postfixMessage = "be true" - } -} - -/// A Nimble matcher that succeeds when the actual value is exactly false. -/// This matcher will not match against nils. -public func beFalse() -> NonNilMatcherFunc { - return matcherWithFailureMessage(equal(false)) { failureMessage in - failureMessage.postfixMessage = "be false" - } -} - -// MARK: beTruthy() / beFalsy() - -/// A Nimble matcher that succeeds when the actual value is not logically false. -public func beTruthy() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be truthy" - let actualValue = try actualExpression.evaluate() - if let actualValue = actualValue { - // FIXME: This is a workaround to SR-2290. - // See: - // - https://bugs.swift.org/browse/SR-2290 - // - https://github.com/norio-nomura/Nimble/pull/5#issuecomment-237835873 - if let number = actualValue as? NSNumber { - return number.boolValue == true - } - - return actualValue == (true as T) - } - return actualValue != nil - } -} - -/// A Nimble matcher that succeeds when the actual value is logically false. -/// This matcher will match against nils. -public func beFalsy() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be falsy" - let actualValue = try actualExpression.evaluate() - if let actualValue = actualValue { - // FIXME: This is a workaround to SR-2290. - // See: - // - https://bugs.swift.org/browse/SR-2290 - // - https://github.com/norio-nomura/Nimble/pull/5#issuecomment-237835873 - if let number = actualValue as? NSNumber { - return number.boolValue == false - } - - return actualValue == (false as T) - } - return actualValue == nil - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beTruthyMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beTruthy().matches(expr, failureMessage: failureMessage) - } - } - - public class func beFalsyMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beFalsy().matches(expr, failureMessage: failureMessage) - } - } - - public class func beTrueMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beTrue().matches(expr, failureMessage: failureMessage) - } - } - - public class func beFalseMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let expr = actualExpression.cast { ($0 as? NSNumber)?.boolValue ?? false } - return try! beFalse().matches(expr, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeNil.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeNil.swift deleted file mode 100644 index a6fb31f..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeNil.swift +++ /dev/null @@ -1,20 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is nil. -public func beNil() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be nil" - let actualValue = try actualExpression.evaluate() - return actualValue == nil - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beNilMatcher() -> NMBObjCMatcher { - return NMBObjCMatcher { actualExpression, failureMessage in - return try! beNil().matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift deleted file mode 100644 index 92a8d43..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeVoid.swift +++ /dev/null @@ -1,18 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is Void. -public func beVoid() -> MatcherFunc<()> { - return MatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "be void" - let actualValue: ()? = try actualExpression.evaluate() - return actualValue != nil - } -} - -public func == (lhs: Expectation<()>, rhs: ()) { - lhs.to(beVoid()) -} - -public func != (lhs: Expectation<()>, rhs: ()) { - lhs.toNot(beVoid()) -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift deleted file mode 100644 index 31cbe5d..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/BeginWith.swift +++ /dev/null @@ -1,63 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual sequence's first element -/// is equal to the expected value. -public func beginWith(_ startingElement: T) -> NonNilMatcherFunc - where S.Iterator.Element == T { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - if let actualValue = try actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - return actualGenerator.next() == startingElement - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual collection's first element -/// is equal to the expected object. -public func beginWith(_ startingElement: Any) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingElement)>" - guard let collection = try actualExpression.evaluate() else { return false } - guard collection.count > 0 else { return false } - #if os(Linux) - guard let collectionValue = collection.object(at: 0) as? NSObject else { - return false - } - #else - let collectionValue = collection.object(at: 0) as AnyObject - #endif - return collectionValue.isEqual(startingElement) - } -} - -/// A Nimble matcher that succeeds when the actual string contains expected substring -/// where the expected substring's location is zero. -public func beginWith(_ startingSubstring: String) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "begin with <\(startingSubstring)>" - if let actual = try actualExpression.evaluate() { - let range = actual.range(of: startingSubstring) - return range != nil && range!.lowerBound == actual.startIndex - } - return false - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func beginWithMatcher(_ expected: Any) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = try! actualExpression.evaluate() - if let _ = actual as? String { - let expr = actualExpression.cast { $0 as? String } - return try! beginWith(expected as! String).matches(expr, failureMessage: failureMessage) - } else { - let expr = actualExpression.cast { $0 as? NMBOrderedCollection } - return try! beginWith(expected).matches(expr, failureMessage: failureMessage) - } - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift deleted file mode 100644 index 5053642..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Contain.swift +++ /dev/null @@ -1,94 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual sequence contains the expected value. -public func contain(_ items: T...) -> NonNilMatcherFunc - where S.Iterator.Element == T { - return contain(items) -} - -public func contain(_ items: [T]) -> NonNilMatcherFunc - where S.Iterator.Element == T { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" - if let actual = try actualExpression.evaluate() { - return items.all { - return actual.contains($0) - } - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual string contains the expected substring. -public func contain(_ substrings: String...) -> NonNilMatcherFunc { - return contain(substrings) -} - -public func contain(_ substrings: [String]) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(substrings))>" - if let actual = try actualExpression.evaluate() { - return substrings.all { - let range = actual.range(of: $0) - return range != nil && !range!.isEmpty - } - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual string contains the expected substring. -public func contain(_ substrings: NSString...) -> NonNilMatcherFunc { - return contain(substrings) -} - -public func contain(_ substrings: [NSString]) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(substrings))>" - if let actual = try actualExpression.evaluate() { - return substrings.all { actual.range(of: $0.description).length != 0 } - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual collection contains the expected object. -public func contain(_ items: Any?...) -> NonNilMatcherFunc { - return contain(items) -} - -public func contain(_ items: [Any?]) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "contain <\(arrayAsString(items))>" - guard let actual = try actualExpression.evaluate() else { return false } - return items.all { item in - return item != nil && actual.contains(item!) - } - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func containMatcher(_ expected: [NSObject]) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - if let value = actualValue as? NMBContainer { - let expr = Expression(expression: ({ value as NMBContainer }), location: location) - - // A straightforward cast on the array causes this to crash, so we have to cast the individual items - let expectedOptionals: [Any?] = expected.map({ $0 as Any? }) - return try! contain(expectedOptionals).matches(expr, failureMessage: failureMessage) - } else if let value = actualValue as? NSString { - let expr = Expression(expression: ({ value as String }), location: location) - return try! contain(expected as! [String]).matches(expr, failureMessage: failureMessage) - } else if actualValue != nil { - failureMessage.postfixMessage = "contain <\(arrayAsString(expected))> (only works for NSArrays, NSSets, NSHashTables, and NSStrings)" - } else { - failureMessage.postfixMessage = "contain <\(arrayAsString(expected))>" - } - return false - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift deleted file mode 100644 index ae8cca2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ContainElementSatisfying.swift +++ /dev/null @@ -1,59 +0,0 @@ -import Foundation - -public func containElementSatisfying(_ predicate: @escaping ((T) -> Bool), _ predicateDescription: String = "") -> NonNilMatcherFunc where S.Iterator.Element == T { - - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.actualValue = nil - - if predicateDescription == "" { - failureMessage.postfixMessage = "find object in collection that satisfies predicate" - } else { - failureMessage.postfixMessage = "find object in collection \(predicateDescription)" - } - - if let sequence = try actualExpression.evaluate() { - for object in sequence { - if predicate(object) { - return true - } - } - - return false - } - - return false - } -} - -#if _runtime(_ObjC) - extension NMBObjCMatcher { - public class func containElementSatisfyingMatcher(_ predicate: @escaping ((NSObject) -> Bool)) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let value = try! actualExpression.evaluate() - guard let enumeration = value as? NSFastEnumeration else { - failureMessage.postfixMessage = "containElementSatisfying must be provided an NSFastEnumeration object" - failureMessage.actualValue = nil - failureMessage.expected = "" - failureMessage.to = "" - return false - } - - let iterator = NSFastEnumerationIterator(enumeration) - while let item = iterator.next() { - guard let object = item as? NSObject else { - continue - } - - if predicate(object) { - return true - } - } - - failureMessage.actualValue = nil - failureMessage.postfixMessage = "" - failureMessage.to = "to find object in collection that satisfies predicate" - return false - } - } - } -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift deleted file mode 100644 index 00c7e20..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/EndWith.swift +++ /dev/null @@ -1,72 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual sequence's last element -/// is equal to the expected value. -public func endWith(_ endingElement: T) -> NonNilMatcherFunc - where S.Iterator.Element == T { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "end with <\(endingElement)>" - - if let actualValue = try actualExpression.evaluate() { - var actualGenerator = actualValue.makeIterator() - var lastItem: T? - var item: T? - repeat { - lastItem = item - item = actualGenerator.next() - } while(item != nil) - - return lastItem == endingElement - } - return false - } -} - -/// A Nimble matcher that succeeds when the actual collection's last element -/// is equal to the expected object. -public func endWith(_ endingElement: Any) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "end with <\(endingElement)>" - guard let collection = try actualExpression.evaluate() else { return false } - guard collection.count > 0 else { return false } - #if os(Linux) - guard let collectionValue = collection.object(at: collection.count - 1) as? NSObject else { - return false - } - #else - let collectionValue = collection.object(at: collection.count - 1) as AnyObject - #endif - - return collectionValue.isEqual(endingElement) - } -} - -/// A Nimble matcher that succeeds when the actual string contains the expected substring -/// where the expected substring's location is the actual string's length minus the -/// expected substring's length. -public func endWith(_ endingSubstring: String) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "end with <\(endingSubstring)>" - if let collection = try actualExpression.evaluate() { - return collection.hasSuffix(endingSubstring) - } - return false - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func endWithMatcher(_ expected: Any) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = try! actualExpression.evaluate() - if let _ = actual as? String { - let expr = actualExpression.cast { $0 as? String } - return try! endWith(expected as! String).matches(expr, failureMessage: failureMessage) - } else { - let expr = actualExpression.cast { $0 as? NMBOrderedCollection } - return try! endWith(expected).matches(expr, failureMessage: failureMessage) - } - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Equal.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Equal.swift deleted file mode 100644 index 1dccfd0..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Equal.swift +++ /dev/null @@ -1,181 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value is equal to the expected value. -/// Values can support equal by supporting the Equatable protocol. -/// -/// @see beCloseTo if you want to match imprecise types (eg - floats, doubles). -public func equal(_ expectedValue: T?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - let matches = actualValue == expectedValue && expectedValue != nil - if expectedValue == nil || actualValue == nil { - if expectedValue == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - } - return false - } - return matches - } -} - -/// A Nimble matcher that succeeds when the actual value is equal to the expected value. -/// Values can support equal by supporting the Equatable protocol. -/// -/// @see beCloseTo if you want to match imprecise types (eg - floats, doubles). -public func equal(_ expectedValue: [T: C]?) -> NonNilMatcherFunc<[T: C]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - if expectedValue == nil || actualValue == nil { - if expectedValue == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - } - return false - } - return expectedValue! == actualValue! - } -} - -/// A Nimble matcher that succeeds when the actual collection is equal to the expected collection. -/// Items must implement the Equatable protocol. -public func equal(_ expectedValue: [T]?) -> NonNilMatcherFunc<[T]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" - let actualValue = try actualExpression.evaluate() - if expectedValue == nil || actualValue == nil { - if expectedValue == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - } - return false - } - return expectedValue! == actualValue! - } -} - -/// A Nimble matcher allowing comparison of collection with optional type -public func equal(_ expectedValue: [T?]) -> NonNilMatcherFunc<[T?]> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" - if let actualValue = try actualExpression.evaluate() { - if expectedValue.count != actualValue.count { - return false - } - - for (index, item) in actualValue.enumerated() { - let otherItem = expectedValue[index] - if item == nil && otherItem == nil { - continue - } else if item == nil && otherItem != nil { - return false - } else if item != nil && otherItem == nil { - return false - } else if item! != otherItem! { - return false - } - } - - return true - } else { - failureMessage.postfixActual = " (use beNil() to match nils)" - } - - return false - } -} - -/// A Nimble matcher that succeeds when the actual set is equal to the expected set. -public func equal(_ expectedValue: Set?) -> NonNilMatcherFunc> { - return equal(expectedValue, stringify: { stringify($0) }) -} - -/// A Nimble matcher that succeeds when the actual set is equal to the expected set. -public func equal(_ expectedValue: Set?) -> NonNilMatcherFunc> { - return equal(expectedValue, stringify: { - if let set = $0 { - return stringify(Array(set).sorted { $0 < $1 }) - } else { - return "nil" - } - }) -} - -private func equal(_ expectedValue: Set?, stringify: @escaping (Set?) -> String) -> NonNilMatcherFunc> { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "equal <\(stringify(expectedValue))>" - - if let expectedValue = expectedValue { - if let actualValue = try actualExpression.evaluate() { - failureMessage.actualValue = "<\(stringify(actualValue))>" - - if expectedValue == actualValue { - return true - } - - let missing = expectedValue.subtracting(actualValue) - if missing.count > 0 { - failureMessage.postfixActual += ", missing <\(stringify(missing))>" - } - - let extra = actualValue.subtracting(expectedValue) - if extra.count > 0 { - failureMessage.postfixActual += ", extra <\(stringify(extra))>" - } - } - } else { - failureMessage.postfixActual = " (use beNil() to match nils)" - } - - return false - } -} - -public func ==(lhs: Expectation, rhs: T?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation, rhs: T?) { - lhs.toNot(equal(rhs)) -} - -public func ==(lhs: Expectation<[T]>, rhs: [T]?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation<[T]>, rhs: [T]?) { - lhs.toNot(equal(rhs)) -} - -public func == (lhs: Expectation>, rhs: Set?) { - lhs.to(equal(rhs)) -} - -public func != (lhs: Expectation>, rhs: Set?) { - lhs.toNot(equal(rhs)) -} - -public func ==(lhs: Expectation>, rhs: Set?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation>, rhs: Set?) { - lhs.toNot(equal(rhs)) -} - -public func ==(lhs: Expectation<[T: C]>, rhs: [T: C]?) { - lhs.to(equal(rhs)) -} - -public func !=(lhs: Expectation<[T: C]>, rhs: [T: C]?) { - lhs.toNot(equal(rhs)) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func equalMatcher(_ expected: NSObject) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - return try! equal(expected).matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/HaveCount.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/HaveCount.swift deleted file mode 100644 index 5b24af2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/HaveCount.swift +++ /dev/null @@ -1,57 +0,0 @@ -import Foundation - -// The `haveCount` matchers do not print the full string representation of the collection value, -// instead they only print the type name and the expected count. This makes it easier to understand -// the reason for failed expectations. See: https://github.com/Quick/Nimble/issues/308. -// The representation of the collection content is provided in a new line as an `extendedMessage`. - -/// A Nimble matcher that succeeds when the actual Collection's count equals -/// the expected value -public func haveCount(_ expectedValue: T.IndexDistance) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - if let actualValue = try actualExpression.evaluate() { - failureMessage.postfixMessage = "have \(prettyCollectionType(actualValue)) with count \(stringify(expectedValue))" - let result = expectedValue == actualValue.count - failureMessage.actualValue = "\(actualValue.count)" - failureMessage.extendedMessage = "Actual Value: \(stringify(actualValue))" - return result - } else { - return false - } - } -} - -/// A Nimble matcher that succeeds when the actual collection's count equals -/// the expected value -public func haveCount(_ expectedValue: Int) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - if let actualValue = try actualExpression.evaluate() { - failureMessage.postfixMessage = "have \(prettyCollectionType(actualValue)) with count \(stringify(expectedValue))" - let result = expectedValue == actualValue.count - failureMessage.actualValue = "\(actualValue.count)" - failureMessage.extendedMessage = "Actual Value: \(stringify(actualValue))" - return result - } else { - return false - } - } -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func haveCountMatcher(_ expected: NSNumber) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let location = actualExpression.location - let actualValue = try! actualExpression.evaluate() - if let value = actualValue as? NMBCollection { - let expr = Expression(expression: ({ value as NMBCollection}), location: location) - return try! haveCount(expected.intValue).matches(expr, failureMessage: failureMessage) - } else if let actualValue = actualValue { - failureMessage.postfixMessage = "get type of NSArray, NSSet, NSDictionary, or NSHashTable" - failureMessage.actualValue = "\(String(describing: type(of: actualValue)))" - } - return false - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift deleted file mode 100644 index 7e80331..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/Match.swift +++ /dev/null @@ -1,30 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual string satisfies the regular expression -/// described by the expected string. -public func match(_ expectedValue: String?) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - failureMessage.postfixMessage = "match <\(stringify(expectedValue))>" - - if let actual = try actualExpression.evaluate() { - if let regexp = expectedValue { - return actual.range(of: regexp, options: .regularExpression) != nil - } - } - - return false - } -} - -#if _runtime(_ObjC) - -extension NMBObjCMatcher { - public class func matchMatcher(_ expected: NSString) -> NMBMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - let actual = actualExpression.cast { $0 as? String } - return try! match(expected.description).matches(actual, failureMessage: failureMessage) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatchError.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatchError.swift deleted file mode 100644 index 2092cb6..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatchError.swift +++ /dev/null @@ -1,26 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual expression evaluates to an -/// error from the specified case. -/// -/// Errors are tried to be compared by their implementation of Equatable, -/// otherwise they fallback to comparision by _domain and _code. -public func matchError(_ error: T) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - let actualError: Error? = try actualExpression.evaluate() - - setFailureMessageForError(failureMessage, postfixMessageVerb: "match", actualError: actualError, error: error) - return errorMatchesNonNilFieldsOrClosure(actualError, error: error) - } -} - -/// A Nimble matcher that succeeds when the actual expression evaluates to an -/// error of the specified type -public func matchError(_ errorType: T.Type) -> NonNilMatcherFunc { - return NonNilMatcherFunc { actualExpression, failureMessage in - let actualError: Error? = try actualExpression.evaluate() - - setFailureMessageForError(failureMessage, postfixMessageVerb: "match", actualError: actualError, errorType: errorType) - return errorMatchesNonNilFieldsOrClosure(actualError, errorType: errorType) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift deleted file mode 100644 index 02d3245..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherFunc.swift +++ /dev/null @@ -1,69 +0,0 @@ -/// A convenience API to build matchers that don't need special negation -/// behavior. The toNot() behavior is the negation of to(). -/// -/// @see NonNilMatcherFunc if you prefer to have this matcher fail when nil -/// values are recieved in an expectation. -/// -/// You may use this when implementing your own custom matchers. -/// -/// Use the Matcher protocol instead of this type to accept custom matchers as -/// input parameters. -/// @see allPass for an example that uses accepts other matchers as input. -public struct MatcherFunc: Matcher { - public let matcher: (Expression, FailureMessage) throws -> Bool - - public init(_ matcher: @escaping (Expression, FailureMessage) throws -> Bool) { - self.matcher = matcher - } - - public func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - return try matcher(actualExpression, failureMessage) - } - - public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - return try !matcher(actualExpression, failureMessage) - } -} - -/// A convenience API to build matchers that don't need special negation -/// behavior. The toNot() behavior is the negation of to(). -/// -/// Unlike MatcherFunc, this will always fail if an expectation contains nil. -/// This applies regardless of using to() or toNot(). -/// -/// You may use this when implementing your own custom matchers. -/// -/// Use the Matcher protocol instead of this type to accept custom matchers as -/// input parameters. -/// @see allPass for an example that uses accepts other matchers as input. -public struct NonNilMatcherFunc: Matcher { - public let matcher: (Expression, FailureMessage) throws -> Bool - - public init(_ matcher: @escaping (Expression, FailureMessage) throws -> Bool) { - self.matcher = matcher - } - - public func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - let pass = try matcher(actualExpression, failureMessage) - if try attachNilErrorIfNeeded(actualExpression, failureMessage: failureMessage) { - return false - } - return pass - } - - public func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - let pass = try !matcher(actualExpression, failureMessage) - if try attachNilErrorIfNeeded(actualExpression, failureMessage: failureMessage) { - return false - } - return pass - } - - internal func attachNilErrorIfNeeded(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool { - if try actualExpression.evaluate() == nil { - failureMessage.postfixActual = " (use beNil() to match nils)" - return true - } - return false - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift deleted file mode 100644 index 3f27ec1..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/MatcherProtocols.swift +++ /dev/null @@ -1,153 +0,0 @@ -import Foundation -// `CGFloat` is in Foundation (swift-corelibs-foundation) on Linux. -#if _runtime(_ObjC) - import CoreGraphics -#endif - -/// Implement this protocol to implement a custom matcher for Swift -public protocol Matcher { - associatedtype ValueType - func matches(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool - func doesNotMatch(_ actualExpression: Expression, failureMessage: FailureMessage) throws -> Bool -} - -#if _runtime(_ObjC) -/// Objective-C interface to the Swift variant of Matcher. -@objc public protocol NMBMatcher { - func matches(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool - func doesNotMatch(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool -} -#endif - -#if _runtime(_ObjC) -/// Protocol for types that support contain() matcher. -@objc public protocol NMBContainer { - @objc(containsObject:) - func contains(_ anObject: Any) -> Bool -} - -// FIXME: NSHashTable can not conform to NMBContainer since swift-DEVELOPMENT-SNAPSHOT-2016-04-25-a -//extension NSHashTable : NMBContainer {} // Corelibs Foundation does not include this class yet -#else -public protocol NMBContainer { - func contains(_ anObject: Any) -> Bool -} -#endif - -extension NSArray : NMBContainer {} -extension NSSet : NMBContainer {} - -#if _runtime(_ObjC) -/// Protocol for types that support only beEmpty(), haveCount() matchers -@objc public protocol NMBCollection { - var count: Int { get } -} - -extension NSHashTable : NMBCollection {} // Corelibs Foundation does not include these classes yet -extension NSMapTable : NMBCollection {} -#else -public protocol NMBCollection { - var count: Int { get } -} -#endif - -extension NSSet : NMBCollection {} -extension NSIndexSet : NMBCollection {} -extension NSDictionary : NMBCollection {} - -#if _runtime(_ObjC) -/// Protocol for types that support beginWith(), endWith(), beEmpty() matchers -@objc public protocol NMBOrderedCollection: NMBCollection { - @objc(objectAtIndex:) - func object(at index: Int) -> Any -} -#else -public protocol NMBOrderedCollection: NMBCollection { - func object(at index: Int) -> Any -} -#endif - -extension NSArray : NMBOrderedCollection {} - -public protocol NMBDoubleConvertible { - var doubleValue: CDouble { get } -} - -extension Double : NMBDoubleConvertible { - public var doubleValue: CDouble { - return self - } -} - -extension Float : NMBDoubleConvertible { - public var doubleValue: CDouble { - return CDouble(self) - } -} - -extension CGFloat: NMBDoubleConvertible { - public var doubleValue: CDouble { - return CDouble(self) - } -} - -extension NSNumber : NMBDoubleConvertible { -} - -private let dateFormatter: DateFormatter = { - let formatter = DateFormatter() - formatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSS" - formatter.locale = Locale(identifier: "en_US_POSIX") - - return formatter -}() - -extension Date: NMBDoubleConvertible { - public var doubleValue: CDouble { - return self.timeIntervalSinceReferenceDate - } -} - -extension NSDate: NMBDoubleConvertible { - public var doubleValue: CDouble { - return self.timeIntervalSinceReferenceDate - } -} - -extension Date: TestOutputStringConvertible { - public var testDescription: String { - return dateFormatter.string(from: self) - } -} - -extension NSDate: TestOutputStringConvertible { - public var testDescription: String { - return dateFormatter.string(from: Date(timeIntervalSinceReferenceDate: self.timeIntervalSinceReferenceDate)) - } -} - -/// Protocol for types to support beLessThan(), beLessThanOrEqualTo(), -/// beGreaterThan(), beGreaterThanOrEqualTo(), and equal() matchers. -/// -/// Types that conform to Swift's Comparable protocol will work implicitly too -#if _runtime(_ObjC) -@objc public protocol NMBComparable { - func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult -} -#else -// This should become obsolete once Corelibs Foundation adds Comparable conformance to NSNumber -public protocol NMBComparable { - func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult -} -#endif - -extension NSNumber : NMBComparable { - public func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult { - return compare(otherObject as! NSNumber) - } -} -extension NSString : NMBComparable { - public func NMB_compare(_ otherObject: NMBComparable!) -> ComparisonResult { - return compare(otherObject as! String) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift deleted file mode 100644 index ac8ee5a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/PostNotification.swift +++ /dev/null @@ -1,70 +0,0 @@ -import Foundation - -internal class NotificationCollector { - private(set) var observedNotifications: [Notification] - private let notificationCenter: NotificationCenter - #if _runtime(_ObjC) - private var token: AnyObject? - #else - private var token: NSObjectProtocol? - #endif - - required init(notificationCenter: NotificationCenter) { - self.notificationCenter = notificationCenter - self.observedNotifications = [] - } - - func startObserving() { - self.token = self.notificationCenter.addObserver(forName: nil, object: nil, queue: nil) { [weak self] n in - // linux-swift gets confused by .append(n) - self?.observedNotifications.append(n) - } - } - - deinit { - #if _runtime(_ObjC) - if let token = self.token { - self.notificationCenter.removeObserver(token) - } - #else - if let token = self.token as? AnyObject { - self.notificationCenter.removeObserver(token) - } - #endif - } -} - -private let mainThread = pthread_self() - -let notificationCenterDefault = NotificationCenter.default - -public func postNotifications( - _ notificationsMatcher: T, - fromNotificationCenter center: NotificationCenter = notificationCenterDefault) - -> MatcherFunc - where T: Matcher, T.ValueType == [Notification] -{ - let _ = mainThread // Force lazy-loading of this value - let collector = NotificationCollector(notificationCenter: center) - collector.startObserving() - var once: Bool = false - return MatcherFunc { actualExpression, failureMessage in - let collectorNotificationsExpression = Expression(memoizedExpression: { _ in - return collector.observedNotifications - }, location: actualExpression.location, withoutCaching: true) - - assert(pthread_equal(mainThread, pthread_self()) != 0, "Only expecting closure to be evaluated on main thread.") - if !once { - once = true - _ = try actualExpression.evaluate() - } - - let match = try notificationsMatcher.matches(collectorNotificationsExpression, failureMessage: failureMessage) - if collector.observedNotifications.isEmpty { - failureMessage.actualValue = "no notifications" - } else { - failureMessage.actualValue = "<\(stringify(collector.observedNotifications))>" - } - return match - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift deleted file mode 100644 index 2867a1b..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/RaisesException.swift +++ /dev/null @@ -1,183 +0,0 @@ -import Foundation - -// This matcher requires the Objective-C, and being built by Xcode rather than the Swift Package Manager -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -/// A Nimble matcher that succeeds when the actual expression raises an -/// exception with the specified name, reason, and/or userInfo. -/// -/// Alternatively, you can pass a closure to do any arbitrary custom matching -/// to the raised exception. The closure only gets called when an exception -/// is raised. -/// -/// nil arguments indicates that the matcher should not attempt to match against -/// that parameter. -public func raiseException( - named: String? = nil, - reason: String? = nil, - userInfo: NSDictionary? = nil, - closure: ((NSException) -> Void)? = nil) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - - var exception: NSException? - let capture = NMBExceptionCapture(handler: ({ e in - exception = e - }), finally: nil) - - capture.tryBlock { - _ = try! actualExpression.evaluate() - return - } - - setFailureMessageForException(failureMessage, exception: exception, named: named, reason: reason, userInfo: userInfo, closure: closure) - return exceptionMatchesNonNilFieldsOrClosure(exception, named: named, reason: reason, userInfo: userInfo, closure: closure) - } -} - -internal func setFailureMessageForException( - _ failureMessage: FailureMessage, - exception: NSException?, - named: String?, - reason: String?, - userInfo: NSDictionary?, - closure: ((NSException) -> Void)?) { - failureMessage.postfixMessage = "raise exception" - - if let named = named { - failureMessage.postfixMessage += " with name <\(named)>" - } - if let reason = reason { - failureMessage.postfixMessage += " with reason <\(reason)>" - } - if let userInfo = userInfo { - failureMessage.postfixMessage += " with userInfo <\(userInfo)>" - } - if let _ = closure { - failureMessage.postfixMessage += " that satisfies block" - } - if named == nil && reason == nil && userInfo == nil && closure == nil { - failureMessage.postfixMessage = "raise any exception" - } - - if let exception = exception { - failureMessage.actualValue = "\(String(describing: type(of: exception))) { name=\(exception.name), reason='\(stringify(exception.reason))', userInfo=\(stringify(exception.userInfo)) }" - } else { - failureMessage.actualValue = "no exception" - } -} - -internal func exceptionMatchesNonNilFieldsOrClosure( - _ exception: NSException?, - named: String?, - reason: String?, - userInfo: NSDictionary?, - closure: ((NSException) -> Void)?) -> Bool { - var matches = false - - if let exception = exception { - matches = true - - if let named = named, exception.name.rawValue != named { - matches = false - } - if reason != nil && exception.reason != reason { - matches = false - } - if let userInfo = userInfo, let exceptionUserInfo = exception.userInfo, - (exceptionUserInfo as NSDictionary) != userInfo { - matches = false - } - if let closure = closure { - let assertions = gatherFailingExpectations { - closure(exception) - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } - - return matches -} - -public class NMBObjCRaiseExceptionMatcher: NSObject, NMBMatcher { - internal var _name: String? - internal var _reason: String? - internal var _userInfo: NSDictionary? - internal var _block: ((NSException) -> Void)? - - internal init(name: String?, reason: String?, userInfo: NSDictionary?, block: ((NSException) -> Void)?) { - _name = name - _reason = reason - _userInfo = userInfo - _block = block - } - - public func matches(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - let block: () -> Any? = ({ _ = actualBlock(); return nil }) - let expr = Expression(expression: block, location: location) - - return try! raiseException( - named: _name, - reason: _reason, - userInfo: _userInfo, - closure: _block - ).matches(expr, failureMessage: failureMessage) - } - - public func doesNotMatch(_ actualBlock: @escaping () -> NSObject!, failureMessage: FailureMessage, location: SourceLocation) -> Bool { - return !matches(actualBlock, failureMessage: failureMessage, location: location) - } - - public var named: (_ name: String) -> NMBObjCRaiseExceptionMatcher { - return ({ name in - return NMBObjCRaiseExceptionMatcher( - name: name, - reason: self._reason, - userInfo: self._userInfo, - block: self._block - ) - }) - } - - public var reason: (_ reason: String?) -> NMBObjCRaiseExceptionMatcher { - return ({ reason in - return NMBObjCRaiseExceptionMatcher( - name: self._name, - reason: reason, - userInfo: self._userInfo, - block: self._block - ) - }) - } - - public var userInfo: (_ userInfo: NSDictionary?) -> NMBObjCRaiseExceptionMatcher { - return ({ userInfo in - return NMBObjCRaiseExceptionMatcher( - name: self._name, - reason: self._reason, - userInfo: userInfo, - block: self._block - ) - }) - } - - public var satisfyingBlock: (_ block: ((NSException) -> Void)?) -> NMBObjCRaiseExceptionMatcher { - return ({ block in - return NMBObjCRaiseExceptionMatcher( - name: self._name, - reason: self._reason, - userInfo: self._userInfo, - block: block - ) - }) - } -} - -extension NMBObjCMatcher { - public class func raiseExceptionMatcher() -> NMBObjCRaiseExceptionMatcher { - return NMBObjCRaiseExceptionMatcher(name: nil, reason: nil, userInfo: nil, block: nil) - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift deleted file mode 100644 index 6cef4c2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/SatisfyAnyOf.swift +++ /dev/null @@ -1,62 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual value matches with any of the matchers -/// provided in the variable list of matchers. -public func satisfyAnyOf(_ matchers: U...) -> NonNilMatcherFunc - where U: Matcher, U.ValueType == T { - return satisfyAnyOf(matchers) -} - -internal func satisfyAnyOf(_ matchers: [U]) -> NonNilMatcherFunc - where U: Matcher, U.ValueType == T { - return NonNilMatcherFunc { actualExpression, failureMessage in - let postfixMessages = NSMutableArray() - var matches = false - for matcher in matchers { - if try matcher.matches(actualExpression, failureMessage: failureMessage) { - matches = true - } - postfixMessages.add(NSString(string: "{\(failureMessage.postfixMessage)}")) - } - - failureMessage.postfixMessage = "match one of: " + postfixMessages.componentsJoined(by: ", or ") - if let actualValue = try actualExpression.evaluate() { - failureMessage.actualValue = "\(actualValue)" - } - - return matches - } -} - -public func || (left: NonNilMatcherFunc, right: NonNilMatcherFunc) -> NonNilMatcherFunc { - return satisfyAnyOf(left, right) -} - -public func || (left: MatcherFunc, right: MatcherFunc) -> NonNilMatcherFunc { - return satisfyAnyOf(left, right) -} - -#if _runtime(_ObjC) -extension NMBObjCMatcher { - public class func satisfyAnyOfMatcher(_ matchers: [NMBObjCMatcher]) -> NMBObjCMatcher { - return NMBObjCMatcher(canMatchNil: false) { actualExpression, failureMessage in - if matchers.isEmpty { - failureMessage.stringValue = "satisfyAnyOf must be called with at least one matcher" - return false - } - - var elementEvaluators = [NonNilMatcherFunc]() - for matcher in matchers { - let elementEvaluator: (Expression, FailureMessage) -> Bool = { - expression, failureMessage in - return matcher.matches({try! expression.evaluate()}, failureMessage: failureMessage, location: actualExpression.location) - } - - elementEvaluators.append(NonNilMatcherFunc(elementEvaluator)) - } - - return try! satisfyAnyOf(elementEvaluators).matches(actualExpression, failureMessage: failureMessage) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift deleted file mode 100644 index c847a1a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowAssertion.swift +++ /dev/null @@ -1,55 +0,0 @@ -import Foundation - -public func throwAssertion() -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - #if arch(x86_64) && _runtime(_ObjC) && !SWIFT_PACKAGE - failureMessage.postfixMessage = "throw an assertion" - failureMessage.actualValue = nil - - var succeeded = true - - let caughtException: BadInstructionException? = catchBadInstruction { - #if os(tvOS) - if !NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning { - print() - print("[Nimble Warning]: If you're getting stuck on a debugger breakpoint for a " + - "fatal error while using throwAssertion(), please disable 'Debug Executable' " + - "in your scheme. Go to 'Edit Scheme > Test > Info' and uncheck " + - "'Debug Executable'. If you've already done that, suppress this warning " + - "by setting `NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning = true`. " + - "This is required because the standard methods of catching assertions " + - "(mach APIs) are unavailable for tvOS. Instead, the same mechanism the " + - "debugger uses is the fallback method for tvOS." - ) - print() - NimbleEnvironment.activeInstance.suppressTVOSAssertionWarning = true - } - #endif - do { - try actualExpression.evaluate() - } catch let error { - succeeded = false - failureMessage.postfixMessage += "; threw error instead <\(error)>" - } - } - - if !succeeded { - return false - } - - if caughtException == nil { - return false - } - - return true - #elseif SWIFT_PACKAGE - fatalError("The throwAssertion Nimble matcher does not currently support Swift CLI." + - " You can silence this error by placing the test case inside an #if !SWIFT_PACKAGE" + - " conditional statement") - #else - fatalError("The throwAssertion Nimble matcher can only run on x86_64 platforms with " + - "Objective-C (e.g. Mac, iPhone 5s or later simulators). You can silence this error " + - "by placing the test case inside an #if arch(x86_64) or _runtime(_ObjC) conditional statement") - #endif - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift deleted file mode 100644 index 151eb9a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Matchers/ThrowError.swift +++ /dev/null @@ -1,53 +0,0 @@ -import Foundation - -/// A Nimble matcher that succeeds when the actual expression throws an -/// error of the specified type or from the specified case. -/// -/// Errors are tried to be compared by their implementation of Equatable, -/// otherwise they fallback to comparision by _domain and _code. -/// -/// Alternatively, you can pass a closure to do any arbitrary custom matching -/// to the thrown error. The closure only gets called when an error was thrown. -/// -/// nil arguments indicates that the matcher should not attempt to match against -/// that parameter. -public func throwError( - _ error: T? = nil, - errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - - var actualError: Error? - do { - _ = try actualExpression.evaluate() - } catch let catchedError { - actualError = catchedError - } - - setFailureMessageForError(failureMessage, actualError: actualError, error: error, errorType: errorType, closure: closure) - return errorMatchesNonNilFieldsOrClosure(actualError, error: error, errorType: errorType, closure: closure) - } -} - -/// A Nimble matcher that succeeds when the actual expression throws any -/// error or when the passed closures' arbitrary custom matching succeeds. -/// -/// This duplication to it's generic adequate is required to allow to receive -/// values of the existential type `Error` in the closure. -/// -/// The closure only gets called when an error was thrown. -public func throwError( - closure: ((Error) -> Void)? = nil) -> MatcherFunc { - return MatcherFunc { actualExpression, failureMessage in - - var actualError: Error? - do { - _ = try actualExpression.evaluate() - } catch let catchedError { - actualError = catchedError - } - - setFailureMessageForError(failureMessage, actualError: actualError, closure: closure) - return errorMatchesNonNilFieldsOrClosure(actualError, closure: closure) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Nimble.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Nimble.h deleted file mode 100644 index 790d16d..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Nimble.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#import "NMBExceptionCapture.h" -#import "NMBStringify.h" -#import "DSL.h" - -#import "CwlCatchException.h" -#import "CwlCatchBadInstruction.h" - -#if !TARGET_OS_TV - #import "mach_excServer.h" -#endif - -FOUNDATION_EXPORT double NimbleVersionNumber; -FOUNDATION_EXPORT const unsigned char NimbleVersionString[]; diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift deleted file mode 100644 index 943fd30..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Async.swift +++ /dev/null @@ -1,361 +0,0 @@ -import CoreFoundation -import Dispatch -import Foundation - -#if !_runtime(_ObjC) - import CDispatch -#endif - -private let timeoutLeeway = DispatchTimeInterval.milliseconds(1) -private let pollLeeway = DispatchTimeInterval.milliseconds(1) - -/// Stores debugging information about callers -internal struct WaitingInfo: CustomStringConvertible { - let name: String - let file: FileString - let lineNumber: UInt - - var description: String { - return "\(name) at \(file):\(lineNumber)" - } -} - -internal protocol WaitLock { - func acquireWaitingLock(_ fnName: String, file: FileString, line: UInt) - func releaseWaitingLock() - func isWaitingLocked() -> Bool -} - -internal class AssertionWaitLock: WaitLock { - private var currentWaiter: WaitingInfo? = nil - init() { } - - func acquireWaitingLock(_ fnName: String, file: FileString, line: UInt) { - let info = WaitingInfo(name: fnName, file: file, lineNumber: line) - #if _runtime(_ObjC) - let isMainThread = Thread.isMainThread - #else - let isMainThread = _CFIsMainThread() - #endif - nimblePrecondition( - isMainThread, - "InvalidNimbleAPIUsage", - "\(fnName) can only run on the main thread." - ) - nimblePrecondition( - currentWaiter == nil, - "InvalidNimbleAPIUsage", - "Nested async expectations are not allowed to avoid creating flaky tests.\n\n" + - "The call to\n\t\(info)\n" + - "triggered this exception because\n\t\(currentWaiter!)\n" + - "is currently managing the main run loop." - ) - currentWaiter = info - } - - func isWaitingLocked() -> Bool { - return currentWaiter != nil - } - - func releaseWaitingLock() { - currentWaiter = nil - } -} - -internal enum AwaitResult { - /// Incomplete indicates None (aka - this value hasn't been fulfilled yet) - case incomplete - /// TimedOut indicates the result reached its defined timeout limit before returning - case timedOut - /// BlockedRunLoop indicates the main runloop is too busy processing other blocks to trigger - /// the timeout code. - /// - /// This may also mean the async code waiting upon may have never actually ran within the - /// required time because other timers & sources are running on the main run loop. - case blockedRunLoop - /// The async block successfully executed and returned a given result - case completed(T) - /// When a Swift Error is thrown - case errorThrown(Error) - /// When an Objective-C Exception is raised - case raisedException(NSException) - - func isIncomplete() -> Bool { - switch self { - case .incomplete: return true - default: return false - } - } - - func isCompleted() -> Bool { - switch self { - case .completed(_): return true - default: return false - } - } -} - -/// Holds the resulting value from an asynchronous expectation. -/// This class is thread-safe at receiving an "response" to this promise. -internal class AwaitPromise { - private(set) internal var asyncResult: AwaitResult = .incomplete - private var signal: DispatchSemaphore - - init() { - signal = DispatchSemaphore(value: 1) - } - - /// Resolves the promise with the given result if it has not been resolved. Repeated calls to - /// this method will resolve in a no-op. - /// - /// @returns a Bool that indicates if the async result was accepted or rejected because another - /// value was recieved first. - func resolveResult(_ result: AwaitResult) -> Bool { - if signal.wait(timeout: .now()) == .success { - self.asyncResult = result - return true - } else { - return false - } - } -} - -internal struct AwaitTrigger { - let timeoutSource: DispatchSourceTimer - let actionSource: DispatchSourceTimer? - let start: () throws -> Void -} - -/// Factory for building fully configured AwaitPromises and waiting for their results. -/// -/// This factory stores all the state for an async expectation so that Await doesn't -/// doesn't have to manage it. -internal class AwaitPromiseBuilder { - let awaiter: Awaiter - let waitLock: WaitLock - let trigger: AwaitTrigger - let promise: AwaitPromise - - internal init( - awaiter: Awaiter, - waitLock: WaitLock, - promise: AwaitPromise, - trigger: AwaitTrigger) { - self.awaiter = awaiter - self.waitLock = waitLock - self.promise = promise - self.trigger = trigger - } - - func timeout(_ timeoutInterval: TimeInterval, forcefullyAbortTimeout: TimeInterval) -> Self { - // = Discussion = - // - // There's a lot of technical decisions here that is useful to elaborate on. This is - // definitely more lower-level than the previous NSRunLoop based implementation. - // - // - // Why Dispatch Source? - // - // - // We're using a dispatch source to have better control of the run loop behavior. - // A timer source gives us deferred-timing control without having to rely as much on - // a run loop's traditional dispatching machinery (eg - NSTimers, DefaultRunLoopMode, etc.) - // which is ripe for getting corrupted by application code. - // - // And unlike dispatch_async(), we can control how likely our code gets prioritized to - // executed (see leeway parameter) + DISPATCH_TIMER_STRICT. - // - // This timer is assumed to run on the HIGH priority queue to ensure it maintains the - // highest priority over normal application / test code when possible. - // - // - // Run Loop Management - // - // In order to properly interrupt the waiting behavior performed by this factory class, - // this timer stops the main run loop to tell the waiter code that the result should be - // checked. - // - // In addition, stopping the run loop is used to halt code executed on the main run loop. - trigger.timeoutSource.scheduleOneshot( - deadline: DispatchTime.now() + timeoutInterval, - leeway: timeoutLeeway) - trigger.timeoutSource.setEventHandler { - guard self.promise.asyncResult.isIncomplete() else { return } - let timedOutSem = DispatchSemaphore(value: 0) - let semTimedOutOrBlocked = DispatchSemaphore(value: 0) - semTimedOutOrBlocked.signal() - let runLoop = CFRunLoopGetMain() - #if _runtime(_ObjC) - let runLoopMode = CFRunLoopMode.defaultMode.rawValue - #else - let runLoopMode = kCFRunLoopDefaultMode - #endif - CFRunLoopPerformBlock(runLoop, runLoopMode) { - if semTimedOutOrBlocked.wait(timeout: .now()) == .success { - timedOutSem.signal() - semTimedOutOrBlocked.signal() - if self.promise.resolveResult(.timedOut) { - CFRunLoopStop(CFRunLoopGetMain()) - } - } - } - // potentially interrupt blocking code on run loop to let timeout code run - CFRunLoopStop(runLoop) - let now = DispatchTime.now() + forcefullyAbortTimeout - let didNotTimeOut = timedOutSem.wait(timeout: now) != .success - let timeoutWasNotTriggered = semTimedOutOrBlocked.wait(timeout: .now()) == .success - if didNotTimeOut && timeoutWasNotTriggered { - if self.promise.resolveResult(.blockedRunLoop) { - CFRunLoopStop(CFRunLoopGetMain()) - } - } - } - return self - } - - /// Blocks for an asynchronous result. - /// - /// @discussion - /// This function must be executed on the main thread and cannot be nested. This is because - /// this function (and it's related methods) coordinate through the main run loop. Tampering - /// with the run loop can cause undesireable behavior. - /// - /// This method will return an AwaitResult in the following cases: - /// - /// - The main run loop is blocked by other operations and the async expectation cannot be - /// be stopped. - /// - The async expectation timed out - /// - The async expectation succeeded - /// - The async expectation raised an unexpected exception (objc) - /// - The async expectation raised an unexpected error (swift) - /// - /// The returned AwaitResult will NEVER be .incomplete. - func wait(_ fnName: String = #function, file: FileString = #file, line: UInt = #line) -> AwaitResult { - waitLock.acquireWaitingLock( - fnName, - file: file, - line: line) - - let capture = NMBExceptionCapture(handler: ({ exception in - _ = self.promise.resolveResult(.raisedException(exception)) - }), finally: ({ - self.waitLock.releaseWaitingLock() - })) - capture.tryBlock { - do { - try self.trigger.start() - } catch let error { - _ = self.promise.resolveResult(.errorThrown(error)) - } - self.trigger.timeoutSource.resume() - while self.promise.asyncResult.isIncomplete() { - // Stopping the run loop does not work unless we run only 1 mode - _ = RunLoop.current.run(mode: .defaultRunLoopMode, before: .distantFuture) - } - self.trigger.timeoutSource.suspend() - self.trigger.timeoutSource.cancel() - if let asyncSource = self.trigger.actionSource { - asyncSource.cancel() - } - } - - return promise.asyncResult - } -} - -internal class Awaiter { - let waitLock: WaitLock - let timeoutQueue: DispatchQueue - let asyncQueue: DispatchQueue - - internal init( - waitLock: WaitLock, - asyncQueue: DispatchQueue, - timeoutQueue: DispatchQueue) { - self.waitLock = waitLock - self.asyncQueue = asyncQueue - self.timeoutQueue = timeoutQueue - } - - private func createTimerSource(_ queue: DispatchQueue) -> DispatchSourceTimer { - return DispatchSource.makeTimerSource(flags: .strict, queue: queue) - } - - func performBlock( - _ closure: @escaping (@escaping (T) -> Void) throws -> Void) -> AwaitPromiseBuilder { - let promise = AwaitPromise() - let timeoutSource = createTimerSource(timeoutQueue) - var completionCount = 0 - let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: nil) { - try closure { - completionCount += 1 - nimblePrecondition( - completionCount < 2, - "InvalidNimbleAPIUsage", - "Done closure's was called multiple times. waitUntil(..) expects its " + - "completion closure to only be called once.") - if promise.resolveResult(.completed($0)) { - CFRunLoopStop(CFRunLoopGetMain()) - } - } - } - - return AwaitPromiseBuilder( - awaiter: self, - waitLock: waitLock, - promise: promise, - trigger: trigger) - } - - func poll(_ pollInterval: TimeInterval, closure: @escaping () throws -> T?) -> AwaitPromiseBuilder { - let promise = AwaitPromise() - let timeoutSource = createTimerSource(timeoutQueue) - let asyncSource = createTimerSource(asyncQueue) - let trigger = AwaitTrigger(timeoutSource: timeoutSource, actionSource: asyncSource) { - let interval = DispatchTimeInterval.nanoseconds(Int(pollInterval * TimeInterval(NSEC_PER_SEC))) - asyncSource.scheduleRepeating(deadline: .now(), interval: interval, leeway: pollLeeway) - asyncSource.setEventHandler { - do { - if let result = try closure() { - if promise.resolveResult(.completed(result)) { - CFRunLoopStop(CFRunLoopGetCurrent()) - } - } - } catch let error { - if promise.resolveResult(.errorThrown(error)) { - CFRunLoopStop(CFRunLoopGetCurrent()) - } - } - } - asyncSource.resume() - } - - return AwaitPromiseBuilder( - awaiter: self, - waitLock: waitLock, - promise: promise, - trigger: trigger) - } -} - -internal func pollBlock( - pollInterval: TimeInterval, - timeoutInterval: TimeInterval, - file: FileString, - line: UInt, - fnName: String = #function, - expression: @escaping () throws -> Bool) -> AwaitResult { - let awaiter = NimbleEnvironment.activeInstance.awaiter - let result = awaiter.poll(pollInterval) { () throws -> Bool? in - do { - if try expression() { - return true - } - return nil - } catch let error { - throw error - } - }.timeout(timeoutInterval, forcefullyAbortTimeout: timeoutInterval / 2.0).wait(fnName, file: file, line: line) - - return result -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift deleted file mode 100644 index f376505..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Errors.swift +++ /dev/null @@ -1,141 +0,0 @@ -import Foundation - -// Generic - -internal func setFailureMessageForError( - _ failureMessage: FailureMessage, - postfixMessageVerb: String = "throw", - actualError: Error?, - error: T? = nil, - errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) { - failureMessage.postfixMessage = "\(postfixMessageVerb) error" - - if let error = error { - if let error = error as? CustomDebugStringConvertible { - failureMessage.postfixMessage += " <\(error.debugDescription)>" - } else { - failureMessage.postfixMessage += " <\(error)>" - } - } else if errorType != nil || closure != nil { - failureMessage.postfixMessage += " from type <\(T.self)>" - } - if let _ = closure { - failureMessage.postfixMessage += " that satisfies block" - } - if error == nil && errorType == nil && closure == nil { - failureMessage.postfixMessage = "\(postfixMessageVerb) any error" - } - - if let actualError = actualError { - failureMessage.actualValue = "<\(actualError)>" - } else { - failureMessage.actualValue = "no error" - } -} - -internal func errorMatchesExpectedError( - _ actualError: Error, - expectedError: T) -> Bool { - return actualError._domain == expectedError._domain - && actualError._code == expectedError._code -} - -internal func errorMatchesExpectedError( - _ actualError: Error, - expectedError: T) -> Bool - where T: Equatable { - if let actualError = actualError as? T { - return actualError == expectedError - } - return false -} - -internal func errorMatchesNonNilFieldsOrClosure( - _ actualError: Error?, - error: T? = nil, - errorType: T.Type? = nil, - closure: ((T) -> Void)? = nil) -> Bool { - var matches = false - - if let actualError = actualError { - matches = true - - if let error = error { - if !errorMatchesExpectedError(actualError, expectedError: error) { - matches = false - } - } - if let actualError = actualError as? T { - if let closure = closure { - let assertions = gatherFailingExpectations { - closure(actualError as T) - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } else if errorType != nil { - matches = (actualError is T) - // The closure expects another ErrorProtocol as argument, so this - // is _supposed_ to fail, so that it becomes more obvious. - if let closure = closure { - let assertions = gatherExpectations { - if let actual = actualError as? T { - closure(actual) - } - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } - } - - return matches -} - -// Non-generic - -internal func setFailureMessageForError( - _ failureMessage: FailureMessage, - actualError: Error?, - closure: ((Error) -> Void)?) { - failureMessage.postfixMessage = "throw error" - - if let _ = closure { - failureMessage.postfixMessage += " that satisfies block" - } else { - failureMessage.postfixMessage = "throw any error" - } - - if let actualError = actualError { - failureMessage.actualValue = "<\(actualError)>" - } else { - failureMessage.actualValue = "no error" - } -} - -internal func errorMatchesNonNilFieldsOrClosure( - _ actualError: Error?, - closure: ((Error) -> Void)?) -> Bool { - var matches = false - - if let actualError = actualError { - matches = true - - if let closure = closure { - let assertions = gatherFailingExpectations { - closure(actualError) - } - let messages = assertions.map { $0.message } - if messages.count > 0 { - matches = false - } - } - } - - return matches -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Functional.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Functional.swift deleted file mode 100644 index 6c5126a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Functional.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Foundation - -extension Sequence { - internal func all(_ fn: (Iterator.Element) -> Bool) -> Bool { - for item in self { - if !fn(item) { - return false - } - } - return true - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift deleted file mode 100644 index 4e37aef..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/SourceLocation.swift +++ /dev/null @@ -1,31 +0,0 @@ -import Foundation - -// Ideally we would always use `StaticString` as the type for tracking the file name -// that expectations originate from, for consistency with `assert` etc. from the -// stdlib, and because recent versions of the XCTest overlay require `StaticString` -// when calling `XCTFail`. Under the Objective-C runtime (i.e. building on Mac), we -// have to use `String` instead because StaticString can't be generated from Objective-C -#if SWIFT_PACKAGE -public typealias FileString = StaticString -#else -public typealias FileString = String -#endif - -public final class SourceLocation: NSObject { - public let file: FileString - public let line: UInt - - override init() { - file = "Unknown File" - line = 0 - } - - init(file: FileString, line: UInt) { - self.file = file - self.line = line - } - - override public var description: String { - return "\(file):\(line)" - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift deleted file mode 100644 index 8a15c4c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/Nimble/Utils/Stringers.swift +++ /dev/null @@ -1,212 +0,0 @@ -import Foundation - -internal func identityAsString(_ value: Any?) -> String { - let anyObject: AnyObject? -#if os(Linux) - anyObject = value as? AnyObject -#else - anyObject = value as AnyObject? -#endif - if let value = anyObject { - return NSString(format: "<%p>", unsafeBitCast(value, to: Int.self)).description - } else { - return "nil" - } -} - -internal func arrayAsString(_ items: [T], joiner: String = ", ") -> String { - return items.reduce("") { accum, item in - let prefix = (accum.isEmpty ? "" : joiner) - return accum + prefix + "\(stringify(item))" - } -} - -/// A type with a customized test output text representation. -/// -/// This textual representation is produced when values will be -/// printed in test runs, and may be useful when producing -/// error messages in custom matchers. -/// -/// - SeeAlso: `CustomDebugStringConvertible` -public protocol TestOutputStringConvertible { - var testDescription: String { get } -} - -extension Double: TestOutputStringConvertible { - public var testDescription: String { - return NSNumber(value: self).testDescription - } -} - -extension Float: TestOutputStringConvertible { - public var testDescription: String { - return NSNumber(value: self).testDescription - } -} - -extension NSNumber: TestOutputStringConvertible { - // This is using `NSString(format:)` instead of - // `String(format:)` because the latter somehow breaks - // the travis CI build on linux. - public var testDescription: String { - let description = self.description - - if description.contains(".") { - // Travis linux swiftpm build doesn't like casting String to NSString, - // which is why this annoying nested initializer thing is here. - // Maybe this will change in a future snapshot. - let decimalPlaces = NSString(string: NSString(string: description) - .components(separatedBy: ".")[1]) - - // SeeAlso: https://bugs.swift.org/browse/SR-1464 - switch decimalPlaces.length { - case 1: - return NSString(format: "%0.1f", self.doubleValue).description - case 2: - return NSString(format: "%0.2f", self.doubleValue).description - case 3: - return NSString(format: "%0.3f", self.doubleValue).description - default: - return NSString(format: "%0.4f", self.doubleValue).description - } - } - return self.description - } -} - -extension Array: TestOutputStringConvertible { - public var testDescription: String { - let list = self.map(Nimble.stringify).joined(separator: ", ") - return "[\(list)]" - } -} - -extension AnySequence: TestOutputStringConvertible { - public var testDescription: String { - let generator = self.makeIterator() - var strings = [String]() - var value: AnySequence.Iterator.Element? - - repeat { - value = generator.next() - if let value = value { - strings.append(stringify(value)) - } - } while value != nil - - let list = strings.joined(separator: ", ") - return "[\(list)]" - } -} - -extension NSArray: TestOutputStringConvertible { - public var testDescription: String { - let list = Array(self).map(Nimble.stringify).joined(separator: ", ") - return "(\(list))" - } -} - -extension NSIndexSet: TestOutputStringConvertible { - public var testDescription: String { - let list = Array(self).map(Nimble.stringify).joined(separator: ", ") - return "(\(list))" - } -} - -extension String: TestOutputStringConvertible { - public var testDescription: String { - return self - } -} - -extension Data: TestOutputStringConvertible { - public var testDescription: String { - #if os(Linux) - // FIXME: Swift on Linux triggers a segfault when calling NSData's hash() (last checked on 03-11-16) - return "Data" - #else - return "Data" - #endif - } -} - -/// -/// Returns a string appropriate for displaying in test output -/// from the provided value. -/// -/// - parameter value: A value that will show up in a test's output. -/// -/// - returns: The string that is returned can be -/// customized per type by conforming a type to the `TestOutputStringConvertible` -/// protocol. When stringifying a non-`TestOutputStringConvertible` type, this -/// function will return the value's debug description and then its -/// normal description if available and in that order. Otherwise it -/// will return the result of constructing a string from the value. -/// -/// - SeeAlso: `TestOutputStringConvertible` -public func stringify(_ value: T) -> String { - if let value = value as? TestOutputStringConvertible { - return value.testDescription - } - - if let value = value as? CustomDebugStringConvertible { - return value.debugDescription - } - - return String(describing: value) -} - -/// -SeeAlso: `stringify(value: T)` -public func stringify(_ value: T?) -> String { - if let unboxed = value { - return stringify(unboxed) - } - return "nil" -} - -#if _runtime(_ObjC) -@objc public class NMBStringer: NSObject { - @objc public class func stringify(_ obj: Any?) -> String { - return Nimble.stringify(obj) - } -} -#endif - -// MARK: Collection Type Stringers - -/// Attempts to generate a pretty type string for a given value. If the value is of a Objective-C -/// collection type, or a subclass thereof, (e.g. `NSArray`, `NSDictionary`, etc.). -/// This function will return the type name of the root class of the class cluster for better -/// readability (e.g. `NSArray` instead of `__NSArrayI`). -/// -/// For values that don't have a type of an Objective-C collection, this function returns the -/// default type description. -/// -/// - parameter value: A value that will be used to determine a type name. -/// -/// - returns: The name of the class cluster root class for Objective-C collection types, or the -/// the `dynamicType` of the value for values of any other type. -public func prettyCollectionType(_ value: T) -> String { - switch value { - case is NSArray: - return String(describing: NSArray.self) - case is NSDictionary: - return String(describing: NSDictionary.self) - case is NSSet: - return String(describing: NSSet.self) - case is NSIndexSet: - return String(describing: NSIndexSet.self) - default: - return String(describing: value) - } -} - -/// Returns the type name for a given collection type. This overload is used by Swift -/// collection types. -/// -/// - parameter collection: A Swift `CollectionType` value. -/// -/// - returns: A string representing the `dynamicType` of the value. -public func prettyCollectionType(_ collection: T) -> String { - return String(describing: type(of: collection)) -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h deleted file mode 100644 index 5d416e4..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/CurrentTestCaseTracker.h +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import - -SWIFT_CLASS("_TtC6Nimble22CurrentTestCaseTracker") -@interface CurrentTestCaseTracker : NSObject -+ (CurrentTestCaseTracker *)sharedInstance; -@end - -@interface CurrentTestCaseTracker (Register) @end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h deleted file mode 100644 index 2089607..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.h +++ /dev/null @@ -1,381 +0,0 @@ -#import - -@class NMBExpectation; -@class NMBObjCBeCloseToMatcher; -@class NMBObjCRaiseExceptionMatcher; -@protocol NMBMatcher; - - -NS_ASSUME_NONNULL_BEGIN - - -#define NIMBLE_OVERLOADABLE __attribute__((overloadable)) -#define NIMBLE_EXPORT FOUNDATION_EXPORT -#define NIMBLE_EXPORT_INLINE FOUNDATION_STATIC_INLINE - -#define NIMBLE_VALUE_OF(VAL) ({ \ - __typeof__((VAL)) val = (VAL); \ - [NSValue valueWithBytes:&val objCType:@encode(__typeof__((VAL)))]; \ -}) - -#ifdef NIMBLE_DISABLE_SHORT_SYNTAX -#define NIMBLE_SHORT(PROTO, ORIGINAL) -#define NIMBLE_SHORT_OVERLOADED(PROTO, ORIGINAL) -#else -#define NIMBLE_SHORT(PROTO, ORIGINAL) FOUNDATION_STATIC_INLINE PROTO { return (ORIGINAL); } -#define NIMBLE_SHORT_OVERLOADED(PROTO, ORIGINAL) FOUNDATION_STATIC_INLINE NIMBLE_OVERLOADABLE PROTO { return (ORIGINAL); } -#endif - - - -#define DEFINE_NMB_EXPECT_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - NMBExpectation *NMB_expect(TYPE(^actualBlock)(), NSString *file, NSUInteger line) { \ - return NMB_expect(^id { return EXPR; }, file, line); \ - } - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - NMBExpectation *NMB_expect(id(^actualBlock)(), NSString *file, NSUInteger line); - - // overloaded dispatch for nils - expect(nil) - DEFINE_NMB_EXPECT_OVERLOAD(void*, nil) - DEFINE_NMB_EXPECT_OVERLOAD(NSRange, NIMBLE_VALUE_OF(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(int, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned int, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(float, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(double, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(long long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned long long, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(char, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(unsigned char, @(actualBlock())) - // bool doesn't get the compiler to dispatch to BOOL types, but using BOOL here seems to allow - // the compiler to dispatch to bool. - DEFINE_NMB_EXPECT_OVERLOAD(BOOL, @(actualBlock())) - DEFINE_NMB_EXPECT_OVERLOAD(char *, @(actualBlock())) - - -#undef DEFINE_NMB_EXPECT_OVERLOAD - - - -NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), NSString *file, NSUInteger line); - - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_equal(TYPE expectedValue) { \ - return NMB_equal((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id equal(TYPE expectedValue), NMB_equal(expectedValue)); - - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_equal(__nullable id expectedValue); - - NIMBLE_SHORT_OVERLOADED(id equal(__nullable id expectedValue), - NMB_equal(expectedValue)); - - // overloaded dispatch for nils - expect(nil) - DEFINE_OVERLOAD(void*__nullable, (id)nil) - DEFINE_OVERLOAD(NSRange, NIMBLE_VALUE_OF(expectedValue)) - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - // bool doesn't get the compiler to dispatch to BOOL types, but using BOOL here seems to allow - // the compiler to dispatch to bool. - DEFINE_OVERLOAD(BOOL, @(expectedValue)) - DEFINE_OVERLOAD(char *, @(expectedValue)) - -#undef DEFINE_OVERLOAD - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_haveCount(TYPE expectedValue) { \ - return NMB_haveCount((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id haveCount(TYPE expectedValue), \ - NMB_haveCount(expectedValue)); - - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_haveCount(id expectedValue); - - NIMBLE_SHORT_OVERLOADED(id haveCount(id expectedValue), - NMB_haveCount(expectedValue)); - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - NMBObjCBeCloseToMatcher *NMB_beCloseTo(TYPE expectedValue) { \ - return NMB_beCloseTo((NSNumber *)(EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(NMBObjCBeCloseToMatcher *beCloseTo(TYPE expectedValue), \ - NMB_beCloseTo(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE NMBObjCBeCloseToMatcher *NMB_beCloseTo(NSNumber *expectedValue); - NIMBLE_SHORT_OVERLOADED(NMBObjCBeCloseToMatcher *beCloseTo(NSNumber *expectedValue), - NMB_beCloseTo(expectedValue)); - - // it would be better to only overload float & double, but zero becomes ambigious - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -NIMBLE_EXPORT id NMB_beAnInstanceOf(Class expectedClass); -NIMBLE_EXPORT_INLINE id beAnInstanceOf(Class expectedClass) { - return NMB_beAnInstanceOf(expectedClass); -} - -NIMBLE_EXPORT id NMB_beAKindOf(Class expectedClass); -NIMBLE_EXPORT_INLINE id beAKindOf(Class expectedClass) { - return NMB_beAKindOf(expectedClass); -} - -NIMBLE_EXPORT id NMB_beginWith(id itemElementOrSubstring); -NIMBLE_EXPORT_INLINE id beginWith(id itemElementOrSubstring) { - return NMB_beginWith(itemElementOrSubstring); -} - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beGreaterThan(TYPE expectedValue) { \ - return NMB_beGreaterThan((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beGreaterThan(TYPE expectedValue), NMB_beGreaterThan(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beGreaterThan(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beGreaterThan(NSNumber *expectedValue) { - return NMB_beGreaterThan(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beGreaterThanOrEqualTo(TYPE expectedValue) { \ - return NMB_beGreaterThanOrEqualTo((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beGreaterThanOrEqualTo(TYPE expectedValue), \ - NMB_beGreaterThanOrEqualTo(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beGreaterThanOrEqualTo(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beGreaterThanOrEqualTo(NSNumber *expectedValue) { - return NMB_beGreaterThanOrEqualTo(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - - -#undef DEFINE_OVERLOAD - -NIMBLE_EXPORT id NMB_beIdenticalTo(id expectedInstance); -NIMBLE_SHORT(id beIdenticalTo(id expectedInstance), - NMB_beIdenticalTo(expectedInstance)); - -NIMBLE_EXPORT id NMB_be(id expectedInstance); -NIMBLE_SHORT(id be(id expectedInstance), - NMB_be(expectedInstance)); - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beLessThan(TYPE expectedValue) { \ - return NMB_beLessThan((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beLessThan(TYPE expectedValue), \ - NMB_beLessThan(expectedValue)); - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beLessThan(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beLessThan(NSNumber *expectedValue) { - return NMB_beLessThan(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - - -#define DEFINE_OVERLOAD(TYPE, EXPR) \ - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE \ - id NMB_beLessThanOrEqualTo(TYPE expectedValue) { \ - return NMB_beLessThanOrEqualTo((EXPR)); \ - } \ - NIMBLE_SHORT_OVERLOADED(id beLessThanOrEqualTo(TYPE expectedValue), \ - NMB_beLessThanOrEqualTo(expectedValue)); - - - NIMBLE_EXPORT NIMBLE_OVERLOADABLE - id NMB_beLessThanOrEqualTo(NSNumber *expectedValue); - - NIMBLE_EXPORT_INLINE NIMBLE_OVERLOADABLE - id beLessThanOrEqualTo(NSNumber *expectedValue) { - return NMB_beLessThanOrEqualTo(expectedValue); - } - - DEFINE_OVERLOAD(long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long, @(expectedValue)) - DEFINE_OVERLOAD(int, @(expectedValue)) - DEFINE_OVERLOAD(unsigned int, @(expectedValue)) - DEFINE_OVERLOAD(float, @(expectedValue)) - DEFINE_OVERLOAD(double, @(expectedValue)) - DEFINE_OVERLOAD(long long, @(expectedValue)) - DEFINE_OVERLOAD(unsigned long long, @(expectedValue)) - DEFINE_OVERLOAD(char, @(expectedValue)) - DEFINE_OVERLOAD(unsigned char, @(expectedValue)) - -#undef DEFINE_OVERLOAD - -NIMBLE_EXPORT id NMB_beTruthy(void); -NIMBLE_SHORT(id beTruthy(void), - NMB_beTruthy()); - -NIMBLE_EXPORT id NMB_beFalsy(void); -NIMBLE_SHORT(id beFalsy(void), - NMB_beFalsy()); - -NIMBLE_EXPORT id NMB_beTrue(void); -NIMBLE_SHORT(id beTrue(void), - NMB_beTrue()); - -NIMBLE_EXPORT id NMB_beFalse(void); -NIMBLE_SHORT(id beFalse(void), - NMB_beFalse()); - -NIMBLE_EXPORT id NMB_beNil(void); -NIMBLE_SHORT(id beNil(void), - NMB_beNil()); - -NIMBLE_EXPORT id NMB_beEmpty(void); -NIMBLE_SHORT(id beEmpty(void), - NMB_beEmpty()); - -NIMBLE_EXPORT id NMB_containWithNilTermination(id itemOrSubstring, ...) NS_REQUIRES_NIL_TERMINATION; -#define NMB_contain(...) NMB_containWithNilTermination(__VA_ARGS__, nil) -#ifndef NIMBLE_DISABLE_SHORT_SYNTAX -#define contain(...) NMB_contain(__VA_ARGS__) -#endif - -NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)); -NIMBLE_SHORT(id containElementSatisfying(BOOL(^predicate)(id)), - NMB_containElementSatisfying(predicate)); - -NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring); -NIMBLE_SHORT(id endWith(id itemElementOrSubstring), - NMB_endWith(itemElementOrSubstring)); - -NIMBLE_EXPORT NMBObjCRaiseExceptionMatcher *NMB_raiseException(void); -NIMBLE_SHORT(NMBObjCRaiseExceptionMatcher *raiseException(void), - NMB_raiseException()); - -NIMBLE_EXPORT id NMB_match(id expectedValue); -NIMBLE_SHORT(id match(id expectedValue), - NMB_match(expectedValue)); - -NIMBLE_EXPORT id NMB_allPass(id matcher); -NIMBLE_SHORT(id allPass(id matcher), - NMB_allPass(matcher)); - -NIMBLE_EXPORT id NMB_satisfyAnyOfWithMatchers(id matchers); -#define NMB_satisfyAnyOf(...) NMB_satisfyAnyOfWithMatchers(@[__VA_ARGS__]) -#ifndef NIMBLE_DISABLE_SHORT_SYNTAX -#define satisfyAnyOf(...) NMB_satisfyAnyOf(__VA_ARGS__) -#endif - -// In order to preserve breakpoint behavior despite using macros to fill in __FILE__ and __LINE__, -// define a builder that populates __FILE__ and __LINE__, and returns a block that takes timeout -// and action arguments. See https://github.com/Quick/Quick/pull/185 for details. -typedef void (^NMBWaitUntilTimeoutBlock)(NSTimeInterval timeout, void (^action)(void (^)(void))); -typedef void (^NMBWaitUntilBlock)(void (^action)(void (^)(void))); - -NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line); - -NIMBLE_EXPORT NMBWaitUntilTimeoutBlock NMB_waitUntilTimeoutBuilder(NSString *file, NSUInteger line); -NIMBLE_EXPORT NMBWaitUntilBlock NMB_waitUntilBuilder(NSString *file, NSUInteger line); - -NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line); - -#define NMB_waitUntilTimeout NMB_waitUntilTimeoutBuilder(@(__FILE__), __LINE__) -#define NMB_waitUntil NMB_waitUntilBuilder(@(__FILE__), __LINE__) - -#ifndef NIMBLE_DISABLE_SHORT_SYNTAX -#define expect(...) NMB_expect(^{ return (__VA_ARGS__); }, @(__FILE__), __LINE__) -#define expectAction(BLOCK) NMB_expectAction((BLOCK), @(__FILE__), __LINE__) -#define failWithMessage(msg) NMB_failWithMessage(msg, @(__FILE__), __LINE__) -#define fail() failWithMessage(@"fail() always fails") - - -#define waitUntilTimeout NMB_waitUntilTimeout -#define waitUntil NMB_waitUntil - -#undef NIMBLE_VALUE_OF - -#endif - -NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m deleted file mode 100644 index 31ff810..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/DSL.m +++ /dev/null @@ -1,160 +0,0 @@ -#import -#import - -SWIFT_CLASS("_TtC6Nimble7NMBWait") -@interface NMBWait : NSObject - -+ (void)untilTimeout:(NSTimeInterval)timeout file:(NSString *)file line:(NSUInteger)line action:(void(^)())action; -+ (void)untilFile:(NSString *)file line:(NSUInteger)line action:(void(^)())action; - -@end - - -NS_ASSUME_NONNULL_BEGIN - - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE NMBExpectation *__nonnull NMB_expect(id __nullable(^actualBlock)(), NSString *__nonnull file, NSUInteger line) { - return [[NMBExpectation alloc] initWithActualBlock:actualBlock - negative:NO - file:file - line:line]; -} - -NIMBLE_EXPORT NMBExpectation *NMB_expectAction(void(^actualBlock)(), NSString *file, NSUInteger line) { - return NMB_expect(^id{ - actualBlock(); - return nil; - }, file, line); -} - -NIMBLE_EXPORT void NMB_failWithMessage(NSString *msg, NSString *file, NSUInteger line) { - return [NMBExpectation failWithMessage:msg file:file line:line]; -} - -NIMBLE_EXPORT id NMB_beAnInstanceOf(Class expectedClass) { - return [NMBObjCMatcher beAnInstanceOfMatcher:expectedClass]; -} - -NIMBLE_EXPORT id NMB_beAKindOf(Class expectedClass) { - return [NMBObjCMatcher beAKindOfMatcher:expectedClass]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE NMBObjCBeCloseToMatcher *NMB_beCloseTo(NSNumber *expectedValue) { - return [NMBObjCMatcher beCloseToMatcher:expectedValue within:0.001]; -} - -NIMBLE_EXPORT id NMB_beginWith(id itemElementOrSubstring) { - return [NMBObjCMatcher beginWithMatcher:itemElementOrSubstring]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beGreaterThan(NSNumber *expectedValue) { - return [NMBObjCMatcher beGreaterThanMatcher:expectedValue]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beGreaterThanOrEqualTo(NSNumber *expectedValue) { - return [NMBObjCMatcher beGreaterThanOrEqualToMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_beIdenticalTo(id expectedInstance) { - return [NMBObjCMatcher beIdenticalToMatcher:expectedInstance]; -} - -NIMBLE_EXPORT id NMB_be(id expectedInstance) { - return [NMBObjCMatcher beIdenticalToMatcher:expectedInstance]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beLessThan(NSNumber *expectedValue) { - return [NMBObjCMatcher beLessThanMatcher:expectedValue]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_beLessThanOrEqualTo(NSNumber *expectedValue) { - return [NMBObjCMatcher beLessThanOrEqualToMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_beTruthy() { - return [NMBObjCMatcher beTruthyMatcher]; -} - -NIMBLE_EXPORT id NMB_beFalsy() { - return [NMBObjCMatcher beFalsyMatcher]; -} - -NIMBLE_EXPORT id NMB_beTrue() { - return [NMBObjCMatcher beTrueMatcher]; -} - -NIMBLE_EXPORT id NMB_beFalse() { - return [NMBObjCMatcher beFalseMatcher]; -} - -NIMBLE_EXPORT id NMB_beNil() { - return [NMBObjCMatcher beNilMatcher]; -} - -NIMBLE_EXPORT id NMB_beEmpty() { - return [NMBObjCMatcher beEmptyMatcher]; -} - -NIMBLE_EXPORT id NMB_containWithNilTermination(id itemOrSubstring, ...) { - NSMutableArray *itemOrSubstringArray = [NSMutableArray array]; - - if (itemOrSubstring) { - [itemOrSubstringArray addObject:itemOrSubstring]; - - va_list args; - va_start(args, itemOrSubstring); - id next; - while ((next = va_arg(args, id))) { - [itemOrSubstringArray addObject:next]; - } - va_end(args); - } - - return [NMBObjCMatcher containMatcher:itemOrSubstringArray]; -} - -NIMBLE_EXPORT id NMB_containElementSatisfying(BOOL(^predicate)(id)) { - return [NMBObjCMatcher containElementSatisfyingMatcher:predicate]; -} - -NIMBLE_EXPORT id NMB_endWith(id itemElementOrSubstring) { - return [NMBObjCMatcher endWithMatcher:itemElementOrSubstring]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_equal(__nullable id expectedValue) { - return [NMBObjCMatcher equalMatcher:expectedValue]; -} - -NIMBLE_EXPORT NIMBLE_OVERLOADABLE id NMB_haveCount(id expectedValue) { - return [NMBObjCMatcher haveCountMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_match(id expectedValue) { - return [NMBObjCMatcher matchMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_allPass(id expectedValue) { - return [NMBObjCMatcher allPassMatcher:expectedValue]; -} - -NIMBLE_EXPORT id NMB_satisfyAnyOfWithMatchers(id matchers) { - return [NMBObjCMatcher satisfyAnyOfMatcher:matchers]; -} - -NIMBLE_EXPORT NMBObjCRaiseExceptionMatcher *NMB_raiseException() { - return [NMBObjCMatcher raiseExceptionMatcher]; -} - -NIMBLE_EXPORT NMBWaitUntilTimeoutBlock NMB_waitUntilTimeoutBuilder(NSString *file, NSUInteger line) { - return ^(NSTimeInterval timeout, void (^action)(void (^)(void))) { - [NMBWait untilTimeout:timeout file:file line:line action:action]; - }; -} - -NIMBLE_EXPORT NMBWaitUntilBlock NMB_waitUntilBuilder(NSString *file, NSUInteger line) { - return ^(void (^action)(void (^)(void))) { - [NMBWait untilFile:file line:line action:action]; - }; -} - -NS_ASSUME_NONNULL_END diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h deleted file mode 100644 index d2a54d2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h +++ /dev/null @@ -1,11 +0,0 @@ -#import -#import - -@interface NMBExceptionCapture : NSObject - -- (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)())finally; -- (void)tryBlock:(__attribute__((noescape)) void(^ _Nonnull)())unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); - -@end - -typedef void(^NMBSourceCallbackBlock)(BOOL successful); diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m deleted file mode 100644 index 0a882b7..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.m +++ /dev/null @@ -1,35 +0,0 @@ -#import "NMBExceptionCapture.h" - -@interface NMBExceptionCapture () -@property (nonatomic, copy) void(^ _Nullable handler)(NSException * _Nullable); -@property (nonatomic, copy) void(^ _Nullable finally)(); -@end - -@implementation NMBExceptionCapture - -- (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)())finally { - self = [super init]; - if (self) { - self.handler = handler; - self.finally = finally; - } - return self; -} - -- (void)tryBlock:(void(^ _Nonnull)())unsafeBlock { - @try { - unsafeBlock(); - } - @catch (NSException *exception) { - if (self.handler) { - self.handler(exception); - } - } - @finally { - if (self.finally) { - self.finally(); - } - } -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.h b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.h deleted file mode 100644 index e5d5ddd..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.h +++ /dev/null @@ -1,18 +0,0 @@ -@class NSString; - -/** - * Returns a string appropriate for displaying in test output - * from the provided value. - * - * @param value A value that will show up in a test's output. - * - * @return The string that is returned can be - * customized per type by conforming a type to the `TestOutputStringConvertible` - * protocol. When stringifying a non-`TestOutputStringConvertible` type, this - * function will return the value's debug description and then its - * normal description if available and in that order. Otherwise it - * will return the result of constructing a string from the value. - * - * @see `TestOutputStringConvertible` - */ -extern NSString *_Nonnull NMBStringify(id _Nullable anyObject) __attribute__((warn_unused_result)); diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.m deleted file mode 100644 index 329d39a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/NMBStringify.m +++ /dev/null @@ -1,6 +0,0 @@ -#import "NMBStringify.h" -#import - -NSString *_Nonnull NMBStringify(id _Nullable anyObject) { - return [NMBStringer stringify:anyObject]; -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m b/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m deleted file mode 100644 index 35f26fd..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m +++ /dev/null @@ -1,78 +0,0 @@ -#import "CurrentTestCaseTracker.h" -#import -#import - -#pragma mark - Method Swizzling - -/// Swaps the implementations between two instance methods. -/// -/// @param class The class containing `originalSelector`. -/// @param originalSelector Original method to replace. -/// @param replacementSelector Replacement method. -void swizzleSelectors(Class class, SEL originalSelector, SEL replacementSelector) { - Method originalMethod = class_getInstanceMethod(class, originalSelector); - Method replacementMethod = class_getInstanceMethod(class, replacementSelector); - - BOOL didAddMethod = - class_addMethod(class, - originalSelector, - method_getImplementation(replacementMethod), - method_getTypeEncoding(replacementMethod)); - - if (didAddMethod) { - class_replaceMethod(class, - replacementSelector, - method_getImplementation(originalMethod), - method_getTypeEncoding(originalMethod)); - } else { - method_exchangeImplementations(originalMethod, replacementMethod); - } -} - -#pragma mark - Private - -@interface XCTestObservationCenter (Private) -- (void)_addLegacyTestObserver:(id)observer; -@end - -@implementation XCTestObservationCenter (Register) - -/// Uses objc method swizzling to register `CurrentTestCaseTracker` as a test observer. This is necessary -/// because Xcode 7.3 introduced timing issues where if a custom `XCTestObservation` is registered too early -/// it suppresses all console output (generated by `XCTestLog`), breaking any tools that depend on this output. -/// This approach waits to register our custom test observer until XCTest adds its first "legacy" observer, -/// falling back to registering after the first normal observer if this private method ever changes. -+ (void)load { - if (class_getInstanceMethod([self class], @selector(_addLegacyTestObserver:))) { - // Swizzle -_addLegacyTestObserver: - swizzleSelectors([self class], @selector(_addLegacyTestObserver:), @selector(NMB_original__addLegacyTestObserver:)); - } else { - // Swizzle -addTestObserver:, only if -_addLegacyTestObserver: is not implemented - swizzleSelectors([self class], @selector(addTestObserver:), @selector(NMB_original_addTestObserver:)); - } -} - -#pragma mark - Replacement Methods - -/// Registers `CurrentTestCaseTracker` as a test observer after `XCTestLog` has been added. -- (void)NMB_original__addLegacyTestObserver:(id)observer { - [self NMB_original__addLegacyTestObserver:observer]; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - [self addTestObserver:[CurrentTestCaseTracker sharedInstance]]; - }); -} - -/// Registers `CurrentTestCaseTracker` as a test observer after `XCTestLog` has been added. -/// This method is only used if `-_addLegacyTestObserver:` is not impelemented. (added in Xcode 7.3) -- (void)NMB_original_addTestObserver:(id)observer { - [self NMB_original_addTestObserver:observer]; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - [self NMB_original_addTestObserver:[CurrentTestCaseTracker sharedInstance]]; - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift deleted file mode 100644 index 16c6953..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/LinuxMain.swift +++ /dev/null @@ -1,37 +0,0 @@ -import XCTest -@testable import NimbleTests - -// This is the entry point for NimbleTests on Linux - -XCTMain([ - testCase(AsyncTest.allTests), - testCase(SynchronousTest.allTests), - testCase(UserDescriptionTest.allTests), - - // Matchers - testCase(AllPassTest.allTests), - testCase(BeAKindOfSwiftTest.allTests), - testCase(BeAnInstanceOfTest.allTests), - testCase(BeCloseToTest.allTests), - testCase(BeginWithTest.allTests), - testCase(BeGreaterThanOrEqualToTest.allTests), - testCase(BeGreaterThanTest.allTests), - testCase(BeIdenticalToObjectTest.allTests), - testCase(BeIdenticalToTest.allTests), - testCase(BeLessThanOrEqualToTest.allTests), - testCase(BeLessThanTest.allTests), - testCase(BeTruthyTest.allTests), - testCase(BeTrueTest.allTests), - testCase(BeFalsyTest.allTests), - testCase(BeFalseTest.allTests), - testCase(BeNilTest.allTests), - testCase(ContainTest.allTests), - testCase(EndWithTest.allTests), - testCase(EqualTest.allTests), - testCase(HaveCountTest.allTests), - testCase(MatchTest.allTests), - // testCase(RaisesExceptionTest.allTests), - testCase(ThrowErrorTest.allTests), - testCase(SatisfyAnyOfTest.allTests), - testCase(PostNotificationTest.allTests), -]) diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift deleted file mode 100644 index cafa67e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/AsynchronousTest.swift +++ /dev/null @@ -1,222 +0,0 @@ -import Dispatch -import Foundation -import XCTest -import Nimble - -final class AsyncTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (AsyncTest) -> () throws -> Void)] { - return [ - ("testToEventuallyPositiveMatches", testToEventuallyPositiveMatches), - ("testToEventuallyNegativeMatches", testToEventuallyNegativeMatches), - ("testWaitUntilPositiveMatches", testWaitUntilPositiveMatches), - ("testToEventuallyWithCustomDefaultTimeout", testToEventuallyWithCustomDefaultTimeout), - ("testWaitUntilTimesOutIfNotCalled", testWaitUntilTimesOutIfNotCalled), - ("testWaitUntilTimesOutWhenExceedingItsTime", testWaitUntilTimesOutWhenExceedingItsTime), - ("testWaitUntilNegativeMatches", testWaitUntilNegativeMatches), - ("testWaitUntilDetectsStalledMainThreadActivity", testWaitUntilDetectsStalledMainThreadActivity), - ("testCombiningAsyncWaitUntilAndToEventuallyIsNotAllowed", testCombiningAsyncWaitUntilAndToEventuallyIsNotAllowed), - ("testWaitUntilErrorsIfDoneIsCalledMultipleTimes", testWaitUntilErrorsIfDoneIsCalledMultipleTimes), - ("testWaitUntilMustBeInMainThread", testWaitUntilMustBeInMainThread), - ("testToEventuallyMustBeInMainThread", testToEventuallyMustBeInMainThread), - ] - } - - class Error: Swift.Error {} - let errorToThrow = Error() - - private func doThrowError() throws -> Int { - throw errorToThrow - } - - func testToEventuallyPositiveMatches() { - var value = 0 - deferToMainQueue { value = 1 } - expect { value }.toEventually(equal(1)) - - deferToMainQueue { value = 0 } - expect { value }.toEventuallyNot(equal(1)) - } - - func testToEventuallyNegativeMatches() { - let value = 0 - failsWithErrorMessage("expected to eventually not equal <0>, got <0>") { - expect { value }.toEventuallyNot(equal(0)) - } - failsWithErrorMessage("expected to eventually equal <1>, got <0>") { - expect { value }.toEventually(equal(1)) - } - failsWithErrorMessage("expected to eventually equal <1>, got an unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.toEventually(equal(1)) - } - failsWithErrorMessage("expected to eventually not equal <0>, got an unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.toEventuallyNot(equal(0)) - } - } - - func testToEventuallyWithCustomDefaultTimeout() { - AsyncDefaults.Timeout = 2 - defer { - AsyncDefaults.Timeout = 1 - } - - var value = 0 - - let sleepThenSetValueTo: (Int) -> Void = { newValue in - Thread.sleep(forTimeInterval: 1.1) - value = newValue - } - - var asyncOperation: () -> Void = { sleepThenSetValueTo(1) } - - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect { value }.toEventually(equal(1)) - - asyncOperation = { sleepThenSetValueTo(0) } - - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect { value }.toEventuallyNot(equal(1)) - } - - func testWaitUntilPositiveMatches() { - waitUntil { done in - done() - } - waitUntil { done in - deferToMainQueue { - done() - } - } - } - - func testWaitUntilTimesOutIfNotCalled() { - failsWithErrorMessage("Waited more than 1.0 second") { - waitUntil(timeout: 1) { _ in return } - } - } - - func testWaitUntilTimesOutWhenExceedingItsTime() { - var waiting = true - failsWithErrorMessage("Waited more than 0.01 seconds") { - waitUntil(timeout: 0.01) { done in - let asyncOperation: () -> Void = { - Thread.sleep(forTimeInterval: 0.1) - done() - waiting = false - } - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - } - } - - // "clear" runloop to ensure this test doesn't poison other tests - repeat { - RunLoop.main.run(until: Date().addingTimeInterval(0.2)) - } while(waiting) - } - - func testWaitUntilNegativeMatches() { - failsWithErrorMessage("expected to equal <2>, got <1>") { - waitUntil { done in - Thread.sleep(forTimeInterval: 0.1) - expect(1).to(equal(2)) - done() - } - } - } - - func testWaitUntilDetectsStalledMainThreadActivity() { - let msg = "-waitUntil() timed out but was unable to run the timeout handler because the main thread is unresponsive (0.5 seconds is allow after the wait times out). Conditions that may cause this include processing blocking IO on the main thread, calls to sleep(), deadlocks, and synchronous IPC. Nimble forcefully stopped run loop which may cause future failures in test run." - failsWithErrorMessage(msg) { - waitUntil(timeout: 1) { done in - Thread.sleep(forTimeInterval: 5.0) - done() - } - } - } - - func testCombiningAsyncWaitUntilAndToEventuallyIsNotAllowed() { - // Currently we are unable to catch Objective-C exceptions when built by the Swift Package Manager -#if !SWIFT_PACKAGE - let referenceLine = #line + 9 - var msg = "Unexpected exception raised: Nested async expectations are not allowed " - msg += "to avoid creating flaky tests." - msg += "\n\n" - msg += "The call to\n\t" - msg += "expect(...).toEventually(...) at \(#file):\(referenceLine + 7)\n" - msg += "triggered this exception because\n\t" - msg += "waitUntil(...) at \(#file):\(referenceLine + 1)\n" - msg += "is currently managing the main run loop." - failsWithErrorMessage(msg) { // reference line - waitUntil(timeout: 2.0) { done in - var protected: Int = 0 - DispatchQueue.main.async { - protected = 1 - } - - expect(protected).toEventually(equal(1)) - done() - } - } -#endif - } - - func testWaitUntilErrorsIfDoneIsCalledMultipleTimes() { -#if !SWIFT_PACKAGE - waitUntil { done in - deferToMainQueue { - done() - expect { - done() - }.to(raiseException(named: "InvalidNimbleAPIUsage")) - } - } -#endif - } - - func testWaitUntilMustBeInMainThread() { -#if !SWIFT_PACKAGE - var executedAsyncBlock: Bool = false - let asyncOperation: () -> Void = { - expect { - waitUntil { done in done() } - }.to(raiseException(named: "InvalidNimbleAPIUsage")) - executedAsyncBlock = true - } - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect(executedAsyncBlock).toEventually(beTruthy()) -#endif - } - - func testToEventuallyMustBeInMainThread() { -#if !SWIFT_PACKAGE - var executedAsyncBlock: Bool = false - let asyncOperation: () -> Void = { - expect { - expect(1).toEventually(equal(2)) - }.to(raiseException(named: "InvalidNimbleAPIUsage")) - executedAsyncBlock = true - } - if #available(OSX 10.10, *) { - DispatchQueue.global().async(execute: asyncOperation) - } else { - DispatchQueue.global(priority: .default).async(execute: asyncOperation) - } - expect(executedAsyncBlock).toEventually(beTruthy()) -#endif - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift deleted file mode 100644 index 26e5a98..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/ObjectWithLazyProperty.swift +++ /dev/null @@ -1,7 +0,0 @@ -import Foundation - -class ObjectWithLazyProperty { - init() {} - lazy var value: String = "hello" - lazy var anotherValue: String = { return "world" }() -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift deleted file mode 100644 index 40d9760..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/XCTestCaseProvider.swift +++ /dev/null @@ -1,52 +0,0 @@ -import Foundation -import XCTest - -// XCTestCaseProvider should be adopted by all XCTestCase subclasses. It provides a -// mechanism for us to fail tests in Xcode which haven't been included in the `allTests` -// list for swift-corelibs-xctest which is unable to dynamically discover tests. Note -// that only `static var allTests` needs to be explicitly implemented, as `allTestNames` -// has a default implementation provided by a protocol extension. - -// Implementation note: This is broken down into two separate protocols because we need a -// protocol with no Self references to which we can cast XCTestCase instances in a non-generic context. - -public protocol XCTestCaseProviderStatic { - // This should be explicitly implemented by XCTestCase subclasses - static var allTests: [(String, (Self) -> () throws -> Void)] { get } -} - -public protocol XCTestCaseNameProvider { - // This does not need to be explicitly implemented because of the protocol extension below - var allTestNames: [String] { get } -} - -public protocol XCTestCaseProvider: XCTestCaseProviderStatic, XCTestCaseNameProvider {} - -extension XCTestCaseProvider where Self: XCTestCaseProviderStatic { - var allTestNames: [String] { - return type(of: self).allTests.map({ name, _ in - return name - }) - } -} - -#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS) - -extension XCTestCase { - override open func tearDown() { - if let provider = self as? XCTestCaseNameProvider { - provider.assertContainsTest(invocation!.selector.description) - } - - super.tearDown() - } -} - -extension XCTestCaseNameProvider { - fileprivate func assertContainsTest(_ name: String) { - let contains = self.allTestNames.contains(name) - XCTAssert(contains, "Test '\(name)' is missing from the allTests array") - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift deleted file mode 100644 index bb552ef..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Helpers/utils.swift +++ /dev/null @@ -1,98 +0,0 @@ -import Dispatch -import Foundation -@testable import Nimble -import XCTest - -func failsWithErrorMessage(_ messages: [String], file: FileString = #file, line: UInt = #line, preferOriginalSourceLocation: Bool = false, closure: @escaping () throws -> Void) { - var filePath = file - var lineNumber = line - - let recorder = AssertionRecorder() - withAssertionHandler(recorder, closure: closure) - - for msg in messages { - var lastFailure: AssertionRecord? - var foundFailureMessage = false - - for assertion in recorder.assertions { - lastFailure = assertion - if assertion.message.stringValue == msg { - foundFailureMessage = true - break - } - } - - if foundFailureMessage { - continue - } - - if preferOriginalSourceLocation { - if let failure = lastFailure { - filePath = failure.location.file - lineNumber = failure.location.line - } - } - - let message: String - if let lastFailure = lastFailure { - message = "Got failure message: \"\(lastFailure.message.stringValue)\", but expected \"\(msg)\"" - } else { - message = "expected failure message, but got none" - } - NimbleAssertionHandler.assert(false, - message: FailureMessage(stringValue: message), - location: SourceLocation(file: filePath, line: lineNumber)) - } -} - -func failsWithErrorMessage(_ message: String, file: FileString = #file, line: UInt = #line, preferOriginalSourceLocation: Bool = false, closure: @escaping () -> Void) { - return failsWithErrorMessage( - [message], - file: file, - line: line, - preferOriginalSourceLocation: preferOriginalSourceLocation, - closure: closure - ) -} - -func failsWithErrorMessageForNil(_ message: String, file: FileString = #file, line: UInt = #line, preferOriginalSourceLocation: Bool = false, closure: @escaping () -> Void) { - failsWithErrorMessage("\(message) (use beNil() to match nils)", file: file, line: line, preferOriginalSourceLocation: preferOriginalSourceLocation, closure: closure) -} - - func deferToMainQueue(action: @escaping () -> Void) { - DispatchQueue.main.async { - Thread.sleep(forTimeInterval: 0.01) - action() - } - } - -public class NimbleHelper: NSObject { - public class func expectFailureMessage(_ message: NSString, block: @escaping () -> Void, file: FileString, line: UInt) { - failsWithErrorMessage(String(describing: message), file: file, line: line, preferOriginalSourceLocation: true, closure: block) - } - - public class func expectFailureMessages(_ messages: [NSString], block: @escaping () -> Void, file: FileString, line: UInt) { - failsWithErrorMessage(messages.map({String(describing: $0)}), file: file, line: line, preferOriginalSourceLocation: true, closure: block) - } - - public class func expectFailureMessageForNil(_ message: NSString, block: @escaping () -> Void, file: FileString, line: UInt) { - failsWithErrorMessageForNil(String(describing: message), file: file, line: line, preferOriginalSourceLocation: true, closure: block) - } -} - -extension Date { - init(dateTimeString: String) { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" - dateFormatter.locale = Locale(identifier: "en_US_POSIX") - let date = dateFormatter.date(from: dateTimeString)! - self.init(timeInterval:0, since:date) - } -} - -extension NSDate { - convenience init(dateTimeString: String) { - let date = Date(dateTimeString: dateTimeString) - self.init(timeIntervalSinceReferenceDate: date.timeIntervalSinceReferenceDate) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Info.plist b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Info.plist deleted file mode 100644 index 6d32c15..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/LinuxSupport.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/LinuxSupport.swift deleted file mode 100644 index 03ff8e1..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/LinuxSupport.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Foundation - -#if os(Linux) - extension NSNotification.Name { - init(_ rawValue: String) { - self.init(rawValue: rawValue) - } - } -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift deleted file mode 100644 index 2050881..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/AllPassTest.swift +++ /dev/null @@ -1,126 +0,0 @@ -import XCTest -import Nimble - -/// Add operators to `Optional` for conforming `Comparable` that removed in Swift 3.0 -extension Optional where Wrapped: Comparable { - static func < (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l < r - case (nil, _?): - return true - default: - return false - } - } - - static func > (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l > r - default: - return rhs < lhs - } - } - - static func <= (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l <= r - default: - return !(rhs < lhs) - } - } - - static func >= (lhs: Optional, rhs: Optional) -> Bool { - switch (lhs, rhs) { - case let (l?, r?): - return l >= r - default: - return !(lhs < rhs) - } - } -} - -final class AllPassTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (AllPassTest) -> () throws -> Void)] { - return [ - ("testAllPassArray", testAllPassArray), - ("testAllPassMatcher", testAllPassMatcher), - ("testAllPassCollectionsWithOptionalsDontWork", testAllPassCollectionsWithOptionalsDontWork), - ("testAllPassCollectionsWithOptionalsUnwrappingOneOptionalLayer", testAllPassCollectionsWithOptionalsUnwrappingOneOptionalLayer), - ("testAllPassSet", testAllPassSet), - ("testAllPassWithNilAsExpectedValue", testAllPassWithNilAsExpectedValue), - ] - } - - func testAllPassArray() { - expect([1, 2, 3, 4]).to(allPass({$0 < 5})) - expect([1, 2, 3, 4]).toNot(allPass({$0 > 5})) - - failsWithErrorMessage( - "expected to all pass a condition, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1, 2, 3, 4]).to(allPass({$0 < 3})) - } - failsWithErrorMessage("expected to not all pass a condition") { - expect([1, 2, 3, 4]).toNot(allPass({$0 < 5})) - } - failsWithErrorMessage( - "expected to all be something, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1, 2, 3, 4]).to(allPass("be something", {$0 < 3})) - } - failsWithErrorMessage("expected to not all be something") { - expect([1, 2, 3, 4]).toNot(allPass("be something", {$0 < 5})) - } - } - - func testAllPassMatcher() { - expect([1, 2, 3, 4]).to(allPass(beLessThan(5))) - expect([1, 2, 3, 4]).toNot(allPass(beGreaterThan(5))) - - failsWithErrorMessage( - "expected to all be less than <3>, but failed first at element <3> in <[1, 2, 3, 4]>") { - expect([1, 2, 3, 4]).to(allPass(beLessThan(3))) - } - failsWithErrorMessage("expected to not all be less than <5>") { - expect([1, 2, 3, 4]).toNot(allPass(beLessThan(5))) - } - } - - func testAllPassCollectionsWithOptionalsDontWork() { - failsWithErrorMessage("expected to all be nil, but failed first at element in <[nil, nil, nil]>") { - expect([nil, nil, nil] as [Int?]).to(allPass(beNil())) - } - failsWithErrorMessage("expected to all pass a condition, but failed first at element in <[nil, nil, nil]>") { - expect([nil, nil, nil] as [Int?]).to(allPass({$0 == nil})) - } - } - - func testAllPassCollectionsWithOptionalsUnwrappingOneOptionalLayer() { - expect([nil, nil, nil] as [Int?]).to(allPass({$0! == nil})) - expect([nil, 1, nil] as [Int?]).toNot(allPass({$0! == nil})) - expect([1, 1, 1] as [Int?]).to(allPass({$0! == 1})) - expect([1, 1, nil] as [Int?]).toNot(allPass({$0! == 1})) - expect([1, 2, 3] as [Int?]).to(allPass({$0! < 4})) - expect([1, 2, 3] as [Int?]).toNot(allPass({$0! < 3})) - expect([1, 2, nil] as [Int?]).to(allPass({$0! < 3})) - } - - func testAllPassSet() { - expect(Set([1, 2, 3, 4])).to(allPass({$0 < 5})) - expect(Set([1, 2, 3, 4])).toNot(allPass({$0 > 5})) - - failsWithErrorMessage("expected to not all pass a condition") { - expect(Set([1, 2, 3, 4])).toNot(allPass({$0 < 5})) - } - failsWithErrorMessage("expected to not all be something") { - expect(Set([1, 2, 3, 4])).toNot(allPass("be something", {$0 < 5})) - } - } - - func testAllPassWithNilAsExpectedValue() { - failsWithErrorMessageForNil("expected to all pass") { - expect(nil as [Int]?).to(allPass(beLessThan(5))) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift deleted file mode 100644 index ea16913..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAKindOfTest.swift +++ /dev/null @@ -1,89 +0,0 @@ -import Foundation -import XCTest -import Nimble - -fileprivate class TestNull: NSNull {} -fileprivate protocol TestProtocol {} -fileprivate class TestClassConformingToProtocol: TestProtocol {} -fileprivate struct TestStructConformingToProtocol: TestProtocol {} - -final class BeAKindOfSwiftTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAKindOfSwiftTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testFailureMessages", testFailureMessages), - ] - } - - enum TestEnum { - case one, two - } - - func testPositiveMatch() { - expect(1).to(beAKindOf(Int.self)) - expect(1).toNot(beAKindOf(String.self)) - expect("turtle string").to(beAKindOf(String.self)) - expect("turtle string").toNot(beAKindOf(TestClassConformingToProtocol.self)) - - expect(TestEnum.one).to(beAKindOf(TestEnum.self)) - - let testProtocolClass = TestClassConformingToProtocol() - expect(testProtocolClass).to(beAKindOf(TestClassConformingToProtocol.self)) - expect(testProtocolClass).to(beAKindOf(TestProtocol.self)) - expect(testProtocolClass).toNot(beAKindOf(TestStructConformingToProtocol.self)) - - let testProtocolStruct = TestStructConformingToProtocol() - expect(testProtocolStruct).to(beAKindOf(TestStructConformingToProtocol.self)) - expect(testProtocolStruct).to(beAKindOf(TestProtocol.self)) - expect(testProtocolStruct).toNot(beAKindOf(TestClassConformingToProtocol.self)) - } - - func testFailureMessages() { - failsWithErrorMessage("expected to not be a kind of Int, got ") { - expect(1).toNot(beAKindOf(Int.self)) - } - - let testClass = TestClassConformingToProtocol() - failsWithErrorMessage("expected to not be a kind of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { - expect(testClass).toNot(beAKindOf(TestProtocol.self)) - } - - failsWithErrorMessage("expected to be a kind of String, got ") { - expect(1).to(beAKindOf(String.self)) - } - } -} - -#if _runtime(_ObjC) - -final class BeAKindOfObjCTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAKindOfObjCTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testFailureMessages", testFailureMessages), - ] - } - - func testPositiveMatch() { - expect(TestNull()).to(beAKindOf(NSNull.self)) - expect(NSObject()).to(beAKindOf(NSObject.self)) - expect(NSNumber(value:1)).toNot(beAKindOf(NSDate.self)) - } - - func testFailureMessages() { - failsWithErrorMessageForNil("expected to not be a kind of NSNull, got ") { - expect(nil as NSNull?).toNot(beAKindOf(NSNull.self)) - } - failsWithErrorMessageForNil("expected to be a kind of NSString, got ") { - expect(nil as NSString?).to(beAKindOf(NSString.self)) - } - failsWithErrorMessage("expected to be a kind of NSString, got <__NSCFNumber instance>") { - expect(NSNumber(value:1)).to(beAKindOf(NSString.self)) - } - failsWithErrorMessage("expected to not be a kind of NSNumber, got <__NSCFNumber instance>") { - expect(NSNumber(value:1)).toNot(beAKindOf(NSNumber.self)) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift deleted file mode 100644 index 0660a75..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeAnInstanceOfTest.swift +++ /dev/null @@ -1,79 +0,0 @@ -import Foundation -import XCTest -import Nimble - -fileprivate protocol TestProtocol {} -fileprivate class TestClassConformingToProtocol: TestProtocol {} -fileprivate struct TestStructConformingToProtocol: TestProtocol {} - -final class BeAnInstanceOfTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeAnInstanceOfTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testPositiveMatchSwiftTypes", testPositiveMatchSwiftTypes), - ("testFailureMessages", testFailureMessages), - ("testFailureMessagesSwiftTypes", testFailureMessagesSwiftTypes), - ] - } - - func testPositiveMatch() { - expect(NSNull()).to(beAnInstanceOf(NSNull.self)) - expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSDate.self)) - } - - enum TestEnum { - case one, two - } - - func testPositiveMatchSwiftTypes() { - expect(1).to(beAnInstanceOf(Int.self)) - expect("test").to(beAnInstanceOf(String.self)) - - expect(TestEnum.one).to(beAnInstanceOf(TestEnum.self)) - - let testProtocolClass = TestClassConformingToProtocol() - expect(testProtocolClass).to(beAnInstanceOf(TestClassConformingToProtocol.self)) - expect(testProtocolClass).toNot(beAnInstanceOf(TestProtocol.self)) - expect(testProtocolClass).toNot(beAnInstanceOf(TestStructConformingToProtocol.self)) - - let testProtocolStruct = TestStructConformingToProtocol() - expect(testProtocolStruct).to(beAnInstanceOf(TestStructConformingToProtocol.self)) - expect(testProtocolStruct).toNot(beAnInstanceOf(TestProtocol.self)) - expect(testProtocolStruct).toNot(beAnInstanceOf(TestClassConformingToProtocol.self)) - } - - func testFailureMessages() { - failsWithErrorMessageForNil("expected to not be an instance of NSNull, got ") { - expect(nil as NSNull?).toNot(beAnInstanceOf(NSNull.self)) - } - failsWithErrorMessageForNil("expected to be an instance of NSString, got ") { - expect(nil as NSString?).to(beAnInstanceOf(NSString.self)) - } -#if _runtime(_ObjC) - let numberTypeName = "__NSCFNumber" -#else - let numberTypeName = "NSNumber" -#endif - failsWithErrorMessage("expected to be an instance of NSString, got <\(numberTypeName) instance>") { - expect(NSNumber(value:1)).to(beAnInstanceOf(NSString.self)) - } - failsWithErrorMessage("expected to not be an instance of NSNumber, got <\(numberTypeName) instance>") { - expect(NSNumber(value:1)).toNot(beAnInstanceOf(NSNumber.self)) - } - } - - func testFailureMessagesSwiftTypes() { - failsWithErrorMessage("expected to not be an instance of Int, got ") { - expect(1).toNot(beAnInstanceOf(Int.self)) - } - - let testClass = TestClassConformingToProtocol() - failsWithErrorMessage("expected to be an instance of \(String(describing: TestProtocol.self)), got <\(String(describing: TestClassConformingToProtocol.self)) instance>") { - expect(testClass).to(beAnInstanceOf(TestProtocol.self)) - } - - failsWithErrorMessage("expected to be an instance of String, got ") { - expect(1).to(beAnInstanceOf(String.self)) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift deleted file mode 100644 index 7a7e508..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeCloseToTest.swift +++ /dev/null @@ -1,160 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeCloseToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeCloseToTest) -> () throws -> Void)] { - return [ - ("testBeCloseTo", testBeCloseTo), - ("testBeCloseToWithin", testBeCloseToWithin), - ("testBeCloseToWithNSNumber", testBeCloseToWithNSNumber), - ("testBeCloseToWithDate", testBeCloseToWithDate), - ("testBeCloseToWithNSDate", testBeCloseToWithNSDate), - ("testBeCloseToOperator", testBeCloseToOperator), - ("testBeCloseToWithinOperator", testBeCloseToWithinOperator), - ("testPlusMinusOperator", testPlusMinusOperator), - ("testBeCloseToOperatorWithDate", testBeCloseToOperatorWithDate), - ("testBeCloseToWithinOperatorWithDate", testBeCloseToWithinOperatorWithDate), - ("testPlusMinusOperatorWithDate", testPlusMinusOperatorWithDate), - ("testBeCloseToArray", testBeCloseToArray), - ("testBeCloseToWithCGFloat", testBeCloseToWithCGFloat), - ] - } - - func testBeCloseTo() { - expect(1.2).to(beCloseTo(1.2001)) - expect(1.2 as CDouble).to(beCloseTo(1.2001)) - expect(1.2 as Float).to(beCloseTo(1.2001)) - - failsWithErrorMessage("expected to not be close to <1.2001> (within 0.0001), got <1.2>") { - expect(1.2).toNot(beCloseTo(1.2001)) - } - } - - func testBeCloseToWithin() { - expect(1.2).to(beCloseTo(9.300, within: 10)) - - failsWithErrorMessage("expected to not be close to <1.2001> (within 1), got <1.2>") { - expect(1.2).toNot(beCloseTo(1.2001, within: 1.0)) - } - } - - func testBeCloseToWithNSNumber() { - expect(NSNumber(value:1.2)).to(beCloseTo(9.300, within: 10)) - expect(NSNumber(value:1.2)).to(beCloseTo(NSNumber(value:9.300), within: 10)) - expect(1.2).to(beCloseTo(NSNumber(value:9.300), within: 10)) - - failsWithErrorMessage("expected to not be close to <1.2001> (within 1), got <1.2>") { - expect(NSNumber(value:1.2)).toNot(beCloseTo(1.2001, within: 1.0)) - } - } - - func testBeCloseToWithCGFloat() { - expect(CGFloat(1.2)).to(beCloseTo(1.2001)) - expect(CGFloat(1.2)).to(beCloseTo(CGFloat(1.2001))) - - failsWithErrorMessage("expected to be close to <1.2001> (within 1), got <1.2>") { - expect(CGFloat(1.2)).to(beCloseTo(1.2001, within: 1.0)) - } - } - - func testBeCloseToWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(Date(dateTimeString: "2015-08-26 11:43:05"), within: 10)) - - failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.004)) - } - } - - func testBeCloseToWithNSDate() { - expect(NSDate(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(NSDate(dateTimeString: "2015-08-26 11:43:05"), within: 10)) - - failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") { - let expectedDate = NSDate(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(NSDate(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.004)) - } - } - - func testBeCloseToOperator() { - expect(1.2) ≈ 1.2001 - expect(1.2 as CDouble) ≈ 1.2001 - - failsWithErrorMessage("expected to be close to <1.2002> (within 0.0001), got <1.2>") { - expect(1.2) ≈ 1.2002 - } - } - - func testBeCloseToWithinOperator() { - expect(1.2) ≈ (9.300, 10) - expect(1.2) == (9.300, 10) - - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) ≈ (1.0, 0.1) - } - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) == (1.0, 0.1) - } - } - - func testPlusMinusOperator() { - expect(1.2) ≈ 9.300 ± 10 - expect(1.2) == 9.300 ± 10 - - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) ≈ 1.0 ± 0.1 - } - failsWithErrorMessage("expected to be close to <1> (within 0.1), got <1.2>") { - expect(1.2) == 1.0 ± 0.1 - } - } - - func testBeCloseToOperatorWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ Date(dateTimeString: "2015-08-26 11:43:00") - - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.0001), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ expectedDate - } - } - - func testBeCloseToWithinOperatorWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ (Date(dateTimeString: "2015-08-26 11:43:05"), 10) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == (Date(dateTimeString: "2015-08-26 11:43:05"), 10) - - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ (expectedDate, 0.006) - } - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == (expectedDate, 0.006) - } - } - - func testPlusMinusOperatorWithDate() { - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ Date(dateTimeString: "2015-08-26 11:43:05") ± 10 - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == Date(dateTimeString: "2015-08-26 11:43:05") ± 10 - - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ expectedDate ± 0.006 - } - failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") { - let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005) - expect(Date(dateTimeString: "2015-08-26 11:43:00")) == expectedDate ± 0.006 - } - } - - func testBeCloseToArray() { - expect([0.0, 1.1, 2.2]) ≈ [0.0001, 1.1001, 2.2001] - expect([0.0, 1.1, 2.2]).to(beCloseTo([0.1, 1.2, 2.3], within: 0.1)) - - failsWithErrorMessage("expected to be close to <[0, 1]> (each within 0.0001), got <[0, 1.1]>") { - expect([0.0, 1.1]) ≈ [0.0, 1.0] - } - failsWithErrorMessage("expected to be close to <[0.2, 1.2]> (each within 0.1), got <[0, 1.1]>") { - expect([0.0, 1.1]).to(beCloseTo([0.2, 1.2], within: 0.1)) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift deleted file mode 100644 index 7c4abf3..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeEmptyTest.swift +++ /dev/null @@ -1,82 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeEmptyTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeEmptyTest) -> () throws -> Void)] { - return [ - ("testBeEmptyPositive", testBeEmptyPositive), - ("testBeEmptyNegative", testBeEmptyNegative), - ] - } - - func testBeEmptyPositive() { - expect([] as [Int]).to(beEmpty()) - expect([1]).toNot(beEmpty()) - - expect([] as [CInt]).to(beEmpty()) - expect([1] as [CInt]).toNot(beEmpty()) - -#if _runtime(_ObjC) - expect(NSDictionary() as? [Int:Int]).to(beEmpty()) - expect(NSDictionary(object: 1, forKey: 1 as NSNumber) as? [Int:Int]).toNot(beEmpty()) -#endif - - expect([Int: Int]()).to(beEmpty()) - expect(["hi": 1]).toNot(beEmpty()) - -#if _runtime(_ObjC) - expect(NSArray() as? [Int]).to(beEmpty()) - expect(NSArray(array: [1]) as? [Int]).toNot(beEmpty()) -#endif - - expect(NSSet()).to(beEmpty()) - expect(NSSet(array: [NSNumber(value: 1)])).toNot(beEmpty()) - - expect(NSIndexSet()).to(beEmpty()) - expect(NSIndexSet(index: 1)).toNot(beEmpty()) - - expect(NSString()).to(beEmpty()) - expect(NSString(string: "hello")).toNot(beEmpty()) - - expect("").to(beEmpty()) - expect("foo").toNot(beEmpty()) - } - - func testBeEmptyNegative() { - failsWithErrorMessageForNil("expected to be empty, got ") { - expect(nil as NSString?).to(beEmpty()) - } - failsWithErrorMessageForNil("expected to not be empty, got ") { - expect(nil as [CInt]?).toNot(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <()>") { - expect(NSArray()).toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got <[1]>") { - expect([1]).to(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <{()}>") { - expect(NSSet()).toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got <{(1)}>") { - expect(NSSet(object: NSNumber(value: 1))).to(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <()>") { - expect(NSIndexSet()).toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got <(1)>") { - expect(NSIndexSet(index: 1)).to(beEmpty()) - } - - failsWithErrorMessage("expected to not be empty, got <>") { - expect("").toNot(beEmpty()) - } - failsWithErrorMessage("expected to be empty, got ") { - expect("foo").to(beEmpty()) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift deleted file mode 100644 index beec4d7..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanOrEqualToTest.swift +++ /dev/null @@ -1,50 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeGreaterThanOrEqualToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeGreaterThanOrEqualToTest) -> () throws -> Void)] { - return [ - ("testGreaterThanOrEqualTo", testGreaterThanOrEqualTo), - ("testGreaterThanOrEqualToOperator", testGreaterThanOrEqualToOperator), - ] - } - - func testGreaterThanOrEqualTo() { - expect(10).to(beGreaterThanOrEqualTo(10)) - expect(10).to(beGreaterThanOrEqualTo(2)) - expect(1).toNot(beGreaterThanOrEqualTo(2)) - expect(NSNumber(value:1)).toNot(beGreaterThanOrEqualTo(2)) - expect(NSNumber(value:2)).to(beGreaterThanOrEqualTo(NSNumber(value:2))) -#if _runtime(_ObjC) - expect(1).to(beGreaterThanOrEqualTo(NSNumber(value:0))) -#endif - - failsWithErrorMessage("expected to be greater than or equal to <2>, got <0>") { - expect(0).to(beGreaterThanOrEqualTo(2)) - return - } - failsWithErrorMessage("expected to not be greater than or equal to <1>, got <1>") { - expect(1).toNot(beGreaterThanOrEqualTo(1)) - return - } - failsWithErrorMessageForNil("expected to be greater than or equal to <-2>, got ") { - expect(nil as Int?).to(beGreaterThanOrEqualTo(-2)) - } - failsWithErrorMessageForNil("expected to not be greater than or equal to <1>, got ") { - expect(nil as Int?).toNot(beGreaterThanOrEqualTo(1)) - } - } - - func testGreaterThanOrEqualToOperator() { - expect(0) >= 0 - expect(1) >= 0 - expect(NSNumber(value:1)) >= 1 - expect(NSNumber(value:1)) >= NSNumber(value:1) - - failsWithErrorMessage("expected to be greater than or equal to <2>, got <1>") { - expect(1) >= 2 - return - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift deleted file mode 100644 index 6da2c0c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeGreaterThanTest.swift +++ /dev/null @@ -1,50 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeGreaterThanTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeGreaterThanTest) -> () throws -> Void)] { - return [ - ("testGreaterThan", testGreaterThan), - ("testGreaterThanOperator", testGreaterThanOperator), - ] - } - - func testGreaterThan() { - expect(10).to(beGreaterThan(2)) - expect(1).toNot(beGreaterThan(2)) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:3)).to(beGreaterThan(2)) -#else - expect(NSNumber(value:3)).to(beGreaterThan(2 as NSNumber)) -#endif - expect(NSNumber(value:1)).toNot(beGreaterThan(NSNumber(value:2))) - - failsWithErrorMessage("expected to be greater than <2>, got <0>") { - expect(0).to(beGreaterThan(2)) - } - failsWithErrorMessage("expected to not be greater than <0>, got <1>") { - expect(1).toNot(beGreaterThan(0)) - } - failsWithErrorMessageForNil("expected to be greater than <-2>, got ") { - expect(nil as Int?).to(beGreaterThan(-2)) - } - failsWithErrorMessageForNil("expected to not be greater than <0>, got ") { - expect(nil as Int?).toNot(beGreaterThan(0)) - } - } - - func testGreaterThanOperator() { - expect(1) > 0 - expect(NSNumber(value:1)) > NSNumber(value:0) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:1)) > 0 -#else - expect(NSNumber(value:1)) > 0 as NSNumber -#endif - failsWithErrorMessage("expected to be greater than <2>, got <1>") { - expect(1) > 2 - return - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift deleted file mode 100644 index 923fa76..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToObjectTest.swift +++ /dev/null @@ -1,64 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeIdenticalToObjectTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeIdenticalToObjectTest) -> () throws -> Void)] { - return [ - ("testBeIdenticalToPositive", testBeIdenticalToPositive), - ("testBeIdenticalToNegative", testBeIdenticalToNegative), - ("testBeIdenticalToPositiveMessage", testBeIdenticalToPositiveMessage), - ("testBeIdenticalToNegativeMessage", testBeIdenticalToNegativeMessage), - ("testFailsOnNils", testFailsOnNils), - ("testOperators", testOperators), - ] - } - - private class BeIdenticalToObjectTester {} - private let testObjectA = BeIdenticalToObjectTester() - private let testObjectB = BeIdenticalToObjectTester() - - func testBeIdenticalToPositive() { - expect(self.testObjectA).to(beIdenticalTo(testObjectA)) - } - - func testBeIdenticalToNegative() { - expect(self.testObjectA).toNot(beIdenticalTo(testObjectB)) - } - - func testBeIdenticalToPositiveMessage() { - let message = String(describing: NSString(format: "expected to be identical to <%p>, got <%p>", - unsafeBitCast(testObjectB, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessage(message) { - expect(self.testObjectA).to(beIdenticalTo(self.testObjectB)) - } - } - - func testBeIdenticalToNegativeMessage() { - let message = String(describing: NSString(format: "expected to not be identical to <%p>, got <%p>", - unsafeBitCast(testObjectA, to: Int.self), unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessage(message) { - expect(self.testObjectA).toNot(beIdenticalTo(self.testObjectA)) - } - } - - func testFailsOnNils() { - let message1 = String(describing: NSString(format: "expected to be identical to <%p>, got nil", - unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessageForNil(message1) { - expect(nil as BeIdenticalToObjectTester?).to(beIdenticalTo(self.testObjectA)) - } - - let message2 = String(describing: NSString(format: "expected to not be identical to <%p>, got nil", - unsafeBitCast(testObjectA, to: Int.self))) - failsWithErrorMessageForNil(message2) { - expect(nil as BeIdenticalToObjectTester?).toNot(beIdenticalTo(self.testObjectA)) - } - } - - func testOperators() { - expect(self.testObjectA) === testObjectA - expect(self.testObjectA) !== testObjectB - } - -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift deleted file mode 100644 index 6092988..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeIdenticalToTest.swift +++ /dev/null @@ -1,68 +0,0 @@ -import Foundation -import XCTest -@testable import Nimble - -final class BeIdenticalToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeIdenticalToTest) -> () throws -> Void)] { - return [ - ("testBeIdenticalToPositive", testBeIdenticalToPositive), - ("testBeIdenticalToNegative", testBeIdenticalToNegative), - ("testBeIdenticalToPositiveMessage", testBeIdenticalToPositiveMessage), - ("testBeIdenticalToNegativeMessage", testBeIdenticalToNegativeMessage), - ("testOperators", testOperators), - ("testBeAlias", testBeAlias), - ] - } - - func testBeIdenticalToPositive() { - let value = NSDate() - expect(value).to(beIdenticalTo(value)) - } - - func testBeIdenticalToNegative() { - expect(NSNumber(value:1)).toNot(beIdenticalTo(NSString(string: "yo"))) - expect(NSArray(array: [NSNumber(value: 1)])).toNot(beIdenticalTo(NSArray(array: [NSNumber(value: 1)]))) - } - - func testBeIdenticalToPositiveMessage() { - let num1 = NSNumber(value:1) - let num2 = NSNumber(value:2) - let message = "expected to be identical to \(identityAsString(num2)), got \(identityAsString(num1))" - failsWithErrorMessage(message) { - expect(num1).to(beIdenticalTo(num2)) - } - } - - func testBeIdenticalToNegativeMessage() { - let value1 = NSArray(array: []) - let value2 = NSArray(array: []) - let message = "expected to not be identical to \(identityAsString(value2)), got \(identityAsString(value1))" - failsWithErrorMessage(message) { - expect(value1).toNot(beIdenticalTo(value2)) - } - } - - func testOperators() { - let value = NSDate() - expect(value) === value - expect(NSNumber(value:1)) !== NSNumber(value:2) - } - - func testBeAlias() { - let value = NSDate() - expect(value).to(be(value)) - expect(NSNumber(value:1)).toNot(be(NSString(stringLiteral: "turtles"))) - #if _runtime(_ObjC) - expect([1]).toNot(be([1])) - #else - expect(NSArray(array: [NSNumber(value: 1)])).toNot(beIdenticalTo(NSArray(array: [NSNumber(value: 1)]))) - #endif - - let value1 = NSArray(array: []) - let value2 = NSArray(array: []) - let message = "expected to not be identical to \(identityAsString(value2)), got \(identityAsString(value1))" - failsWithErrorMessage(message) { - expect(value1).toNot(be(value2)) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift deleted file mode 100644 index 61cfec1..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanOrEqualToTest.swift +++ /dev/null @@ -1,52 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeLessThanOrEqualToTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeLessThanOrEqualToTest) -> () throws -> Void)] { - return [ - ("testLessThanOrEqualTo", testLessThanOrEqualTo), - ("testLessThanOrEqualToOperator", testLessThanOrEqualToOperator), - ] - } - - func testLessThanOrEqualTo() { - expect(10).to(beLessThanOrEqualTo(10)) - expect(2).to(beLessThanOrEqualTo(10)) - expect(2).toNot(beLessThanOrEqualTo(1)) - - expect(NSNumber(value:2)).to(beLessThanOrEqualTo(10)) - expect(NSNumber(value:2)).toNot(beLessThanOrEqualTo(1)) -#if _runtime(_ObjC) - expect(2).to(beLessThanOrEqualTo(NSNumber(value:10))) - expect(2).toNot(beLessThanOrEqualTo(NSNumber(value:1))) -#endif - - failsWithErrorMessage("expected to be less than or equal to <0>, got <2>") { - expect(2).to(beLessThanOrEqualTo(0)) - return - } - failsWithErrorMessage("expected to not be less than or equal to <0>, got <0>") { - expect(0).toNot(beLessThanOrEqualTo(0)) - return - } - failsWithErrorMessageForNil("expected to be less than or equal to <2>, got ") { - expect(nil as Int?).to(beLessThanOrEqualTo(2)) - return - } - failsWithErrorMessageForNil("expected to not be less than or equal to <-2>, got ") { - expect(nil as Int?).toNot(beLessThanOrEqualTo(-2)) - return - } - } - - func testLessThanOrEqualToOperator() { - expect(0) <= 1 - expect(1) <= 1 - - failsWithErrorMessage("expected to be less than or equal to <1>, got <2>") { - expect(2) <= 1 - return - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift deleted file mode 100644 index f1c3317..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLessThanTest.swift +++ /dev/null @@ -1,57 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeLessThanTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeLessThanTest) -> () throws -> Void)] { - return [ - ("testLessThan", testLessThan), - ("testLessThanOperator", testLessThanOperator), - ] - } - - func testLessThan() { - expect(2).to(beLessThan(10)) - expect(2).toNot(beLessThan(1)) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:2)).to(beLessThan(10)) - expect(NSNumber(value:2)).toNot(beLessThan(1)) - - expect(2).to(beLessThan(NSNumber(value:10))) - expect(2).toNot(beLessThan(NSNumber(value:1))) -#else - expect(NSNumber(value:2)).to(beLessThan(10 as NSNumber)) - expect(NSNumber(value:2)).toNot(beLessThan(1 as NSNumber)) - - expect(2 as NSNumber).to(beLessThan(NSNumber(value:10))) - expect(2 as NSNumber).toNot(beLessThan(NSNumber(value:1))) -#endif - - failsWithErrorMessage("expected to be less than <0>, got <2>") { - expect(2).to(beLessThan(0)) - } - failsWithErrorMessage("expected to not be less than <1>, got <0>") { - expect(0).toNot(beLessThan(1)) - } - - failsWithErrorMessageForNil("expected to be less than <2>, got ") { - expect(nil as Int?).to(beLessThan(2)) - } - failsWithErrorMessageForNil("expected to not be less than <-1>, got ") { - expect(nil as Int?).toNot(beLessThan(-1)) - } - } - - func testLessThanOperator() { - expect(0) < 1 -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(NSNumber(value:0)) < 1 -#else - expect(NSNumber(value:0)) < 1 as NSNumber -#endif - failsWithErrorMessage("expected to be less than <1>, got <2>") { - expect(2) < 1 - return - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift deleted file mode 100644 index 947a1b4..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeLogicalTest.swift +++ /dev/null @@ -1,270 +0,0 @@ -import XCTest -import Nimble -import Foundation - -enum ConvertsToBool: ExpressibleByBooleanLiteral, CustomStringConvertible { - case trueLike, falseLike - - typealias BooleanLiteralType = Bool - - init(booleanLiteral value: Bool) { - switch value { - case true: self = .trueLike - case false: self = .falseLike - } - } - - var boolValue: Bool { - switch self { - case .trueLike: return true - case .falseLike: return false - } - } - - var description: String { - switch self { - case .trueLike: return "TrueLike" - case .falseLike: return "FalseLike" - } - } -} - -final class BeTruthyTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeTruthyTest) -> () throws -> Void)] { - return [ - ("testShouldMatchNonNilTypes", testShouldMatchNonNilTypes), - ("testShouldMatchTrue", testShouldMatchTrue), - ("testShouldNotMatchNilTypes", testShouldNotMatchNilTypes), - ("testShouldNotMatchFalse", testShouldNotMatchFalse), - ("testShouldNotMatchNilBools", testShouldNotMatchNilBools), - ("testShouldMatchBoolConvertibleTypesThatConvertToTrue", testShouldMatchBoolConvertibleTypesThatConvertToTrue), - ("testShouldNotMatchBoolConvertibleTypesThatConvertToFalse", testShouldNotMatchBoolConvertibleTypesThatConvertToFalse), - ] - } - - func testShouldMatchNonNilTypes() { - expect(true as Bool?).to(beTruthy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(1 as Int8?).to(beTruthy()) - expect(1 as UInt8?).to(beTruthy()) - expect(1 as Int16?).to(beTruthy()) - expect(1 as UInt16?).to(beTruthy()) - expect(1 as Int32?).to(beTruthy()) - expect(1 as UInt32?).to(beTruthy()) - expect(1 as Int64?).to(beTruthy()) - expect(1 as UInt64?).to(beTruthy()) - expect(1 as Float?).to(beTruthy()) - expect(1 as Double?).to(beTruthy()) - expect(1 as Int?).to(beTruthy()) - expect(1 as UInt?).to(beTruthy()) - } - - func testShouldMatchTrue() { - expect(true).to(beTruthy()) - - failsWithErrorMessage("expected to not be truthy, got ") { - expect(true).toNot(beTruthy()) - } - } - - func testShouldNotMatchNilTypes() { - expect(false as Bool?).toNot(beTruthy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(nil as Bool?).toNot(beTruthy()) - expect(nil as Int8?).toNot(beTruthy()) - expect(nil as UInt8?).toNot(beTruthy()) - expect(nil as Int16?).toNot(beTruthy()) - expect(nil as UInt16?).toNot(beTruthy()) - expect(nil as Int32?).toNot(beTruthy()) - expect(nil as UInt32?).toNot(beTruthy()) - expect(nil as Int64?).toNot(beTruthy()) - expect(nil as UInt64?).toNot(beTruthy()) - expect(nil as Float?).toNot(beTruthy()) - expect(nil as Double?).toNot(beTruthy()) - expect(nil as Int?).toNot(beTruthy()) - expect(nil as UInt?).toNot(beTruthy()) - } - - func testShouldNotMatchFalse() { - expect(false).toNot(beTruthy()) - - failsWithErrorMessage("expected to be truthy, got ") { - expect(false).to(beTruthy()) - } - } - - func testShouldNotMatchNilBools() { - expect(nil as Bool?).toNot(beTruthy()) - - failsWithErrorMessage("expected to be truthy, got ") { - expect(nil as Bool?).to(beTruthy()) - } - } - - func testShouldMatchBoolConvertibleTypesThatConvertToTrue() { - expect(ConvertsToBool.trueLike).to(beTruthy()) - - failsWithErrorMessage("expected to not be truthy, got ") { - expect(ConvertsToBool.trueLike).toNot(beTruthy()) - } - } - - func testShouldNotMatchBoolConvertibleTypesThatConvertToFalse() { - expect(ConvertsToBool.falseLike).toNot(beTruthy()) - - failsWithErrorMessage("expected to be truthy, got ") { - expect(ConvertsToBool.falseLike).to(beTruthy()) - } - } -} - -final class BeTrueTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeTrueTest) -> () throws -> Void)] { - return [ - ("testShouldMatchTrue", testShouldMatchTrue), - ("testShouldNotMatchFalse", testShouldNotMatchFalse), - ("testShouldNotMatchNilBools", testShouldNotMatchNilBools), - ] - } - - func testShouldMatchTrue() { - expect(true).to(beTrue()) - - failsWithErrorMessage("expected to not be true, got ") { - expect(true).toNot(beTrue()) - } - } - - func testShouldNotMatchFalse() { - expect(false).toNot(beTrue()) - - failsWithErrorMessage("expected to be true, got ") { - expect(false).to(beTrue()) - } - } - - func testShouldNotMatchNilBools() { - failsWithErrorMessageForNil("expected to not be true, got ") { - expect(nil as Bool?).toNot(beTrue()) - } - - failsWithErrorMessageForNil("expected to be true, got ") { - expect(nil as Bool?).to(beTrue()) - } - } -} - -final class BeFalsyTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeFalsyTest) -> () throws -> Void)] { - return [ - ("testShouldMatchNilTypes", testShouldMatchNilTypes), - ("testShouldNotMatchTrue", testShouldNotMatchTrue), - ("testShouldNotMatchNonNilTypes", testShouldNotMatchNonNilTypes), - ("testShouldMatchFalse", testShouldMatchFalse), - ("testShouldMatchNilBools", testShouldMatchNilBools), - ] - } - - func testShouldMatchNilTypes() { - expect(false as Bool?).to(beFalsy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(nil as Bool?).to(beFalsy()) - expect(nil as Int8?).to(beFalsy()) - expect(nil as UInt8?).to(beFalsy()) - expect(nil as Int16?).to(beFalsy()) - expect(nil as UInt16?).to(beFalsy()) - expect(nil as Int32?).to(beFalsy()) - expect(nil as UInt32?).to(beFalsy()) - expect(nil as Int64?).to(beFalsy()) - expect(nil as UInt64?).to(beFalsy()) - expect(nil as Float?).to(beFalsy()) - expect(nil as Double?).to(beFalsy()) - expect(nil as Int?).to(beFalsy()) - expect(nil as UInt?).to(beFalsy()) - } - - func testShouldNotMatchTrue() { - expect(true).toNot(beFalsy()) - - failsWithErrorMessage("expected to be falsy, got ") { - expect(true).to(beFalsy()) - } - } - - func testShouldNotMatchNonNilTypes() { - expect(true as Bool?).toNot(beFalsy()) - - // Support types conforming to `ExpressibleByBooleanLiteral` - // Nimble extend following types as conforming to `ExpressibleByBooleanLiteral` - expect(1 as Int8?).toNot(beFalsy()) - expect(1 as UInt8?).toNot(beFalsy()) - expect(1 as Int16?).toNot(beFalsy()) - expect(1 as UInt16?).toNot(beFalsy()) - expect(1 as Int32?).toNot(beFalsy()) - expect(1 as UInt32?).toNot(beFalsy()) - expect(1 as Int64?).toNot(beFalsy()) - expect(1 as UInt64?).toNot(beFalsy()) - expect(1 as Float?).toNot(beFalsy()) - expect(1 as Double?).toNot(beFalsy()) - expect(1 as Int?).toNot(beFalsy()) - expect(1 as UInt?).toNot(beFalsy()) - } - - func testShouldMatchFalse() { - expect(false).to(beFalsy()) - - failsWithErrorMessage("expected to not be falsy, got ") { - expect(false).toNot(beFalsy()) - } - } - - func testShouldMatchNilBools() { - expect(nil as Bool?).to(beFalsy()) - - failsWithErrorMessage("expected to not be falsy, got ") { - expect(nil as Bool?).toNot(beFalsy()) - } - } -} - -final class BeFalseTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeFalseTest) -> () throws -> Void)] { - return [ - ("testShouldNotMatchTrue", testShouldNotMatchTrue), - ("testShouldMatchFalse", testShouldMatchFalse), - ("testShouldNotMatchNilBools", testShouldNotMatchNilBools), - ] - } - - func testShouldNotMatchTrue() { - expect(true).toNot(beFalse()) - - failsWithErrorMessage("expected to be false, got ") { - expect(true).to(beFalse()) - } - } - - func testShouldMatchFalse() { - expect(false).to(beFalse()) - - failsWithErrorMessage("expected to not be false, got ") { - expect(false).toNot(beFalse()) - } - } - - func testShouldNotMatchNilBools() { - failsWithErrorMessageForNil("expected to be false, got ") { - expect(nil as Bool?).to(beFalse()) - } - - failsWithErrorMessageForNil("expected to not be false, got ") { - expect(nil as Bool?).toNot(beFalse()) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift deleted file mode 100644 index 69f4185..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeNilTest.swift +++ /dev/null @@ -1,28 +0,0 @@ -import XCTest -import Nimble - -final class BeNilTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeNilTest) -> () throws -> Void)] { - return [ - ("testBeNil", testBeNil), - ] - } - - func producesNil() -> [Int]? { - return nil - } - - func testBeNil() { - expect(nil as Int?).to(beNil()) - expect(1 as Int?).toNot(beNil()) - expect(self.producesNil()).to(beNil()) - - failsWithErrorMessage("expected to not be nil, got ") { - expect(nil as Int?).toNot(beNil()) - } - - failsWithErrorMessage("expected to be nil, got <1>") { - expect(1 as Int?).to(beNil()) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift deleted file mode 100644 index a8eefc1..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeVoidTest.swift +++ /dev/null @@ -1,32 +0,0 @@ -import XCTest -import Nimble - -final class BeVoidTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeVoidTest) -> () throws -> Void)] { - return [ - ("testBeVoid", testBeVoid), - ] - } - - func testBeVoid() { - expect(()).to(beVoid()) - expect(() as ()?).to(beVoid()) - expect(nil as ()?).toNot(beVoid()) - - expect(()) == () - expect(() as ()?) == () - expect(nil as ()?) != () - - failsWithErrorMessage("expected to not be void, got <()>") { - expect(()).toNot(beVoid()) - } - - failsWithErrorMessage("expected to not be void, got <()>") { - expect(() as ()?).toNot(beVoid()) - } - - failsWithErrorMessage("expected to be void, got ") { - expect(nil as ()?).to(beVoid()) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift deleted file mode 100644 index a05707c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/BeginWithTest.swift +++ /dev/null @@ -1,53 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class BeginWithTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (BeginWithTest) -> () throws -> Void)] { - return [ - ("testPositiveMatches", testPositiveMatches), - ("testNegativeMatches", testNegativeMatches), - ] - } - - func testPositiveMatches() { - expect([1, 2, 3]).to(beginWith(1)) - expect([1, 2, 3]).toNot(beginWith(2)) - - expect("foobar").to(beginWith("foo")) - expect("foobar").toNot(beginWith("oo")) - - expect("foobarfoo").to(beginWith("foo")) - - expect(NSString(string: "foobar").description).to(beginWith("foo")) - expect(NSString(string: "foobar").description).toNot(beginWith("oo")) - -#if _runtime(_ObjC) - expect(NSArray(array: ["a", "b"])).to(beginWith("a")) - expect(NSArray(array: ["a", "b"])).toNot(beginWith("b")) -#endif - } - - func testNegativeMatches() { - failsWithErrorMessageForNil("expected to begin with , got ") { - expect(nil as NSArray?).to(beginWith(NSString(string: "b"))) - } - failsWithErrorMessageForNil("expected to not begin with , got ") { - expect(nil as NSArray?).toNot(beginWith(NSString(string: "b"))) - } - - failsWithErrorMessage("expected to begin with <2>, got <[1, 2, 3]>") { - expect([1, 2, 3]).to(beginWith(2)) - } - failsWithErrorMessage("expected to not begin with <1>, got <[1, 2, 3]>") { - expect([1, 2, 3]).toNot(beginWith(1)) - } - failsWithErrorMessage("expected to begin with , got ") { - expect("batman").to(beginWith("atm")) - } - failsWithErrorMessage("expected to not begin with , got ") { - expect("batman").toNot(beginWith("bat")) - } - } - -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift deleted file mode 100644 index a9fe80e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainElementSatisfyingTest.swift +++ /dev/null @@ -1,86 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class ContainElementSatisfyingTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ContainElementSatisfyingTest) -> () throws -> Void)] { - return [ - ("testContainElementSatisfying", testContainElementSatisfying), - ("testContainElementSatisfyingDefaultErrorMessage", testContainElementSatisfyingDefaultErrorMessage), - ("testContainElementSatisfyingSpecificErrorMessage", testContainElementSatisfyingSpecificErrorMessage), - ("testContainElementSatisfyingNegativeCase", - testContainElementSatisfyingNegativeCase), - ("testContainElementSatisfyingNegativeCaseDefaultErrorMessage", - testContainElementSatisfyingNegativeCaseDefaultErrorMessage), - ("testContainElementSatisfyingNegativeCaseSpecificErrorMessage", - testContainElementSatisfyingNegativeCaseSpecificErrorMessage), - ] - } - - func testContainElementSatisfying() { - var orderIndifferentArray = [1, 2, 3] - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 1 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 2 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 3 - })) - - orderIndifferentArray = [3, 1, 2] - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 1 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 2 - })) - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 3 - })) - } - - func testContainElementSatisfyingDefaultErrorMessage() { - let orderIndifferentArray = [1, 2, 3] - failsWithErrorMessage("expected to find object in collection that satisfies predicate") { - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 4 - })) - } - } - - func testContainElementSatisfyingSpecificErrorMessage() { - let orderIndifferentArray = [1, 2, 3] - failsWithErrorMessage("expected to find object in collection equal to 4") { - expect(orderIndifferentArray).to(containElementSatisfying({ number in - return number == 4 - }, "equal to 4")) - } - } - - func testContainElementSatisfyingNegativeCase() { - let orderIndifferentArray = ["puppies", "kittens", "turtles"] - expect(orderIndifferentArray).toNot(containElementSatisfying({ string in - return string == "armadillos" - })) - } - - func testContainElementSatisfyingNegativeCaseDefaultErrorMessage() { - let orderIndifferentArray = ["puppies", "kittens", "turtles"] - failsWithErrorMessage("expected to not find object in collection that satisfies predicate") { - expect(orderIndifferentArray).toNot(containElementSatisfying({ string in - return string == "kittens" - })) - } - } - - func testContainElementSatisfyingNegativeCaseSpecificErrorMessage() { - let orderIndifferentArray = ["puppies", "kittens", "turtles"] - failsWithErrorMessage("expected to not find object in collection equal to 'kittens'") { - expect(orderIndifferentArray).toNot(containElementSatisfying({ string in - return string == "kittens" - }, "equal to 'kittens'")) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift deleted file mode 100644 index 93b0331..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ContainTest.swift +++ /dev/null @@ -1,95 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class ContainTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ContainTest) -> () throws -> Void)] { - return [ - ("testContain", testContain), - ("testContainSubstring", testContainSubstring), - ("testContainObjCSubstring", testContainObjCSubstring), - ("testVariadicArguments", testVariadicArguments), - ("testCollectionArguments", testCollectionArguments), - ] - } - - func testContain() { - expect([1, 2, 3]).to(contain(1)) - expect([1, 2, 3] as [CInt]).to(contain(1 as CInt)) - expect([1, 2, 3] as [CInt]).toNot(contain(4 as CInt)) - expect(["foo", "bar", "baz"]).to(contain("baz")) - expect([1, 2, 3]).toNot(contain(4)) - expect(["foo", "bar", "baz"]).toNot(contain("ba")) -#if _runtime(_ObjC) - expect(NSArray(array: ["a"])).to(contain(NSString(string: "a"))) - expect(NSArray(array: ["a"])).toNot(contain(NSString(string:"b"))) - expect(NSArray(object: 1) as NSArray?).to(contain(1)) -#endif - - failsWithErrorMessage("expected to contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).to(contain("bar")) - } - failsWithErrorMessage("expected to not contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).toNot(contain("b")) - } - - failsWithErrorMessageForNil("expected to contain , got ") { - expect(nil as [String]?).to(contain("bar")) - } - failsWithErrorMessageForNil("expected to not contain , got ") { - expect(nil as [String]?).toNot(contain("b")) - } - } - - func testContainSubstring() { - expect("foo").to(contain("o")) - expect("foo").to(contain("oo")) - expect("foo").toNot(contain("z")) - expect("foo").toNot(contain("zz")) - - failsWithErrorMessage("expected to contain , got ") { - expect("foo").to(contain("bar")) - } - failsWithErrorMessage("expected to not contain , got ") { - expect("foo").toNot(contain("oo")) - } - } - - func testContainObjCSubstring() { - let str = NSString(string: "foo") - expect(str).to(contain(NSString(string: "o"))) - expect(str).to(contain(NSString(string: "oo"))) - expect(str).toNot(contain(NSString(string: "z"))) - expect(str).toNot(contain(NSString(string: "zz"))) - } - - func testVariadicArguments() { - expect([1, 2, 3]).to(contain(1, 2)) - expect([1, 2, 3]).toNot(contain(1, 4)) - - failsWithErrorMessage("expected to contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).to(contain("a", "bar")) - } - - failsWithErrorMessage("expected to not contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).toNot(contain("bar", "b")) - } - } - - func testCollectionArguments() { - expect([1, 2, 3]).to(contain([1, 2])) - expect([1, 2, 3]).toNot(contain([1, 4])) - - let collection = Array(1...10) - let slice = Array(collection[3...5]) - expect(collection).to(contain(slice)) - - failsWithErrorMessage("expected to contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).to(contain(["a", "bar"])) - } - - failsWithErrorMessage("expected to not contain , got <[a, b, c]>") { - expect(["a", "b", "c"]).toNot(contain(["bar", "b"])) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift deleted file mode 100644 index 3e19426..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EndWithTest.swift +++ /dev/null @@ -1,56 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class EndWithTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (EndWithTest) -> () throws -> Void)] { - return [ - ("testEndWithPositives", testEndWithPositives), - ("testEndWithNegatives", testEndWithNegatives), - ] - } - - func testEndWithPositives() { - expect([1, 2, 3]).to(endWith(3)) - expect([1, 2, 3]).toNot(endWith(2)) - expect([]).toNot(endWith(1)) - expect(["a", "b", "a"]).to(endWith("a")) - - expect("foobar").to(endWith("bar")) - expect("foobar").toNot(endWith("oo")) - expect("foobarfoo").to(endWith("foo")) - - expect(NSString(string: "foobar").description).to(endWith("bar")) - expect(NSString(string: "foobar").description).toNot(endWith("oo")) - -#if _runtime(_ObjC) - expect(NSArray(array: ["a", "b"])).to(endWith("b")) - expect(NSArray(array: ["a", "b"])).toNot(endWith("a")) - expect(NSArray(array: [])).toNot(endWith("a")) - expect(NSArray(array: ["a", "b", "a"])).to(endWith("a")) -#endif - } - - func testEndWithNegatives() { - failsWithErrorMessageForNil("expected to end with <2>, got ") { - expect(nil as [Int]?).to(endWith(2)) - } - failsWithErrorMessageForNil("expected to not end with <2>, got ") { - expect(nil as [Int]?).toNot(endWith(2)) - } - - failsWithErrorMessage("expected to end with <2>, got <[1, 2, 3]>") { - expect([1, 2, 3]).to(endWith(2)) - } - failsWithErrorMessage("expected to not end with <3>, got <[1, 2, 3]>") { - expect([1, 2, 3]).toNot(endWith(3)) - } - failsWithErrorMessage("expected to end with , got ") { - expect("batman").to(endWith("atm")) - } - failsWithErrorMessage("expected to not end with , got ") { - expect("batman").toNot(endWith("man")) - } - } - -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift deleted file mode 100644 index 102e8e1..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/EqualTest.swift +++ /dev/null @@ -1,274 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class EqualTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (EqualTest) -> () throws -> Void)] { - return [ - ("testEquality", testEquality), - ("testArrayEquality", testArrayEquality), - ("testSetEquality", testSetEquality), - ("testDoesNotMatchNils", testDoesNotMatchNils), - ("testDictionaryEquality", testDictionaryEquality), - ("testDataEquality", testDataEquality), - ("testNSObjectEquality", testNSObjectEquality), - ("testOperatorEquality", testOperatorEquality), - ("testOperatorEqualityWithArrays", testOperatorEqualityWithArrays), - ("testOperatorEqualityWithDictionaries", testOperatorEqualityWithDictionaries), - ("testOptionalEquality", testOptionalEquality), - ("testArrayOfOptionalsEquality", testArrayOfOptionalsEquality), - ("testDictionariesWithDifferentSequences", testDictionariesWithDifferentSequences), - ] - } - - func testEquality() { - expect(1 as CInt).to(equal(1 as CInt)) - expect(1 as CInt).to(equal(1)) - expect(1).to(equal(1)) - expect("hello").to(equal("hello")) - expect("hello").toNot(equal("world")) - - expect { - 1 - }.to(equal(1)) - - failsWithErrorMessage("expected to equal , got ") { - expect("hello").to(equal("world")) - } - failsWithErrorMessage("expected to not equal , got ") { - expect("hello").toNot(equal("hello")) - } - } - - func testArrayEquality() { - expect([1, 2, 3]).to(equal([1, 2, 3])) - expect([1, 2, 3]).toNot(equal([1, 2])) - expect([1, 2, 3]).toNot(equal([1, 2, 4])) - - let array1: [Int] = [1, 2, 3] - let array2: [Int] = [1, 2, 3] - expect(array1).to(equal(array2)) - expect(array1).to(equal([1, 2, 3])) - expect(array1).toNot(equal([1, 2] as [Int])) - -#if _runtime(_ObjC) - expect(NSArray(array: [1, 2, 3])).to(equal(NSArray(array: [1, 2, 3]))) -#endif - - failsWithErrorMessage("expected to equal <[1, 2]>, got <[1, 2, 3]>") { - expect([1, 2, 3]).to(equal([1, 2])) - } - } - - func testSetEquality() { - expect(Set([1, 2])).to(equal(Set([1, 2]))) - expect(Set()).to(equal(Set())) - expect(Set()) == Set() - expect(Set([1, 2])) != Set() - - failsWithErrorMessageForNil("expected to equal <[1, 2]>, got ") { - expect(nil as Set?).to(equal(Set([1, 2]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[2, 3]>, missing <[1]>") { - expect(Set([2, 3])).to(equal(Set([1, 2, 3]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[1, 2, 3, 4]>, extra <[4]>") { - expect(Set([1, 2, 3, 4])).to(equal(Set([1, 2, 3]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[2, 3, 4]>, missing <[1]>, extra <[4]>") { - expect(Set([2, 3, 4])).to(equal(Set([1, 2, 3]))) - } - - failsWithErrorMessage("expected to equal <[1, 2, 3]>, got <[2, 3, 4]>, missing <[1]>, extra <[4]>") { - expect(Set([2, 3, 4])) == Set([1, 2, 3]) - } - - failsWithErrorMessage("expected to not equal <[1, 2, 3]>, got <[1, 2, 3]>") { - expect(Set([1, 2, 3])) != Set([1, 2, 3]) - } - } - - func testDoesNotMatchNils() { - failsWithErrorMessageForNil("expected to equal , got ") { - expect(nil as String?).to(equal(nil as String?)) - } - failsWithErrorMessageForNil("expected to not equal , got ") { - expect("foo").toNot(equal(nil as String?)) - } - failsWithErrorMessageForNil("expected to not equal , got ") { - expect(nil as String?).toNot(equal("bar")) - } - - failsWithErrorMessageForNil("expected to equal , got ") { - expect(nil as [Int]?).to(equal(nil as [Int]?)) - } - failsWithErrorMessageForNil("expected to not equal <[1]>, got ") { - expect(nil as [Int]?).toNot(equal([1])) - } - failsWithErrorMessageForNil("expected to not equal , got <[1]>") { - expect([1]).toNot(equal(nil as [Int]?)) - } - - failsWithErrorMessageForNil("expected to equal , got ") { - expect(nil as [Int: Int]?).to(equal(nil as [Int: Int]?)) - } - failsWithErrorMessageForNil("expected to not equal <[1: 1]>, got ") { - expect(nil as [Int: Int]?).toNot(equal([1: 1])) - } - failsWithErrorMessageForNil("expected to not equal , got <[1: 1]>") { - expect([1: 1]).toNot(equal(nil as [Int: Int]?)) - } - } - - func testDictionaryEquality() { - expect(["foo": "bar"]).to(equal(["foo": "bar"])) - expect(["foo": "bar"]).toNot(equal(["foo": "baz"])) - - let actual = ["foo": "bar"] - let expected = ["foo": "bar"] - let unexpected = ["foo": "baz"] - expect(actual).to(equal(expected)) - expect(actual).toNot(equal(unexpected)) - -#if _runtime(_ObjC) - expect(NSDictionary(object: "bar", forKey: "foo" as NSString)).to(equal(["foo": "bar"])) - expect(NSDictionary(object: "bar", forKey: "foo" as NSString) as? [String:String]).to(equal(expected)) -#endif - } - - func testDataEquality() { - let actual = "foobar".data(using: .utf8) - let expected = "foobar".data(using: .utf8) - let unexpected = "foobarfoo".data(using: .utf8) - - expect(actual).to(equal(expected)) - expect(actual).toNot(equal(unexpected)) - - #if os(Linux) - // FIXME: Swift on Linux triggers a segfault when calling NSData's hash() (last checked on 03-11) - let expectedErrorMessage = "expected to equal >, got >" - #else - let expectedErrorMessage = "expected to equal >," - + " got >" - #endif - - failsWithErrorMessage(expectedErrorMessage) { - expect(actual).to(equal(unexpected)) - } - } - - func testNSObjectEquality() { - expect(NSNumber(value:1)).to(equal(NSNumber(value:1))) - expect(NSNumber(value:1)) == NSNumber(value:1) - expect(NSNumber(value:1)) != NSNumber(value:2) - expect { NSNumber(value:1) }.to(equal(1)) - } - - func testOperatorEquality() { - expect("foo") == "foo" - expect("foo") != "bar" - - failsWithErrorMessage("expected to equal , got ") { - expect("hello") == "world" - return - } - failsWithErrorMessage("expected to not equal , got ") { - expect("hello") != "hello" - return - } - } - - func testOperatorEqualityWithArrays() { - let array1: [Int] = [1, 2, 3] - let array2: [Int] = [1, 2, 3] - let array3: [Int] = [1, 2] - expect(array1) == array2 - expect(array1) != array3 - } - - func testOperatorEqualityWithDictionaries() { - let dict1 = ["foo": "bar"] - let dict2 = ["foo": "bar"] - let dict3 = ["foo": "baz"] - expect(dict1) == dict2 - expect(dict1) != dict3 - } - - func testOptionalEquality() { - expect(1 as CInt?).to(equal(1)) - expect(1 as CInt?).to(equal(1 as CInt?)) - - expect(1).toNot(equal(nil)) - } - - func testArrayOfOptionalsEquality() { - let array1: [Int?] = [1, nil, 3] - let array2: [Int?] = [nil, 2, 3] - let array3: [Int?] = [1, nil, 3] - - expect(array1).toNot(equal(array2)) - expect(array1).to(equal(array3)) - expect(array2).toNot(equal(array3)) - - let allNils1: [String?] = [nil, nil, nil, nil] - let allNils2: [String?] = [nil, nil, nil, nil] - let notReallyAllNils: [String?] = [nil, nil, nil, "turtles"] - - expect(allNils1).to(equal(allNils2)) - expect(allNils1).toNot(equal(notReallyAllNils)) - - let noNils1: [Int?] = [1, 2, 3, 4, 5] - let noNils2: [Int?] = [1, 3, 5, 7, 9] - - expect(noNils1).toNot(equal(noNils2)) - - failsWithErrorMessage("expected to equal <[Optional(1), nil]>, got <[nil, Optional(2)]>") { - let arrayOfOptionalInts: [Int?] = [nil, 2] - let anotherArrayOfOptionalInts: [Int?] = [1, nil] - expect(arrayOfOptionalInts).to(equal(anotherArrayOfOptionalInts)) - return - } - } - - func testDictionariesWithDifferentSequences() { - // see: https://github.com/Quick/Nimble/issues/61 - // these dictionaries generate different orderings of sequences. - let result = ["how": 1, "think": 1, "didnt": 2, "because": 1, - "interesting": 1, "always": 1, "right": 1, "such": 1, - "to": 3, "say": 1, "cool": 1, "you": 1, - "weather": 3, "be": 1, "went": 1, "was": 2, - "sometimes": 1, "and": 3, "mind": 1, "rain": 1, - "whole": 1, "everything": 1, "weather.": 1, "down": 1, - "kind": 1, "mood.": 1, "it": 2, "everyday": 1, "might": 1, - "more": 1, "have": 2, "person": 1, "could": 1, "tenth": 2, - "night": 1, "write": 1, "Youd": 1, "affects": 1, "of": 3, - "Who": 1, "us": 1, "an": 1, "I": 4, "my": 1, "much": 2, - "wrong.": 1, "peacefully.": 1, "amazing": 3, "would": 4, - "just": 1, "grade.": 1, "Its": 2, "The": 2, "had": 1, "that": 1, - "the": 5, "best": 1, "but": 1, "essay": 1, "for": 1, "summer": 2, - "your": 1, "grade": 1, "vary": 1, "pretty": 1, "at": 1, "rain.": 1, - "about": 1, "allow": 1, "thought": 1, "in": 1, "sleep": 1, "a": 1, - "hot": 1, "really": 1, "beach": 1, "life.": 1, "we": 1, "although": 1, ] - - let storyCount = ["The": 2, "summer": 2, "of": 3, "tenth": 2, "grade": 1, - "was": 2, "the": 5, "best": 1, "my": 1, "life.": 1, "I": 4, - "went": 1, "to": 3, "beach": 1, "everyday": 1, "and": 3, - "we": 1, "had": 1, "amazing": 3, "weather.": 1, "weather": 3, - "didnt": 2, "really": 1, "vary": 1, "much": 2, "always": 1, - "pretty": 1, "hot": 1, "although": 1, "sometimes": 1, "at": 1, - "night": 1, "it": 2, "would": 4, "rain.": 1, "mind": 1, "rain": 1, - "because": 1, "cool": 1, "everything": 1, "down": 1, "allow": 1, - "us": 1, "sleep": 1, "peacefully.": 1, "Its": 2, "how": 1, - "affects": 1, "your": 1, "mood.": 1, "Who": 1, "have": 2, - "thought": 1, "that": 1, "could": 1, "write": 1, "a": 1, - "whole": 1, "essay": 1, "just": 1, "about": 1, "in": 1, - "grade.": 1, "kind": 1, "right": 1, "Youd": 1, "think": 1, - "for": 1, "such": 1, "an": 1, "interesting": 1, "person": 1, - "might": 1, "more": 1, "say": 1, "but": 1, "you": 1, "be": 1, "wrong.": 1, ] - - expect(result).to(equal(storyCount)) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift deleted file mode 100644 index a0294c3..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/HaveCountTest.swift +++ /dev/null @@ -1,56 +0,0 @@ -import XCTest -import Nimble - -final class HaveCountTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (HaveCountTest) -> () throws -> Void)] { - return [ - ("testHaveCountForArray", testHaveCountForArray), - ("testHaveCountForDictionary", testHaveCountForDictionary), - ("testHaveCountForSet", testHaveCountForSet), - ] - } - - func testHaveCountForArray() { - expect([1, 2, 3]).to(haveCount(3)) - expect([1, 2, 3]).notTo(haveCount(1)) - - failsWithErrorMessage("expected to have Array with count 1, got 3\nActual Value: [1, 2, 3]") { - expect([1, 2, 3]).to(haveCount(1)) - } - - failsWithErrorMessage("expected to not have Array with count 3, got 3\nActual Value: [1, 2, 3]") { - expect([1, 2, 3]).notTo(haveCount(3)) - } - } - - func testHaveCountForDictionary() { - let dictionary = ["1": 1, "2": 2, "3": 3] - expect(dictionary).to(haveCount(3)) - expect(dictionary).notTo(haveCount(1)) - - failsWithErrorMessage("expected to have Dictionary with count 1, got 3\nActual Value: \(stringify(dictionary))") { - expect(dictionary).to(haveCount(1)) - } - - failsWithErrorMessage("expected to not have Dictionary with count 3, got 3" + - "\nActual Value: \(stringify(dictionary))") { - expect(dictionary).notTo(haveCount(3)) - } - } - - func testHaveCountForSet() { - let set = Set([1, 2, 3]) - expect(set).to(haveCount(3)) - expect(set).notTo(haveCount(1)) - - failsWithErrorMessage("expected to have Set with count 1, got 3" + - "\nActual Value: \(stringify(set))") { - expect(set).to(haveCount(1)) - } - - failsWithErrorMessage("expected to not have Set with count 3, got 3" + - "\nActual Value: \(stringify(set))") { - expect(set).notTo(haveCount(3)) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift deleted file mode 100644 index 940a214..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchErrorTest.swift +++ /dev/null @@ -1,83 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class MatchErrorTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (MatchErrorTest) -> () throws -> Void)] { - return [ - ("testMatchErrorPositive", testMatchErrorPositive), - ("testMatchErrorNegative", testMatchErrorNegative), - ("testMatchNSErrorPositive", testMatchNSErrorPositive), - ("testMatchNSErrorNegative", testMatchNSErrorNegative), - ("testMatchPositiveMessage", testMatchPositiveMessage), - ("testMatchNegativeMessage", testMatchNegativeMessage), - ("testDoesNotMatchNils", testDoesNotMatchNils), - ] - } - - func testMatchErrorPositive() { - expect(NimbleError.laugh).to(matchError(NimbleError.laugh)) - expect(NimbleError.laugh).to(matchError(NimbleError.self)) - expect(EquatableError.parameterized(x: 1)).to(matchError(EquatableError.parameterized(x: 1))) - - expect(NimbleError.laugh as Error).to(matchError(NimbleError.laugh)) - } - - func testMatchErrorNegative() { - expect(NimbleError.laugh).toNot(matchError(NimbleError.cry)) - expect(NimbleError.laugh as Error).toNot(matchError(NimbleError.cry)) - expect(NimbleError.laugh).toNot(matchError(EquatableError.self)) - } - - func testMatchNSErrorPositive() { - let error1 = NSError(domain: "err", code: 0, userInfo: nil) - let error2 = NSError(domain: "err", code: 0, userInfo: nil) - - expect(error1).to(matchError(error2)) - } - - func testMatchNSErrorNegative() { - let error1 = NSError(domain: "err", code: 0, userInfo: nil) - let error2 = NSError(domain: "err", code: 1, userInfo: nil) - - expect(error1).toNot(matchError(error2)) - } - - func testMatchPositiveMessage() { - failsWithErrorMessage("expected to match error , got ") { - expect(EquatableError.parameterized(x: 1)).to(matchError(EquatableError.parameterized(x: 2))) - } - failsWithErrorMessage("expected to match error , got ") { - expect(NimbleError.laugh).to(matchError(NimbleError.cry)) - } - failsWithErrorMessage("expected to match error , got ") { - expect(CustomDebugStringConvertibleError.a).to(matchError(CustomDebugStringConvertibleError.b)) - } - - failsWithErrorMessage("expected to match error , got ") { - let error1 = NSError(domain: "err", code: 0, userInfo: nil) - let error2 = NSError(domain: "err", code: 1, userInfo: nil) - expect(error1).to(matchError(error2)) - } - } - - func testMatchNegativeMessage() { - failsWithErrorMessage("expected to not match error , got ") { - expect(NimbleError.laugh).toNot(matchError(NimbleError.laugh)) - } - - failsWithErrorMessage("expected to match error from type , got ") { - expect(NimbleError.laugh).to(matchError(EquatableError.self)) - } - } - - func testDoesNotMatchNils() { - failsWithErrorMessageForNil("expected to match error , got no error") { - expect(nil as Error?).to(matchError(NimbleError.laugh)) - } - - failsWithErrorMessageForNil("expected to not match error , got no error") { - expect(nil as Error?).toNot(matchError(NimbleError.laugh)) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift deleted file mode 100644 index a95ba56..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/MatchTest.swift +++ /dev/null @@ -1,46 +0,0 @@ -import XCTest -import Nimble - -final class MatchTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (MatchTest) -> () throws -> Void)] { - return [ - ("testMatchPositive", testMatchPositive), - ("testMatchNegative", testMatchNegative), - ("testMatchPositiveMessage", testMatchPositiveMessage), - ("testMatchNegativeMessage", testMatchNegativeMessage), - ("testMatchNils", testMatchNils), - ] - } - - func testMatchPositive() { - expect("11:14").to(match("\\d{2}:\\d{2}")) - } - - func testMatchNegative() { - expect("hello").toNot(match("\\d{2}:\\d{2}")) - } - - func testMatchPositiveMessage() { - let message = "expected to match <\\d{2}:\\d{2}>, got " - failsWithErrorMessage(message) { - expect("hello").to(match("\\d{2}:\\d{2}")) - } - } - - func testMatchNegativeMessage() { - let message = "expected to not match <\\d{2}:\\d{2}>, got <11:14>" - failsWithErrorMessage(message) { - expect("11:14").toNot(match("\\d{2}:\\d{2}")) - } - } - - func testMatchNils() { - failsWithErrorMessageForNil("expected to match <\\d{2}:\\d{2}>, got ") { - expect(nil as String?).to(match("\\d{2}:\\d{2}")) - } - - failsWithErrorMessageForNil("expected to not match <\\d{2}:\\d{2}>, got ") { - expect(nil as String?).toNot(match("\\d{2}:\\d{2}")) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift deleted file mode 100644 index 33b2ff0..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/PostNotificationTest.swift +++ /dev/null @@ -1,91 +0,0 @@ -import XCTest -import Nimble -import Foundation - -final class PostNotificationTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (PostNotificationTest) -> () throws -> Void)] { - return [ - ("testPassesWhenNoNotificationsArePosted", testPassesWhenNoNotificationsArePosted), - ("testPassesWhenExpectedNotificationIsPosted", testPassesWhenExpectedNotificationIsPosted), - ("testPassesWhenAllExpectedNotificationsArePosted", testPassesWhenAllExpectedNotificationsArePosted), - ("testFailsWhenNoNotificationsArePosted", testFailsWhenNoNotificationsArePosted), - ("testFailsWhenNotificationWithWrongNameIsPosted", testFailsWhenNotificationWithWrongNameIsPosted), - ("testFailsWhenNotificationWithWrongObjectIsPosted", testFailsWhenNotificationWithWrongObjectIsPosted), - ("testPassesWhenExpectedNotificationEventuallyIsPosted", testPassesWhenExpectedNotificationEventuallyIsPosted), - ] - } - - let notificationCenter = NotificationCenter() - - func testPassesWhenNoNotificationsArePosted() { - expect { - // no notifications here! - return nil - }.to(postNotifications(beEmpty(), fromNotificationCenter: notificationCenter)) - } - - func testPassesWhenExpectedNotificationIsPosted() { - let testNotification = Notification(name: Notification.Name("Foo"), object: nil) - expect { - self.notificationCenter.post(testNotification) - }.to(postNotifications(equal([testNotification]), fromNotificationCenter: notificationCenter)) - } - - func testPassesWhenAllExpectedNotificationsArePosted() { - let foo = NSNumber(value: 1) - let bar = NSNumber(value: 2) - let n1 = Notification(name: Notification.Name("Foo"), object: foo) - let n2 = Notification(name: Notification.Name("Bar"), object: bar) - expect { - self.notificationCenter.post(n1) - self.notificationCenter.post(n2) - return nil - }.to(postNotifications(equal([n1, n2]), fromNotificationCenter: notificationCenter)) - } - - func testFailsWhenNoNotificationsArePosted() { - let testNotification = Notification(name: Notification.Name("Foo"), object: nil) - failsWithErrorMessage("expected to equal <[\(testNotification)]>, got no notifications") { - expect { - // no notifications here! - return nil - }.to(postNotifications(equal([testNotification]), fromNotificationCenter: self.notificationCenter)) - } - } - - func testFailsWhenNotificationWithWrongNameIsPosted() { - let n1 = Notification(name: Notification.Name("Foo"), object: nil) - let n2 = Notification(name: Notification.Name(n1.name.rawValue + "a"), object: nil) - failsWithErrorMessage("expected to equal <[\(n1)]>, got <[\(n2)]>") { - expect { - self.notificationCenter.post(n2) - return nil - }.to(postNotifications(equal([n1]), fromNotificationCenter: self.notificationCenter)) - } - } - - func testFailsWhenNotificationWithWrongObjectIsPosted() { - let n1 = Notification(name: Notification.Name("Foo"), object: nil) - let n2 = Notification(name: n1.name, object: NSObject()) - failsWithErrorMessage("expected to equal <[\(n1)]>, got <[\(n2)]>") { - expect { - self.notificationCenter.post(n2) - return nil - }.to(postNotifications(equal([n1]), fromNotificationCenter: self.notificationCenter)) - } - } - - func testPassesWhenExpectedNotificationEventuallyIsPosted() { - #if _runtime(_ObjC) - let testNotification = Notification(name: Notification.Name("Foo"), object: nil) - expect { - deferToMainQueue { - self.notificationCenter.post(testNotification) - } - return nil - }.toEventually(postNotifications(equal([testNotification]), fromNotificationCenter: notificationCenter)) - #else - print("\(#function) is missing because toEventually is not implement on this platform") - #endif - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift deleted file mode 100644 index 20461d9..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/RaisesExceptionTest.swift +++ /dev/null @@ -1,166 +0,0 @@ -import XCTest -import Nimble - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -final class RaisesExceptionTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (RaisesExceptionTest) -> () throws -> Void)] { - return [ - ("testPositiveMatches", testPositiveMatches), - ("testPositiveMatchesWithClosures", testPositiveMatchesWithClosures), - ("testNegativeMatches", testNegativeMatches), - ("testNegativeMatchesDoNotCallClosureWithoutException", testNegativeMatchesDoNotCallClosureWithoutException), - ("testNegativeMatchesWithClosure", testNegativeMatchesWithClosure), - ] - } - - var anException = NSException(name: NSExceptionName("laugh"), reason: "Lulz", userInfo: ["key": "value"]) - - func testPositiveMatches() { - expect { self.anException.raise() }.to(raiseException()) - expect { self.anException.raise() }.to(raiseException(named: "laugh")) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz")) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"])) - } - - func testPositiveMatchesWithClosures() { - expect { self.anException.raise() }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName("laugh"))) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("lau")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("lau")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"]) { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("lau")) - }) - - expect { self.anException.raise() }.to(raiseException(named: "laugh") { (exception: NSException) in - expect(exception.name.rawValue).toNot(beginWith("as")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz") { (exception: NSException) in - expect(exception.name.rawValue).toNot(beginWith("df")) - }) - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"]) { (exception: NSException) in - expect(exception.name.rawValue).toNot(beginWith("as")) - }) - } - - func testNegativeMatches() { - failsWithErrorMessage("expected to raise exception with name , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "foo")) - } - - failsWithErrorMessage("expected to raise exception with name with reason , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "bar")) - } - - failsWithErrorMessage( - "expected to raise exception with name with reason with userInfo <{k = v;}>, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["k": "v"])) - } - - failsWithErrorMessage("expected to raise any exception, got no exception") { - expect { self.anException }.to(raiseException()) - } - failsWithErrorMessage("expected to not raise any exception, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException()) - } - failsWithErrorMessage("expected to raise exception with name with reason , got no exception") { - expect { self.anException }.to(raiseException(named: "laugh", reason: "Lulz")) - } - - failsWithErrorMessage("expected to raise exception with name with reason , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException(named: "bar", reason: "Lulz")) - } - failsWithErrorMessage("expected to not raise exception with name , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException(named: "laugh")) - } - failsWithErrorMessage("expected to not raise exception with name with reason , got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException(named: "laugh", reason: "Lulz")) - } - - failsWithErrorMessage("expected to not raise exception with name with reason with userInfo <{key = value;}>, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"])) - } - } - - func testNegativeMatchesDoNotCallClosureWithoutException() { - failsWithErrorMessage("expected to raise exception that satisfies block, got no exception") { - expect { self.anException }.to(raiseException { (exception: NSException) in - expect(exception.name).to(equal(NSExceptionName(rawValue:"foo"))) - }) - } - - failsWithErrorMessage("expected to raise exception with name that satisfies block, got no exception") { - expect { self.anException }.to(raiseException(named: "foo") { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - failsWithErrorMessage("expected to raise exception with name with reason that satisfies block, got no exception") { - expect { self.anException }.to(raiseException(named: "foo", reason: "ha") { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - failsWithErrorMessage("expected to raise exception with name with reason with userInfo <{}> that satisfies block, got no exception") { - expect { self.anException }.to(raiseException(named: "foo", reason: "Lulz", userInfo: [:]) { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - failsWithErrorMessage("expected to not raise any exception, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.toNot(raiseException()) - } - } - - func testNegativeMatchesWithClosure() { - failsWithErrorMessage("expected to raise exception that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }") { - expect { self.anException.raise() }.to(raiseException { (exception: NSException) in - expect(exception.name.rawValue).to(equal("foo")) - }) - } - - let innerFailureMessage = "expected to begin with , got " - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "laugh") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "lol") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "lol", reason: "wrong") { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason with userInfo <{key = value;}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "laugh", reason: "Lulz", userInfo: ["key": "value"]) { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - - failsWithErrorMessage([innerFailureMessage, "expected to raise exception with name with reason with userInfo <{}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: laugh), reason='Lulz', userInfo=[AnyHashable(\"key\"): \"value\"] }"]) { - expect { self.anException.raise() }.to(raiseException(named: "lol", reason: "Lulz", userInfo: [:]) { (exception: NSException) in - expect(exception.name.rawValue).to(beginWith("fo")) - }) - } - } -} -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift deleted file mode 100644 index 0bd9495..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/SatisfyAnyOfTest.swift +++ /dev/null @@ -1,56 +0,0 @@ -import XCTest -import Nimble -import Foundation - -final class SatisfyAnyOfTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (SatisfyAnyOfTest) -> () throws -> Void)] { - return [ - ("testSatisfyAnyOf", testSatisfyAnyOf), - ("testOperatorOr", testOperatorOr), - ] - } - - func testSatisfyAnyOf() { - expect(2).to(satisfyAnyOf(equal(2), equal(3))) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(2).toNot(satisfyAnyOf(equal(3), equal("turtles"))) -#else - expect(2 as NSNumber).toNot(satisfyAnyOf(equal(3 as NSNumber), equal("turtles" as NSString))) -#endif - expect([1, 2, 3]).to(satisfyAnyOf(equal([1, 2, 3]), allPass({$0 < 4}), haveCount(3))) - expect("turtle").toNot(satisfyAnyOf(contain("a"), endWith("magic"))) - expect(82.0).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) - expect(false).to(satisfyAnyOf(beTrue(), beFalse())) - expect(true).to(satisfyAnyOf(beTruthy(), beFalsy())) - - failsWithErrorMessage( - "expected to match one of: {equal <3>}, or {equal <4>}, or {equal <5>}, got 2") { - expect(2).to(satisfyAnyOf(equal(3), equal(4), equal(5))) - } - failsWithErrorMessage( - "expected to match one of: {all be less than 4, but failed first at element <5> in <[5, 6, 7]>}, or {equal <[1, 2, 3, 4]>}, got [5, 6, 7]") { - expect([5, 6, 7]).to(satisfyAnyOf(allPass("be less than 4", {$0 < 4}), equal([1, 2, 3, 4]))) - } - failsWithErrorMessage( - "expected to match one of: {be true}, got false") { - expect(false).to(satisfyAnyOf(beTrue())) - } - failsWithErrorMessage( - "expected to not match one of: {be less than <10.5>}, or {be greater than <100.75>}, or {be close to <50.1> (within 0.0001)}, got 50.10001") { - expect(50.10001).toNot(satisfyAnyOf(beLessThan(10.5), beGreaterThan(100.75), beCloseTo(50.1))) - } - } - - func testOperatorOr() { - expect(2).to(equal(2) || equal(3)) -#if SUPPORT_IMPLICIT_BRIDGING_CONVERSION - expect(2).toNot(equal(3) || equal("turtles")) -#else - expect(2 as NSNumber).toNot(equal(3 as NSNumber) || equal("turtles" as NSString)) -#endif - expect("turtle").toNot(contain("a") || endWith("magic")) - expect(82.0).toNot(beLessThan(10.5) || beGreaterThan(100.75)) - expect(false).to(beTrue() || beFalse()) - expect(true).to(beTruthy() || beFalsy()) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift deleted file mode 100644 index 9c66fe6..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowAssertionTest.swift +++ /dev/null @@ -1,62 +0,0 @@ -import Foundation -import XCTest -import Nimble - -#if _runtime(_ObjC) && !SWIFT_PACKAGE - -final class ThrowAssertionTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ThrowAssertionTest) -> () throws -> Void)] { - return [ - ("testPositiveMatch", testPositiveMatch), - ("testErrorThrown", testErrorThrown), - ("testPostAssertionCodeNotRun", testPostAssertionCodeNotRun), - ("testNegativeMatch", testNegativeMatch), - ("testPositiveMessage", testPositiveMessage), - ("testNegativeMessage", testNegativeMessage), - ] - } - - func testPositiveMatch() { - expect { () -> Void in fatalError() }.to(throwAssertion()) - } - - func testErrorThrown() { - expect { throw NSError(domain: "test", code: 0, userInfo: nil) }.toNot(throwAssertion()) - } - - func testPostAssertionCodeNotRun() { - var reachedPoint1 = false - var reachedPoint2 = false - - expect { - reachedPoint1 = true - precondition(false, "condition message") - reachedPoint2 = true - }.to(throwAssertion()) - - expect(reachedPoint1) == true - expect(reachedPoint2) == false - } - - func testNegativeMatch() { - var reachedPoint1 = false - - expect { reachedPoint1 = true }.toNot(throwAssertion()) - - expect(reachedPoint1) == true - } - - func testPositiveMessage() { - failsWithErrorMessage("expected to throw an assertion") { - expect { () -> Void? in return }.to(throwAssertion()) - } - } - - func testNegativeMessage() { - failsWithErrorMessage("expected to not throw an assertion") { - expect { () -> Void in fatalError() }.toNot(throwAssertion()) - } - } -} - -#endif diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift deleted file mode 100644 index 1c7674c..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/Matchers/ThrowErrorTest.swift +++ /dev/null @@ -1,154 +0,0 @@ -import XCTest -import Nimble - -enum NimbleError: Error { - case laugh - case cry -} - -enum EquatableError: Error { - case parameterized(x: Int) -} - -extension EquatableError : Equatable { -} - -func == (lhs: EquatableError, rhs: EquatableError) -> Bool { - switch (lhs, rhs) { - case (.parameterized(let l), .parameterized(let r)): - return l == r - } -} - -enum CustomDebugStringConvertibleError: Error { - case a - case b -} - -extension CustomDebugStringConvertibleError : CustomDebugStringConvertible { - var debugDescription: String { - return "code=\(_code)" - } -} - -final class ThrowErrorTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (ThrowErrorTest) -> () throws -> Void)] { - return [ - ("testPositiveMatches", testPositiveMatches), - ("testPositiveMatchesWithClosures", testPositiveMatchesWithClosures), - ("testNegativeMatches", testNegativeMatches), - ("testPositiveNegatedMatches", testPositiveNegatedMatches), - ("testNegativeNegatedMatches", testNegativeNegatedMatches), - ("testNegativeMatchesDoNotCallClosureWithoutError", testNegativeMatchesDoNotCallClosureWithoutError), - ("testNegativeMatchesWithClosure", testNegativeMatchesWithClosure), - ] - } - - func testPositiveMatches() { - expect { throw NimbleError.laugh }.to(throwError()) - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh)) - expect { throw NimbleError.laugh }.to(throwError(errorType: NimbleError.self)) - expect { throw EquatableError.parameterized(x: 1) }.to(throwError(EquatableError.parameterized(x: 1))) - } - - func testPositiveMatchesWithClosures() { - // Generic typed closure - expect { throw EquatableError.parameterized(x: 42) }.to(throwError { error in - guard case EquatableError.parameterized(let x) = error else { fail(); return } - expect(x) >= 1 - }) - // Explicit typed closure - expect { throw EquatableError.parameterized(x: 42) }.to(throwError { (error: EquatableError) in - guard case .parameterized(let x) = error else { fail(); return } - expect(x) >= 1 - }) - // Typed closure over errorType argument - expect { throw EquatableError.parameterized(x: 42) }.to(throwError(errorType: EquatableError.self) { error in - guard case .parameterized(let x) = error else { fail(); return } - expect(x) >= 1 - }) - // Typed closure over error argument - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh) { (error: Error) in - expect(error._domain).to(beginWith("Nim")) - }) - // Typed closure over error argument - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh) { (error: Error) in - expect(error._domain).toNot(beginWith("as")) - }) - } - - func testNegativeMatches() { - // Same case, different arguments - failsWithErrorMessage("expected to throw error , got ") { - expect { throw EquatableError.parameterized(x: 1) }.to(throwError(EquatableError.parameterized(x: 2))) - } - // Same case, different arguments - failsWithErrorMessage("expected to throw error , got ") { - expect { throw EquatableError.parameterized(x: 1) }.to(throwError(EquatableError.parameterized(x: 2))) - } - // Different case - failsWithErrorMessage("expected to throw error , got ") { - expect { throw NimbleError.laugh }.to(throwError(NimbleError.cry)) - } - // Different case with closure - failsWithErrorMessage("expected to throw error that satisfies block, got ") { - expect { throw NimbleError.laugh }.to(throwError(NimbleError.cry) { _ in return }) - } - // Different case, implementing CustomDebugStringConvertible - failsWithErrorMessage("expected to throw error , got ") { - expect { throw CustomDebugStringConvertibleError.a }.to(throwError(CustomDebugStringConvertibleError.b)) - } - } - - func testPositiveNegatedMatches() { - // No error at all - expect { return }.toNot(throwError()) - // Different case - expect { throw NimbleError.laugh }.toNot(throwError(NimbleError.cry)) - } - - func testNegativeNegatedMatches() { - // No error at all - failsWithErrorMessage("expected to not throw any error, got ") { - expect { throw NimbleError.laugh }.toNot(throwError()) - } - // Different error - failsWithErrorMessage("expected to not throw error , got ") { - expect { throw NimbleError.laugh }.toNot(throwError(NimbleError.laugh)) - } - } - - func testNegativeMatchesDoNotCallClosureWithoutError() { - failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError { _ in - fail() - }) - } - - failsWithErrorMessage("expected to throw error that satisfies block, got no error") { - expect { return }.to(throwError(NimbleError.laugh) { _ in - fail() - }) - } - } - - func testNegativeMatchesWithClosure() { - let moduleName = "NimbleTests" - let innerFailureMessage = "expected to equal , got <\(moduleName).NimbleError>" - let closure = { (error: Error) in - expect(error._domain).to(equal("foo")) - } - - failsWithErrorMessage([innerFailureMessage, "expected to throw error that satisfies block, got "]) { - expect { throw NimbleError.laugh }.to(throwError(closure: closure)) - } - - failsWithErrorMessage([innerFailureMessage, "expected to throw error from type that satisfies block, got "]) { - expect { throw NimbleError.laugh }.to(throwError(errorType: NimbleError.self, closure: closure)) - } - - failsWithErrorMessage([innerFailureMessage, "expected to throw error that satisfies block, got "]) { - expect { throw NimbleError.laugh }.to(throwError(NimbleError.laugh, closure: closure)) - } - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift deleted file mode 100644 index eefd178..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/SynchronousTests.swift +++ /dev/null @@ -1,128 +0,0 @@ -import Foundation -import XCTest -import Nimble - -final class SynchronousTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (SynchronousTest) -> () throws -> Void)] { - return [ - ("testFailAlwaysFails", testFailAlwaysFails), - ("testUnexpectedErrorsThrownFails", testUnexpectedErrorsThrownFails), - ("testToMatchesIfMatcherReturnsTrue", testToMatchesIfMatcherReturnsTrue), - ("testToProvidesActualValueExpression", testToProvidesActualValueExpression), - ("testToProvidesAMemoizedActualValueExpression", testToProvidesActualValueExpression), - ("testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl", testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl), - ("testToMatchAgainstLazyProperties", testToMatchAgainstLazyProperties), - ("testToNotMatchesIfMatcherReturnsTrue", testToNotMatchesIfMatcherReturnsTrue), - ("testToNotProvidesActualValueExpression", testToNotProvidesActualValueExpression), - ("testToNotProvidesAMemoizedActualValueExpression", testToNotProvidesAMemoizedActualValueExpression), - ("testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl", testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl), - ("testToNotNegativeMatches", testToNotNegativeMatches), - ("testNotToMatchesLikeToNot", testNotToMatchesLikeToNot), - ] - } - - class Error: Swift.Error {} - let errorToThrow = Error() - - private func doThrowError() throws -> Int { - throw errorToThrow - } - - func testFailAlwaysFails() { - failsWithErrorMessage("My error message") { - fail("My error message") - } - failsWithErrorMessage("fail() always fails") { - fail() - } - } - - func testUnexpectedErrorsThrownFails() { - failsWithErrorMessage("expected to equal <1>, got an unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.to(equal(1)) - } - failsWithErrorMessage("expected to not equal <1>, got an unexpected error thrown: <\(errorToThrow)>") { - expect { try self.doThrowError() }.toNot(equal(1)) - } - } - - func testToMatchesIfMatcherReturnsTrue() { - expect(1).to(MatcherFunc { _, _ in true }) - expect {1}.to(MatcherFunc { _, _ in true }) - } - - func testToProvidesActualValueExpression() { - var value: Int? - expect(1).to(MatcherFunc { expr, _ in value = try expr.evaluate(); return true }) - expect(value).to(equal(1)) - } - - func testToProvidesAMemoizedActualValueExpression() { - var callCount = 0 - expect { callCount += 1 }.to(MatcherFunc { expr, _ in - _ = try expr.evaluate() - _ = try expr.evaluate() - return true - }) - expect(callCount).to(equal(1)) - } - - func testToProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { - var callCount = 0 - expect { callCount += 1 }.to(MatcherFunc { expr, _ in - expect(callCount).to(equal(0)) - _ = try expr.evaluate() - return true - }) - expect(callCount).to(equal(1)) - } - - func testToMatchAgainstLazyProperties() { - expect(ObjectWithLazyProperty().value).to(equal("hello")) - expect(ObjectWithLazyProperty().value).toNot(equal("world")) - expect(ObjectWithLazyProperty().anotherValue).to(equal("world")) - expect(ObjectWithLazyProperty().anotherValue).toNot(equal("hello")) - } - - // repeated tests from to() for toNot() - func testToNotMatchesIfMatcherReturnsTrue() { - expect(1).toNot(MatcherFunc { _, _ in false }) - expect {1}.toNot(MatcherFunc { _, _ in false }) - } - - func testToNotProvidesActualValueExpression() { - var value: Int? - expect(1).toNot(MatcherFunc { expr, _ in value = try expr.evaluate(); return false }) - expect(value).to(equal(1)) - } - - func testToNotProvidesAMemoizedActualValueExpression() { - var callCount = 0 - expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in - _ = try expr.evaluate() - _ = try expr.evaluate() - return false - }) - expect(callCount).to(equal(1)) - } - - func testToNotProvidesAMemoizedActualValueExpressionIsEvaluatedAtMatcherControl() { - var callCount = 0 - expect { callCount += 1 }.toNot(MatcherFunc { expr, _ in - expect(callCount).to(equal(0)) - _ = try expr.evaluate() - return false - }) - expect(callCount).to(equal(1)) - } - - func testToNotNegativeMatches() { - failsWithErrorMessage("expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { _, _ in true }) - } - } - - func testNotToMatchesLikeToNot() { - expect(1).notTo(MatcherFunc { _, _ in false }) - } -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift deleted file mode 100644 index 9bb64b6..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/UserDescriptionTest.swift +++ /dev/null @@ -1,64 +0,0 @@ -import XCTest -import Nimble - -final class UserDescriptionTest: XCTestCase, XCTestCaseProvider { - static var allTests: [(String, (UserDescriptionTest) -> () throws -> Void)] { - return [ - ("testToMatcher_CustomFailureMessage", testToMatcher_CustomFailureMessage), - ("testNotToMatcher_CustomFailureMessage", testNotToMatcher_CustomFailureMessage), - ("testToNotMatcher_CustomFailureMessage", testToNotMatcher_CustomFailureMessage), - ("testToEventuallyMatch_CustomFailureMessage", testToEventuallyMatch_CustomFailureMessage), - ("testToEventuallyNotMatch_CustomFailureMessage", testToEventuallyNotMatch_CustomFailureMessage), - ("testToNotEventuallyMatch_CustomFailureMessage", testToNotEventuallyMatch_CustomFailureMessage), - ] - } - - func testToMatcher_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't equal!\n" + - "expected to match, got <1>") { - expect(1).to(MatcherFunc { _, _ in false }, description: "These aren't equal!") - } - } - - func testNotToMatcher_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't equal!\n" + - "expected to not match, got <1>") { - expect(1).notTo(MatcherFunc { _, _ in true }, description: "These aren't equal!") - } - } - - func testToNotMatcher_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't equal!\n" + - "expected to not match, got <1>") { - expect(1).toNot(MatcherFunc { _, _ in true }, description: "These aren't equal!") - } - } - - func testToEventuallyMatch_CustomFailureMessage() { - failsWithErrorMessage( - "These aren't eventually equal!\n" + - "expected to eventually equal <1>, got <0>") { - expect { 0 }.toEventually(equal(1), description: "These aren't eventually equal!") - } - } - - func testToEventuallyNotMatch_CustomFailureMessage() { - failsWithErrorMessage( - "These are eventually equal!\n" + - "expected to eventually not equal <1>, got <1>") { - expect { 1 }.toEventuallyNot(equal(1), description: "These are eventually equal!") - } - } - - func testToNotEventuallyMatch_CustomFailureMessage() { - failsWithErrorMessage( - "These are eventually equal!\n" + - "expected to eventually not equal <1>, got <1>") { - expect { 1 }.toEventuallyNot(equal(1), description: "These are eventually equal!") - } - } - -} diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h deleted file mode 100644 index 282993d..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/NimbleSpecHelper.h +++ /dev/null @@ -1,15 +0,0 @@ -@import Nimble; -#import "NimbleTests-Swift.h" - -// Use this when you want to verify the failure message for when an expectation fails -#define expectFailureMessage(MSG, BLOCK) \ -[NimbleHelper expectFailureMessage:(MSG) block:(BLOCK) file:@(__FILE__) line:__LINE__]; - -#define expectFailureMessages(MSGS, BLOCK) \ -[NimbleHelper expectFailureMessages:(MSGS) block:(BLOCK) file:@(__FILE__) line:__LINE__]; - - -// Use this when you want to verify the failure message with the nil message postfixed -// to it: " (use beNil() to match nils)" -#define expectNilFailureMessage(MSG, BLOCK) \ -[NimbleHelper expectFailureMessageForNil:(MSG) block:(BLOCK) file:@(__FILE__) line:__LINE__]; diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m deleted file mode 100644 index 1146920..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAllPassTest.m +++ /dev/null @@ -1,38 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCAllPassTest : XCTestCase - -@end - -@implementation ObjCAllPassTest - -- (void)testPositiveMatches { - expect(@[@1, @2, @3,@4]).to(allPass(beLessThan(@5))); - expect(@[@1, @2, @3,@4]).toNot(allPass(beGreaterThan(@5))); - - expect([NSSet setWithArray:@[@1, @2, @3,@4]]).to(allPass(beLessThan(@5))); - expect([NSSet setWithArray:@[@1, @2, @3,@4]]).toNot(allPass(beGreaterThan(@5))); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to all be less than <3>, but failed first at element" - " <3> in <[1, 2, 3, 4]>", ^{ - expect(@[@1, @2, @3,@4]).to(allPass(beLessThan(@3))); - }); - expectFailureMessage(@"expected to not all be less than <5>", ^{ - expect(@[@1, @2, @3,@4]).toNot(allPass(beLessThan(@5))); - }); - expectFailureMessage(@"expected to not all be less than <5>", ^{ - expect([NSSet setWithArray:@[@1, @2, @3,@4]]).toNot(allPass(beLessThan(@5))); - }); - expectFailureMessage(@"allPass only works with NSFastEnumeration" - " (NSArray, NSSet, ...) of NSObjects, got <3>", ^{ - expect(@3).to(allPass(beLessThan(@5))); - }); - expectFailureMessage(@"allPass only works with NSFastEnumeration" - " (NSArray, NSSet, ...) of NSObjects, got <3>", ^{ - expect(@3).toNot(allPass(beLessThan(@5))); - }); -} -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m deleted file mode 100644 index f052e74..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCAsyncTest.m +++ /dev/null @@ -1,55 +0,0 @@ -#import -#import -#import "NimbleSpecHelper.h" - -@interface ObjCAsyncTest : XCTestCase - -@end - -@implementation ObjCAsyncTest - -- (void)testAsync { - __block id obj = @1; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - obj = nil; - }); - expect(obj).toEventually(beNil()); -} - - -- (void)testAsyncWithCustomTimeout { - __block id obj = nil; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - obj = @1; - }); - expect(obj).withTimeout(5).toEventuallyNot(beNil()); -} - -- (void)testAsyncCallback { - waitUntil(^(void (^done)(void)){ - done(); - }); - - expectFailureMessage(@"Waited more than 1.0 second", ^{ - waitUntil(^(void (^done)(void)){ /* ... */ }); - }); - - expectFailureMessage(@"Waited more than 0.01 seconds", ^{ - waitUntilTimeout(0.01, ^(void (^done)(void)){ - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - [NSThread sleepForTimeInterval:0.1]; - done(); - }); - }); - }); - - expectFailureMessage(@"expected to equal , got ", ^{ - waitUntil(^(void (^done)(void)){ - [NSThread sleepForTimeInterval:0.1]; - expect(@"hello").to(equal(@"goodbye")); - done(); - }); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m deleted file mode 100644 index f5fca2d..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeAnInstanceOfTest.m +++ /dev/null @@ -1,34 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeAnInstanceOfTest : XCTestCase -@end - -@implementation ObjCBeAnInstanceOfTest - -- (void)testPositiveMatches { - NSNull *obj = [NSNull null]; - expect(obj).to(beAnInstanceOf([NSNull class])); - expect(@1).toNot(beAnInstanceOf([NSNull class])); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be an instance of NSNull, got <__NSCFNumber instance>", ^{ - expect(@1).to(beAnInstanceOf([NSNull class])); - }); - expectFailureMessage(@"expected to not be an instance of NSNull, got ", ^{ - expect([NSNull null]).toNot(beAnInstanceOf([NSNull class])); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be an instance of NSNull, got ", ^{ - expect(nil).to(beAnInstanceOf([NSNull class])); - }); - - expectNilFailureMessage(@"expected to not be an instance of NSNull, got ", ^{ - expect(nil).toNot(beAnInstanceOf([NSNull class])); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m deleted file mode 100644 index c33d643..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeCloseToTest.m +++ /dev/null @@ -1,47 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeCloseToTest : XCTestCase - -@end - -@implementation ObjCBeCloseToTest - -- (void)testPositiveMatches { - expect(@1.2).to(beCloseTo(@1.2001)); - expect(@1.2).to(beCloseTo(@2).within(10)); - expect(@2).toNot(beCloseTo(@1)); - expect(@1.00001).toNot(beCloseTo(@1).within(0.00000001)); - - expect(1.2).to(beCloseTo(1.2001)); - expect(1.2).to(beCloseTo(2).within(10)); - expect(2).toNot(beCloseTo(1)); - expect(1.00001).toNot(beCloseTo(1).within(0.00000001)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be close to <0> (within 0.001), got <1>", ^{ - expect(@1).to(beCloseTo(@0)); - }); - expectFailureMessage(@"expected to not be close to <0> (within 0.001), got <0.0001>", ^{ - expect(@(0.0001)).toNot(beCloseTo(@0)); - }); - expectFailureMessage(@"expected to be close to <0> (within 0.001), got <1>", ^{ - expect(1).to(beCloseTo(0)); - }); - expectFailureMessage(@"expected to not be close to <0> (within 0.001), got <0.0001>", ^{ - expect(0.0001).toNot(beCloseTo(0)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be close to <0> (within 0.001), got ", ^{ - expect(nil).to(beCloseTo(@0)); - }); - expectNilFailureMessage(@"expected to not be close to <0> (within 0.001), got ", ^{ - expect(nil).toNot(beCloseTo(@0)); - }); -} - - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m deleted file mode 100644 index 723d642..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeEmptyTest.m +++ /dev/null @@ -1,89 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeEmptyTest : XCTestCase -@end - -@implementation ObjCBeEmptyTest - -- (void)testPositiveMatches { - expect(@[]).to(beEmpty()); - expect(@"").to(beEmpty()); - expect(@{}).to(beEmpty()); - expect([NSSet set]).to(beEmpty()); - expect([NSIndexSet indexSet]).to(beEmpty()); - expect([NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory]).to(beEmpty()); - - expect(@[@1, @2]).toNot(beEmpty()); - expect(@"a").toNot(beEmpty()); - expect(@{@"key": @"value"}).toNot(beEmpty()); - expect([NSSet setWithObject:@1]).toNot(beEmpty()); - expect([NSIndexSet indexSetWithIndex:1]).toNot(beEmpty()); - - NSHashTable *table = [NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]; - [table addObject:@1]; - expect(table).toNot(beEmpty()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be empty, got ", ^{ - expect(@"foo").to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <(1)>", ^{ - expect(@[@1]).to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <{key = value;}>", ^{ - expect(@{@"key": @"value"}).to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <{(1)}>", ^{ - expect([NSSet setWithObject:@1]).to(beEmpty()); - }); - expectFailureMessage(@"expected to be empty, got <(1)>", ^{ - expect([NSIndexSet indexSetWithIndex:1]).to(beEmpty()); - }); - NSHashTable *table = [NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]; - [table addObject:@1]; - NSString *tableString = [[table description] stringByReplacingOccurrencesOfString:@"\n" withString:@""]; - expectFailureMessage(([NSString stringWithFormat:@"expected to be empty, got <%@>", tableString]), ^{ - expect(table).to(beEmpty()); - }); - - expectFailureMessage(@"expected to not be empty, got <>", ^{ - expect(@"").toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <()>", ^{ - expect(@[]).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <{}>", ^{ - expect(@{}).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <{(1)}>", ^{ - expect([NSSet setWithObject:@1]).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got <(1)>", ^{ - expect([NSIndexSet indexSetWithIndex:1]).toNot(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty, got ", ^{ - expect([NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]).toNot(beEmpty()); - }); -} - -- (void)testItDoesNotMatchNil { - expectNilFailureMessage(@"expected to be empty, got ", ^{ - expect(nil).to(beEmpty()); - }); - expectNilFailureMessage(@"expected to not be empty, got ", ^{ - expect(nil).toNot(beEmpty()); - }); -} - -- (void)testItReportsTypesItMatchesAgainst { - expectFailureMessage(@"expected to be empty (only works for NSArrays, NSSets, NSIndexSets, NSDictionaries, NSHashTables, and NSStrings), got __NSCFNumber type", ^{ - expect(@1).to(beEmpty()); - }); - expectFailureMessage(@"expected to not be empty (only works for NSArrays, NSSets, NSIndexSets, NSDictionaries, NSHashTables, and NSStrings), got __NSCFNumber type", ^{ - expect(@1).toNot(beEmpty()); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m deleted file mode 100644 index 5a5bce8..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalseTest.m +++ /dev/null @@ -1,46 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeFalseTest : XCTestCase - -@end - -@implementation ObjCBeFalseTest - -- (void)testPositiveMatches { - expect(@NO).to(beFalse()); - expect(@YES).toNot(beFalse()); - - expect(false).to(beFalse()); - expect(true).toNot(beFalse()); - - expect(NO).to(beFalse()); - expect(YES).toNot(beFalse()); - - expect(10).toNot(beFalse()); -} - -- (void)testNegativeMatches { - expectNilFailureMessage(@"expected to be false, got ", ^{ - expect(nil).to(beFalse()); - }); - expectNilFailureMessage(@"expected to not be false, got ", ^{ - expect(nil).toNot(beFalse()); - }); - - expectFailureMessage(@"expected to be false, got <1>", ^{ - expect(true).to(beFalse()); - }); - expectFailureMessage(@"expected to not be false, got <0>", ^{ - expect(false).toNot(beFalse()); - }); - - expectFailureMessage(@"expected to be false, got <1>", ^{ - expect(YES).to(beFalse()); - }); - expectFailureMessage(@"expected to not be false, got <0>", ^{ - expect(NO).toNot(beFalse()); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m deleted file mode 100644 index f3f5c98..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeFalsyTest.m +++ /dev/null @@ -1,58 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeFalsyTest : XCTestCase - -@end - -@implementation ObjCBeFalsyTest - -- (void)testPositiveMatches { - expect(@NO).to(beFalsy()); - expect(@YES).toNot(beFalsy()); - expect(nil).to(beFalsy()); - - expect(true).toNot(beFalsy()); - expect(false).to(beFalsy()); - - expect(YES).toNot(beFalsy()); - expect(NO).to(beFalsy()); - - expect(10).toNot(beFalsy()); - expect(0).to(beFalsy()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to not be falsy, got ", ^{ - expect(nil).toNot(beFalsy()); - }); - expectFailureMessage(@"expected to be falsy, got <1>", ^{ - expect(@1).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(@NO).toNot(beFalsy()); - }); - - expectFailureMessage(@"expected to be falsy, got <1>", ^{ - expect(true).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(false).toNot(beFalsy()); - }); - - expectFailureMessage(@"expected to be falsy, got <1>", ^{ - expect(YES).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(NO).toNot(beFalsy()); - }); - - expectFailureMessage(@"expected to be falsy, got <10>", ^{ - expect(10).to(beFalsy()); - }); - expectFailureMessage(@"expected to not be falsy, got <0>", ^{ - expect(0).toNot(beFalsy()); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m deleted file mode 100644 index 22cab3a..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanOrEqualToTest.m +++ /dev/null @@ -1,42 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeGreaterThanOrEqualToTest : XCTestCase - -@end - -@implementation ObjCBeGreaterThanOrEqualToTest - -- (void)testPositiveMatches { - expect(@2).to(beGreaterThanOrEqualTo(@2)); - expect(@2).toNot(beGreaterThanOrEqualTo(@3)); - expect(2).to(beGreaterThanOrEqualTo(0)); - expect(2).to(beGreaterThanOrEqualTo(2)); - expect(2).toNot(beGreaterThanOrEqualTo(3)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be greater than or equal to <0>, got <-1>", ^{ - expect(@(-1)).to(beGreaterThanOrEqualTo(@0)); - }); - expectFailureMessage(@"expected to not be greater than or equal to <1>, got <2>", ^{ - expect(@2).toNot(beGreaterThanOrEqualTo(@(1))); - }); - expectFailureMessage(@"expected to be greater than or equal to <0>, got <-1>", ^{ - expect(-1).to(beGreaterThanOrEqualTo(0)); - }); - expectFailureMessage(@"expected to not be greater than or equal to <1>, got <2>", ^{ - expect(2).toNot(beGreaterThanOrEqualTo(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be greater than or equal to <-1>, got ", ^{ - expect(nil).to(beGreaterThanOrEqualTo(@(-1))); - }); - expectNilFailureMessage(@"expected to not be greater than or equal to <1>, got ", ^{ - expect(nil).toNot(beGreaterThanOrEqualTo(@(1))); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m deleted file mode 100644 index 13336d5..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeGreaterThanTest.m +++ /dev/null @@ -1,41 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeGreaterThanTest : XCTestCase - -@end - -@implementation ObjCBeGreaterThanTest - -- (void)testPositiveMatches { - expect(@2).to(beGreaterThan(@1)); - expect(@2).toNot(beGreaterThan(@2)); - expect(@2).to(beGreaterThan(0)); - expect(@2).toNot(beGreaterThan(2)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be greater than <0>, got <-1>", ^{ - expect(@(-1)).to(beGreaterThan(@(0))); - }); - expectFailureMessage(@"expected to not be greater than <1>, got <0>", ^{ - expect(@0).toNot(beGreaterThan(@(1))); - }); - expectFailureMessage(@"expected to be greater than <0>, got <-1>", ^{ - expect(-1).to(beGreaterThan(0)); - }); - expectFailureMessage(@"expected to not be greater than <1>, got <0>", ^{ - expect(0).toNot(beGreaterThan(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be greater than <-1>, got ", ^{ - expect(nil).to(beGreaterThan(@(-1))); - }); - expectNilFailureMessage(@"expected to not be greater than <1>, got ", ^{ - expect(nil).toNot(beGreaterThan(@(1))); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m deleted file mode 100644 index a9d9d51..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeIdenticalToTest.m +++ /dev/null @@ -1,68 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeIdenticalToTest : XCTestCase - -@end - -@implementation ObjCBeIdenticalToTest - -- (void)testPositiveMatches { - NSNull *obj = [NSNull null]; - expect(obj).to(beIdenticalTo([NSNull null])); - expect(@2).toNot(beIdenticalTo(@3)); -} - -- (void)testNegativeMatches { - NSNull *obj = [NSNull null]; - expectFailureMessage(([NSString stringWithFormat:@"expected to be identical to <%p>, got <%p>", obj, @2]), ^{ - expect(@2).to(beIdenticalTo(obj)); - }); - expectFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got <%p>", obj, obj]), ^{ - expect(obj).toNot(beIdenticalTo(obj)); - }); -} - -- (void)testNilMatches { - NSNull *obj = [NSNull null]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnonnull" - expectNilFailureMessage(@"expected to be identical to nil, got nil", ^{ - expect(nil).to(beIdenticalTo(nil)); - }); -#pragma clang diagnostic pop - expectNilFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got nil", obj]), ^{ - expect(nil).toNot(beIdenticalTo(obj)); - }); -} - -- (void)testAliasPositiveMatches { - NSNull *obj = [NSNull null]; - expect(obj).to(be([NSNull null])); - expect(@2).toNot(be(@3)); -} - -- (void)testAliasNegativeMatches { - NSNull *obj = [NSNull null]; - expectFailureMessage(([NSString stringWithFormat:@"expected to be identical to <%p>, got <%p>", obj, @2]), ^{ - expect(@2).to(be(obj)); - }); - expectFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got <%p>", obj, obj]), ^{ - expect(obj).toNot(be(obj)); - }); -} - -- (void)testAliasNilMatches { - NSNull *obj = [NSNull null]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnonnull" - expectNilFailureMessage(@"expected to be identical to nil, got nil", ^{ - expect(nil).to(be(nil)); - }); -#pragma clang diagnostic pop - expectNilFailureMessage(([NSString stringWithFormat:@"expected to not be identical to <%p>, got nil", obj]), ^{ - expect(nil).toNot(be(obj)); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m deleted file mode 100644 index 7eee261..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeKindOfTest.m +++ /dev/null @@ -1,34 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeKindOfTest : XCTestCase - -@end - -@implementation ObjCBeKindOfTest - -- (void)testPositiveMatches { - NSMutableArray *array = [NSMutableArray array]; - expect(array).to(beAKindOf([NSArray class])); - expect(@1).toNot(beAKindOf([NSNull class])); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be a kind of NSNull, got <__NSCFNumber instance>", ^{ - expect(@1).to(beAKindOf([NSNull class])); - }); - expectFailureMessage(@"expected to not be a kind of NSNull, got ", ^{ - expect([NSNull null]).toNot(beAKindOf([NSNull class])); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be a kind of NSNull, got ", ^{ - expect(nil).to(beAKindOf([NSNull class])); - }); - expectNilFailureMessage(@"expected to not be a kind of NSNull, got ", ^{ - expect(nil).toNot(beAKindOf([NSNull class])); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m deleted file mode 100644 index 4a738ec..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanOrEqualToTest.m +++ /dev/null @@ -1,43 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeLessThanOrEqualToTest : XCTestCase - -@end - -@implementation ObjCBeLessThanOrEqualToTest - -- (void)testPositiveMatches { - expect(@2).to(beLessThanOrEqualTo(@2)); - expect(@2).toNot(beLessThanOrEqualTo(@1)); - expect(2).to(beLessThanOrEqualTo(2)); - expect(2).toNot(beLessThanOrEqualTo(1)); - expect(2).toNot(beLessThanOrEqualTo(0)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be less than or equal to <1>, got <2>", ^{ - expect(@2).to(beLessThanOrEqualTo(@1)); - }); - expectFailureMessage(@"expected to not be less than or equal to <1>, got <1>", ^{ - expect(@1).toNot(beLessThanOrEqualTo(@1)); - }); - - expectFailureMessage(@"expected to be less than or equal to <1>, got <2>", ^{ - expect(2).to(beLessThanOrEqualTo(1)); - }); - expectFailureMessage(@"expected to not be less than or equal to <1>, got <1>", ^{ - expect(1).toNot(beLessThanOrEqualTo(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be less than or equal to <1>, got ", ^{ - expect(nil).to(beLessThanOrEqualTo(@1)); - }); - expectNilFailureMessage(@"expected to not be less than or equal to <-1>, got ", ^{ - expect(nil).toNot(beLessThanOrEqualTo(@(-1))); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m deleted file mode 100644 index 7ba38b2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeLessThanTest.m +++ /dev/null @@ -1,42 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeLessThanTest : XCTestCase - -@end - -@implementation ObjCBeLessThanTest - -- (void)testPositiveMatches { - expect(@2).to(beLessThan(@3)); - expect(@2).toNot(beLessThan(@2)); - expect(2).to(beLessThan(3)); - expect(2).toNot(beLessThan(2)); - expect(2).toNot(beLessThan(0)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be less than <0>, got <-1>", ^{ - expect(@(-1)).to(beLessThan(@0)); - }); - expectFailureMessage(@"expected to not be less than <1>, got <0>", ^{ - expect(@0).toNot(beLessThan(@1)); - }); - expectFailureMessage(@"expected to be less than <0>, got <-1>", ^{ - expect(-1).to(beLessThan(0)); - }); - expectFailureMessage(@"expected to not be less than <1>, got <0>", ^{ - expect(0).toNot(beLessThan(1)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to be less than <-1>, got ", ^{ - expect(nil).to(beLessThan(@(-1))); - }); - expectNilFailureMessage(@"expected to not be less than <1>, got ", ^{ - expect(nil).toNot(beLessThan(@1)); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m deleted file mode 100644 index a43ee50..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeNilTest.m +++ /dev/null @@ -1,24 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeNilTest : XCTestCase - -@end - -@implementation ObjCBeNilTest - -- (void)testPositiveMatches { - expect(nil).to(beNil()); - expect(@NO).toNot(beNil()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be nil, got <1>", ^{ - expect(@1).to(beNil()); - }); - expectFailureMessage(@"expected to not be nil, got ", ^{ - expect(nil).toNot(beNil()); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m deleted file mode 100644 index c669475..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTrueTest.m +++ /dev/null @@ -1,47 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeTrueTest : XCTestCase - -@end - -@implementation ObjCBeTrueTest - -- (void)testPositiveMatches { - expect(@YES).to(beTrue()); - expect(@NO).toNot(beTrue()); - expect(nil).toNot(beTrue()); - - expect(true).to(beTrue()); - expect(false).toNot(beTrue()); - - expect(YES).to(beTrue()); - expect(NO).toNot(beTrue()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be true, got <0>", ^{ - expect(@NO).to(beTrue()); - }); - expectFailureMessage(@"expected to be true, got ", ^{ - expect(nil).to(beTrue()); - }); - - expectFailureMessage(@"expected to be true, got <0>", ^{ - expect(false).to(beTrue()); - }); - - expectFailureMessage(@"expected to not be true, got <1>", ^{ - expect(true).toNot(beTrue()); - }); - - expectFailureMessage(@"expected to be true, got <0>", ^{ - expect(NO).to(beTrue()); - }); - - expectFailureMessage(@"expected to not be true, got <1>", ^{ - expect(YES).toNot(beTrue()); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m deleted file mode 100644 index 1ad7913..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeTruthyTest.m +++ /dev/null @@ -1,55 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeTruthyTest : XCTestCase - -@end - -@implementation ObjCBeTruthyTest - -- (void)testPositiveMatches { - expect(@YES).to(beTruthy()); - expect(@NO).toNot(beTruthy()); - expect(nil).toNot(beTruthy()); - - expect(true).to(beTruthy()); - expect(false).toNot(beTruthy()); - - expect(YES).to(beTruthy()); - expect(NO).toNot(beTruthy()); - - expect(10).to(beTruthy()); - expect(0).toNot(beTruthy()); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to be truthy, got ", ^{ - expect(nil).to(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <1>", ^{ - expect(@1).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(@NO).to(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(false).to(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <1>", ^{ - expect(true).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(NO).to(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <1>", ^{ - expect(YES).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to not be truthy, got <10>", ^{ - expect(10).toNot(beTruthy()); - }); - expectFailureMessage(@"expected to be truthy, got <0>", ^{ - expect(0).to(beTruthy()); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m deleted file mode 100644 index 5ca7be4..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCBeginWithTest.m +++ /dev/null @@ -1,37 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCBeginWithTest : XCTestCase - -@end - -@implementation ObjCBeginWithTest - -- (void)testPositiveMatches { - expect(@"hello world!").to(beginWith(@"hello")); - expect(@"hello world!").toNot(beginWith(@"world")); - - NSArray *array = @[@1, @2]; - expect(array).to(beginWith(@1)); - expect(array).toNot(beginWith(@2)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to begin with , got ", ^{ - expect(@"foo").to(beginWith(@"bar")); - }); - expectFailureMessage(@"expected to not begin with , got ", ^{ - expect(@"foo").toNot(beginWith(@"foo")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to begin with <1>, got ", ^{ - expect(nil).to(beginWith(@1)); - }); - expectNilFailureMessage(@"expected to not begin with <1>, got ", ^{ - expect(nil).toNot(beginWith(@1)); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m deleted file mode 100644 index b15d6c3..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainElementSatisfying.m +++ /dev/null @@ -1,64 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCContainElementSatisfyingTest : XCTestCase - -@end - -@implementation ObjCContainElementSatisfyingTest - -- (void)testPassingMatches { - NSArray *orderIndifferentArray = @[@1, @2, @3]; - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@1]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@2]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - - orderIndifferentArray = @[@3, @1, @2]; - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@1]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@2]; - })); - expect(orderIndifferentArray).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - - NSSet *orderIndifferentSet = [NSSet setWithObjects:@"turtle test", @"turtle assessment", nil]; - expect(orderIndifferentSet).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToString:@"turtle assessment"]; - })); -} - -- (void)testFailingMatches { - expectFailureMessage(@"expected to find object in collection that satisfies predicate", ^{ - expect(@[@1]).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@2]; - })); - }); - expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ - expect((nil)).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - }); - expectFailureMessage(@"containElementSatisfying must be provided an NSFastEnumeration object", ^{ - expect((@3)).to(containElementSatisfying(^BOOL(id object) { - return [object isEqualToNumber:@3]; - })); - }); -} - -- (void)testNegativeCases { - NSArray *orderIndifferentArray = @[@"puppies", @"kittens", @"turtles"]; - expect(orderIndifferentArray).toNot(containElementSatisfying(^BOOL(id object) { - return [object isEqualToString:@"armadillos"]; - })); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m deleted file mode 100644 index 92bb9f9..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCContainTest.m +++ /dev/null @@ -1,67 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCContainTest : XCTestCase - -@end - -@implementation ObjCContainTest - -- (void)testPositiveMatches { - NSArray *array = @[@1, @2]; - expect(array).to(contain(@1)); - expect(array).toNot(contain(@"HI")); - expect(@"String").to(contain(@"Str")); - expect(@"Other").toNot(contain(@"Str")); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to contain <3>, got <(1, 2)>", ^{ - expect((@[@1, @2])).to(contain(@3)); - }); - expectFailureMessage(@"expected to not contain <2>, got <(1, 2)>", ^{ - expect((@[@1, @2])).toNot(contain(@2)); - }); - - expectFailureMessage(@"expected to contain , got ", ^{ - expect(@"la").to(contain(@"hi")); - }); - expectFailureMessage(@"expected to not contain , got ", ^{ - expect(@"hihihi").toNot(contain(@"hi")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to contain <3>, got ", ^{ - expect(nil).to(contain(@3)); - }); - expectNilFailureMessage(@"expected to not contain <3>, got ", ^{ - expect(nil).toNot(contain(@3)); - }); - - expectNilFailureMessage(@"expected to contain , got ", ^{ - expect(nil).to(contain(@"hi")); - }); - expectNilFailureMessage(@"expected to not contain , got ", ^{ - expect(nil).toNot(contain(@"hi")); - }); -} - -- (void)testVariadicArguments { - NSArray *array = @[@1, @2]; - expect(array).to(contain(@1, @2)); - expect(array).toNot(contain(@"HI", @"whale")); - expect(@"String").to(contain(@"Str", @"ng")); - expect(@"Other").toNot(contain(@"Str", @"Oth")); - - - expectFailureMessage(@"expected to contain , got <(a, b, c)>", ^{ - expect(@[@"a", @"b", @"c"]).to(contain(@"a", @"bar")); - }); - - expectFailureMessage(@"expected to not contain , got <(a, b, c)>", ^{ - expect(@[@"a", @"b", @"c"]).toNot(contain(@"bar", @"b")); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m deleted file mode 100644 index b960f01..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEndWithTest.m +++ /dev/null @@ -1,37 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCEndWithTest : XCTestCase - -@end - -@implementation ObjCEndWithTest - -- (void)testPositiveMatches { - NSArray *array = @[@1, @2]; - expect(@"hello world!").to(endWith(@"world!")); - expect(@"hello world!").toNot(endWith(@"hello")); - expect(array).to(endWith(@2)); - expect(array).toNot(endWith(@1)); - expect(@1).toNot(contain(@"foo")); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to end with , got ", ^{ - expect(@"hello world!").to(endWith(@"?")); - }); - expectFailureMessage(@"expected to not end with , got ", ^{ - expect(@"hello world!").toNot(endWith(@"!")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to end with <1>, got ", ^{ - expect(nil).to(endWith(@1)); - }); - expectNilFailureMessage(@"expected to not end with <1>, got ", ^{ - expect(nil).toNot(endWith(@1)); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m deleted file mode 100644 index 6c20809..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCEqualTest.m +++ /dev/null @@ -1,94 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCEqualTest : XCTestCase - -@end - -@implementation ObjCEqualTest - -- (void)testPositiveMatches { - expect(@1).to(equal(@1)); - expect(@1).toNot(equal(@2)); - expect(@1).notTo(equal(@2)); - expect(@"hello").to(equal(@"hello")); - expect("hello").to(equal("hello")); - expect(NSMakeRange(0, 10)).to(equal(NSMakeRange(0, 10))); - expect(NSMakeRange(0, 10)).toNot(equal(NSMakeRange(0, 5))); - expect((NSInteger)1).to(equal((NSInteger)1)); - expect((NSInteger)1).toNot(equal((NSInteger)2)); - expect((NSUInteger)1).to(equal((NSUInteger)1)); - expect((NSUInteger)1).toNot(equal((NSUInteger)2)); - expect(0).to(equal(0)); - expect(1).to(equal(1)); - expect(1).toNot(equal(2)); - expect(1.0).to(equal(1.0)); // Note: not recommended, use beCloseTo() instead - expect(1.0).toNot(equal(2.0)); // Note: not recommended, use beCloseTo() instead - expect((float)1.0).to(equal((float)1.0)); // Note: not recommended, use beCloseTo() instead - expect((float)1.0).toNot(equal((float)2.0)); // Note: not recommended, use beCloseTo() instead - expect((double)1.0).to(equal((double)1.0)); // Note: not recommended, use beCloseTo() instead - expect((double)1.0).toNot(equal((double)2.0)); // Note: not recommended, use beCloseTo() instead - expect((long long)1).to(equal((long long)1)); - expect((long long)1).toNot(equal((long long)2)); - expect((unsigned long long)1).to(equal((unsigned long long)1)); - expect((unsigned long long)1).toNot(equal((unsigned long long)2)); -} - -- (void)testNimbleCurrentlyBoxesNumbersWhichAllowsImplicitTypeConversions { - expect(1).to(equal(1.0)); - expect((long long)1).to(equal((unsigned long long)1)); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect(@1).to(equal(@2)); - }); - expectFailureMessage(@"expected to not equal <1>, got <1>", ^{ - expect(@1).toNot(equal(@1)); - }); - expectFailureMessage(@"expected to not equal , got ", ^{ - expect("bar").toNot(equal("foo")); - }); - expectFailureMessage(@"expected to equal , got ", ^{ - expect(NSMakeRange(0, 10)).to(equal(NSMakeRange(0, 5))); - }); - - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((NSInteger)1).to(equal((NSInteger)2)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((NSUInteger)1).to(equal((NSUInteger)2)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect(1).to(equal(2)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect(1.0).to(equal(2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((float)1.0).to(equal((float)2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((double)1.0).to(equal((double)2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((long long)1.0).to(equal((long long)2.0)); - }); - expectFailureMessage(@"expected to equal <2>, got <1>", ^{ - expect((unsigned long long)1.0).to(equal((unsigned long long)2.0)); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to equal , got ", ^{ - expect(NULL).to(equal(NULL)); - }); - expectNilFailureMessage(@"expected to equal , got ", ^{ - expect(nil).to(equal(nil)); - }); - expectNilFailureMessage(@"expected to not equal , got ", ^{ - expect(nil).toNot(equal(nil)); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m deleted file mode 100644 index 31053c8..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCHaveCount.m +++ /dev/null @@ -1,174 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCHaveCountTest : XCTestCase - -@end - -@implementation ObjCHaveCountTest - -- (void)testHaveCountForNSArray { - expect(@[@1, @2, @3]).to(haveCount(@3)); - expect(@[@1, @2, @3]).notTo(haveCount(@1)); - - expect(@[]).to(haveCount(@0)); - expect(@[@1]).notTo(haveCount(@0)); - - expect(@[@1, @2, @3]).to(haveCount(3)); - expect(@[@1, @2, @3]).notTo(haveCount(1)); - - expect(@[]).to(haveCount(0)); - expect(@[@1]).notTo(haveCount(0)); - - expectFailureMessage(@"expected to have NSArray with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSArray with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSArray with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSArray with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(@[@1, @2, @3]).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSDictionary { - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(@3)); - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(@1)); - - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(3)); - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(1)); - - expectFailureMessage(@"expected to have NSDictionary with count 1, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSDictionary with count 3, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSDictionary with count 1, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSDictionary with count 3, got 3\nActual Value: {1 = 1;2 = 2;3 = 3;}", ^{ - expect(@{@"1":@1, @"2":@2, @"3":@3}).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSHashtable { - NSHashTable *const table = [NSHashTable hashTableWithOptions:NSPointerFunctionsStrongMemory]; - [table addObject:@1]; - [table addObject:@2]; - [table addObject:@3]; - - expect(table).to(haveCount(@3)); - expect(table).notTo(haveCount(@1)); - - expect(table).to(haveCount(3)); - expect(table).notTo(haveCount(1)); - - NSString *msg = [NSString stringWithFormat: - @"expected to have NSHashTable {[2] 2[12] 1[13] 3}with count 1, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).to(haveCount(@1)); - }); - - msg = [NSString stringWithFormat: - @"expected to not have NSHashTable {[2] 2[12] 1[13] 3}with count 3, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).notTo(haveCount(@3)); - }); - - - msg = [NSString stringWithFormat: - @"expected to have NSHashTable {[2] 2[12] 1[13] 3}with count 1, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).to(haveCount(1)); - }); - - msg = [NSString stringWithFormat: - @"expected to not have NSHashTable {[2] 2[12] 1[13] 3}with count 3, got 3\nActual Value: %@", - [table.description stringByReplacingOccurrencesOfString:@"\n" withString:@""]]; - expectFailureMessage(msg, ^{ - expect(table).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSSet { - NSSet *const set = [NSSet setWithArray:@[@1, @2, @3]]; - - expect(set).to(haveCount(@3)); - expect(set).notTo(haveCount(@1)); - expect(set).to(haveCount(3)); - expect(set).notTo(haveCount(1)); - - expectFailureMessage(@"expected to have NSSet with count 1, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSSet with count 3, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSSet with count 1, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSSet with count 3, got 3\nActual Value: {(3,1,2)}", ^{ - expect(set).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForNSIndexSet { - NSIndexSet *const set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]; - - expect(set).to(haveCount(@3)); - expect(set).notTo(haveCount(@1)); - expect(set).to(haveCount(3)); - expect(set).notTo(haveCount(1)); - - expectFailureMessage(@"expected to have NSIndexSet with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).to(haveCount(@1)); - }); - - expectFailureMessage(@"expected to not have NSIndexSet with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).notTo(haveCount(@3)); - }); - - expectFailureMessage(@"expected to have NSIndexSet with count 1, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).to(haveCount(1)); - }); - - expectFailureMessage(@"expected to not have NSIndexSet with count 3, got 3\nActual Value: (1, 2, 3)", ^{ - expect(set).notTo(haveCount(3)); - }); -} - -- (void)testHaveCountForUnsupportedTypes { - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFConstantString", ^{ - expect(@"string").to(haveCount(@6)); - }); - - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFNumber", ^{ - expect(@1).to(haveCount(@6)); - }); - - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFConstantString", ^{ - expect(@"string").to(haveCount(6)); - }); - - expectFailureMessage(@"expected to get type of NSArray, NSSet, NSDictionary, or NSHashTable, got __NSCFNumber", ^{ - expect(@1).to(haveCount(6)); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m deleted file mode 100644 index 2342ae4..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCMatchTest.m +++ /dev/null @@ -1,33 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCMatchTest : XCTestCase - -@end - -@implementation ObjCMatchTest - -- (void)testPositiveMatches { - expect(@"11:14").to(match(@"\\d{2}:\\d{2}")); - expect(@"hello").toNot(match(@"\\d{2}:\\d{2}")); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to match <\\d{2}:\\d{2}>, got ", ^{ - expect(@"hello").to(match(@"\\d{2}:\\d{2}")); - }); - expectFailureMessage(@"expected to not match <\\d{2}:\\d{2}>, got <11:22>", ^{ - expect(@"11:22").toNot(match(@"\\d{2}:\\d{2}")); - }); -} - -- (void)testNilMatches { - expectNilFailureMessage(@"expected to match <\\d{2}:\\d{2}>, got ", ^{ - expect(nil).to(match(@"\\d{2}:\\d{2}")); - }); - expectNilFailureMessage(@"expected to not match <\\d{2}:\\d{2}>, got ", ^{ - expect(nil).toNot(match(@"\\d{2}:\\d{2}")); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m deleted file mode 100644 index e64c2f2..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCRaiseExceptionTest.m +++ /dev/null @@ -1,178 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCRaiseExceptionTest : XCTestCase - -@end - -@implementation ObjCRaiseExceptionTest - -- (void)testPositiveMatches { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - expectAction(^{ @throw exception; }).to(raiseException()); - expectAction(^{ [exception raise]; }).to(raiseException()); - expectAction(^{ [exception raise]; }).to(raiseException().named(NSInvalidArgumentException)); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food")); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"key": @"value"})); - - expectAction(^{ }).toNot(raiseException()); -} - -- (void)testPositiveMatchesWithBlocks { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - expectAction(^{ [exception raise]; }).to(raiseException(). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"key": @"value"}). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); -} - -- (void)testNegativeMatches { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - - expectFailureMessage(@"expected to raise any exception, got no exception", ^{ - expectAction(^{ }).to(raiseException()); - }); - - expectFailureMessage(@"expected to raise exception with name , got no exception", ^{ - expectAction(^{ }).to(raiseException(). - named(@"foo")); - }); - - expectFailureMessage(@"expected to raise exception with name with reason , got no exception", ^{ - expectAction(^{ }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"cakes")); - }); - - expectFailureMessage(@"expected to raise exception with name with reason with userInfo <{k = v;}>, got no exception", ^{ - expectAction(^{ }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"k": @"v"})); - }); - - expectFailureMessage(@"expected to not raise any exception, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }", ^{ - expectAction(^{ [exception raise]; }).toNot(raiseException()); - }); -} - -- (void)testNegativeMatchesWithPassingBlocks { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - expectFailureMessage(@"expected to raise exception that satisfies block, got no exception", ^{ - expect(exception).to(raiseException(). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"LOL")); - })); - }); - - NSString *outerFailureMessage = @"expected to raise exception that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); - - outerFailureMessage = @"expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(@"foo"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); - - outerFailureMessage = @"expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"bar"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); - - outerFailureMessage = @"expected to raise exception with name with reason with userInfo <{}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{}). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(NSInvalidArgumentException)); - })); - }); -} - -- (void)testNegativeMatchesWithNegativeBlocks { - __block NSException *exception = [NSException exceptionWithName:NSInvalidArgumentException - reason:@"No food" - userInfo:@{@"key": @"value"}]; - NSString *outerFailureMessage; - - NSString *const innerFailureMessage = @"expected to equal , got "; - outerFailureMessage = @"expected to raise exception with name that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"foo")); - })); - }); - - - outerFailureMessage = @"expected to raise exception with name with reason that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"foo")); - })); - }); - - - outerFailureMessage = @"expected to raise exception with name with reason with userInfo <{key = value;}> that satisfies block, got NSException { name=NSExceptionName(_rawValue: NSInvalidArgumentException), reason='No food', userInfo=[AnyHashable(\"key\"): value] }"; - expectFailureMessages((@[outerFailureMessage, innerFailureMessage]), ^{ - expectAction(^{ [exception raise]; }).to(raiseException(). - named(NSInvalidArgumentException). - reason(@"No food"). - userInfo(@{@"key": @"value"}). - satisfyingBlock(^(NSException *exception) { - expect(exception.name).to(equal(@"foo")); - })); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m deleted file mode 100644 index 4c80abc..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSatisfyAnyOfTest.m +++ /dev/null @@ -1,32 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCSatisfyAnyOfTest : XCTestCase - -@end - -@implementation ObjCSatisfyAnyOfTest - -- (void)testPositiveMatches { - expect(@2).to(satisfyAnyOf(equal(@2), equal(@3))); - expect(@2).toNot(satisfyAnyOf(equal(@3), equal(@16))); - expect(@[@1, @2, @3]).to(satisfyAnyOf(equal(@[@1, @2, @3]), allPass(beLessThan(@4)))); - expect(@NO).to(satisfyAnyOf(beTrue(), beFalse())); - expect(@YES).to(satisfyAnyOf(beTrue(), beFalse())); -} - -- (void)testNegativeMatches { - expectFailureMessage(@"expected to match one of: {equal <3>}, or {equal <4>}, or {equal <5>}, got 2", ^{ - expect(@2).to(satisfyAnyOf(equal(@3), equal(@4), equal(@5))); - }); - - expectFailureMessage(@"expected to match one of: {all be less than <4>, but failed first at element" - " <5> in <[5, 6, 7]>}, or {equal <(1, 2, 3, 4)>}, got (5,6,7)", ^{ - expect(@[@5, @6, @7]).to(satisfyAnyOf(allPass(beLessThan(@4)), equal(@[@1, @2, @3, @4]))); - }); - - expectFailureMessage(@"satisfyAnyOf must be called with at least one matcher", ^{ - expect(@"turtles").to(satisfyAnyOf()); - }); -} -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m deleted file mode 100644 index 2aae816..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCSyncTest.m +++ /dev/null @@ -1,21 +0,0 @@ -#import -#import -#import "NimbleSpecHelper.h" - -@interface ObjCSyncTest : XCTestCase - -@end - -@implementation ObjCSyncTest - -- (void)testFailureExpectation { - expectFailureMessage(@"fail() always fails", ^{ - fail(); - }); - - expectFailureMessage(@"This always fails", ^{ - failWithMessage(@"This always fails"); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m deleted file mode 100644 index ffb5407..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjCUserDescriptionTest.m +++ /dev/null @@ -1,52 +0,0 @@ -#import -#import "NimbleSpecHelper.h" - -@interface ObjCUserDescriptionTest : XCTestCase - -@end - -@implementation ObjCUserDescriptionTest - -- (void)testToWithDescription { - expectFailureMessage(@"These are equal!\n" - "expected to equal <2>, got <1>", ^{ - expect(@1).toWithDescription(equal(@2), @"These are equal!"); - }); -} - -- (void)testToNotWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to not equal <1>, got <1>", ^{ - expect(@1).toNotWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -- (void)testNotToWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to not equal <1>, got <1>", ^{ - expect(@1).notToWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -- (void)testToEventuallyWithDescription { - expectFailureMessage(@"These are equal!\n" - "expected to eventually equal <2>, got <1>", ^{ - expect(@1).toEventuallyWithDescription(equal(@2), @"These are equal!"); - }); -} - -- (void)testToEventuallyNotWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to eventually not equal <1>, got <1>", ^{ - expect(@1).toEventuallyNotWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -- (void)testToNotEventuallyWithDescription { - expectFailureMessage(@"These aren't equal!\n" - "expected to eventually not equal <1>, got <1>", ^{ - expect(@1).toNotEventuallyWithDescription(equal(@1), @"These aren't equal!"); - }); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m b/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m deleted file mode 100644 index 4ba2eae..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/Tests/NimbleTests/objc/ObjcStringersTest.m +++ /dev/null @@ -1,31 +0,0 @@ -@import XCTest; -@import Nimble; - -@interface ObjcStringersTest : XCTestCase - -@end - -@implementation ObjcStringersTest - -- (void)testItCanStringifyArrays { - NSArray *array = @[@1, @2, @3]; - NSString *result = NMBStringify(array); - - expect(result).to(equal(@"(1, 2, 3)")); -} - -- (void)testItCanStringifyIndexSets { - NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]; - NSString *result = NMBStringify(indexSet); - - expect(result).to(equal(@"(1, 2, 3)")); -} - -- (void)testItRoundsLongDecimals { - NSNumber *num = @291.123782163; - NSString *result = NMBStringify(num); - - expect(result).to(equal(@"291.1238")); -} - -@end diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/script/release b/Carthage/Checkouts/Quick/Externals/Nimble/script/release deleted file mode 100755 index eb53530..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/script/release +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env sh -REMOTE_BRANCH=master -POD_NAME=Nimble -PODSPEC=Nimble.podspec - -POD=${COCOAPODS:-pod} - -function help { - echo "Usage: release VERSION RELEASE_NOTES [-f]" - echo - echo "VERSION should be the version to release, should not include the 'v' prefix" - echo "RELEASE_NOTES should be a file that lists all the release notes for this version" - echo " if file does not exist, creates a git-style commit with a diff as a comment" - echo - echo "FLAGS" - echo " -f Forces override of tag" - echo - echo " Example: ./release 1.0.0-rc.2 ./release-notes.txt" - echo - echo "HINT: use 'git diff ...HEAD' to build the release notes" - echo - exit 2 -} - -function die { - echo "[ERROR] $@" - echo - exit 1 -} - -if [ $# -lt 2 ]; then - help -fi - -VERSION=$1 -RELEASE_NOTES=$2 -FORCE_TAG=$3 - -VERSION_TAG="v$VERSION" - -echo "-> Verifying Local Directory for Release" - -if [ -z "`which $POD`" ]; then - die "Cocoapods is required to produce a release. Aborting." -fi -echo " > Cocoapods is installed" - -echo " > Is this a reasonable tag?" - -echo $VERSION_TAG | grep -q "^vv" -if [ $? -eq 0 ]; then - die "This tag ($VERSION) is an incorrect format. You should remove the 'v' prefix." -fi - -echo $VERSION_TAG | grep -q -E "^v\d+\.\d+\.\d+(-\w+(\.\d)?)?\$" -if [ $? -ne 0 ]; then - die "This tag ($VERSION) is an incorrect format. It should be in 'v{MAJOR}.{MINOR}.{PATCH}(-{PRERELEASE_NAME}.{PRERELEASE_VERSION})' form." -fi - -echo " > Is this version ($VERSION) unique?" -git describe --exact-match "$VERSION_TAG" > /dev/null 2>&1 -if [ $? -eq 0 ]; then - if [ -z "$FORCE_TAG" ]; then - die "This tag ($VERSION) already exists. Aborting. Append '-f' to override" - else - echo " > NO, but force was specified." - fi -else - echo " > Yes, tag is unique" -fi - -if [ ! -f "$RELEASE_NOTES" ]; then - echo " > Failed to find $RELEASE_NOTES. Prompting editor" - RELEASE_NOTES=/tmp/nimble.release.notes - LATEST_TAG=`git for-each-ref refs/tags --sort=-refname --format="%(refname:short)" | grep -E "^v\d+\.\d+\.\d+(-\w+(\.\d)?)?\$" | ruby -e 'puts STDIN.read.split("\n").sort { |a,b| Gem::Version.new(a.gsub(/^v/, "")) <=> Gem::Version.new(b.gsub(/^v/, "")) }.last'` - echo " > Latest tag ${LATEST_TAG}" - echo "${POD_NAME} v$VERSION" > $RELEASE_NOTES - echo "================" >> $RELEASE_NOTES - echo >> $RELEASE_NOTES - echo "# Changelog from ${LATEST_TAG}..HEAD" >> $RELEASE_NOTES - git log ${LATEST_TAG}..HEAD | sed -e 's/^/# /' >> $RELEASE_NOTES - $EDITOR $RELEASE_NOTES - diff -q $RELEASE_NOTES ${RELEASE_NOTES}.backup > /dev/null 2>&1 - STATUS=$? - rm ${RELEASE_NOTES}.backup - if [ $STATUS -eq 0 ]; then - rm $RELEASE_NOTES - die "No changes in release notes file. Aborting." - fi -fi -echo " > Release notes: $RELEASE_NOTES" - -if [ ! -f "$PODSPEC" ]; then - die "Cannot find podspec: $PODSPEC. Aborting." -fi -echo " > Podspec exists" - -git config --get user.signingkey > /dev/null || { - echo "[ERROR] No PGP found to sign tag. Aborting." - echo - echo " Creating a release requires signing the tag for security purposes. This allows users to verify the git cloned tree is from a trusted source." - echo " From a security perspective, it is not considered safe to trust the commits (including Author & Signed-off fields). It is easy for any" - echo " intermediate between you and the end-users to modify the git repository." - echo - echo " While not all users may choose to verify the PGP key for tagged releases. It is a good measure to ensure 'this is an official release'" - echo " from the official maintainers." - echo - echo " If you're creating your PGP key for the first time, use RSA with at least 4096 bits." - echo - echo "Related resources:" - echo " - Configuring your system for PGP: https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work" - echo " - Why: http://programmers.stackexchange.com/questions/212192/what-are-the-advantages-and-disadvantages-of-cryptographically-signing-commits-a" - echo - exit 2 -} -echo " > Found PGP key for git" - -# Verify cocoapods trunk ownership -pod trunk me | grep -q "$POD_NAME" || die "You do not have access to pod repository $POD_NAME. Aborting." -echo " > Verified ownership to $POD_NAME pod" - - -echo "--- Releasing version $VERSION (tag: $VERSION_TAG)..." - -function restore_podspec { - if [ -f "${PODSPEC}.backup" ]; then - mv -f ${PODSPEC}{.backup,} - fi -} - -echo "-> Ensuring no differences to origin/$REMOTE_BRANCH" -git fetch origin || die "Failed to fetch origin" -git diff --quiet HEAD "origin/$REMOTE_BRANCH" || die "HEAD is not aligned to origin/$REMOTE_BRANCH. Cannot update version safely" - - -echo "-> Setting podspec version" -cat "$PODSPEC" | grep 's.version' | grep -q "\"$VERSION\"" -SET_PODSPEC_VERSION=$? -if [ $SET_PODSPEC_VERSION -eq 0 ]; then - echo " > Podspec already set to $VERSION. Skipping." -else - sed -i.backup "s/s.version *= *\".*\"/s.version = \"$VERSION\"/g" "$PODSPEC" || { - restore_podspec - die "Failed to update version in podspec" - } - - git add ${PODSPEC} || { restore_podspec; die "Failed to add ${PODSPEC} to INDEX"; } - git commit -m "Bumping version to $VERSION" || { restore_podspec; die "Failed to push updated version: $VERSION"; } -fi - -if [ -z "$FORCE_TAG" ]; then - echo "-> Tagging version" - git tag -s "$VERSION_TAG" -F "$RELEASE_NOTES" || die "Failed to tag version" - echo "-> Pushing tag to origin" - git push origin "$VERSION_TAG" || die "Failed to push tag '$VERSION_TAG' to origin" -else - echo "-> Tagging version (force)" - git tag -f -s "$VERSION_TAG" -F "$RELEASE_NOTES" || die "Failed to tag version" - echo "-> Pushing tag to origin (force)" - git push origin "$VERSION_TAG" -f || die "Failed to push tag '$VERSION_TAG' to origin" -fi - -if [ $SET_PODSPEC_VERSION -ne 0 ]; then - git push origin "$REMOTE_BRANCH" || die "Failed to push to origin" - echo " > Pushed version to origin" -fi - -echo -echo "---------------- Released as $VERSION_TAG ----------------" -echo - -echo -echo "Pushing to pod trunk..." - -$POD trunk push "$PODSPEC" - -echo -echo "================ Finalizing the Release ================" -echo -echo " - Opening GitHub to mark this as a release..." -echo " - Paste the contents of $RELEASE_NOTES into the release notes. Tweak for GitHub styling." -echo " - Announce!" - -open "https://github.com/Quick/Nimble/releases/new?tag=$VERSION_TAG" - -rm ${PODSPEC}.backup diff --git a/Carthage/Checkouts/Quick/Externals/Nimble/test b/Carthage/Checkouts/Quick/Externals/Nimble/test deleted file mode 100755 index 8ea482e..0000000 --- a/Carthage/Checkouts/Quick/Externals/Nimble/test +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash - -GREEN="\033[0;32m" -CLEAR="\033[0m" - -if which xcodebuild > /dev/null; then - echo -e "Gathering ${GREEN}xcodebuild sdk versions${CLEAR}..." - BUILD_DIR=`pwd`/build - LATEST_IOS_SDK_VERSION=`xcodebuild -showsdks | grep iphonesimulator | cut -d ' ' -f 4 | ruby -e 'puts STDIN.read.chomp.split("\n").last'` - LATEST_TVOS_SDK_VERSION=`xcodebuild -showsdks | grep appletvsimulator | cut -d ' ' -f 4 | ruby -e 'puts STDIN.read.chomp.split("\n").last'` - LATEST_MACOS_SDK_VERSION=`xcodebuild -showsdks | grep 'macosx' | cut -d ' ' -f 3 | ruby -e 'puts STDIN.read.chomp.split("\n").last'` - BUILD_IOS_SDK_VERSION=${NIMBLE_BUILD_IOS_SDK_VERSION:-$LATEST_IOS_SDK_VERSION} - RUNTIME_IOS_SDK_VERSION=${NIMBLE_RUNTIME_IOS_SDK_VERSION:-$LATEST_IOS_SDK_VERSION} - BUILD_TVOS_SDK_VERSION=${NIMBLE_BUILD_TVOS_SDK_VERSION:-$LATEST_TVOS_SDK_VERSION} - RUNTIME_TVOS_SDK_VERSION=${NIMBLE_RUNTIME_TVOS_SDK_VERSION:-$LATEST_TVOS_SDK_VERSION} - BUILD_MACOS_SDK_VERSION=${NIMBLE_BUILD_MACOS_SDK_VERSION:-$LATEST_MACOS_SDK_VERSION} -fi - -set -e - -function color_if_overridden { - local actual=$1 - local env_var=$2 - if [ -z "$env_var" ]; then - printf "$actual" - else - printf "$GREEN$actual$CLEAR" - fi -} - -function print_env { - echo "=== Environment ===" - echo " iOS:" - echo " Latest iOS SDK: $LATEST_IOS_SDK_VERSION" - echo " Building with iOS SDK: `color_if_overridden $BUILD_IOS_SDK_VERSION $NIMBLE_BUILD_IOS_SDK_VERSION`" - echo " Running with iOS SDK: `color_if_overridden $RUNTIME_IOS_SDK_VERSION $NIMBLE_RUNTIME_IOS_SDK_VERSION`" - echo - echo " tvOS:" - echo " Latest tvOS SDK: $LATEST_TVOS_SDK_VERSION" - echo " Building with tvOS SDK: `color_if_overridden $BUILD_TVOS_SDK_VERSION $NIMBLE_BUILD_TVOS_SDK_VERSION`" - echo " Running with tvOS SDK: `color_if_overridden $RUNTIME_TVOS_SDK_VERSION $NIMBLE_RUNTIME_TVOS_SDK_VERSION`" - echo - echo " macOS:" - echo " Latest macOS SDK: $LATEST_MACOS_SDK_VERSION" - echo " Building with macOS SDK: `color_if_overridden $BUILD_MACOS_SDK_VERSION $NIMBLE_BUILD_MACOS_SDK_VERSION`" - echo - echo "======= END =======" - echo -} - -function run { - echo -e "$GREEN==>$CLEAR $@" - "$@" -} - -function test_ios { - run osascript -e 'tell app "Simulator" to quit' - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-iOS" -configuration "Debug" -sdk "iphonesimulator$BUILD_IOS_SDK_VERSION" -destination "name=iPad Air,OS=$RUNTIME_IOS_SDK_VERSION" build-for-testing test-without-building - - run osascript -e 'tell app "Simulator" to quit' - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-iOS" -configuration "Debug" -sdk "iphonesimulator$BUILD_IOS_SDK_VERSION" -destination "name=iPhone 5s,OS=$RUNTIME_IOS_SDK_VERSION" build-for-testing test-without-building -} - -function test_tvos { - run osascript -e 'tell app "Simulator" to quit' - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-tvOS" -configuration "Debug" -sdk "appletvsimulator$BUILD_TVOS_SDK_VERSION" -destination "name=Apple TV 1080p,OS=$RUNTIME_TVOS_SDK_VERSION" build-for-testing test-without-building -} - -function test_macos { - run xcodebuild -project Nimble.xcodeproj -scheme "Nimble-macOS" -configuration "Debug" -sdk "macosx$BUILD_MACOS_SDK_VERSION" build-for-testing test-without-building -} - -function test_podspec { - echo "Gathering CocoaPods installation information..." - run bundle exec pod --version - echo "Linting podspec..." - run bundle exec pod lib lint Nimble.podspec -} - -function test_swiftpm { - if [ -d .build ]; then - run swift build --clean - fi - run swift build && swift test -} - -function test() { - test_ios - test_tvos - test_macos - - if which swift-test; then - test_swiftpm - else - echo "Not testing with the Swift Package Manager because swift-test is not installed" - fi -} - -function clean { - run rm -rf ~/Library/Developer/Xcode/DerivedData\; true -} - -function help { - echo "Usage: $0 COMMANDS" - echo - echo "COMMANDS:" - echo " clean - Cleans the derived data directory of Xcode. Assumes default location" - echo " ios - Runs the tests as an iOS device" - echo " tvos - Runs the tests as an tvOS device" - echo " macos - Runs the tests on macOS 10.10 (Yosemite and newer only)" - echo " podspec - Runs pod lib lint against the podspec to detect breaking changes" - echo " all - Runs the all tests of macos, ios and tvos" - echo " swiftpm - Runs the tests built by the Swift Package Manager" - echo " help - Displays this help" - echo - exit 1 -} - -function main { - print_env - for arg in $@ - do - case "$arg" in - clean) clean ;; - ios) test_ios ;; - tvos) test_tvos ;; - macos) test_macos ;; - podspec) test_podspec ;; - test) test ;; - all) test ;; - swiftpm) test_swiftpm ;; - help) help ;; - esac - done - - if [ $# -eq 0 ]; then - clean - test - fi -} - -main $@ diff --git a/Carthage/Checkouts/Quick/Gemfile b/Carthage/Checkouts/Quick/Gemfile deleted file mode 100644 index 621b34e..0000000 --- a/Carthage/Checkouts/Quick/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source "https://rubygems.org" - -gem 'cocoapods', '~> 1.1.0.rc.2' -gem 'danger' -gem 'danger-swiftlint' diff --git a/Carthage/Checkouts/Quick/Gemfile.lock b/Carthage/Checkouts/Quick/Gemfile.lock deleted file mode 100644 index 43c1ed9..0000000 --- a/Carthage/Checkouts/Quick/Gemfile.lock +++ /dev/null @@ -1,113 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (2.3.4) - activesupport (4.2.7.1) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.5.0) - public_suffix (~> 2.0, >= 2.0.2) - claide (1.0.1) - claide-plugins (0.9.2) - cork - nap - open4 (~> 1.3) - cocoapods (1.1.1) - activesupport (>= 4.0.2, < 5) - claide (>= 1.0.1, < 2.0) - cocoapods-core (= 1.1.1) - cocoapods-deintegrate (>= 1.0.1, < 2.0) - cocoapods-downloader (>= 1.1.2, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.1.1, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored (~> 1.2) - escape (~> 0.0.4) - fourflusher (~> 2.0.1) - gh_inspector (~> 1.0) - molinillo (~> 0.5.1) - nap (~> 1.0) - xcodeproj (>= 1.3.3, < 2.0) - cocoapods-core (1.1.1) - activesupport (>= 4.0.2, < 5) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - cocoapods-deintegrate (1.0.1) - cocoapods-downloader (1.1.3) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.0) - cocoapods-stats (1.0.0) - cocoapods-trunk (1.1.2) - nap (>= 0.8, < 2.0) - netrc (= 0.7.8) - cocoapods-try (1.1.0) - colored (1.2) - cork (0.2.0) - colored (~> 1.2) - danger (4.0.4) - claide (~> 1.0) - claide-plugins (>= 0.9.2) - colored (~> 1.2) - cork (~> 0.1) - faraday (~> 0.9) - faraday-http-cache (~> 1.0) - git (~> 1) - kramdown (~> 1.5) - octokit (~> 4.2) - terminal-table (~> 1) - danger-swiftlint (0.2.1) - danger - escape (0.0.4) - faraday (0.10.1) - multipart-post (>= 1.2, < 3) - faraday-http-cache (1.3.1) - faraday (~> 0.8) - fourflusher (2.0.1) - fuzzy_match (2.0.4) - gh_inspector (1.0.2) - git (1.3.0) - i18n (0.7.0) - json (1.8.3) - kramdown (1.13.2) - minitest (5.10.1) - molinillo (0.5.5) - multipart-post (2.0.0) - nanaimo (0.2.3) - nap (1.1.0) - netrc (0.7.8) - octokit (4.6.2) - sawyer (~> 0.8.0, >= 0.5.3) - open4 (1.3.4) - public_suffix (2.0.5) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) - terminal-table (1.7.3) - unicode-display_width (~> 1.1.1) - thread_safe (0.3.5) - tzinfo (1.2.2) - thread_safe (~> 0.1) - unicode-display_width (1.1.2) - xcodeproj (1.4.2) - CFPropertyList (~> 2.3.3) - activesupport (>= 3) - claide (>= 1.0.1, < 2.0) - colored (~> 1.2) - nanaimo (~> 0.2.3) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (~> 1.1.0.rc.2) - danger - danger-swiftlint - -BUNDLED WITH - 1.13.2 diff --git a/Carthage/Checkouts/Quick/LICENSE b/Carthage/Checkouts/Quick/LICENSE deleted file mode 100644 index e900165..0000000 --- a/Carthage/Checkouts/Quick/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2014, Quick Team - - 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. diff --git a/Carthage/Checkouts/Quick/Package.swift b/Carthage/Checkouts/Quick/Package.swift deleted file mode 100644 index 3b43f38..0000000 --- a/Carthage/Checkouts/Quick/Package.swift +++ /dev/null @@ -1,33 +0,0 @@ -import PackageDescription - -let package = Package( - name: "Quick", - targets: { -#if _runtime(_ObjC) - return [ - Target(name: "QuickSpecBase"), - Target(name: "Quick", dependencies: [ "QuickSpecBase" ]), - Target(name: "QuickTests", dependencies: [ "Quick" ]), - ] -#else - return [ - Target(name: "Quick"), - Target(name: "QuickTests", dependencies: [ "Quick" ]), - ] -#endif - }(), - exclude: { - var excludes = [ - "Sources/QuickObjectiveC", - "Tests/QuickTests/QuickAfterSuiteTests/AfterSuiteTests+ObjC.m", - "Tests/QuickTests/QuickFocusedTests/FocusedTests+ObjC.m", - "Tests/QuickTests/QuickTests/FunctionalTests/ObjC", - "Tests/QuickTests/QuickTests/Helpers", - "Tests/QuickTests/QuickTests/QuickConfigurationTests.m", - ] -#if !_runtime(_ObjC) - excludes.append("Sources/QuickSpecBase") -#endif - return excludes - }() -) diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.h b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.h deleted file mode 100644 index b934bcb..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// ___FILENAME___ -// ___PROJECTNAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -//___COPYRIGHT___ -// - -@import Quick; - -@interface ___FILEBASENAMEASIDENTIFIER___ : QuickConfiguration - -@end diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.m b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.m deleted file mode 100644 index cd3f486..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Objective-C/___FILEBASENAME___.m +++ /dev/null @@ -1,17 +0,0 @@ -// -// ___FILENAME___ -// ___PROJECTNAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -//___COPYRIGHT___ -// - -#import "___FILEBASENAMEASIDENTIFIER___.h" - -@implementation ___FILEBASENAMEASIDENTIFIER___ - -+ (void)configure:(Configuration *)configuration { - -} - -@end diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift deleted file mode 100644 index ae0acbb..0000000 --- a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/Swift/___FILEBASENAME___.swift +++ /dev/null @@ -1,15 +0,0 @@ -// -// ___FILENAME___ -// ___PROJECTNAME___ -// -// Created by ___FULLUSERNAME___ on ___DATE___. -//___COPYRIGHT___ -// - -import Quick - -class ___FILEBASENAMEASIDENTIFIER___: QuickConfiguration { - override class func configure(_ configuration: Configuration) { - - } -} diff --git a/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateIcon.icns b/Carthage/Checkouts/Quick/Quick Templates/Quick Configuration Class.xctemplate/TemplateIcon.icns deleted file mode 100644 index 5cb4ae999f06c9d5b5f3152a034c65f23137821e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529473 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%0D_YWU3_}$$FJi-@LKlix9Xblc5@0Ulz3?A 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

sQ)*)hjE6-th4DQ6FD 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 z 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%0DFa^EgylU>^0eB=M73U)*FY;CAq5Y8!W_ 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 z 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