[
  {
    "path": ".gitignore",
    "content": "# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n## Build generated\nbuild/\nDerivedData\n\n## Various settings\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata\n\n## Other\n*.xccheckout\n*.moved-aside\n*.xcuserstate\n*.xcscmblueprint\n\n## Obj-C/Swift specific\n*.hmap\n*.ipa\n\n# Swift Package Manager\n#\n# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.\n# Packages/\n.build/\n\n# CocoaPods\n#\n# We recommend against adding the Pods directory to your .gitignore. However\n# you should judge for yourself, the pros and cons are mentioned at:\n# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control\n#\n# Pods/\n\n# Carthage\n#\n# Add this line if you want to avoid checking in source code from Carthage dependencies.\n# Carthage/Checkouts\n\nCarthage/Build\n\n# fastlane\n#\n# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the \n# screenshots whenever they are needed.\n# For more information about the recommended setup visit:\n# https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md\n\nfastlane/report.xml\nfastlane/screenshots\n"
  },
  {
    "path": ".swift-version",
    "content": "4.0\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: objective-c\nosx_image: xcode9\nscript:\n  - set -o pipefail\n  - xcodebuild test -scheme OptionalExtensions-Mac | xcpretty -c\n  - xcodebuild test -scheme OptionalExtensions-iOS -sdk iphonesimulator -destination \"platform=iOS Simulator,name=iPhone 6s\" | xcpretty -c\n  - xcodebuild test -scheme OptionalExtensions-tvOS -sdk appletvsimulator -destination \"platform=tvOS Simulator,name=Apple TV 1080p\" | xcpretty -c\n  - xcodebuild build -scheme OptionalExtensions-watchOS -sdk watchsimulator -destination \"platform=watchOS Simulator,name=Apple Watch - 38mm\" | xcpretty -c\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 Rui Peres\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "OptionalExtensions/Source/OptionalExtensions.swift",
    "content": "//\n//  OptionalExtensions.swift\n//  OptionalExtensions\n//\n//  Created by Rui Peres on 30/12/2015.\n//  Copyright © 2015 Rui Peres. All rights reserved.\n//\n\npublic extension Optional {\n\n    func filter(_ predicate: (Wrapped) -> Bool) -> Optional {\n        return map(predicate) == .some(true) ? self : .none\n    }\n\n    func mapNil(_ predicate: () -> Wrapped) -> Optional {\n        return self ?? .some(predicate())\n    }\n\n    func flatMapNil(_ predicate: () -> Optional) -> Optional {\n        return self ?? predicate()\n    }\n\n    func then(_ f: (Wrapped) -> Void) {\n        if let wrapped = self { f(wrapped) }\n    }\n\n    func maybe<U>(_ defaultValue: U, f: (Wrapped) -> U) -> U {\n        return map(f) ?? defaultValue\n    }\n\n    func onSome(_ f: (Wrapped) -> Void) -> Optional {\n        then(f)\n        return self\n    }\n\n    func onNone(_ f: () -> Void) -> Optional {\n        if isNone { f() }\n        return self\n    }\n\n    var isSome: Bool {\n        return self != nil\n    }\n\n    var isNone: Bool {\n        return !isSome\n    }\n}\n"
  },
  {
    "path": "OptionalExtensions/Support/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n\t<key>NSPrincipalClass</key>\n\t<string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OptionalExtensions.playground/Contents.swift",
    "content": "//: Playground - noun: a place where people can play\n\nimport OptionalExtensions\n\n\n\n"
  },
  {
    "path": "OptionalExtensions.playground/contents.xcplayground",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<playground version='5.0' target-platform='osx'>\n    <timeline fileName='timeline.xctimeline'/>\n</playground>"
  },
  {
    "path": "OptionalExtensions.playground/timeline.xctimeline",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Timeline\n   version = \"3.0\">\n   <TimelineItems>\n   </TimelineItems>\n</Timeline>\n"
  },
  {
    "path": "OptionalExtensions.podspec",
    "content": "Pod::Spec.new do |s|\n    s.name             = \"OptionalExtensions\"\n    s.version          = \"3.0\"\n    s.summary          = \"Swift µframework with extensions for the Optional Type\"\n    s.description  = <<-EOS\n  Swift's Optional is pretty awesome, but it can always get better. This repository is an humble attempt to add some utility methods to it.\n    EOS\n\n    s.homepage         = \"https://github.com/RuiAAPeres/OptionalExtensions\"\n    s.license          = \"MIT\"\n    s.author           = \"Rui Peres\"\n    s.social_media_url = \"https://twitter.com/peres\"\n    s.source           = { :git => \"https://github.com/RuiAAPeres/OptionalExtensions.git\", :tag => s.version.to_s }\n\n    s.ios.deployment_target = \"8.0\"\n    s.osx.deployment_target = \"10.10\"\n    s.tvos.deployment_target = \"9.0\"\n    s.watchos.deployment_target = \"2.0\"\n\n    s.source_files  = \"OptionalExtensions/Source/*\"\nend\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t7DA053601C3DC5F3001F27B2 /* OptionalExtensions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7263FD81C3C6D1000F402F9 /* OptionalExtensions.framework */; };\n\t\t7DA053661C3DC627001F27B2 /* OptionalExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7120AB01C348DE700867028 /* OptionalExtensionsTests.swift */; };\n\t\t7DA053701C3DC675001F27B2 /* OptionalExtensions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7263FCA1C3C6C9E00F402F9 /* OptionalExtensions.framework */; };\n\t\t7DA053761C3DC699001F27B2 /* OptionalExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7120AB01C348DE700867028 /* OptionalExtensionsTests.swift */; };\n\t\tC7263FC41C3C6C2F00F402F9 /* OptionalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7EC1DD11C3450A200BA1261 /* OptionalExtensions.swift */; };\n\t\tC7263FD21C3C6CE100F402F9 /* OptionalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7EC1DD11C3450A200BA1261 /* OptionalExtensions.swift */; };\n\t\tC7263FE01C3C6D2700F402F9 /* OptionalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7EC1DD11C3450A200BA1261 /* OptionalExtensions.swift */; };\n\t\tC7EC1DD21C3450A200BA1261 /* OptionalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7EC1DD11C3450A200BA1261 /* OptionalExtensions.swift */; };\n\t\tE7120AB11C348DE700867028 /* OptionalExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7120AB01C348DE700867028 /* OptionalExtensionsTests.swift */; };\n\t\tE7120AB31C348DE700867028 /* OptionalExtensions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C7EC1DC41C34503A00BA1261 /* OptionalExtensions.framework */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t7DA053611C3DC5F3001F27B2 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C7EC1DBB1C34503A00BA1261 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = C7263FD71C3C6D1000F402F9;\n\t\t\tremoteInfo = \"OptionalExtensions Mac\";\n\t\t};\n\t\t7DA053711C3DC675001F27B2 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C7EC1DBB1C34503A00BA1261 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = C7263FC91C3C6C9E00F402F9;\n\t\t\tremoteInfo = \"OptionalExtensions tvOS\";\n\t\t};\n\t\tE7120AB41C348DE700867028 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C7EC1DBB1C34503A00BA1261 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = C7EC1DC31C34503A00BA1261;\n\t\t\tremoteInfo = OptionalExtensions;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t7DA0535B1C3DC5F3001F27B2 /* OptionalExtensions Mac Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = \"OptionalExtensions Mac Tests.xctest\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t7DA0536B1C3DC675001F27B2 /* OptionalExtensions tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = \"OptionalExtensions tvOS Tests.xctest\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tC7263FBC1C3C6BB200F402F9 /* OptionalExtensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OptionalExtensions.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tC7263FCA1C3C6C9E00F402F9 /* OptionalExtensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OptionalExtensions.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tC7263FD81C3C6D1000F402F9 /* OptionalExtensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OptionalExtensions.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tC77934771C41E79E00A7DAB7 /* OptionalExtensions.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = OptionalExtensions.playground; sourceTree = \"<group>\"; };\n\t\tC7EC1DC41C34503A00BA1261 /* OptionalExtensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OptionalExtensions.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tC7EC1DD11C3450A200BA1261 /* OptionalExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalExtensions.swift; sourceTree = \"<group>\"; };\n\t\tC7EC1DD41C345DD900BA1261 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE7120AAE1C348DE600867028 /* OptionalExtensions iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = \"OptionalExtensions iOS Tests.xctest\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE7120AB01C348DE700867028 /* OptionalExtensionsTests.swift */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.swift; path = OptionalExtensionsTests.swift; sourceTree = \"<group>\"; tabWidth = 4; };\n\t\tE7120AB21C348DE700867028 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t7DA053581C3DC5F3001F27B2 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7DA053601C3DC5F3001F27B2 /* OptionalExtensions.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t7DA053681C3DC675001F27B2 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7DA053701C3DC675001F27B2 /* OptionalExtensions.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FB81C3C6BB200F402F9 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FC61C3C6C9E00F402F9 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FD41C3C6D1000F402F9 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7EC1DC01C34503A00BA1261 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE7120AAB1C348DE600867028 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE7120AB31C348DE700867028 /* OptionalExtensions.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tC7EC1DBA1C34503A00BA1261 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC77934771C41E79E00A7DAB7 /* OptionalExtensions.playground */,\n\t\t\t\tC7EC1DC61C34503A00BA1261 /* OptionalExtensions */,\n\t\t\t\tE7120AAF1C348DE700867028 /* OptionalExtensionsTests */,\n\t\t\t\tC7EC1DC51C34503A00BA1261 /* Products */,\n\t\t\t);\n\t\t\tindentWidth = 4;\n\t\t\tsourceTree = \"<group>\";\n\t\t\ttabWidth = 4;\n\t\t};\n\t\tC7EC1DC51C34503A00BA1261 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC7EC1DC41C34503A00BA1261 /* OptionalExtensions.framework */,\n\t\t\t\tE7120AAE1C348DE600867028 /* OptionalExtensions iOS Tests.xctest */,\n\t\t\t\tC7263FBC1C3C6BB200F402F9 /* OptionalExtensions.framework */,\n\t\t\t\tC7263FCA1C3C6C9E00F402F9 /* OptionalExtensions.framework */,\n\t\t\t\tC7263FD81C3C6D1000F402F9 /* OptionalExtensions.framework */,\n\t\t\t\t7DA0535B1C3DC5F3001F27B2 /* OptionalExtensions Mac Tests.xctest */,\n\t\t\t\t7DA0536B1C3DC675001F27B2 /* OptionalExtensions tvOS Tests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC7EC1DC61C34503A00BA1261 /* OptionalExtensions */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC7EC1DD31C345DD900BA1261 /* Support */,\n\t\t\t\tC7EC1DD01C34509A00BA1261 /* Source */,\n\t\t\t);\n\t\t\tpath = OptionalExtensions;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC7EC1DD01C34509A00BA1261 /* Source */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC7EC1DD11C3450A200BA1261 /* OptionalExtensions.swift */,\n\t\t\t);\n\t\t\tpath = Source;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC7EC1DD31C345DD900BA1261 /* Support */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC7EC1DD41C345DD900BA1261 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = Support;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE7120AAF1C348DE700867028 /* OptionalExtensionsTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE7120AB01C348DE700867028 /* OptionalExtensionsTests.swift */,\n\t\t\t\tE7120AB21C348DE700867028 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = OptionalExtensionsTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\tC7263FB91C3C6BB200F402F9 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FC71C3C6C9E00F402F9 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FD51C3C6D1000F402F9 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7EC1DC11C34503A00BA1261 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t7DA0535A1C3DC5F3001F27B2 /* OptionalExtensions Mac Tests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 7DA053651C3DC5F3001F27B2 /* Build configuration list for PBXNativeTarget \"OptionalExtensions Mac Tests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t7DA053571C3DC5F3001F27B2 /* Sources */,\n\t\t\t\t7DA053581C3DC5F3001F27B2 /* Frameworks */,\n\t\t\t\t7DA053591C3DC5F3001F27B2 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t7DA053621C3DC5F3001F27B2 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"OptionalExtensions Mac Tests\";\n\t\t\tproductName = \"OptionalExtensions Mac Tests\";\n\t\t\tproductReference = 7DA0535B1C3DC5F3001F27B2 /* OptionalExtensions Mac Tests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t7DA0536A1C3DC675001F27B2 /* OptionalExtensions tvOS Tests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 7DA053731C3DC675001F27B2 /* Build configuration list for PBXNativeTarget \"OptionalExtensions tvOS Tests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t7DA053671C3DC675001F27B2 /* Sources */,\n\t\t\t\t7DA053681C3DC675001F27B2 /* Frameworks */,\n\t\t\t\t7DA053691C3DC675001F27B2 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t7DA053721C3DC675001F27B2 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"OptionalExtensions tvOS Tests\";\n\t\t\tproductName = \"OptionalExtensions tvOS Tests\";\n\t\t\tproductReference = 7DA0536B1C3DC675001F27B2 /* OptionalExtensions tvOS Tests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\tC7263FBB1C3C6BB200F402F9 /* OptionalExtensions watchOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = C7263FC11C3C6BB200F402F9 /* Build configuration list for PBXNativeTarget \"OptionalExtensions watchOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tC7263FB71C3C6BB200F402F9 /* Sources */,\n\t\t\t\tC7263FB81C3C6BB200F402F9 /* Frameworks */,\n\t\t\t\tC7263FB91C3C6BB200F402F9 /* Headers */,\n\t\t\t\tC7263FBA1C3C6BB200F402F9 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"OptionalExtensions watchOS\";\n\t\t\tproductName = \"OptionalExtensions WatchOS\";\n\t\t\tproductReference = C7263FBC1C3C6BB200F402F9 /* OptionalExtensions.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\tC7263FC91C3C6C9E00F402F9 /* OptionalExtensions tvOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = C7263FCF1C3C6C9F00F402F9 /* Build configuration list for PBXNativeTarget \"OptionalExtensions tvOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tC7263FC51C3C6C9E00F402F9 /* Sources */,\n\t\t\t\tC7263FC61C3C6C9E00F402F9 /* Frameworks */,\n\t\t\t\tC7263FC71C3C6C9E00F402F9 /* Headers */,\n\t\t\t\tC7263FC81C3C6C9E00F402F9 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"OptionalExtensions tvOS\";\n\t\t\tproductName = \"OptionalExtensions tvOS\";\n\t\t\tproductReference = C7263FCA1C3C6C9E00F402F9 /* OptionalExtensions.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\tC7263FD71C3C6D1000F402F9 /* OptionalExtensions Mac */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = C7263FDD1C3C6D1100F402F9 /* Build configuration list for PBXNativeTarget \"OptionalExtensions Mac\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tC7263FD31C3C6D1000F402F9 /* Sources */,\n\t\t\t\tC7263FD41C3C6D1000F402F9 /* Frameworks */,\n\t\t\t\tC7263FD51C3C6D1000F402F9 /* Headers */,\n\t\t\t\tC7263FD61C3C6D1000F402F9 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"OptionalExtensions Mac\";\n\t\t\tproductName = \"OptionalExtensions Mac\";\n\t\t\tproductReference = C7263FD81C3C6D1000F402F9 /* OptionalExtensions.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\tC7EC1DC31C34503A00BA1261 /* OptionalExtensions iOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = C7EC1DCC1C34503A00BA1261 /* Build configuration list for PBXNativeTarget \"OptionalExtensions iOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tC7EC1DBF1C34503A00BA1261 /* Sources */,\n\t\t\t\tC7EC1DC01C34503A00BA1261 /* Frameworks */,\n\t\t\t\tC7EC1DC11C34503A00BA1261 /* Headers */,\n\t\t\t\tC7EC1DC21C34503A00BA1261 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"OptionalExtensions iOS\";\n\t\t\tproductName = OptionalExtensions;\n\t\t\tproductReference = C7EC1DC41C34503A00BA1261 /* OptionalExtensions.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\tE7120AAD1C348DE600867028 /* OptionalExtensions iOS Tests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E7120AB81C348DE700867028 /* Build configuration list for PBXNativeTarget \"OptionalExtensions iOS Tests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE7120AAA1C348DE600867028 /* Sources */,\n\t\t\t\tE7120AAB1C348DE600867028 /* Frameworks */,\n\t\t\t\tE7120AAC1C348DE600867028 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE7120AB51C348DE700867028 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"OptionalExtensions iOS Tests\";\n\t\t\tproductName = OptionalExtensionsTests;\n\t\t\tproductReference = E7120AAE1C348DE600867028 /* OptionalExtensions iOS Tests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tC7EC1DBB1C34503A00BA1261 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0720;\n\t\t\t\tLastUpgradeCheck = 0800;\n\t\t\t\tORGANIZATIONNAME = \"Rui Peres\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t7DA0535A1C3DC5F3001F27B2 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t\t7DA0536A1C3DC675001F27B2 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t\tC7263FBB1C3C6BB200F402F9 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t\tC7263FC91C3C6C9E00F402F9 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t\tC7263FD71C3C6D1000F402F9 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t\tC7EC1DC31C34503A00BA1261 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t\tE7120AAD1C348DE600867028 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.2;\n\t\t\t\t\t\tLastSwiftMigration = 0800;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = C7EC1DBE1C34503A00BA1261 /* Build configuration list for PBXProject \"OptionalExtensions\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = C7EC1DBA1C34503A00BA1261;\n\t\t\tproductRefGroup = C7EC1DC51C34503A00BA1261 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tC7EC1DC31C34503A00BA1261 /* OptionalExtensions iOS */,\n\t\t\t\tE7120AAD1C348DE600867028 /* OptionalExtensions iOS Tests */,\n\t\t\t\tC7263FD71C3C6D1000F402F9 /* OptionalExtensions Mac */,\n\t\t\t\t7DA0535A1C3DC5F3001F27B2 /* OptionalExtensions Mac Tests */,\n\t\t\t\tC7263FC91C3C6C9E00F402F9 /* OptionalExtensions tvOS */,\n\t\t\t\t7DA0536A1C3DC675001F27B2 /* OptionalExtensions tvOS Tests */,\n\t\t\t\tC7263FBB1C3C6BB200F402F9 /* OptionalExtensions watchOS */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t7DA053591C3DC5F3001F27B2 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t7DA053691C3DC675001F27B2 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FBA1C3C6BB200F402F9 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FC81C3C6C9E00F402F9 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FD61C3C6D1000F402F9 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7EC1DC21C34503A00BA1261 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE7120AAC1C348DE600867028 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t7DA053571C3DC5F3001F27B2 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7DA053661C3DC627001F27B2 /* OptionalExtensionsTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t7DA053671C3DC675001F27B2 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7DA053761C3DC699001F27B2 /* OptionalExtensionsTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FB71C3C6BB200F402F9 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC7263FC41C3C6C2F00F402F9 /* OptionalExtensions.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FC51C3C6C9E00F402F9 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC7263FD21C3C6CE100F402F9 /* OptionalExtensions.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7263FD31C3C6D1000F402F9 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC7263FE01C3C6D2700F402F9 /* OptionalExtensions.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tC7EC1DBF1C34503A00BA1261 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC7EC1DD21C3450A200BA1261 /* OptionalExtensions.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE7120AAA1C348DE600867028 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE7120AB11C348DE700867028 /* OptionalExtensionsTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t7DA053621C3DC5F3001F27B2 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = C7263FD71C3C6D1000F402F9 /* OptionalExtensions Mac */;\n\t\t\ttargetProxy = 7DA053611C3DC5F3001F27B2 /* PBXContainerItemProxy */;\n\t\t};\n\t\t7DA053721C3DC675001F27B2 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = C7263FC91C3C6C9E00F402F9 /* OptionalExtensions tvOS */;\n\t\t\ttargetProxy = 7DA053711C3DC675001F27B2 /* PBXContainerItemProxy */;\n\t\t};\n\t\tE7120AB51C348DE700867028 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = C7EC1DC31C34503A00BA1261 /* OptionalExtensions iOS */;\n\t\t\ttargetProxy = E7120AB41C348DE700867028 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\t7DA053631C3DC5F3001F27B2 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = OptionalExtensionsTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-Mac-Tests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t7DA053641C3DC5F3001F27B2 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tINFOPLIST_FILE = OptionalExtensionsTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.11;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-Mac-Tests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t7DA053741C3DC675001F27B2 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = OptionalExtensionsTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-tvOS-Tests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.1;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t7DA053751C3DC675001F27B2 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = OptionalExtensionsTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-tvOS-Tests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.1;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC7263FC21C3C6BB200F402F9 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tAPPLICATION_EXTENSION_API_ONLY = YES;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-watchOS\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSDKROOT = watchos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 4;\n\t\t\t\tWATCHOS_DEPLOYMENT_TARGET = 2.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC7263FC31C3C6BB200F402F9 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tAPPLICATION_EXTENSION_API_ONLY = YES;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-watchOS\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSDKROOT = watchos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 4;\n\t\t\t\tWATCHOS_DEPLOYMENT_TARGET = 2.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC7263FD01C3C6C9F00F402F9 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-tvOS\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC7263FD11C3C6C9F00F402F9 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-tvOS\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC7263FDE1C3C6D1100F402F9 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tFRAMEWORK_VERSION = A;\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/Frameworks\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.10;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-Mac\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC7263FDF1C3C6D1100F402F9 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tFRAMEWORK_VERSION = A;\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/../Frameworks @loader_path/Frameworks\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.10;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-Mac\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC7EC1DCA1C34503A00BA1261 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC7EC1DCB1C34503A00BA1261 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC7EC1DCD1C34503A00BA1261 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-iOS\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC7EC1DCE1C34503A00BA1261 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = OptionalExtensions/Support/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-iOS\";\n\t\t\t\tPRODUCT_NAME = OptionalExtensions;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE7120AB61C348DE700867028 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = OptionalExtensionsTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-iOS-Tests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE7120AB71C348DE700867028 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = OptionalExtensionsTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"rp.OptionalExtensions-iOS-Tests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t7DA053651C3DC5F3001F27B2 /* Build configuration list for PBXNativeTarget \"OptionalExtensions Mac Tests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t7DA053631C3DC5F3001F27B2 /* Debug */,\n\t\t\t\t7DA053641C3DC5F3001F27B2 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t7DA053731C3DC675001F27B2 /* Build configuration list for PBXNativeTarget \"OptionalExtensions tvOS Tests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t7DA053741C3DC675001F27B2 /* Debug */,\n\t\t\t\t7DA053751C3DC675001F27B2 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC7263FC11C3C6BB200F402F9 /* Build configuration list for PBXNativeTarget \"OptionalExtensions watchOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC7263FC21C3C6BB200F402F9 /* Debug */,\n\t\t\t\tC7263FC31C3C6BB200F402F9 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC7263FCF1C3C6C9F00F402F9 /* Build configuration list for PBXNativeTarget \"OptionalExtensions tvOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC7263FD01C3C6C9F00F402F9 /* Debug */,\n\t\t\t\tC7263FD11C3C6C9F00F402F9 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC7263FDD1C3C6D1100F402F9 /* Build configuration list for PBXNativeTarget \"OptionalExtensions Mac\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC7263FDE1C3C6D1100F402F9 /* Debug */,\n\t\t\t\tC7263FDF1C3C6D1100F402F9 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC7EC1DBE1C34503A00BA1261 /* Build configuration list for PBXProject \"OptionalExtensions\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC7EC1DCA1C34503A00BA1261 /* Debug */,\n\t\t\t\tC7EC1DCB1C34503A00BA1261 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC7EC1DCC1C34503A00BA1261 /* Build configuration list for PBXNativeTarget \"OptionalExtensions iOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC7EC1DCD1C34503A00BA1261 /* Debug */,\n\t\t\t\tC7EC1DCE1C34503A00BA1261 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE7120AB81C348DE700867028 /* Build configuration list for PBXNativeTarget \"OptionalExtensions iOS Tests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE7120AB61C348DE700867028 /* Debug */,\n\t\t\t\tE7120AB71C348DE700867028 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = C7EC1DBB1C34503A00BA1261 /* Project object */;\n}\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:OptionalExtensions.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/xcshareddata/xcschemes/OptionalExtensions-Mac.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0800\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"C7263FD71C3C6D1000F402F9\"\n               BuildableName = \"OptionalExtensions.framework\"\n               BlueprintName = \"OptionalExtensions Mac\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"7DA0535A1C3DC5F3001F27B2\"\n               BuildableName = \"OptionalExtensions Mac Tests.xctest\"\n               BlueprintName = \"OptionalExtensions Mac Tests\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FD71C3C6D1000F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions Mac\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FD71C3C6D1000F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions Mac\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FD71C3C6D1000F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions Mac\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/xcshareddata/xcschemes/OptionalExtensions-iOS-Tests.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0800\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"NO\"\n            buildForArchiving = \"NO\"\n            buildForAnalyzing = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E7120AAD1C348DE600867028\"\n               BuildableName = \"OptionalExtensions iOS Tests.xctest\"\n               BlueprintName = \"OptionalExtensions iOS Tests\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E7120AAD1C348DE600867028\"\n               BuildableName = \"OptionalExtensions iOS Tests.xctest\"\n               BlueprintName = \"OptionalExtensions iOS Tests\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"E7120AAD1C348DE600867028\"\n            BuildableName = \"OptionalExtensions iOS Tests.xctest\"\n            BlueprintName = \"OptionalExtensions iOS Tests\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"E7120AAD1C348DE600867028\"\n            BuildableName = \"OptionalExtensions iOS Tests.xctest\"\n            BlueprintName = \"OptionalExtensions iOS Tests\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/xcshareddata/xcschemes/OptionalExtensions-iOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0800\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"C7EC1DC31C34503A00BA1261\"\n               BuildableName = \"OptionalExtensions.framework\"\n               BlueprintName = \"OptionalExtensions iOS\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"NO\"\n            buildForProfiling = \"NO\"\n            buildForArchiving = \"NO\"\n            buildForAnalyzing = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E7120AAD1C348DE600867028\"\n               BuildableName = \"OptionalExtensions iOS Tests.xctest\"\n               BlueprintName = \"OptionalExtensions iOS Tests\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E7120AAD1C348DE600867028\"\n               BuildableName = \"OptionalExtensions iOS Tests.xctest\"\n               BlueprintName = \"OptionalExtensions iOS Tests\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7EC1DC31C34503A00BA1261\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions iOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7EC1DC31C34503A00BA1261\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions iOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7EC1DC31C34503A00BA1261\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions iOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/xcshareddata/xcschemes/OptionalExtensions-tvOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0800\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"C7263FC91C3C6C9E00F402F9\"\n               BuildableName = \"OptionalExtensions.framework\"\n               BlueprintName = \"OptionalExtensions tvOS\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"7DA0536A1C3DC675001F27B2\"\n               BuildableName = \"OptionalExtensions tvOS Tests.xctest\"\n               BlueprintName = \"OptionalExtensions tvOS Tests\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FC91C3C6C9E00F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions tvOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FC91C3C6C9E00F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions tvOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FC91C3C6C9E00F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions tvOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OptionalExtensions.xcodeproj/xcshareddata/xcschemes/OptionalExtensions-watchOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0800\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"C7263FBB1C3C6BB200F402F9\"\n               BuildableName = \"OptionalExtensions.framework\"\n               BlueprintName = \"OptionalExtensions watchOS\"\n               ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FBB1C3C6BB200F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions watchOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FBB1C3C6BB200F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions watchOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C7263FBB1C3C6BB200F402F9\"\n            BuildableName = \"OptionalExtensions.framework\"\n            BlueprintName = \"OptionalExtensions watchOS\"\n            ReferencedContainer = \"container:OptionalExtensions.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "OptionalExtensions.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"container:OptionalExtensions.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "OptionalExtensionsTests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "OptionalExtensionsTests/OptionalExtensionsTests.swift",
    "content": "//\n//  OptionalExtensionsTests.swift\n//  OptionalExtensionsTests\n//\n//  Created by Alan Skipp on 30/12/2015.\n//  Copyright © 2015 Rui Peres. All rights reserved.\n//\n\nimport XCTest\nimport OptionalExtensions\n\nclass OptionalExtensionsTests: XCTestCase {\n    \n    // MARK: - filter\n    \n    func test_filter_whenPredicateMatches_thenReturnsOptionalValue() {\n        // given\n        let number: Int? = 3\n        \n        // when\n        let result = number.filter { $0 > 2 }\n        \n        // then\n        XCTAssertEqual(result, 3)\n    }\n    \n    func test_filter_whenPredicateDoesNotMatch_thenReturnsNil() {\n        // given\n        let number: Int? = 3\n        \n        // when\n        let result = number.filter { $0 > 3 }\n        \n        // then\n        XCTAssertNil(result)\n    }\n    \n    \n    // MARK: - mapNil\n    \n    func test_mapNil_whenInvokedWithNonNil_thenReturnsOriginalValue() {\n        // given\n        let number: Int? = 3\n        \n        // when\n        let result = number.mapNil { 5 }\n        \n        // then\n        XCTAssertEqual(result, 3)\n    }\n    \n    func test_mapNil_whenInvokedWithNil_thenReturnsReplacedValue() {\n        // given\n        let nilledNumber: Int? = nil\n        \n        // when\n        let result = nilledNumber.mapNil { 5 }\n        \n        // then\n        XCTAssertEqual(result, 5)\n    }\n    \n    // MARK: - flatMapNil\n    \n    func test_flatMapNil_whenInvokedWithNonNil_thenReturnsOriginalValue() {\n        // given\n        let number: Int? = 3\n        \n        // when\n        let result = number.flatMapNil { .some(2) }\n        \n        // then\n        XCTAssertEqual(result, .some(3))\n    }\n    \n    func test_flatMapNil_whenInvokedWithNil_thenReturnsReplacedValue() {\n        // given\n        let nilledNumber: Int? = nil\n        \n        // when\n        let result = nilledNumber.flatMapNil { .some(2) }\n        \n        // then\n        XCTAssertEqual(result, .some(2))\n    }\n\n    // MARK: - then\n    \n    func test_then_whenInvokedOnNonNilValue_thenOperationIsInvoked() {\n        // given\n        var testInt = 0\n        let nonNilledNumber: Int? = 3\n        \n        // when\n        nonNilledNumber.then { _ in testInt = 2 }\n        \n        // then\n        XCTAssertEqual(testInt, 2)\n    }\n    \n    func test_then_whenInvokedOnNilValue_thenOperationIsNotInvoked() {\n        // given\n        var testInt = 0\n        let nilledNumber: Int? = nil\n        \n        // when\n        nilledNumber.then { _ in testInt = 2 }\n        \n        // then\n        XCTAssertEqual(testInt, 0)\n    }\n    \n    // MARK: - onSome\n    \n    func test_onSome_whenInvokedOnNonNilValue_thenOperationIsInvoked_andOperationResultIsReturned() {\n        // given\n        var testInt = 0\n        let nonNilledNumber: Int? = 3\n        \n        // when\n        let result = nonNilledNumber.onSome { _ in testInt = 2 }\n        \n        // then\n        XCTAssertEqual(testInt, 2)\n        XCTAssertEqual(result, 3)\n    }\n    \n    func test_onSome_whenInvokedOnNilValue_thenOperationIsNotInvoked_andNilIsReturned() {\n        // given\n        var testInt = 0\n        let nilledNumber: Int? = nil\n        \n        // when\n        let result = nilledNumber.onSome { _ in testInt = 2 }\n        \n        // then\n        XCTAssertEqual(testInt, 0)\n        XCTAssertNil(result)\n    }\n    \n    // MARK: - onNone\n    \n    func test_onNone_whenInvokedOnNonNilValue_thenOperationIsNotInvoked_andOperationResultIsReturned() {\n        // given\n        var testInt = 0\n        let nonNilledNumber: Int? = 3\n        \n        // when\n        let result = nonNilledNumber.onNone { _ in testInt = 2 }\n        \n        // then\n        XCTAssertEqual(testInt, 0)\n        XCTAssertEqual(result, 3)\n    }\n    \n    func test_onNone_whenInvokedOnNilValue_thenOperationIsInvoked_andNilIsReturned() {\n        // given\n        var testInt = 0\n        let nilledNumber: Int? = nil\n        \n        // when\n        let result = nilledNumber.onNone { _ in testInt = 2 }\n        \n        // then\n        XCTAssertEqual(testInt, 2)\n        XCTAssertNil(result)\n    }\n    \n    // MARK: - isSome\n    \n    func test_isSome_whenInvokedOnNonNilValue_thenReturnsTrue() {\n        // given\n        let nonNilledNumber: Int? = 3\n        \n        // then\n        XCTAssertTrue(nonNilledNumber.isSome)\n    }\n    \n    func test_isSome_whenInvokedOnNilValue_thenReturnsFalse() {\n        // given\n        let nilledNumber: Int? = nil\n        \n        // then\n        XCTAssertFalse(nilledNumber.isSome)\n    }\n    \n    // MARK: - isNone\n    \n    func test_isNone_whenInvokedOnNonNilValue_thenReturnsFalse() {\n        // given\n        let nonNilledNumber: Int? = 3\n        \n        // then\n        XCTAssertFalse(nonNilledNumber.isNone)\n    }\n    \n    func test_isNone_whenInvokedOnNilValue_thenReturnsTrue() {\n        // given\n        let nilledNumber: Int? = nil\n        \n        // then\n        XCTAssertTrue(nilledNumber.isNone)\n    }\n    \n    // MARK: - maybe\n    \n    func test_maybe_whenInvokedOnNonNilValue_thenExecutesOperationAndReturnsItsResult() {\n        // given\n        let nonNilledNumber: Int? = 1\n        \n        // when\n        let result = nonNilledNumber.maybe(100) { $0 + 50 }\n        \n        // then\n        XCTAssertEqual(result, 51)\n    }\n    \n    func test_maybe_whenInvokedOnNilValue_thenDoesNotExecuteOperationAndReturnsDefaultValue() {\n        // given\n        let nilledNumber: Int? = nil\n        \n        // when\n        let result = nilledNumber.maybe(100) { $0 + 50 }\n        \n        // then\n        XCTAssertEqual(result, 100)\n    }\n}\n"
  },
  {
    "path": "README.md",
    "content": "# OptionalExtensions\n\n<a href=\"https://travis-ci.org/RuiAAPeres/OptionalExtensions\"><img src=\"https://travis-ci.org/RuiAAPeres/OptionalExtensions.svg?branch=master\"></a>\n<a href=\"https://github.com/Carthage/Carthage\"><img src=\"https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat\"></a>\n[![CocoaPods](https://img.shields.io/cocoapods/v/OptionalExtensions.svg)](https://cocoapods.org/)\n[![Swift 4.0](https://img.shields.io/badge/Swift-4.0-orange.svg?style=flat)](https://developer.apple.com/swift/)\n[![License MIT](https://img.shields.io/badge/License-MIT-lightgrey.svg?style=flat)](https://opensource.org/licenses/MIT)\n![](https://camo.githubusercontent.com/410f44c161ebf367eacb1fcce9121e336e211bc6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d696f732532302537432532306f737825323025374325323077617463686f7325323025374325323074766f732d6c69676874677265792e7376673f7374796c653d666c6174)\n\nWhy?\n----\n\nSwift's Optional is pretty awesome, but it can always get better. This repository is an humble attempt to add some utility methods to it.\n\nOperators\n--------\n\n* [filter](https://github.com/RuiAAPeres/OptionalExtensions#filter-wrapped---bool---optionalwrapped)\n* [mapNil](https://github.com/RuiAAPeres/OptionalExtensions#mapnil-void---wrapped---optionalwrapped)\n* [flatMapNil](https://github.com/RuiAAPeres/OptionalExtensions#flatmapnil-void---optionalwrapped---optionalwrapped)\n* [then](https://github.com/RuiAAPeres/OptionalExtensions#then-wrapped---void---void-similar-to-ts-foreach)\n* [maybe](https://github.com/RuiAAPeres/OptionalExtensions#maybe-u---wrapped---u---u-similar-to-haskells-maybe)\n* [onSome](https://github.com/RuiAAPeres/OptionalExtensions#onsome-wrapped---void---optionalwrapped-injects-a-side-effect-in-the-some-branch)\n* [onNone](https://github.com/RuiAAPeres/OptionalExtensions#onnone-void---void---optionalwrapped-injects-a-side-effect-in-the-none-branch)\n* [isSome](https://github.com/RuiAAPeres/OptionalExtensions#issome-bool)\n* [isNone](https://github.com/RuiAAPeres/OptionalExtensions#isnone-bool)\n\n#### `filter: (Wrapped -> Bool) -> Optional<Wrapped>`\n\n```swift\nlet number: Int? = 3\n\nlet biggerThan2 = number.filter { $0 > 2 } // .Some(3)\n\nlet biggerThan3 = number.filter { $0 > 3 } // .None\n```\n\n#### `mapNil: (Void -> Wrapped) -> Optional<Wrapped>`\n\n```swift\nlet number: Int? = 3\nnumber.mapNil { 2 } // .Some(3)\n\nlet nilledNumber: Int? = nil\nnilledNumber.mapNil { 2 } // .Some(2)\n```\n\n#### `flatMapNil: (Void -> Optional<Wrapped>) -> Optional<Wrapped>`\n\n```swift\nlet number: Int? = 3\nnumber.flatMapNil { .Some(2) } // .Some(3)\n\nlet nilledNumber: Int? = nil\nnilledNumber.flatMapNil { .Some(2) } // .Some(2)\n```\n\n#### `then: (Wrapped -> Void) -> Void` (similar to `[T]`'s `forEach`)\n\n```swift\nlet number: Int? = 3\nnumber.then { print($0) } // prints \"3\"\n\nlet nilledNumber: Int? = nil\nnilledNumber.then { print($0) } // print won't be called\n```\n\n#### `maybe: U -> (Wrapped -> U) -> U` (similar to Haskell's `maybe`)\n\n```swift\nlet number: Int? = 3\nnumber.maybe(100) { $0 + 1 } // 4\n\nlet nilledNumber: Int? = nil\nnilledNumber.maybe(100) { $0 + 1 } // 100\n```\n\n#### `onSome: (Wrapped -> Void) -> Optional<Wrapped>` (injects a side effect in the `.Some` branch)\n\n```swift\nlet number: Int? = 3\nlet sameNumber = number.onSome { print($0) } // prints \"3\" & returns .Some(3)\n\nlet nilledNumber: Int? = nil\nlet sameNilledNumber = nilledNumber.onSome { print($0) } // .None\n```\n\n#### `onNone: (Void -> Void) -> Optional<Wrapped>` (injects a side effect in the `.None` branch)\n\n```swift\nlet number: Int? = 3\nlet sameNumber = number.onNone { print(\"Hello World\") } // .Some(3)\n\nlet nilledNumber: Int? = nil\nlet sameNilledNumber = nilledNumber.onNone { print(\"Hello World\") } // prints \"Hello World\" & returns .None\n```\n\n#### `isSome: Bool`\n\n```swift\nlet number: Int? = 3\nlet isSome = number.isSome // true\n\nlet nilledNumber: Int? = nil\nlet isSome = nilledNumber.isSome // false\n```\n\n#### `isNone: Bool`\n\n```swift\nlet number: Int? = 3\nlet isSome = number.isNone // false\n\nlet nilledNumber: Int? = nil\nlet isSome = nilledNumber.isNone // true\n```\n\nSetup\n-----\n\n**Carthage:**\n\n```\ngithub \"RuiAAPeres/OptionalExtensions\"\n```\n\n**CocoaPods:**\n\n```\npod \"OptionalExtensions\"\n```\n\n**Manually:**\n\nGrab the [OptionalExtensions.swift](https://github.com/RuiAAPeres/OptionalExtensions/blob/master/OptionalExtensions/Source/OptionalExtensions.swift) file and drop it in your project. \n\n\nContributing\n-----------\n\nWe will gladly accept Pull Requests with new methods or improving the ones that already exist. Documentation, or tests, are always welcome as well. ❤️\n\nLicense\n-------\n\nOptionalExtensions is licensed under the MIT License, Version 2.0. [View the license file](LICENSE)\n\nCopyright (c) 2015 Rui Peres\n"
  }
]