[
  {
    "path": ".gitignore",
    "content": "# OS X\n.DS_Store\n\n# Xcode\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata/\n*.xccheckout\nprofile\n*.moved-aside\nDerivedData\n*.hmap\n*.ipa\n.build/\n\n# Bundler\n.bundle\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# 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-ignore-the-pods-directory-in-source-control\n# \n# Note: if you ignore the Pods directory, make sure to uncomment\n# `pod install` in .travis.yml\n#\n# Pods/\n"
  },
  {
    "path": ".swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": ".travis.yml",
    "content": "# references:\n# * https://www.objc.io/issues/6-build-tools/travis-ci/\n# * https://github.com/supermarin/xcpretty#usage\n\nosx_image: xcode7.3\nlanguage: objective-c\n# cache: cocoapods\n# podfile: Example/Podfile\n# before_install:\n# - gem install cocoapods # Since Travis is not always on latest version\n# - pod install --project-directory=Example\nscript:\n- set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/A11yUITests.xcworkspace -scheme A11yUITests-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty\n- pod lib lint\n"
  },
  {
    "path": "A11yUITests.podspec",
    "content": "\nPod::Spec.new do |s|\n  s.name             = 'A11yUITests'\n  s.version          = '1.1.0'\n  s.summary          = 'Accessibility tests for XCUI Testing.'\n\n  s.description      = <<-DESC\nA library of common accessibility tests for use with XCUI Tests\n                       DESC\n\n  s.homepage         = 'https://github.com/rwapp/A11yUITests'\n  s.license          = { :type => 'MIT', :file => 'LICENSE' }\n  s.author           = { 'Rob Whitaker' => 'rw@rwapp.co.uk' }\n  s.source           = { :git => 'https://github.com/rwapp/A11yUITests.git', :tag => s.version.to_s }\n  s.social_media_url = 'https://twitter.com/MobileA11y'\n\n  s.ios.deployment_target = '11.0'\n  s.swift_version = '5.0'\n\n  s.source_files = 'Sources/A11yUITests/**/*'\n\n   s.frameworks = 'XCTest'\nend\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "#  Changelog\n\n## 1.1.0\n\n* Added the ability to change default values for tests\n* Added the ability to specify accessibility label or accessibility identifier reported in failure messages\n* New rule for elements with a placeholder and no label.\n* Improved method for fetching traits meaning no swizzling - thank you [Chris Kolbu](https://github.com/nesevis)\n* Improved error reporting - thank you [Ryan Ferrell](https://github.com/importRyan)\n* Added a test for common non-descriptive button titles following [SC 2.4.9: Link Purpose (Link Only) (Level AAA)](https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only)\n* Added a test for uppercase labels\n* Added tests for element types in labels\n* Added a test for closely spaced controls\n* Added a test for overlapping controls\n* Updated interactive suite\n* Fixed a crash when performing a snapshot test on a screen with fewer elements that the reference\n* Fixes an issue where some tests were run more than once\n\n## 1.0.0\n\n* Addition of snapshot testing\n\n## 0.6.1\n\n* Change to floating point assertion accuracy\n\n## 0.6.0\n\n* Adds a test to flag conflicting accessibility traits\n* Adds ❌ to failure messages and ⚠️ to warning messages for improved prominence\n\n## 0.5.2\n\n* Adds the ability to ignore elements when running `a11yCheckAllOnScreen()`\n\n## 0.5.1\n\n* Fixed a bug that was causing the library to fail to compile for some users\n\n## 0.5.0\n\n* Adds the ability to specify minimum size and maximum label length\n* Reduces the default minimum size value to 14\n* Improved failure messages - issues that are not strict failures but require investigation are now marked as 'Warning'\n* Now defaults to checking all interactive elements for minimum size of 44px. Can be overridden by setting `allInteractiveElements` to false.\n\n## 0.4.1\n\n* Swift Package Manager support\n\n## 0.4.0\n\n* Added checks for traits\n    * Buttons\n    * Headers\n    * Images\n* Added a check for disabled interactive elements\n* Removed references to individual tests from the docs as a soft deprecation\n\n* Note: Checking for traits uses a private property on the iOS SDK. Be careful not to include this code in your shipped app as it may be rejected by Apple.\n\n## 0.3.1\n\n* Minor code quality improvements and clarification to the readme\n\n## 0.3.0\n\n* Improvements for label checks\n    * Ability to specify minimum length\n    * Reporting failure strings in failure reasons\n    * Reporting minimum length in failure reasons\n    * Minimum label length checks added to images and interactive elements\n* Improved documentation\n\n## 0.2.0\n\n* Clarified function names - this is a breaking change from 0.1.0\n* Added test for duplicated element labels\n* Significant speed and reliability improvements\n* Improved documentation\n\n## 0.1.0\n\n* Initial release\n\n"
  },
  {
    "path": "Example/A11yUITests/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  A11yUITests\n//\n//  Created by r.whitaker@mac.com on 12/05/2019.\n//  Copyright (c) 2019 r.whitaker@mac.com. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n    internal func application(_ application: UIApplication,\n                              didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        return true\n    }\n}\n"
  },
  {
    "path": "Example/A11yUITests/Base.lproj/LaunchScreen.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"15505\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina4_7\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"15510\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <view contentMode=\"scaleToFill\" id=\"iN0-l3-epB\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"480\" height=\"480\"/>\n            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n            <subviews>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"A11yUITests\" textAlignment=\"center\" lineBreakMode=\"middleTruncation\" baselineAdjustment=\"alignBaselines\" minimumFontSize=\"18\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"kId-c2-rCX\">\n                    <rect key=\"frame\" x=\"20\" y=\"139.5\" width=\"440\" height=\"43\"/>\n                    <fontDescription key=\"fontDescription\" type=\"boldSystem\" pointSize=\"36\"/>\n                    <color key=\"textColor\" cocoaTouchSystemColor=\"darkTextColor\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n            </subviews>\n            <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n            <constraints>\n                <constraint firstItem=\"kId-c2-rCX\" firstAttribute=\"centerY\" secondItem=\"iN0-l3-epB\" secondAttribute=\"bottom\" multiplier=\"1/3\" constant=\"1\" id=\"5cJ-9S-tgC\"/>\n                <constraint firstAttribute=\"centerX\" secondItem=\"kId-c2-rCX\" secondAttribute=\"centerX\" id=\"Koa-jz-hwk\"/>\n                <constraint firstItem=\"kId-c2-rCX\" firstAttribute=\"leading\" secondItem=\"iN0-l3-epB\" secondAttribute=\"leading\" constant=\"20\" symbolic=\"YES\" id=\"fvb-Df-36g\"/>\n            </constraints>\n            <nil key=\"simulatedStatusBarMetrics\"/>\n            <freeformSimulatedSizeMetrics key=\"simulatedDestinationMetrics\"/>\n            <point key=\"canvasLocation\" x=\"548\" y=\"455\"/>\n        </view>\n    </objects>\n</document>\n"
  },
  {
    "path": "Example/A11yUITests/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"21507\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"vXZ-lx-hvc\">\n    <device id=\"retina6_7\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"21505\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"ufC-wZ-h7g\">\n            <objects>\n                <viewController id=\"vXZ-lx-hvc\" customClass=\"ViewController\" customModule=\"A11yUITests_Example\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"jyV-Pf-zRb\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"2fi-mo-0CV\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"kh9-bI-dsS\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"428\" height=\"926\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                        <subviews>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"TC2-DV-qmK\">\n                                <rect key=\"frame\" x=\"20\" y=\"67\" width=\"43\" height=\"43\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" constant=\"43\" id=\"Fga-gE-HBH\"/>\n                                    <constraint firstAttribute=\"height\" constant=\"43\" id=\"qYy-77-VJb\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Too Small\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"XFT-69-rUL\">\n                                <rect key=\"frame\" x=\"20\" y=\"118\" width=\"84\" height=\"44\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"dNk-1S-voQ\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"spO-XS-Vs7\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Punctuated.\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"gbJ-jp-Hev\">\n                                <rect key=\"frame\" x=\"20\" y=\"170\" width=\"116\" height=\"44\"/>\n                                <accessibility key=\"accessibilityConfiguration\" label=\"ENDS WITH BUTTON\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"IK0-Xu-r0M\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"LSX-ry-o54\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Ends with button\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"B8l-93-lXx\">\n                                <rect key=\"frame\" x=\"20\" y=\"222\" width=\"69\" height=\"44\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"eKU-Tu-wNx\"/>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"jN3-nK-q8K\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"lowercase\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Biz-z4-Rs6\">\n                                <rect key=\"frame\" x=\"20\" y=\"274\" width=\"144\" height=\"44\"/>\n                                <accessibility key=\"accessibilityConfiguration\" label=\" \"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"4cH-eZ-uL8\"/>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"aCJ-uY-If8\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"No accessibility label\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"8bg-cb-wuu\">\n                                <rect key=\"frame\" x=\"20\" y=\"326\" width=\"159\" height=\"44\"/>\n                                <accessibility key=\"accessibilityConfiguration\" label=\"A very long overly descriptive label that isn't required use context instead to infer meaning or add a hint if required\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"9U0-ja-dxd\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"X2K-N6-btW\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Long accessibility label\"/>\n                            </button>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Label too small\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"lme-nc-64l\">\n                                <rect key=\"frame\" x=\"20\" y=\"378\" width=\"13\" height=\"13\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"13\" id=\"Nov-yU-qnT\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"13\" id=\"aMO-hP-anN\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleCaption2\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <imageView clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"A11y_logo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"lJw-cj-fHr\">\n                                <rect key=\"frame\" x=\"20\" y=\"399\" width=\"44\" height=\"59.666666666666686\"/>\n                                <accessibility key=\"accessibilityConfiguration\" label=\"A11y_logo\">\n                                    <accessibilityTraits key=\"traits\" none=\"YES\"/>\n                                    <bool key=\"isElement\" value=\"YES\"/>\n                                </accessibility>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"lJw-cj-fHr\" secondAttribute=\"height\" multiplier=\"200:271\" id=\"Sav-BT-7ce\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"44\" id=\"e3w-pK-nZl\"/>\n                                </constraints>\n                            </imageView>\n                            <imageView clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"A11y_logo\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"aPJ-3W-qDK\">\n                                <rect key=\"frame\" x=\"20\" y=\"466.66666666666669\" width=\"44\" height=\"59.666666666666686\"/>\n                                <accessibility key=\"accessibilityConfiguration\" label=\"image of the Mobile A11y logo\">\n                                    <bool key=\"isElement\" value=\"YES\"/>\n                                </accessibility>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"aPJ-3W-qDK\" secondAttribute=\"height\" multiplier=\"200:271\" id=\"2z1-nN-g15\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"44\" id=\"VWD-aL-iMB\"/>\n                                </constraints>\n                            </imageView>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ExF-yl-Ptx\">\n                                <rect key=\"frame\" x=\"20\" y=\"534.33333333333337\" width=\"74\" height=\"44\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"1A7-hq-8fg\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"p3v-gF-xH7\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Duplicated\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Rbt-uh-813\">\n                                <rect key=\"frame\" x=\"20\" y=\"586.33333333333337\" width=\"74\" height=\"44\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"2PO-zd-on5\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"L86-lL-sRg\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Duplicated\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"hEj-Oo-XLH\">\n                                <rect key=\"frame\" x=\"20\" y=\"630.33333333333337\" width=\"51\" height=\"44\"/>\n                                <accessibility key=\"accessibilityConfiguration\" label=\"Click here\">\n                                    <accessibilityTraits key=\"traits\" none=\"YES\"/>\n                                </accessibility>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"QpD-bG-Qug\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"iec-7E-ddH\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"No trait\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" enabled=\"NO\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"3AL-f7-ykx\">\n                                <rect key=\"frame\" x=\"20\" y=\"682.33333333333337\" width=\"60\" height=\"44\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"AIv-1J-xnS\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"UcJ-z0-oQj\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Disabled\"/>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"AqB-ly-1kg\">\n                                <rect key=\"frame\" x=\"20\" y=\"734.33333333333337\" width=\"114\" height=\"44\"/>\n                                <accessibility key=\"accessibilityConfiguration\">\n                                    <accessibilityTraits key=\"traits\" button=\"YES\" link=\"YES\"/>\n                                </accessibility>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"eQX-Iw-ddh\"/>\n                                    <constraint firstAttribute=\"width\" relation=\"greaterThanOrEqual\" constant=\"44\" id=\"old-HA-1zQ\"/>\n                                </constraints>\n                                <state key=\"normal\" title=\"Conflicting traits\"/>\n                            </button>\n                            <textField opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"left\" contentVerticalAlignment=\"center\" borderStyle=\"roundedRect\" placeholder=\"Placeholder\" textAlignment=\"natural\" minimumFontSize=\"17\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"xMo-Ac-duC\">\n                                <rect key=\"frame\" x=\"20\" y=\"786.33333333333337\" width=\"388\" height=\"34\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                                <textInputTraits key=\"textInputTraits\"/>\n                            </textField>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"VAA-ev-ja2\">\n                                <rect key=\"frame\" x=\"83\" y=\"734.33333333333337\" width=\"117\" height=\"39.666666666666629\"/>\n                                <state key=\"normal\" title=\"Button\"/>\n                                <buttonConfiguration key=\"configuration\" style=\"plain\" title=\"Overlapping\"/>\n                            </button>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"xMo-Ac-duC\" firstAttribute=\"top\" secondItem=\"VAA-ev-ja2\" secondAttribute=\"bottom\" constant=\"12.33\" id=\"2kv-A7-2gh\"/>\n                            <constraint firstItem=\"XFT-69-rUL\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"5mJ-J5-i9U\"/>\n                            <constraint firstItem=\"TC2-DV-qmK\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"9W8-YC-SvW\"/>\n                            <constraint firstItem=\"lme-nc-64l\" firstAttribute=\"top\" secondItem=\"8bg-cb-wuu\" secondAttribute=\"bottom\" constant=\"8\" id=\"ClV-Xc-dIu\"/>\n                            <constraint firstAttribute=\"trailingMargin\" secondItem=\"VAA-ev-ja2\" secondAttribute=\"trailing\" constant=\"208\" id=\"Dmz-VH-vz2\"/>\n                            <constraint firstItem=\"ExF-yl-Ptx\" firstAttribute=\"top\" secondItem=\"aPJ-3W-qDK\" secondAttribute=\"bottom\" constant=\"8\" id=\"EDZ-jf-2Ag\"/>\n                            <constraint firstItem=\"xMo-Ac-duC\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"HS6-cX-hCB\"/>\n                            <constraint firstAttribute=\"trailingMargin\" secondItem=\"xMo-Ac-duC\" secondAttribute=\"trailing\" id=\"HiQ-2L-Hyn\"/>\n                            <constraint firstItem=\"3AL-f7-ykx\" firstAttribute=\"top\" secondItem=\"hEj-Oo-XLH\" secondAttribute=\"bottom\" constant=\"8\" id=\"KDR-S1-0BE\"/>\n                            <constraint firstItem=\"Biz-z4-Rs6\" firstAttribute=\"top\" secondItem=\"B8l-93-lXx\" secondAttribute=\"bottom\" constant=\"8\" id=\"KtK-nG-7Rg\"/>\n                            <constraint firstItem=\"hEj-Oo-XLH\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"RMb-k3-F7k\"/>\n                            <constraint firstItem=\"gbJ-jp-Hev\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"RqE-t5-cCU\"/>\n                            <constraint firstItem=\"B8l-93-lXx\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"Ulk-GB-hC0\"/>\n                            <constraint firstItem=\"8bg-cb-wuu\" firstAttribute=\"top\" secondItem=\"Biz-z4-Rs6\" secondAttribute=\"bottom\" constant=\"8\" id=\"VtF-a3-lnD\"/>\n                            <constraint firstItem=\"Rbt-uh-813\" firstAttribute=\"top\" secondItem=\"ExF-yl-Ptx\" secondAttribute=\"bottom\" constant=\"8\" id=\"Xf2-xA-0AW\"/>\n                            <constraint firstItem=\"hEj-Oo-XLH\" firstAttribute=\"top\" secondItem=\"Rbt-uh-813\" secondAttribute=\"bottom\" id=\"YeW-sk-53P\"/>\n                            <constraint firstItem=\"lJw-cj-fHr\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"Ygu-tg-wij\"/>\n                            <constraint firstItem=\"8bg-cb-wuu\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"aqD-ey-eNr\"/>\n                            <constraint firstItem=\"lJw-cj-fHr\" firstAttribute=\"top\" secondItem=\"lme-nc-64l\" secondAttribute=\"bottom\" constant=\"8\" id=\"ckv-J0-9TD\"/>\n                            <constraint firstItem=\"lme-nc-64l\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"dWD-0U-PNn\"/>\n                            <constraint firstItem=\"Biz-z4-Rs6\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"fTX-uW-itu\"/>\n                            <constraint firstItem=\"TC2-DV-qmK\" firstAttribute=\"top\" secondItem=\"jyV-Pf-zRb\" secondAttribute=\"bottom\" constant=\"20\" id=\"fyo-Fb-ZbR\"/>\n                            <constraint firstItem=\"VAA-ev-ja2\" firstAttribute=\"top\" secondItem=\"3AL-f7-ykx\" secondAttribute=\"bottom\" constant=\"8\" id=\"grh-j0-qT7\"/>\n                            <constraint firstItem=\"AqB-ly-1kg\" firstAttribute=\"top\" secondItem=\"3AL-f7-ykx\" secondAttribute=\"bottom\" constant=\"8\" id=\"iIk-Qu-8nJ\"/>\n                            <constraint firstItem=\"aPJ-3W-qDK\" firstAttribute=\"width\" secondItem=\"aPJ-3W-qDK\" secondAttribute=\"height\" multiplier=\"200:271\" id=\"ki3-7L-2mY\"/>\n                            <constraint firstItem=\"Rbt-uh-813\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"l7Y-xc-Srn\"/>\n                            <constraint firstItem=\"aPJ-3W-qDK\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"m8Y-jL-NGP\"/>\n                            <constraint firstItem=\"VAA-ev-ja2\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" constant=\"63\" id=\"oux-ed-nv8\"/>\n                            <constraint firstItem=\"ExF-yl-Ptx\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"sbP-Hh-NS0\"/>\n                            <constraint firstItem=\"aPJ-3W-qDK\" firstAttribute=\"top\" secondItem=\"lJw-cj-fHr\" secondAttribute=\"bottom\" constant=\"8\" id=\"vTO-mN-7dX\"/>\n                            <constraint firstItem=\"xMo-Ac-duC\" firstAttribute=\"top\" secondItem=\"AqB-ly-1kg\" secondAttribute=\"bottom\" constant=\"8\" id=\"wFQ-YK-k0Z\"/>\n                            <constraint firstItem=\"gbJ-jp-Hev\" firstAttribute=\"top\" secondItem=\"XFT-69-rUL\" secondAttribute=\"bottom\" constant=\"8\" id=\"wc8-Xf-ROI\"/>\n                            <constraint firstItem=\"XFT-69-rUL\" firstAttribute=\"top\" secondItem=\"TC2-DV-qmK\" secondAttribute=\"bottom\" constant=\"8\" id=\"x8C-7U-BMt\"/>\n                            <constraint firstItem=\"B8l-93-lXx\" firstAttribute=\"top\" secondItem=\"gbJ-jp-Hev\" secondAttribute=\"bottom\" constant=\"8\" id=\"xuU-eb-ZWW\"/>\n                            <constraint firstItem=\"3AL-f7-ykx\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"ymJ-xC-byF\"/>\n                            <constraint firstItem=\"AqB-ly-1kg\" firstAttribute=\"leading\" secondItem=\"kh9-bI-dsS\" secondAttribute=\"leadingMargin\" id=\"zJl-02-TZx\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"x5A-6p-PRh\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"131.77570093457942\" y=\"133.47732181425488\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"A11y_logo\" width=\"200\" height=\"271\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "Example/A11yUITests/Images.xcassets/A11y_logo.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"a11ylogo.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"preserves-vector-representation\" : true\n  }\n}"
  },
  {
    "path": "Example/A11yUITests/Images.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"size\" : \"1024x1024\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "Example/A11yUITests/Images.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Example/A11yUITests/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>APPL</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\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/A11yUITests/ViewController.swift",
    "content": "//\n//  ViewController.swift\n//  A11yUITests\n//\n//  Created by r.whitaker@mac.com on 12/05/2019.\n//  Copyright (c) 2019 r.whitaker@mac.com. All rights reserved.\n//\n\nimport UIKit\n\nclass ViewController: UIViewController {}\n"
  },
  {
    "path": "Example/A11yUITests.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\t607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; };\n\t\t607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; };\n\t\t607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; };\n\t\t607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; };\n\t\t607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };\n\t\t8D9CB28FCB9616A84D4981DB /* Pods_A11yUITests_ExampleUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 112E2CDD3165666239250CC1 /* Pods_A11yUITests_ExampleUITests.framework */; };\n\t\tADC7797BB2FBA898C717543D /* Pods_A11yUITests_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 368D7F1C18B401E09270BF57 /* Pods_A11yUITests_Example.framework */; };\n\t\tB5B61DF923995BEE0096085C /* A11yUITests_ExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5B61DF823995BEE0096085C /* A11yUITests_ExampleUITests.swift */; };\n\t\tB5E5B26829AB5B6B002E4833 /* A11yUITests-ExampleUITests-test-snapshotTest-0.json in Resources */ = {isa = PBXBuildFile; fileRef = B5E5B26729AB5B6B002E4833 /* A11yUITests-ExampleUITests-test-snapshotTest-0.json */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tB5B61DFB23995BEE0096085C /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 607FACC81AFB9204008FA782 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 607FACCF1AFB9204008FA782;\n\t\t\tremoteInfo = A11yUITests_Example;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t112E2CDD3165666239250CC1 /* Pods_A11yUITests_ExampleUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_A11yUITests_ExampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t368D7F1C18B401E09270BF57 /* Pods_A11yUITests_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_A11yUITests_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t36E9AAF0265EA2E9AF0CCAE9 /* A11yUITests.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = A11yUITests.podspec; path = ../A11yUITests.podspec; sourceTree = \"<group>\"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };\n\t\t58A9A9460C5B7598B1DD3C90 /* Pods-A11yUITests_ExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-A11yUITests_ExampleUITests.release.xcconfig\"; path = \"Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t607FACD01AFB9204008FA782 /* A11yUITests_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = A11yUITests_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = \"<group>\"; };\n\t\t607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = \"<group>\"; };\n\t\t607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = \"<group>\"; };\n\t\t838048D31939BAB6566FDFFC /* Pods-A11yUITests_ExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-A11yUITests_ExampleUITests.debug.xcconfig\"; path = \"Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t8C78D33CFE20D29A24ABD246 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = \"<group>\"; };\n\t\t9B2355B8F6DC8DC1A71D81C9 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = \"<group>\"; };\n\t\tAA5911E12232347529BA4905 /* Pods-A11yUITests_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-A11yUITests_Example.release.xcconfig\"; path = \"Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tB29200CCF9092577797F1B2A /* Pods-A11yUITests_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-A11yUITests_Example.debug.xcconfig\"; path = \"Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tB5B61DF623995BEE0096085C /* A11yUITests_ExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = A11yUITests_ExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tB5B61DF823995BEE0096085C /* A11yUITests_ExampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = A11yUITests_ExampleUITests.swift; sourceTree = \"<group>\"; };\n\t\tB5B61DFA23995BEE0096085C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tB5E5B26729AB5B6B002E4833 /* A11yUITests-ExampleUITests-test-snapshotTest-0.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = \"A11yUITests-ExampleUITests-test-snapshotTest-0.json\"; sourceTree = \"<group>\"; };\n\t\tB5FD2A77262A16C40008309E /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../CHANGELOG.md; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t607FACCD1AFB9204008FA782 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tADC7797BB2FBA898C717543D /* Pods_A11yUITests_Example.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB5B61DF323995BEE0096085C /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8D9CB28FCB9616A84D4981DB /* Pods_A11yUITests_ExampleUITests.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\t607FACC71AFB9204008FA782 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t607FACF51AFB993E008FA782 /* Podspec Metadata */,\n\t\t\t\t607FACD21AFB9204008FA782 /* Example for A11yUITests */,\n\t\t\t\tB5B61DF723995BEE0096085C /* A11yUITests_ExampleUITests */,\n\t\t\t\t607FACD11AFB9204008FA782 /* Products */,\n\t\t\t\t683410DC2F0CE618725319C7 /* Pods */,\n\t\t\t\t8655077FADBE48E4847E2E9D /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t607FACD11AFB9204008FA782 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t607FACD01AFB9204008FA782 /* A11yUITests_Example.app */,\n\t\t\t\tB5B61DF623995BEE0096085C /* A11yUITests_ExampleUITests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t607FACD21AFB9204008FA782 /* Example for A11yUITests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t607FACD51AFB9204008FA782 /* AppDelegate.swift */,\n\t\t\t\t607FACD71AFB9204008FA782 /* ViewController.swift */,\n\t\t\t\t607FACD91AFB9204008FA782 /* Main.storyboard */,\n\t\t\t\t607FACDC1AFB9204008FA782 /* Images.xcassets */,\n\t\t\t\t607FACDE1AFB9204008FA782 /* LaunchScreen.xib */,\n\t\t\t\t607FACD31AFB9204008FA782 /* Supporting Files */,\n\t\t\t);\n\t\t\tname = \"Example for A11yUITests\";\n\t\t\tpath = A11yUITests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t607FACD31AFB9204008FA782 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t607FACD41AFB9204008FA782 /* Info.plist */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t607FACF51AFB993E008FA782 /* Podspec Metadata */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t36E9AAF0265EA2E9AF0CCAE9 /* A11yUITests.podspec */,\n\t\t\t\t8C78D33CFE20D29A24ABD246 /* README.md */,\n\t\t\t\t9B2355B8F6DC8DC1A71D81C9 /* LICENSE */,\n\t\t\t\tB5FD2A77262A16C40008309E /* CHANGELOG.md */,\n\t\t\t);\n\t\t\tname = \"Podspec Metadata\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t683410DC2F0CE618725319C7 /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB29200CCF9092577797F1B2A /* Pods-A11yUITests_Example.debug.xcconfig */,\n\t\t\t\tAA5911E12232347529BA4905 /* Pods-A11yUITests_Example.release.xcconfig */,\n\t\t\t\t838048D31939BAB6566FDFFC /* Pods-A11yUITests_ExampleUITests.debug.xcconfig */,\n\t\t\t\t58A9A9460C5B7598B1DD3C90 /* Pods-A11yUITests_ExampleUITests.release.xcconfig */,\n\t\t\t);\n\t\t\tpath = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8655077FADBE48E4847E2E9D /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t368D7F1C18B401E09270BF57 /* Pods_A11yUITests_Example.framework */,\n\t\t\t\t112E2CDD3165666239250CC1 /* Pods_A11yUITests_ExampleUITests.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB595722927934F16008F4598 /* References */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB5E5B26729AB5B6B002E4833 /* A11yUITests-ExampleUITests-test-snapshotTest-0.json */,\n\t\t\t);\n\t\t\tpath = References;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB5B61DF723995BEE0096085C /* A11yUITests_ExampleUITests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB595722927934F16008F4598 /* References */,\n\t\t\t\tB5B61DF823995BEE0096085C /* A11yUITests_ExampleUITests.swift */,\n\t\t\t\tB5B61DFA23995BEE0096085C /* Info.plist */,\n\t\t\t);\n\t\t\tpath = A11yUITests_ExampleUITests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t607FACCF1AFB9204008FA782 /* A11yUITests_Example */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget \"A11yUITests_Example\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t65EF7F6D05208D18D84DDC19 /* [CP] Check Pods Manifest.lock */,\n\t\t\t\t607FACCC1AFB9204008FA782 /* Sources */,\n\t\t\t\t607FACCD1AFB9204008FA782 /* Frameworks */,\n\t\t\t\t607FACCE1AFB9204008FA782 /* 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 = A11yUITests_Example;\n\t\t\tproductName = A11yUITests;\n\t\t\tproductReference = 607FACD01AFB9204008FA782 /* A11yUITests_Example.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tB5B61DF523995BEE0096085C /* A11yUITests_ExampleUITests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = B5B61DFD23995BEE0096085C /* Build configuration list for PBXNativeTarget \"A11yUITests_ExampleUITests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t4828A88E78F5BAB6A23781DF /* [CP] Check Pods Manifest.lock */,\n\t\t\t\tB5B61DF223995BEE0096085C /* Sources */,\n\t\t\t\tB5B61DF323995BEE0096085C /* Frameworks */,\n\t\t\t\tB5B61DF423995BEE0096085C /* Resources */,\n\t\t\t\t5184E1E21087C8F7A0DA65CD /* [CP] Embed Pods Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tB5B61DFC23995BEE0096085C /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = A11yUITests_ExampleUITests;\n\t\t\tproductName = A11yUITests_ExampleUITests;\n\t\t\tproductReference = B5B61DF623995BEE0096085C /* A11yUITests_ExampleUITests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.ui-testing\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t607FACC81AFB9204008FA782 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1120;\n\t\t\t\tLastUpgradeCheck = 1120;\n\t\t\t\tORGANIZATIONNAME = CocoaPods;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t607FACCF1AFB9204008FA782 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 6.3.1;\n\t\t\t\t\t\tLastSwiftMigration = 0900;\n\t\t\t\t\t};\n\t\t\t\t\tB5B61DF523995BEE0096085C = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 11.2.1;\n\t\t\t\t\t\tDevelopmentTeam = K55J7MA3F2;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t\tTestTargetID = 607FACCF1AFB9204008FA782;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject \"A11yUITests\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 607FACC71AFB9204008FA782;\n\t\t\tproductRefGroup = 607FACD11AFB9204008FA782 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t607FACCF1AFB9204008FA782 /* A11yUITests_Example */,\n\t\t\t\tB5B61DF523995BEE0096085C /* A11yUITests_ExampleUITests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t607FACCE1AFB9204008FA782 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */,\n\t\t\t\t607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */,\n\t\t\t\t607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB5B61DF423995BEE0096085C /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB5E5B26829AB5B6B002E4833 /* A11yUITests-ExampleUITests-test-snapshotTest-0.json in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t4828A88E78F5BAB6A23781DF /* [CP] Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${PODS_PODFILE_DIR_PATH}/Podfile.lock\",\n\t\t\t\t\"${PODS_ROOT}/Manifest.lock\",\n\t\t\t);\n\t\t\tname = \"[CP] Check Pods Manifest.lock\";\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t\t\"$(DERIVED_FILE_DIR)/Pods-A11yUITests_ExampleUITests-checkManifestLockResult.txt\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_PODFILE_DIR_PATH}/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# This output is used by Xcode 'outputs' to avoid re-running this script phase.\\necho \\\"SUCCESS\\\" > \\\"${SCRIPT_OUTPUT_FILE_0}\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t5184E1E21087C8F7A0DA65CD /* [CP] Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${PODS_ROOT}/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-frameworks.sh\",\n\t\t\t\t\"${BUILT_PRODUCTS_DIR}/A11yUITests/A11yUITests.framework\",\n\t\t\t);\n\t\t\tname = \"[CP] Embed Pods Frameworks\";\n\t\t\toutputPaths = (\n\t\t\t\t\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/A11yUITests.framework\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${PODS_ROOT}/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t65EF7F6D05208D18D84DDC19 /* [CP] Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${PODS_PODFILE_DIR_PATH}/Podfile.lock\",\n\t\t\t\t\"${PODS_ROOT}/Manifest.lock\",\n\t\t\t);\n\t\t\tname = \"[CP] Check Pods Manifest.lock\";\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t\t\"$(DERIVED_FILE_DIR)/Pods-A11yUITests_Example-checkManifestLockResult.txt\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_PODFILE_DIR_PATH}/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# This output is used by Xcode 'outputs' to avoid re-running this script phase.\\necho \\\"SUCCESS\\\" > \\\"${SCRIPT_OUTPUT_FILE_0}\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t607FACCC1AFB9204008FA782 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t607FACD81AFB9204008FA782 /* ViewController.swift in Sources */,\n\t\t\t\t607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB5B61DF223995BEE0096085C /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB5B61DF923995BEE0096085C /* A11yUITests_ExampleUITests.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\tB5B61DFC23995BEE0096085C /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 607FACCF1AFB9204008FA782 /* A11yUITests_Example */;\n\t\t\ttargetProxy = B5B61DFB23995BEE0096085C /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t607FACD91AFB9204008FA782 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t607FACDA1AFB9204008FA782 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t607FACDF1AFB9204008FA782 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t607FACED1AFB9204008FA782 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\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_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\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_SYMBOLS_PRIVATE_EXTERN = NO;\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 = 11.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\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t607FACEE1AFB9204008FA782 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\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_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = 11.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t607FACF01AFB9204008FA782 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = B29200CCF9092577797F1B2A /* Pods-A11yUITests_Example.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tINFOPLIST_FILE = A11yUITests/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tMODULE_NAME = ExampleApp;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_SWIFT3_OBJC_INFERENCE = Default;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t607FACF11AFB9204008FA782 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = AA5911E12232347529BA4905 /* Pods-A11yUITests_Example.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tINFOPLIST_FILE = A11yUITests/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tMODULE_NAME = ExampleApp;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_SWIFT3_OBJC_INFERENCE = Default;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tB5B61DFE23995BEE0096085C /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 838048D31939BAB6566FDFFC /* Pods-A11yUITests_ExampleUITests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tDEVELOPMENT_TEAM = K55J7MA3F2;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tINFOPLIST_FILE = A11yUITests_ExampleUITests/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.2;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"uk.co.rwapp.A11yUITests-ExampleUITests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_TARGET_NAME = A11yUITests_Example;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tB5B61DFF23995BEE0096085C /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 58A9A9460C5B7598B1DD3C90 /* Pods-A11yUITests_ExampleUITests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = K55J7MA3F2;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tINFOPLIST_FILE = A11yUITests_ExampleUITests/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 13.2;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"uk.co.rwapp.A11yUITests-ExampleUITests\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_TARGET_NAME = A11yUITests_Example;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject \"A11yUITests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t607FACED1AFB9204008FA782 /* Debug */,\n\t\t\t\t607FACEE1AFB9204008FA782 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget \"A11yUITests_Example\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t607FACF01AFB9204008FA782 /* Debug */,\n\t\t\t\t607FACF11AFB9204008FA782 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tB5B61DFD23995BEE0096085C /* Build configuration list for PBXNativeTarget \"A11yUITests_ExampleUITests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tB5B61DFE23995BEE0096085C /* Debug */,\n\t\t\t\tB5B61DFF23995BEE0096085C /* 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 = 607FACC81AFB9204008FA782 /* Project object */;\n}\n"
  },
  {
    "path": "Example/A11yUITests.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:A11yUITests.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Example/A11yUITests.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/A11yUITests.xcodeproj/xcshareddata/xcschemes/A11yUITests-Example.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1120\"\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 = \"607FACCF1AFB9204008FA782\"\n               BuildableName = \"A11yUITests_Example.app\"\n               BlueprintName = \"A11yUITests_Example\"\n               ReferencedContainer = \"container:A11yUITests.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"NO\"\n            buildForArchiving = \"NO\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"607FACE41AFB9204008FA782\"\n               BuildableName = \"A11yUITests_Tests.xctest\"\n               BlueprintName = \"A11yUITests_Tests\"\n               ReferencedContainer = \"container:A11yUITests.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      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"607FACCF1AFB9204008FA782\"\n            BuildableName = \"A11yUITests_Example.app\"\n            BlueprintName = \"A11yUITests_Example\"\n            ReferencedContainer = \"container:A11yUITests.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"607FACE41AFB9204008FA782\"\n               BuildableName = \"A11yUITests_Tests.xctest\"\n               BlueprintName = \"A11yUITests_Tests\"\n               ReferencedContainer = \"container:A11yUITests.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"B5B61DF523995BEE0096085C\"\n               BuildableName = \"A11yUITests_ExampleUITests.xctest\"\n               BlueprintName = \"A11yUITests_ExampleUITests\"\n               ReferencedContainer = \"container:A11yUITests.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\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      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"607FACCF1AFB9204008FA782\"\n            BuildableName = \"A11yUITests_Example.app\"\n            BlueprintName = \"A11yUITests_Example\"\n            ReferencedContainer = \"container:A11yUITests.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"607FACCF1AFB9204008FA782\"\n            BuildableName = \"A11yUITests_Example.app\"\n            BlueprintName = \"A11yUITests_Example\"\n            ReferencedContainer = \"container:A11yUITests.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Example/A11yUITests.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:A11yUITests.xcodeproj\">\n   </FileRef>\n   <FileRef\n      location = \"group:Pods/Pods.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Example/A11yUITests.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/A11yUITests_ExampleUITests/A11yUITests_ExampleUITests.swift",
    "content": "//\n//  A11yUITests_ExampleUITests.swift\n//  A11yUITests_ExampleUITests\n//\n//  Created by Rob Whitaker on 05/12/2019.\n//  Copyright © 2019 CocoaPods. All rights reserved.\n//\n\nimport XCTest\nimport A11yUITests\n\n@testable import A11yUITests_Example\n\nclass A11yUITestsExampleUITests: XCTestCase {\n\n    override func setUp() {\n        XCUIApplication().launch()\n    }\n\n    func test_snapshotTest() {\n        a11ySnapshot()\n    }\n\n    func test_allTests() {\n        // Produces 24 failures\n\n        // Accessibility Failure - Button should not contain the word 'button' in the accessibility label. Label: \"ENDS WITH BUTTON\" Button.\n        // Accessibility Warning - Elements have duplicated labels. Label: \"Duplicated\" Button, Label: \"Duplicated\" Button.\n        // Accessibility Failure - Image file name is used as the accessibility label. Offending word: _.\n        // Accessibility Failure - Images should not contain image words in the accessibility label. Offending word: image.\n        // Accessibility Failure - Button accessibility labels shouldn't contain punctuation. Label: \"Punctuated.\" Button.\n        // Accessibility Failure - Buttons should begin with a capital letter. Label: \" \" Button.\n        // Accessibility Failure - Buttons should begin with a capital letter. Label: \"lowercase\" Button.\n        // Accessibility Warning - Element may not be tall enough. Label: \"Label too small\" Label. Minimum height: 14. Current height: 13.0.\n        // Accessibility Warning - Element may not be wide enough. Label: \"Label too small\" Label. Minimum width: 14. Current width: 13.0.\n        // Accessibility Failure - Interactive element not tall enough. Label: \"Too Small\" Button. Minimum height: 44.0. Current height: 43.0.\n        // Accessibility Failure - Interactive element not wide enough. Label: \"Too Small\" Button. Minimum width: 44.0. Current width: 43.0.\n        // Accessibility Warning - Label may be too long. Label: \"A very long overly descriptive label that isn't required use context instead to infer meaning or add a hint if required\" Button. Max length: 40.\n        // Accessibility Warning - Label may not be meaningful. Label: \" \" Button. Minimum length: 2.\n        // Accessibility Failure - Interactive element not tall enough. [No identifier] Text Field. Minimum height: 44.0. Current height: 34.00.\n        // Accessibility Failure - Image should have Image trait. Label: \"A11y_logo\" Image.\n        // Accessibility Failure - Screen has no element with a header trait.\n        // Accessibility Failure - Button should have Button or Link trait. Label: \"No trait\" Button.\n        // Accessibility Warning - Element disabled. Label: \"Disabled\" Button.\n        // Accessibility Failure - Elements shouldn't have both Button and Link traits. Label: \"Conflicting traits\" Button.\n        // Accessibility Failure - No label for element with placeholder \"Placeholder\". [No identifier] Text Field.\n        // Accessibility Warning - Label is uppercased. Label: \"ENDS WITH BUTTON\" Button.\n        // Accessibility Failure - Button label may not be descriptive. Label: \"Click here\" Button. Offending word: click here\n        // Accessibility Warning - Controls are closely spaced. Label: \"Click here\" Button, Label: \"Duplicated\" Button.\n        // Accessibility Failure - Controls are overlapping. Label: \"Conflicting traits\" Button, Label: \"Overlapping\" Button.\n\n        a11yCheckAllOnScreen()\n    }\n\n    func test_images() {\n        // produces 4 failures\n\n        // Accessibility Failure - Image file name is used as the accessibility label. Offending word: _.\n        // Accessibility Failure - Images should not contain image words in the accessibility label. Offending word: image.\n        // Accessibility Warning - Label may not be meaningful. Label: \"A11y_logo\" Image. Minimum length: 10.\n        // Accessibility Failure - Image should have Image trait. Label: \"A11y_logo\" Image.\n\n        let images = XCUIApplication().images.allElementsBoundByIndex\n        a11y(tests: a11yTestSuiteImages, on: images, minMeaningfulLength: 10)\n    }\n\n    func test_buttons() {\n        // produces 16 failures\n\n        // Accessibility Failure - Button should not contain the word 'button' in the accessibility label Label: \"ENDS WITH BUTTON\" Button.\n        // Accessibility Warning - Elements have duplicated labels. Label: \"Duplicated\" Button, Label: \"Duplicated\" Button.\n        // Accessibility Failure - Button accessibility labels shouldn't contain punctuation Label: \"Punctuated.\" Button.\n        // Accessibility Failure - Buttons should begin with a capital letter. Label: \" \" Button.\n        // Accessibility Failure - Buttons should begin with a capital letter. Label: \"lowercase\" Button.\n        // Accessibility Failure - Interactive element not tall enough. Label: \"Too Small\" Button. Minimum height: 44.0. Current height: 43.0.\n        // Accessibility Failure - Interactive element not wide enough. Label: \"Too Small\" Button. Minimum width: 44.0. Current width: 43.0.\n        // Accessibility Warning - Label is too long. Label: \"A very long overly descriptive label that isn't required use context instead to infer meaning or add a hint if required\" Button. Max length: 40.\n        // Accessibility Warning - Label may not be meaningful. Label: \" \" Button. Minimum length: 2.\n        // Accessibility Failure - Button should have Button or Link trait. Label: \"No trait\" Button.\n        // Accessibility Warning - Element disabled. Label: \"Disabled\" Button.\n        // Accessibility Failure - Elements shouldn't have both Button and Link traits. Label: \"Conflicting traits\" Button.\n        // Accessibility Warning - Label is uppercased. Label: \"ENDS WITH BUTTON\" Button.\n        // Accessibility Failure - Button label may not be descriptive. Label: \"Click here\" Button. Offending word: click here\n        // Accessibility Warning - Controls are closely spaced. Label: \"Duplicated\" Button, Label: \"Click here\" Button.\n        // Accessibility Failure - Controls are overlapping. Label: \"Conflicting traits\" Button, Label: \"Overlapping\" Button.\n\n        let buttons = XCUIApplication().buttons.allElementsBoundByIndex\n        a11y(tests: a11yTestSuiteInteractive, on: buttons)\n    }\n\n    func test_labels() {\n        // produces 2 failures\n\n        // Accessibility Warning - Element not tall enough. Label: \"Label too small\" Label. Minimum height: 14. Current height: 13.0.\n        // Accessibility Warning - Element not wide enough. Label: \"Label too small\" Label. Minimum width: 14. Current width: 13.0.\n\n        let labels = XCUIApplication().staticTexts.allElementsBoundByIndex\n        a11y(tests: a11yTestSuiteLabels, on: labels)\n    }\n\n    func test_individualTest_individualButton() {\n        // produces 2 failures\n\n        // Accessibility Failure - Button should not contain the word 'button' in the accessibility label. Label: \"ENDS WITH BUTTON\" Button.\n        // Accessibility Warning - Label is uppercased. Label: \"ENDS WITH BUTTON\" Button.\n\n        let button = XCUIApplication().buttons[\"ENDS WITH BUTTON\"]\n        a11y(tests: [.buttonLabel], on: [button])\n    }\n}\n"
  },
  {
    "path": "Example/A11yUITests_ExampleUITests/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>$(DEVELOPMENT_LANGUAGE)</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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/A11yUITests_ExampleUITests/References/A11yUITests-ExampleUITests-test-snapshotTest-0.json",
    "content": "{\n  \"generated\" : \"2023-02-26T09:17:02Z\",\n  \"filename\" : \"A11yUITests-ExampleUITests-test-snapshotTest-0.json\",\n  \"snapshot\" : [\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          79\n        ],\n        [\n          43,\n          43\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Too Small\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          130\n        ],\n        [\n          84,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Punctuated.\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          182\n        ],\n        [\n          116,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"ENDS WITH BUTTON\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          234\n        ],\n        [\n          69,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"lowercase\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          286\n        ],\n        [\n          144,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \" \",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          338\n        ],\n        [\n          159,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"A very long overly descriptive label that isn't required use context instead to infer meaning or add a hint if required\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          390\n        ],\n        [\n          13,\n          13\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Label too small\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          411\n        ],\n        [\n          44,\n          59.666666666666686\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"A11y_logo\",\n      \"type\" : \"Image\"\n    },\n    {\n      \"traits\" : [\n        \"Image\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          478.66666666666669\n        ],\n        [\n          44,\n          59.666666666666686\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"image of the Mobile A11y logo\",\n      \"type\" : \"Image\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          546.33333333333337\n        ],\n        [\n          74,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Duplicated\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          598.33333333333337\n        ],\n        [\n          74,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Duplicated\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          642.33333333333337\n        ],\n        [\n          51,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Click here\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\",\n        \"Not Enabled\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : false,\n      \"frame\" : [\n        [\n          16,\n          694.33333333333337\n        ],\n        [\n          60,\n          44\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Disabled\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\",\n        \"Link\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          746.33333333333337\n        ],\n        [\n          114,\n          58.666666666666629\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Conflicting traits\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n        \"Button\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          79,\n          746.33333333333337\n        ],\n        [\n          90,\n          54.333333333333258\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Overlapping\",\n      \"type\" : \"Button\"\n    },\n    {\n      \"traits\" : [\n\n      ],\n      \"placeholder\" : \"Placeholder\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          813\n        ],\n        [\n          361,\n          34\n        ]\n      ],\n      \"value\" : \"Placeholder\",\n      \"label\" : \"\",\n      \"type\" : \"Text Field\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          20,\n          91.666666666666671\n        ],\n        [\n          35,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Too Small\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          143\n        ],\n        [\n          84,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Punctuated.\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          195\n        ],\n        [\n          116,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Ends with button\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          247\n        ],\n        [\n          69,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"lowercase\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          299\n        ],\n        [\n          144,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"No accessibility label\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          351\n        ],\n        [\n          159,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Long accessibility label\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          559.33333333333337\n        ],\n        [\n          74,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Duplicated\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          611.33333333333337\n        ],\n        [\n          74,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Duplicated\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          655.33333333333337\n        ],\n        [\n          51,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"No trait\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          707.33333333333337\n        ],\n        [\n          60,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Disabled\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          16,\n          766.66666666666663\n        ],\n        [\n          114,\n          18\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Conflicting traits\",\n      \"type\" : \"Label\"\n    },\n    {\n      \"traits\" : [\n        \"Static Text\"\n      ],\n      \"placeholder\" : \"\",\n      \"enabled\" : true,\n      \"frame\" : [\n        [\n          94,\n          753.33333333333337\n        ],\n        [\n          59.333333333333343,\n          40.333333333333258\n        ]\n      ],\n      \"value\" : \"\",\n      \"label\" : \"Overlapping\",\n      \"type\" : \"Label\"\n    }\n  ],\n  \"version\" : \"1.1\"\n}"
  },
  {
    "path": "Example/Podfile",
    "content": "use_frameworks!\nplatform :ios, '11.0'\n\ntarget 'A11yUITests_Example' do\n\n  target 'A11yUITests_ExampleUITests' do\n    inherit! :search_paths\n    pod 'A11yUITests', :path => '../'\n\n  end\nend\n"
  },
  {
    "path": "Example/Pods/Local Podspecs/A11yUITests.podspec.json",
    "content": "{\n  \"name\": \"A11yUITests\",\n  \"version\": \"1.0.0\",\n  \"summary\": \"Accessibility tests for XCUI Testing.\",\n  \"description\": \"A library of common accessibility tests for use with XCUI Tests\",\n  \"homepage\": \"https://github.com/rwapp/A11yUITests\",\n  \"license\": {\n    \"type\": \"MIT\",\n    \"file\": \"LICENSE\"\n  },\n  \"authors\": {\n    \"Rob Whitaker\": \"rw@rwapp.co.uk\"\n  },\n  \"source\": {\n    \"git\": \"https://github.com/rwapp/A11yUITests.git\",\n    \"tag\": \"1.0.0\"\n  },\n  \"social_media_url\": \"https://twitter.com/MobileA11y\",\n  \"platforms\": {\n    \"ios\": \"11.0\"\n  },\n  \"swift_versions\": \"5.0\",\n  \"source_files\": \"Sources/A11yUITests/**/*\",\n  \"frameworks\": \"XCTest\",\n  \"swift_version\": \"5.0\"\n}\n"
  },
  {
    "path": "Example/Pods/Pods.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\t17FDB1F0B86F11EFDFA84279CF4AA057 /* String+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2565A65844EDD8B489BA9976915D4DA7 /* String+Extensions.swift */; };\n\t\t238FB925228BF10462B8B067EF780C8D /* A11yUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CECF5F8FF0D192E15ADA2E7F5E79EA1 /* A11yUITests-dummy.m */; };\n\t\t3381D04F7EB08959C620CAF19C1D5504 /* XCUIElementSnapshot+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ACA07E49A454084A01A00FAC5E14FC5 /* XCUIElementSnapshot+Extensions.swift */; };\n\t\t358E24597528C6CD0FA30ABB4E2A6B14 /* Pods-A11yUITests_ExampleUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 194ED318FCC5418CB903C4D1EA0AFB8B /* Pods-A11yUITests_ExampleUITests-dummy.m */; };\n\t\t3F27A667C6E9B253F9DE85BF13DEA0F9 /* NSObject+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0F7A495F3E70B94110AB67E40E0C33C /* NSObject+Extensions.swift */; };\n\t\t3F52713A686DACEA0488AE02276913E3 /* A11yUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5FE81638FEE2217F5479E5A6AEEC33 /* A11yUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t4254173723043B6EDBD3007BA60C7857 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EBC8F300895E39EA0DF6D6B2B5E6BCD /* XCTest.framework */; };\n\t\t4506F6D361FD18CF8BBE40CDB5A5F967 /* UIAccessibilityTraits+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5661872E3513F051E79EF0B643777E42 /* UIAccessibilityTraits+Extensions.swift */; };\n\t\t5C010D72D1D73C139089C53A1337D737 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA8B94E9D3B433157168D1EECCEC11CD /* Foundation.framework */; };\n\t\t5ED0F81956203C722779A287F87BDB63 /* Pods-A11yUITests_ExampleUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 13357D88C84F61D0461D6480AFA4BECB /* Pods-A11yUITests_ExampleUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t5EF8B909FEC4CF7506680C929771ED53 /* A11yTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA571919F1C24A1FF9C981ADE6C15CD7 /* A11yTests.swift */; };\n\t\t656CFD36E712E8E7AC09BF1154394876 /* XCUIElement.ElementType+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1417692524BF327AB8A9959529D3777 /* XCUIElement.ElementType+Name.swift */; };\n\t\t687CF6C490C50856A274D0BEA2EEBBD9 /* XCTestCase+A11y.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9DA61CD1C94B157A741AB9549AC8B94 /* XCTestCase+A11y.swift */; };\n\t\t6D2767059B928CAF7CB6956EA2A0FEDF /* A11yAssertions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CCF0A4BB003F06C90AC5440FF731179 /* A11yAssertions.swift */; };\n\t\t749040B9DDDE7A34914B1121187A1115 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA8B94E9D3B433157168D1EECCEC11CD /* Foundation.framework */; };\n\t\t7868E4AED48565BDE14FBD0C1956C9AE /* Pods-A11yUITests_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C78F5BE202F945BDD5F08D62226B8979 /* Pods-A11yUITests_Example-dummy.m */; };\n\t\t7CEF1D4C56FDCA7E64C4210740CEE2DB /* Pods-A11yUITests_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6418B7E6BB7698182C01F81569F93979 /* Pods-A11yUITests_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t8BE342D78F958D3B0C22E3FE1D594B35 /* TestRunner.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED4AB13ABE158CD779DE2538AE4901AA /* TestRunner.swift */; };\n\t\t8E3E1CD6FE7730051804AB1E03B18365 /* Values.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CD316ABE953A851F64274D60AB4CFC4 /* Values.swift */; };\n\t\t96E3DD27029B0CCFBB4314CC510EE0E3 /* A11ySnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 818899D18C1C55CEB8B08544F21BA24D /* A11ySnapshot.swift */; };\n\t\tA7E74E087DF362B7D0BFDEC879AAB7E8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA8B94E9D3B433157168D1EECCEC11CD /* Foundation.framework */; };\n\t\tB574354929AA3BC1003E077A /* XCTest+extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B574354829AA3BC1003E077A /* XCTest+extensions.swift */; };\n\t\tB5E5B26629AA6802002E4833 /* CGFloat+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E5B26529AA6802002E4833 /* CGFloat+Extensions.swift */; };\n\t\tD477E37CF14AF319305184A16E2B5F55 /* Failure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69AEE66AFD1AFED6E6CCAAAC140E75C0 /* Failure.swift */; };\n\t\tFCA4D31DBB3A43D7C2B64776E31A08AB /* A11yElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 733D6503FF64B33C74F6C7072D6340FD /* A11yElement.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t53985416026C5AC2DC081EAAFACFBED7 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 1CD04A6F172AA7EE2B75168D0CBABA8F;\n\t\t\tremoteInfo = A11yUITests;\n\t\t};\n\t\tBE98C7D17C5FD4B27B9AF584FAD407A1 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 7C950F990A68123DBF2635DDBEBED3AA;\n\t\t\tremoteInfo = \"Pods-A11yUITests_Example\";\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t06BDBEFE7BF7A558A6B24469FA04EC9C /* Pods-A11yUITests_ExampleUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = \"Pods-A11yUITests_ExampleUITests\"; path = Pods_A11yUITests_ExampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t092785D9D413E6A3F91CDF4C8FDB10DF /* Pods-A11yUITests_ExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-A11yUITests_ExampleUITests.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t0C86D2B44EC444FE6634E1956FA0D8DC /* A11yUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = A11yUITests; path = A11yUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t13357D88C84F61D0461D6480AFA4BECB /* Pods-A11yUITests_ExampleUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"Pods-A11yUITests_ExampleUITests-umbrella.h\"; sourceTree = \"<group>\"; };\n\t\t17860584BFC7619F0247D7B50FC37452 /* Pods-A11yUITests_ExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-A11yUITests_ExampleUITests.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t194ED318FCC5418CB903C4D1EA0AFB8B /* Pods-A11yUITests_ExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"Pods-A11yUITests_ExampleUITests-dummy.m\"; sourceTree = \"<group>\"; };\n\t\t2565A65844EDD8B489BA9976915D4DA7 /* String+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = \"String+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\t26464675A37C2C0341F3D45AA37F9016 /* Pods-A11yUITests_ExampleUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = \"Pods-A11yUITests_ExampleUITests.modulemap\"; sourceTree = \"<group>\"; };\n\t\t28C69C0BBE2D53342C4FFDC03ECDE8DC /* A11yUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = A11yUITests.modulemap; sourceTree = \"<group>\"; };\n\t\t2BE35B690B2EA963572A82E02421D56A /* A11yUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"A11yUITests-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t3006D75A5EC288FBDE9985E019D4F35F /* Pods-A11yUITests_ExampleUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-A11yUITests_ExampleUITests-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t35A1596E3D68A0F3D5CABE98AC87FB42 /* A11yUITests-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"A11yUITests-prefix.pch\"; sourceTree = \"<group>\"; };\n\t\t3ACA07E49A454084A01A00FAC5E14FC5 /* XCUIElementSnapshot+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = \"XCUIElementSnapshot+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\t44439EABAF52646700C93C1E0F120809 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = \"<group>\"; };\n\t\t5661872E3513F051E79EF0B643777E42 /* UIAccessibilityTraits+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = \"UIAccessibilityTraits+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\t568E339865C8AB97A822908C0ABFD693 /* A11yUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = A11yUITests.release.xcconfig; sourceTree = \"<group>\"; };\n\t\t5A6274C8A56060543AACFF9A29E0FA94 /* Pods-A11yUITests_ExampleUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = \"Pods-A11yUITests_ExampleUITests-frameworks.sh\"; sourceTree = \"<group>\"; };\n\t\t5BBB5085CDE27F6E27902E357ADD4671 /* Pods-A11yUITests_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-A11yUITests_Example-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t5CD316ABE953A851F64274D60AB4CFC4 /* Values.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Values.swift; sourceTree = \"<group>\"; };\n\t\t5EBC8F300895E39EA0DF6D6B2B5E6BCD /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };\n\t\t6418B7E6BB7698182C01F81569F93979 /* Pods-A11yUITests_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"Pods-A11yUITests_Example-umbrella.h\"; sourceTree = \"<group>\"; };\n\t\t69AEE66AFD1AFED6E6CCAAAC140E75C0 /* Failure.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Failure.swift; sourceTree = \"<group>\"; };\n\t\t733D6503FF64B33C74F6C7072D6340FD /* A11yElement.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = A11yElement.swift; sourceTree = \"<group>\"; };\n\t\t7D5FE81638FEE2217F5479E5A6AEEC33 /* A11yUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"A11yUITests-umbrella.h\"; sourceTree = \"<group>\"; };\n\t\t7D93755EE0F70BD6B883E63787B745E9 /* Pods-A11yUITests_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = \"Pods-A11yUITests_Example-acknowledgements.markdown\"; sourceTree = \"<group>\"; };\n\t\t818899D18C1C55CEB8B08544F21BA24D /* A11ySnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = A11ySnapshot.swift; sourceTree = \"<group>\"; };\n\t\t887479CA6E6C3F1C701E12C2D9907331 /* Pods-A11yUITests_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-A11yUITests_Example-acknowledgements.plist\"; sourceTree = \"<group>\"; };\n\t\t8CCF0A4BB003F06C90AC5440FF731179 /* A11yAssertions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = A11yAssertions.swift; sourceTree = \"<group>\"; };\n\t\t903CD4027157B6A698757E981449B3F4 /* Pods-A11yUITests_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-A11yUITests_Example.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t90C8DC89E518D011FEF8986D6FC21D18 /* Pods-A11yUITests_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = \"Pods-A11yUITests_Example\"; path = Pods_A11yUITests_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t9CECF5F8FF0D192E15ADA2E7F5E79EA1 /* A11yUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"A11yUITests-dummy.m\"; sourceTree = \"<group>\"; };\n\t\t9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };\n\t\tA03C76D4957732DC2D03CAC031A739A2 /* Pods-A11yUITests_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-A11yUITests_Example.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tA1417692524BF327AB8A9959529D3777 /* XCUIElement.ElementType+Name.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = \"XCUIElement.ElementType+Name.swift\"; sourceTree = \"<group>\"; };\n\t\tA3189CD00B02C7674C5C0329F6A04407 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = \"<group>\"; };\n\t\tAA571919F1C24A1FF9C981ADE6C15CD7 /* A11yTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = A11yTests.swift; sourceTree = \"<group>\"; };\n\t\tB0F7A495F3E70B94110AB67E40E0C33C /* NSObject+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = \"NSObject+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\tB574354829AA3BC1003E077A /* XCTest+extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"XCTest+extensions.swift\"; sourceTree = \"<group>\"; };\n\t\tB5E5B26529AA6802002E4833 /* CGFloat+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"CGFloat+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\tB8CB243D68E343282AB2BFB05512AEBC /* Pods-A11yUITests_ExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = \"Pods-A11yUITests_ExampleUITests-acknowledgements.markdown\"; sourceTree = \"<group>\"; };\n\t\tB9DA61CD1C94B157A741AB9549AC8B94 /* XCTestCase+A11y.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = \"XCTestCase+A11y.swift\"; sourceTree = \"<group>\"; };\n\t\tBCA42AF9766943558108BC586923734E /* Pods-A11yUITests_ExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-A11yUITests_ExampleUITests-acknowledgements.plist\"; sourceTree = \"<group>\"; };\n\t\tC78F5BE202F945BDD5F08D62226B8979 /* Pods-A11yUITests_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"Pods-A11yUITests_Example-dummy.m\"; sourceTree = \"<group>\"; };\n\t\tCA8B94E9D3B433157168D1EECCEC11CD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };\n\t\tD10A369997BE151A7B00B0D634CCB88D /* A11yUITests.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = A11yUITests.podspec; sourceTree = \"<group>\"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };\n\t\tED4AB13ABE158CD779DE2538AE4901AA /* TestRunner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TestRunner.swift; sourceTree = \"<group>\"; };\n\t\tF275FD5731FF6D12054EAFCDB2C2A009 /* A11yUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = A11yUITests.debug.xcconfig; sourceTree = \"<group>\"; };\n\t\tF73F27430AC93DB2B512DC2A4B670390 /* Pods-A11yUITests_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = \"Pods-A11yUITests_Example.modulemap\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t7851D5A802A58C6771B7AE487DFBB419 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t749040B9DDDE7A34914B1121187A1115 /* Foundation.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA347EF0802D61C3BC498EFAB4BE649B3 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA7E74E087DF362B7D0BFDEC879AAB7E8 /* Foundation.framework in Frameworks */,\n\t\t\t\t4254173723043B6EDBD3007BA60C7857 /* XCTest.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tF0880C17A1F439F20EC87488CD556657 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t5C010D72D1D73C139089C53A1337D737 /* Foundation.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\t08DE12A47275D036893D86C515A8973C /* Extensions */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB0F7A495F3E70B94110AB67E40E0C33C /* NSObject+Extensions.swift */,\n\t\t\t\t2565A65844EDD8B489BA9976915D4DA7 /* String+Extensions.swift */,\n\t\t\t\t5661872E3513F051E79EF0B643777E42 /* UIAccessibilityTraits+Extensions.swift */,\n\t\t\t\t3ACA07E49A454084A01A00FAC5E14FC5 /* XCUIElementSnapshot+Extensions.swift */,\n\t\t\t\tB574354829AA3BC1003E077A /* XCTest+extensions.swift */,\n\t\t\t\tB5E5B26529AA6802002E4833 /* CGFloat+Extensions.swift */,\n\t\t\t);\n\t\t\tname = Extensions;\n\t\t\tpath = Sources/A11yUITests/Extensions;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0A2339E11F0D3EA493D41707FA0AAF83 /* Targets Support Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4FB24E13AF805A5BD01BAAB460CC3587 /* Pods-A11yUITests_Example */,\n\t\t\t\t845BBB2BD49115827CD3B30D56270D41 /* Pods-A11yUITests_ExampleUITests */,\n\t\t\t);\n\t\t\tname = \"Targets Support Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0D38C9565A31D1BCAA70B94389E389C5 /* Support Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t28C69C0BBE2D53342C4FFDC03ECDE8DC /* A11yUITests.modulemap */,\n\t\t\t\t9CECF5F8FF0D192E15ADA2E7F5E79EA1 /* A11yUITests-dummy.m */,\n\t\t\t\t2BE35B690B2EA963572A82E02421D56A /* A11yUITests-Info.plist */,\n\t\t\t\t35A1596E3D68A0F3D5CABE98AC87FB42 /* A11yUITests-prefix.pch */,\n\t\t\t\t7D5FE81638FEE2217F5479E5A6AEEC33 /* A11yUITests-umbrella.h */,\n\t\t\t\tF275FD5731FF6D12054EAFCDB2C2A009 /* A11yUITests.debug.xcconfig */,\n\t\t\t\t568E339865C8AB97A822908C0ABFD693 /* A11yUITests.release.xcconfig */,\n\t\t\t);\n\t\t\tname = \"Support Files\";\n\t\t\tpath = \"Example/Pods/Target Support Files/A11yUITests\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t11BC2FB848D6AFB1A4344EF78CB8D577 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0C86D2B44EC444FE6634E1956FA0D8DC /* A11yUITests */,\n\t\t\t\t90C8DC89E518D011FEF8986D6FC21D18 /* Pods-A11yUITests_Example */,\n\t\t\t\t06BDBEFE7BF7A558A6B24469FA04EC9C /* Pods-A11yUITests_ExampleUITests */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t14581DCAB6A53EA4F5CF8E5E3EA5F461 /* Development Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3C547D309951E50BFA91E8E75AD963CD /* A11yUITests */,\n\t\t\t);\n\t\t\tname = \"Development Pods\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t974814B39C0012DECD183BBB91B32103 /* iOS */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t17E1551BBF5E373B802854988EDBA42A /* Elements */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t733D6503FF64B33C74F6C7072D6340FD /* A11yElement.swift */,\n\t\t\t\tA1417692524BF327AB8A9959529D3777 /* XCUIElement.ElementType+Name.swift */,\n\t\t\t);\n\t\t\tname = Elements;\n\t\t\tpath = Sources/A11yUITests/Elements;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t3C547D309951E50BFA91E8E75AD963CD /* A11yUITests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t17E1551BBF5E373B802854988EDBA42A /* Elements */,\n\t\t\t\t08DE12A47275D036893D86C515A8973C /* Extensions */,\n\t\t\t\t6223CBB65E90A88225BEF718CADE547F /* Helpers */,\n\t\t\t\tAD5FE0D0DA966FAAFD255B8E1E8E8F3D /* Pod */,\n\t\t\t\t0D38C9565A31D1BCAA70B94389E389C5 /* Support Files */,\n\t\t\t\tD22421805968E8555D6333F4CDC95E31 /* Tests */,\n\t\t\t);\n\t\t\tname = A11yUITests;\n\t\t\tpath = ../..;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4FB24E13AF805A5BD01BAAB460CC3587 /* Pods-A11yUITests_Example */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tF73F27430AC93DB2B512DC2A4B670390 /* Pods-A11yUITests_Example.modulemap */,\n\t\t\t\t7D93755EE0F70BD6B883E63787B745E9 /* Pods-A11yUITests_Example-acknowledgements.markdown */,\n\t\t\t\t887479CA6E6C3F1C701E12C2D9907331 /* Pods-A11yUITests_Example-acknowledgements.plist */,\n\t\t\t\tC78F5BE202F945BDD5F08D62226B8979 /* Pods-A11yUITests_Example-dummy.m */,\n\t\t\t\t5BBB5085CDE27F6E27902E357ADD4671 /* Pods-A11yUITests_Example-Info.plist */,\n\t\t\t\t6418B7E6BB7698182C01F81569F93979 /* Pods-A11yUITests_Example-umbrella.h */,\n\t\t\t\t903CD4027157B6A698757E981449B3F4 /* Pods-A11yUITests_Example.debug.xcconfig */,\n\t\t\t\tA03C76D4957732DC2D03CAC031A739A2 /* Pods-A11yUITests_Example.release.xcconfig */,\n\t\t\t);\n\t\t\tname = \"Pods-A11yUITests_Example\";\n\t\t\tpath = \"Target Support Files/Pods-A11yUITests_Example\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6223CBB65E90A88225BEF718CADE547F /* Helpers */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t69AEE66AFD1AFED6E6CCAAAC140E75C0 /* Failure.swift */,\n\t\t\t);\n\t\t\tname = Helpers;\n\t\t\tpath = Sources/A11yUITests/Helpers;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t845BBB2BD49115827CD3B30D56270D41 /* Pods-A11yUITests_ExampleUITests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t26464675A37C2C0341F3D45AA37F9016 /* Pods-A11yUITests_ExampleUITests.modulemap */,\n\t\t\t\tB8CB243D68E343282AB2BFB05512AEBC /* Pods-A11yUITests_ExampleUITests-acknowledgements.markdown */,\n\t\t\t\tBCA42AF9766943558108BC586923734E /* Pods-A11yUITests_ExampleUITests-acknowledgements.plist */,\n\t\t\t\t194ED318FCC5418CB903C4D1EA0AFB8B /* Pods-A11yUITests_ExampleUITests-dummy.m */,\n\t\t\t\t5A6274C8A56060543AACFF9A29E0FA94 /* Pods-A11yUITests_ExampleUITests-frameworks.sh */,\n\t\t\t\t3006D75A5EC288FBDE9985E019D4F35F /* Pods-A11yUITests_ExampleUITests-Info.plist */,\n\t\t\t\t13357D88C84F61D0461D6480AFA4BECB /* Pods-A11yUITests_ExampleUITests-umbrella.h */,\n\t\t\t\t092785D9D413E6A3F91CDF4C8FDB10DF /* Pods-A11yUITests_ExampleUITests.debug.xcconfig */,\n\t\t\t\t17860584BFC7619F0247D7B50FC37452 /* Pods-A11yUITests_ExampleUITests.release.xcconfig */,\n\t\t\t);\n\t\t\tname = \"Pods-A11yUITests_ExampleUITests\";\n\t\t\tpath = \"Target Support Files/Pods-A11yUITests_ExampleUITests\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t974814B39C0012DECD183BBB91B32103 /* iOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCA8B94E9D3B433157168D1EECCEC11CD /* Foundation.framework */,\n\t\t\t\t5EBC8F300895E39EA0DF6D6B2B5E6BCD /* XCTest.framework */,\n\t\t\t);\n\t\t\tname = iOS;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tAD5FE0D0DA966FAAFD255B8E1E8E8F3D /* Pod */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD10A369997BE151A7B00B0D634CCB88D /* A11yUITests.podspec */,\n\t\t\t\tA3189CD00B02C7674C5C0329F6A04407 /* LICENSE */,\n\t\t\t\t44439EABAF52646700C93C1E0F120809 /* README.md */,\n\t\t\t);\n\t\t\tname = Pod;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF1408CF629C7361332E53B88F7BD30C = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,\n\t\t\t\t14581DCAB6A53EA4F5CF8E5E3EA5F461 /* Development Pods */,\n\t\t\t\t1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */,\n\t\t\t\t11BC2FB848D6AFB1A4344EF78CB8D577 /* Products */,\n\t\t\t\t0A2339E11F0D3EA493D41707FA0AAF83 /* Targets Support Files */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD22421805968E8555D6333F4CDC95E31 /* Tests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8CCF0A4BB003F06C90AC5440FF731179 /* A11yAssertions.swift */,\n\t\t\t\t818899D18C1C55CEB8B08544F21BA24D /* A11ySnapshot.swift */,\n\t\t\t\tAA571919F1C24A1FF9C981ADE6C15CD7 /* A11yTests.swift */,\n\t\t\t\tED4AB13ABE158CD779DE2538AE4901AA /* TestRunner.swift */,\n\t\t\t\t5CD316ABE953A851F64274D60AB4CFC4 /* Values.swift */,\n\t\t\t\tB9DA61CD1C94B157A741AB9549AC8B94 /* XCTestCase+A11y.swift */,\n\t\t\t);\n\t\t\tname = Tests;\n\t\t\tpath = Sources/A11yUITests/Tests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t8C90B68806D2B95BC842D1BDECAE52F3 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7CEF1D4C56FDCA7E64C4210740CEE2DB /* Pods-A11yUITests_Example-umbrella.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t98BBA971953A7289544B16A9F170EE86 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t5ED0F81956203C722779A287F87BDB63 /* Pods-A11yUITests_ExampleUITests-umbrella.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t9DCA8AF35B3CCB177BADF6724B530087 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t3F52713A686DACEA0488AE02276913E3 /* A11yUITests-umbrella.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t1CD04A6F172AA7EE2B75168D0CBABA8F /* A11yUITests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 1F81AABECA9FE6B92033421F984327B6 /* Build configuration list for PBXNativeTarget \"A11yUITests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t9DCA8AF35B3CCB177BADF6724B530087 /* Headers */,\n\t\t\t\tEF4D0D1E675E5EE006145F01D34B79FB /* Sources */,\n\t\t\t\tA347EF0802D61C3BC498EFAB4BE649B3 /* Frameworks */,\n\t\t\t\tD8B49A0707624F66B2B125D9682308C3 /* 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 = A11yUITests;\n\t\t\tproductName = A11yUITests;\n\t\t\tproductReference = 0C86D2B44EC444FE6634E1956FA0D8DC /* A11yUITests */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\t4C69BDC8B5DB6D7A9DE7EFACC6E74D41 /* Pods-A11yUITests_ExampleUITests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 86E521689B8F2AF76DF22FA6493AC9F2 /* Build configuration list for PBXNativeTarget \"Pods-A11yUITests_ExampleUITests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t98BBA971953A7289544B16A9F170EE86 /* Headers */,\n\t\t\t\t3E0B07CFB3F92673859B6CCE5CA329FC /* Sources */,\n\t\t\t\t7851D5A802A58C6771B7AE487DFBB419 /* Frameworks */,\n\t\t\t\t8A19A4B7E89678C35214451F1906087C /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t4BD91002CAE666BF9411E19CADECE30C /* PBXTargetDependency */,\n\t\t\t\t097ABD9AA09B25308C80ED4ACCC80285 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"Pods-A11yUITests_ExampleUITests\";\n\t\t\tproductName = Pods_A11yUITests_ExampleUITests;\n\t\t\tproductReference = 06BDBEFE7BF7A558A6B24469FA04EC9C /* Pods-A11yUITests_ExampleUITests */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\t7C950F990A68123DBF2635DDBEBED3AA /* Pods-A11yUITests_Example */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 4EF03673BE65FB95051728DAE0BB0524 /* Build configuration list for PBXNativeTarget \"Pods-A11yUITests_Example\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t8C90B68806D2B95BC842D1BDECAE52F3 /* Headers */,\n\t\t\t\tF1B2AA67106D5FA56B902609B6EC12BF /* Sources */,\n\t\t\t\tF0880C17A1F439F20EC87488CD556657 /* Frameworks */,\n\t\t\t\tDA05552A30571E20735EA34EDF09AF7A /* 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 = \"Pods-A11yUITests_Example\";\n\t\t\tproductName = Pods_A11yUITests_Example;\n\t\t\tproductReference = 90C8DC89E518D011FEF8986D6FC21D18 /* Pods-A11yUITests_Example */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tBFDFE7DC352907FC980B868725387E98 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1240;\n\t\t\t\tLastUpgradeCheck = 1240;\n\t\t\t};\n\t\t\tbuildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject \"Pods\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\tBase,\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = CF1408CF629C7361332E53B88F7BD30C;\n\t\t\tproductRefGroup = 11BC2FB848D6AFB1A4344EF78CB8D577 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t1CD04A6F172AA7EE2B75168D0CBABA8F /* A11yUITests */,\n\t\t\t\t7C950F990A68123DBF2635DDBEBED3AA /* Pods-A11yUITests_Example */,\n\t\t\t\t4C69BDC8B5DB6D7A9DE7EFACC6E74D41 /* Pods-A11yUITests_ExampleUITests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t8A19A4B7E89678C35214451F1906087C /* 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\tD8B49A0707624F66B2B125D9682308C3 /* 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\tDA05552A30571E20735EA34EDF09AF7A /* 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\t3E0B07CFB3F92673859B6CCE5CA329FC /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t358E24597528C6CD0FA30ABB4E2A6B14 /* Pods-A11yUITests_ExampleUITests-dummy.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tEF4D0D1E675E5EE006145F01D34B79FB /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t6D2767059B928CAF7CB6956EA2A0FEDF /* A11yAssertions.swift in Sources */,\n\t\t\t\tFCA4D31DBB3A43D7C2B64776E31A08AB /* A11yElement.swift in Sources */,\n\t\t\t\t96E3DD27029B0CCFBB4314CC510EE0E3 /* A11ySnapshot.swift in Sources */,\n\t\t\t\t5EF8B909FEC4CF7506680C929771ED53 /* A11yTests.swift in Sources */,\n\t\t\t\t238FB925228BF10462B8B067EF780C8D /* A11yUITests-dummy.m in Sources */,\n\t\t\t\tD477E37CF14AF319305184A16E2B5F55 /* Failure.swift in Sources */,\n\t\t\t\t3F27A667C6E9B253F9DE85BF13DEA0F9 /* NSObject+Extensions.swift in Sources */,\n\t\t\t\t17FDB1F0B86F11EFDFA84279CF4AA057 /* String+Extensions.swift in Sources */,\n\t\t\t\tB5E5B26629AA6802002E4833 /* CGFloat+Extensions.swift in Sources */,\n\t\t\t\tB574354929AA3BC1003E077A /* XCTest+extensions.swift in Sources */,\n\t\t\t\t8BE342D78F958D3B0C22E3FE1D594B35 /* TestRunner.swift in Sources */,\n\t\t\t\t4506F6D361FD18CF8BBE40CDB5A5F967 /* UIAccessibilityTraits+Extensions.swift in Sources */,\n\t\t\t\t8E3E1CD6FE7730051804AB1E03B18365 /* Values.swift in Sources */,\n\t\t\t\t687CF6C490C50856A274D0BEA2EEBBD9 /* XCTestCase+A11y.swift in Sources */,\n\t\t\t\t656CFD36E712E8E7AC09BF1154394876 /* XCUIElement.ElementType+Name.swift in Sources */,\n\t\t\t\t3381D04F7EB08959C620CAF19C1D5504 /* XCUIElementSnapshot+Extensions.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tF1B2AA67106D5FA56B902609B6EC12BF /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7868E4AED48565BDE14FBD0C1956C9AE /* Pods-A11yUITests_Example-dummy.m 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\t097ABD9AA09B25308C80ED4ACCC80285 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tname = \"Pods-A11yUITests_Example\";\n\t\t\ttarget = 7C950F990A68123DBF2635DDBEBED3AA /* Pods-A11yUITests_Example */;\n\t\t\ttargetProxy = BE98C7D17C5FD4B27B9AF584FAD407A1 /* PBXContainerItemProxy */;\n\t\t};\n\t\t4BD91002CAE666BF9411E19CADECE30C /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tname = A11yUITests;\n\t\t\ttarget = 1CD04A6F172AA7EE2B75168D0CBABA8F /* A11yUITests */;\n\t\t\ttargetProxy = 53985416026C5AC2DC081EAAFACFBED7 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\t3D820D0F79ADED34149436213068283C /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 903CD4027157B6A698757E981449B3F4 /* Pods-A11yUITests_Example.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = NO;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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 = \"Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.modulemap\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\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\t4291585FD48D3354B5499761EF3EDC11 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 17860584BFC7619F0247D7B50FC37452 /* Pods-A11yUITests_ExampleUITests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = NO;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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 = \"Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.modulemap\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\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\t8B79262DBBED73EB4DB5890C5730D4D7 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = A03C76D4957732DC2D03CAC031A739A2 /* Pods-A11yUITests_Example.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = NO;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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 = \"Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.modulemap\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\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\t903A0004D3E6651EFD5D2E16214D101B /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\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_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\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_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"POD_CONFIGURATION_RELEASE=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 = 11.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSTRIP_INSTALLED_PRODUCT = NO;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tSYMROOT = \"${SRCROOT}/../build\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t9A62C97535D0F3B4FC082D79F1B2E168 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = F275FD5731FF6D12054EAFCDB2C2A009 /* A11yUITests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = NO;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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\tGCC_PREFIX_HEADER = \"Target Support Files/A11yUITests/A11yUITests-prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"Target Support Files/A11yUITests/A11yUITests-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/A11yUITests/A11yUITests.modulemap\";\n\t\t\t\tPRODUCT_MODULE_NAME = A11yUITests;\n\t\t\t\tPRODUCT_NAME = A11yUITests;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = \"$(inherited) \";\n\t\t\t\tSWIFT_VERSION = 5.0;\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\tAB118C225CB7FC8043642A5839AAC250 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 092785D9D413E6A3F91CDF4C8FDB10DF /* Pods-A11yUITests_ExampleUITests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = NO;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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 = \"Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.modulemap\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\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\tB4EFE046ACF8F37157F6E322C7FCFC28 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\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_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\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_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = gnu11;\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\"POD_CONFIGURATION_DEBUG=1\",\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 = 11.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSTRIP_INSTALLED_PRODUCT = NO;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tSYMROOT = \"${SRCROOT}/../build\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tFA2FBB3B31E1CA68192F7B1B5C155C20 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 568E339865C8AB97A822908C0ABFD693 /* A11yUITests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = NO;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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\tGCC_PREFIX_HEADER = \"Target Support Files/A11yUITests/A11yUITests-prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"Target Support Files/A11yUITests/A11yUITests-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/A11yUITests/A11yUITests.modulemap\";\n\t\t\t\tPRODUCT_MODULE_NAME = A11yUITests;\n\t\t\t\tPRODUCT_NAME = A11yUITests;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = \"$(inherited) \";\n\t\t\t\tSWIFT_VERSION = 5.0;\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/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t1F81AABECA9FE6B92033421F984327B6 /* Build configuration list for PBXNativeTarget \"A11yUITests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t9A62C97535D0F3B4FC082D79F1B2E168 /* Debug */,\n\t\t\t\tFA2FBB3B31E1CA68192F7B1B5C155C20 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject \"Pods\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tB4EFE046ACF8F37157F6E322C7FCFC28 /* Debug */,\n\t\t\t\t903A0004D3E6651EFD5D2E16214D101B /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t4EF03673BE65FB95051728DAE0BB0524 /* Build configuration list for PBXNativeTarget \"Pods-A11yUITests_Example\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t3D820D0F79ADED34149436213068283C /* Debug */,\n\t\t\t\t8B79262DBBED73EB4DB5890C5730D4D7 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t86E521689B8F2AF76DF22FA6493AC9F2 /* Build configuration list for PBXNativeTarget \"Pods-A11yUITests_ExampleUITests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tAB118C225CB7FC8043642A5839AAC250 /* Debug */,\n\t\t\t\t4291585FD48D3354B5499761EF3EDC11 /* 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 = BFDFE7DC352907FC980B868725387E98 /* Project object */;\n}\n"
  },
  {
    "path": "Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests-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  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>${EXECUTABLE_NAME}</string>\n  <key>CFBundleIdentifier</key>\n  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>${PRODUCT_NAME}</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>${CURRENT_PROJECT_VERSION}</string>\n  <key>NSPrincipalClass</key>\n  <string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_A11yUITests : NSObject\n@end\n@implementation PodsDummy_A11yUITests\n@end\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests-prefix.pch",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests-umbrella.h",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n\nFOUNDATION_EXPORT double A11yUITestsVersionNumber;\nFOUNDATION_EXPORT const unsigned char A11yUITestsVersionString[];\n\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests.debug.xcconfig",
    "content": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nCONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nLIBRARY_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/usr/lib\" \"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\" /usr/lib/swift\nOTHER_LDFLAGS = $(inherited) -framework \"XCTest\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}\nPODS_TARGET_SRCROOT = ${PODS_ROOT}/../..\nPODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates\nPRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\nSKIP_INSTALL = YES\nSWIFT_INCLUDE_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/usr/lib\"\nSYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\"\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests.modulemap",
    "content": "framework module A11yUITests {\n  umbrella header \"A11yUITests-umbrella.h\"\n\n  export *\n  module * { export * }\n}\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests.release.xcconfig",
    "content": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nCONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nLIBRARY_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/usr/lib\" \"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\" /usr/lib/swift\nOTHER_LDFLAGS = $(inherited) -framework \"XCTest\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}\nPODS_TARGET_SRCROOT = ${PODS_ROOT}/../..\nPODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates\nPRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\nSKIP_INSTALL = YES\nSWIFT_INCLUDE_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/usr/lib\"\nSYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\"\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "Example/Pods/Target Support Files/A11yUITests/A11yUITests.xcconfig",
    "content": "CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nOTHER_LDFLAGS = $(inherited) -framework \"XCTest\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}\nPODS_TARGET_SRCROOT = ${PODS_ROOT}/../..\nPRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\nSKIP_INSTALL = YES\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-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  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>${EXECUTABLE_NAME}</string>\n  <key>CFBundleIdentifier</key>\n  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>${PRODUCT_NAME}</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>${CURRENT_PROJECT_VERSION}</string>\n  <key>NSPrincipalClass</key>\n  <string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-acknowledgements.markdown",
    "content": "# Acknowledgements\nThis application makes use of the following third party libraries:\nGenerated by CocoaPods - https://cocoapods.org\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-acknowledgements.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>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>This application makes use of the following third party libraries:</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Acknowledgements</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Generated by CocoaPods - https://cocoapods.org</string>\n\t\t\t<key>Title</key>\n\t\t\t<string></string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t</array>\n\t<key>StringsTable</key>\n\t<string>Acknowledgements</string>\n\t<key>Title</key>\n\t<string>Acknowledgements</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_A11yUITests_Example : NSObject\n@end\n@implementation PodsDummy_Pods_A11yUITests_Example\n@end\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-frameworks.sh",
    "content": "#!/bin/sh\nset -e\nset -u\nset -o pipefail\n\nfunction on_error {\n  echo \"$(realpath -mq \"${0}\"):$1: error: Unexpected failure\"\n}\ntrap 'on_error $LINENO' ERR\n\nif [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then\n  # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy\n  # frameworks to, so exit 0 (signalling the script phase was successful).\n  exit 0\nfi\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nCOCOAPODS_PARALLEL_CODE_SIGN=\"${COCOAPODS_PARALLEL_CODE_SIGN:-false}\"\nSWIFT_STDLIB_PATH=\"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"\n\n# Used as a return value for each invocation of `strip_invalid_archs` function.\nSTRIP_BINARY_RETVAL=0\n\n# This protects against multiple targets copying the same framework dependency at the same time. The solution\n# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html\nRSYNC_PROTECT_TMP_FILES=(--filter \"P .*.??????\")\n\n# Copies and strips a vendored framework\ninstall_framework()\n{\n  if [ -r \"${BUILT_PRODUCTS_DIR}/$1\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$1\"\n  elif [ -r \"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\"\n  elif [ -r \"$1\" ]; then\n    local source=\"$1\"\n  fi\n\n  local destination=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\n  if [ -L \"${source}\" ]; then\n    echo \"Symlinked...\"\n    source=\"$(readlink \"${source}\")\"\n  fi\n\n  # Use filter instead of exclude so missing patterns don't throw errors.\n  echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${destination}\\\"\"\n  rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"\n\n  local basename\n  basename=\"$(basename -s .framework \"$1\")\"\n  binary=\"${destination}/${basename}.framework/${basename}\"\n\n  if ! [ -r \"$binary\" ]; then\n    binary=\"${destination}/${basename}\"\n  elif [ -L \"${binary}\" ]; then\n    echo \"Destination binary is symlinked...\"\n    dirname=\"$(dirname \"${binary}\")\"\n    binary=\"${dirname}/$(readlink \"${binary}\")\"\n  fi\n\n  # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n  if [[ \"$(file \"$binary\")\" == *\"dynamically linked shared library\"* ]]; then\n    strip_invalid_archs \"$binary\"\n  fi\n\n  # Resign the code if required by the build settings to avoid unstable apps\n  code_sign_if_enabled \"${destination}/$(basename \"$1\")\"\n\n  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.\n  if [ \"${XCODE_VERSION_MAJOR}\" -lt 7 ]; then\n    local swift_runtime_libs\n    swift_runtime_libs=$(xcrun otool -LX \"$binary\" | grep --color=never @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u)\n    for lib in $swift_runtime_libs; do\n      echo \"rsync -auv \\\"${SWIFT_STDLIB_PATH}/${lib}\\\" \\\"${destination}\\\"\"\n      rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"\n      code_sign_if_enabled \"${destination}/${lib}\"\n    done\n  fi\n}\n\n# Copies and strips a vendored dSYM\ninstall_dsym() {\n  local source=\"$1\"\n  if [ -r \"$source\" ]; then\n    # Copy the dSYM into a the targets temp dir.\n    echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${DERIVED_FILES_DIR}\\\"\"\n    rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"\n\n    local basename\n    basename=\"$(basename -s .framework.dSYM \"$source\")\"\n    binary=\"${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}\"\n\n    # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n    if [[ \"$(file \"$binary\")\" == *\"Mach-O \"*\"dSYM companion\"* ]]; then\n      strip_invalid_archs \"$binary\"\n    fi\n\n    if [[ $STRIP_BINARY_RETVAL == 1 ]]; then\n      # Move the stripped file into its final destination.\n      echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\\\" \\\"${DWARF_DSYM_FOLDER_PATH}\\\"\"\n      rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"\n    else\n      # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.\n      touch \"${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM\"\n    fi\n  fi\n}\n\n# Copies the bcsymbolmap files of a vendored framework\ninstall_bcsymbolmap() {\n    local bcsymbolmap_path=\"$1\"\n    local destination=\"${BUILT_PRODUCTS_DIR}\"\n    echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\"\"\n    rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\"\n}\n\n# Signs a framework with the provided identity\ncode_sign_if_enabled() {\n  if [ -n \"${EXPANDED_CODE_SIGN_IDENTITY:-}\" -a \"${CODE_SIGNING_REQUIRED:-}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n    # Use the current code_sign_identity\n    echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n    local code_sign_cmd=\"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'\"\n\n    if [ \"${COCOAPODS_PARALLEL_CODE_SIGN}\" == \"true\" ]; then\n      code_sign_cmd=\"$code_sign_cmd &\"\n    fi\n    echo \"$code_sign_cmd\"\n    eval \"$code_sign_cmd\"\n  fi\n}\n\n# Strip invalid architectures\nstrip_invalid_archs() {\n  binary=\"$1\"\n  # Get architectures for current target binary\n  binary_archs=\"$(lipo -info \"$binary\" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)\"\n  # Intersect them with the architectures we are building for\n  intersected_archs=\"$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\\n' | sort | uniq -d)\"\n  # If there are no archs supported by this binary then warn the user\n  if [[ -z \"$intersected_archs\" ]]; then\n    echo \"warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS).\"\n    STRIP_BINARY_RETVAL=0\n    return\n  fi\n  stripped=\"\"\n  for arch in $binary_archs; do\n    if ! [[ \"${ARCHS}\" == *\"$arch\"* ]]; then\n      # Strip non-valid architectures in-place\n      lipo -remove \"$arch\" -output \"$binary\" \"$binary\"\n      stripped=\"$stripped $arch\"\n    fi\n  done\n  if [[ \"$stripped\" ]]; then\n    echo \"Stripped $binary of architectures:$stripped\"\n  fi\n  STRIP_BINARY_RETVAL=1\n}\n\n\nif [[ \"$CONFIGURATION\" == \"Debug\" ]]; then\n  install_framework \"${BUILT_PRODUCTS_DIR}/A11yUITests/A11yUITests.framework\"\nfi\nif [[ \"$CONFIGURATION\" == \"Release\" ]]; then\n  install_framework \"${BUILT_PRODUCTS_DIR}/A11yUITests/A11yUITests.framework\"\nfi\nif [ \"${COCOAPODS_PARALLEL_CODE_SIGN}\" == \"true\" ]; then\n  wait\nfi\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example-umbrella.h",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n\nFOUNDATION_EXPORT double Pods_A11yUITests_ExampleVersionNumber;\nFOUNDATION_EXPORT const unsigned char Pods_A11yUITests_ExampleVersionString[];\n\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.debug.xcconfig",
    "content": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_PODFILE_DIR_PATH = ${SRCROOT}/.\nPODS_ROOT = ${SRCROOT}/Pods\nPODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.modulemap",
    "content": "framework module Pods_A11yUITests_Example {\n  umbrella header \"Pods-A11yUITests_Example-umbrella.h\"\n\n  export *\n  module * { export * }\n}\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_Example/Pods-A11yUITests_Example.release.xcconfig",
    "content": "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_PODFILE_DIR_PATH = ${SRCROOT}/.\nPODS_ROOT = ${SRCROOT}/Pods\nPODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-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  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>${EXECUTABLE_NAME}</string>\n  <key>CFBundleIdentifier</key>\n  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>${PRODUCT_NAME}</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>${CURRENT_PROJECT_VERSION}</string>\n  <key>NSPrincipalClass</key>\n  <string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-acknowledgements.markdown",
    "content": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## A11yUITests\n\nCopyright (c) 2019 r.whitaker@mac.com <r.whitaker@mac.com>\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\nall copies 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\nTHE SOFTWARE.\n\nGenerated by CocoaPods - https://cocoapods.org\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-acknowledgements.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>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>This application makes use of the following third party libraries:</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Acknowledgements</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Copyright (c) 2019 r.whitaker@mac.com &lt;r.whitaker@mac.com&gt;\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\nall copies 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\nTHE SOFTWARE.\n</string>\n\t\t\t<key>License</key>\n\t\t\t<string>MIT</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>A11yUITests</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Generated by CocoaPods - https://cocoapods.org</string>\n\t\t\t<key>Title</key>\n\t\t\t<string></string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t</array>\n\t<key>StringsTable</key>\n\t<string>Acknowledgements</string>\n\t<key>Title</key>\n\t<string>Acknowledgements</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_A11yUITests_ExampleUITests : NSObject\n@end\n@implementation PodsDummy_Pods_A11yUITests_ExampleUITests\n@end\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-frameworks.sh",
    "content": "#!/bin/sh\nset -e\nset -u\nset -o pipefail\n\nfunction on_error {\n  echo \"$(realpath -mq \"${0}\"):$1: error: Unexpected failure\"\n}\ntrap 'on_error $LINENO' ERR\n\nif [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then\n  # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy\n  # frameworks to, so exit 0 (signalling the script phase was successful).\n  exit 0\nfi\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nCOCOAPODS_PARALLEL_CODE_SIGN=\"${COCOAPODS_PARALLEL_CODE_SIGN:-false}\"\nSWIFT_STDLIB_PATH=\"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"\nBCSYMBOLMAP_DIR=\"BCSymbolMaps\"\n\n\n# This protects against multiple targets copying the same framework dependency at the same time. The solution\n# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html\nRSYNC_PROTECT_TMP_FILES=(--filter \"P .*.??????\")\n\n# Copies and strips a vendored framework\ninstall_framework()\n{\n  if [ -r \"${BUILT_PRODUCTS_DIR}/$1\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$1\"\n  elif [ -r \"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\"\n  elif [ -r \"$1\" ]; then\n    local source=\"$1\"\n  fi\n\n  local destination=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\n  if [ -L \"${source}\" ]; then\n    echo \"Symlinked...\"\n    source=\"$(readlink \"${source}\")\"\n  fi\n\n  if [ -d \"${source}/${BCSYMBOLMAP_DIR}\" ]; then\n    # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied\n    find \"${source}/${BCSYMBOLMAP_DIR}\" -name \"*.bcsymbolmap\"|while read f; do\n      echo \"Installing $f\"\n      install_bcsymbolmap \"$f\" \"$destination\"\n      rm \"$f\"\n    done\n    rmdir \"${source}/${BCSYMBOLMAP_DIR}\"\n  fi\n\n  # Use filter instead of exclude so missing patterns don't throw errors.\n  echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --links --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${destination}\\\"\"\n  rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"\n\n  local basename\n  basename=\"$(basename -s .framework \"$1\")\"\n  binary=\"${destination}/${basename}.framework/${basename}\"\n\n  if ! [ -r \"$binary\" ]; then\n    binary=\"${destination}/${basename}\"\n  elif [ -L \"${binary}\" ]; then\n    echo \"Destination binary is symlinked...\"\n    dirname=\"$(dirname \"${binary}\")\"\n    binary=\"${dirname}/$(readlink \"${binary}\")\"\n  fi\n\n  # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n  if [[ \"$(file \"$binary\")\" == *\"dynamically linked shared library\"* ]]; then\n    strip_invalid_archs \"$binary\"\n  fi\n\n  # Resign the code if required by the build settings to avoid unstable apps\n  code_sign_if_enabled \"${destination}/$(basename \"$1\")\"\n\n  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.\n  if [ \"${XCODE_VERSION_MAJOR}\" -lt 7 ]; then\n    local swift_runtime_libs\n    swift_runtime_libs=$(xcrun otool -LX \"$binary\" | grep --color=never @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u)\n    for lib in $swift_runtime_libs; do\n      echo \"rsync -auv \\\"${SWIFT_STDLIB_PATH}/${lib}\\\" \\\"${destination}\\\"\"\n      rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"\n      code_sign_if_enabled \"${destination}/${lib}\"\n    done\n  fi\n}\n# Copies and strips a vendored dSYM\ninstall_dsym() {\n  local source=\"$1\"\n  warn_missing_arch=${2:-true}\n  if [ -r \"$source\" ]; then\n    # Copy the dSYM into the targets temp dir.\n    echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${DERIVED_FILES_DIR}\\\"\"\n    rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"\n\n    local basename\n    basename=\"$(basename -s .dSYM \"$source\")\"\n    binary_name=\"$(ls \"$source/Contents/Resources/DWARF\")\"\n    binary=\"${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}\"\n\n    # Strip invalid architectures from the dSYM.\n    if [[ \"$(file \"$binary\")\" == *\"Mach-O \"*\"dSYM companion\"* ]]; then\n      strip_invalid_archs \"$binary\" \"$warn_missing_arch\"\n    fi\n    if [[ $STRIP_BINARY_RETVAL == 0 ]]; then\n      # Move the stripped file into its final destination.\n      echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --links --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\\\" \\\"${DWARF_DSYM_FOLDER_PATH}\\\"\"\n      rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"\n    else\n      # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.\n      mkdir -p \"${DWARF_DSYM_FOLDER_PATH}\"\n      touch \"${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM\"\n    fi\n  fi\n}\n\n# Used as a return value for each invocation of `strip_invalid_archs` function.\nSTRIP_BINARY_RETVAL=0\n\n# Strip invalid architectures\nstrip_invalid_archs() {\n  binary=\"$1\"\n  warn_missing_arch=${2:-true}\n  # Get architectures for current target binary\n  binary_archs=\"$(lipo -info \"$binary\" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)\"\n  # Intersect them with the architectures we are building for\n  intersected_archs=\"$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\\n' | sort | uniq -d)\"\n  # If there are no archs supported by this binary then warn the user\n  if [[ -z \"$intersected_archs\" ]]; then\n    if [[ \"$warn_missing_arch\" == \"true\" ]]; then\n      echo \"warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS).\"\n    fi\n    STRIP_BINARY_RETVAL=1\n    return\n  fi\n  stripped=\"\"\n  for arch in $binary_archs; do\n    if ! [[ \"${ARCHS}\" == *\"$arch\"* ]]; then\n      # Strip non-valid architectures in-place\n      lipo -remove \"$arch\" -output \"$binary\" \"$binary\"\n      stripped=\"$stripped $arch\"\n    fi\n  done\n  if [[ \"$stripped\" ]]; then\n    echo \"Stripped $binary of architectures:$stripped\"\n  fi\n  STRIP_BINARY_RETVAL=0\n}\n\n# Copies the bcsymbolmap files of a vendored framework\ninstall_bcsymbolmap() {\n    local bcsymbolmap_path=\"$1\"\n    local destination=\"${BUILT_PRODUCTS_DIR}\"\n    echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\"\"\n    rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\"\n}\n\n# Signs a framework with the provided identity\ncode_sign_if_enabled() {\n  if [ -n \"${EXPANDED_CODE_SIGN_IDENTITY:-}\" -a \"${CODE_SIGNING_REQUIRED:-}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n    # Use the current code_sign_identity\n    echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n    local code_sign_cmd=\"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'\"\n\n    if [ \"${COCOAPODS_PARALLEL_CODE_SIGN}\" == \"true\" ]; then\n      code_sign_cmd=\"$code_sign_cmd &\"\n    fi\n    echo \"$code_sign_cmd\"\n    eval \"$code_sign_cmd\"\n  fi\n}\n\nif [[ \"$CONFIGURATION\" == \"Debug\" ]]; then\n  install_framework \"${BUILT_PRODUCTS_DIR}/A11yUITests/A11yUITests.framework\"\nfi\nif [[ \"$CONFIGURATION\" == \"Release\" ]]; then\n  install_framework \"${BUILT_PRODUCTS_DIR}/A11yUITests/A11yUITests.framework\"\nfi\nif [ \"${COCOAPODS_PARALLEL_CODE_SIGN}\" == \"true\" ]; then\n  wait\nfi\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests-umbrella.h",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n\nFOUNDATION_EXPORT double Pods_A11yUITests_ExampleUITestsVersionNumber;\nFOUNDATION_EXPORT const unsigned char Pods_A11yUITests_ExampleUITestsVersionString[];\n\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.debug.xcconfig",
    "content": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\" \"${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests/A11yUITests.framework/Headers\"\nLD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift \"$(PLATFORM_DIR)/Developer/Library/Frameworks\" '@executable_path/Frameworks' '@loader_path/Frameworks'\nLIBRARY_SEARCH_PATHS = $(inherited) \"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\" /usr/lib/swift\nOTHER_LDFLAGS = $(inherited) -framework \"A11yUITests\" -framework \"XCTest\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_PODFILE_DIR_PATH = ${SRCROOT}/.\nPODS_ROOT = ${SRCROOT}/Pods\nPODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.modulemap",
    "content": "framework module Pods_A11yUITests_ExampleUITests {\n  umbrella header \"Pods-A11yUITests_ExampleUITests-umbrella.h\"\n\n  export *\n  module * { export * }\n}\n"
  },
  {
    "path": "Example/Pods/Target Support Files/Pods-A11yUITests_ExampleUITests/Pods-A11yUITests_ExampleUITests.release.xcconfig",
    "content": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Frameworks\" \"${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR}/A11yUITests/A11yUITests.framework/Headers\"\nLD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift \"$(PLATFORM_DIR)/Developer/Library/Frameworks\" '@executable_path/Frameworks' '@loader_path/Frameworks'\nLIBRARY_SEARCH_PATHS = $(inherited) \"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\" /usr/lib/swift\nOTHER_LDFLAGS = $(inherited) -framework \"A11yUITests\" -framework \"XCTest\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_PODFILE_DIR_PATH = ${SRCROOT}/.\nPODS_ROOT = ${SRCROOT}/Pods\nPODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates\nUSE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2019 r.whitaker@mac.com <r.whitaker@mac.com>\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\nall copies 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\nTHE SOFTWARE.\n"
  },
  {
    "path": "Package.swift",
    "content": "// swift-tools-version:5.3\n// The swift-tools-version declares the minimum version of Swift required to build this package.\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"A11yUITests\",\n    platforms: [\n        .iOS(.v11)\n    ],\n    products: [\n        .library(\n            name: \"A11yUITests\",\n            targets: [\"A11yUITests\"]\n        ),\n    ],\n    targets: [\n        .target(\n            name: \"A11yUITests\",\n            dependencies: [],\n            path: \"Sources/A11yUITests\"\n        ),\n    ],\n    swiftLanguageVersions: [.v5]\n)\n"
  },
  {
    "path": "README.md",
    "content": "# A11yUITests\n\n[![Version](https://img.shields.io/cocoapods/v/A11yUITests.svg?style=flat)](https://cocoapods.org/pods/A11yUITests)\n[![License](https://img.shields.io/cocoapods/l/A11yUITests.svg?style=flat)](https://cocoapods.org/pods/A11yUITests)\n[![Platform](https://img.shields.io/cocoapods/p/A11yUITests.svg?style=flat)](https://cocoapods.org/pods/A11yUITests)\n[![Twitter](https://img.shields.io/twitter/follow/MobileA11y?style=flat)](https://twitter.com/mobilea11y)\n\n**⚠️ This library is no longer maintained and you probably shouldn't use it. ⚠️**\n\nInstead consider using one or more of these tools that, tbh, do a better job.\n* [AccessibilitySnapshot](https://github.com/cashapp/AccessibilitySnapshot) - An accessibility snapshot testing library that can cover more than this approach is able to.\n* [Reveal](https://revealapp.com) - An inspector that can provide you a visual representation of your app's accessibility and more. \n\nA11yTests is an extension to `XCTestCase` that adds tests for common accessibility issues that can be run as part of an XCUI Test suite.\n\nTests can either be run separately or integrated into existing XCUI Tests.\n\n## Using These Tests\n\nGood accessibility is not about ticking boxes and conforming to regulations and guidelines, but about how your app is experienced. You will only ever know if your app is actually accessible by letting real people use it. Consider these tests as hints for where you might be able to do better, and use them to detect regressions.\n\nFailures for these tests should be seen as warnings for further investigation, not strict failures. As such i'd recommend always having `continueAfterFailure = true` set.\n\nThe library has two types of tests - [assertions](#assertion-tests) and [snapshots](#snapshot-tests).\nAssertion tests check each individual element for potential accessibility failures.\nSnapshot tests creates a snapshot of your app's accessibility tree and stores this as a reference for future tests. If something changes in the accessibility tree in a future test, the test will fail signifying you should validate the change. No assertions are made against the accessibility tree, only a check for any changes since the last snapshot state.\n\nFailures have two categories: Warning and Failure.\nFailures are fails against WCAG or the HIG. Warnings may be acceptable, but require investigation.\n\nadd `import A11yUITests` to the top of your test file.\n\n\n## Assertion tests\n\nAssertion tests check each individual element for potential accessibility failures.\n\n### Running Tests\n\nTests can be run individually or in suites.\n\n#### Running All Tests on All Elements\n\n```swift\nfunc test_allTests() {\n    XCUIApplication().launch()\n    a11yCheckAllOnScreen()\n}\n```\n\n#### Specifying Tests/Elements\n\nTo specify elements and tests use  `a11y(tests: [A11yTests], on elements: [XCUIElement])` passing an array of tests to run and an array of elements to run them on. To run all interactive element tests on all buttons:\n\n```swift\nfunc test_buttons() {\n    let buttons = XCUIApplication().buttons.allElementsBoundByIndex\n    a11y(tests: a11yTestSuiteInteractive, on: buttons)\n}\n```\n\nTo run a single test on a single element pass arrays with the test and element. To check if a button has a valid accessibility label:\n\n```swift\nfunc test_individualTest_individualButton() {\n    let button = XCUIApplication().buttons[\"My Button\"]\n    a11y(tests: [.buttonLabel], on: [button])\n}\n```\n\n#### Ignoring Elements\n\nWhen running `a11yCheckAllOnScreen()` it is possible to ignore elements using their accessibility identifiers by passing any identifiers you wish to ignore with the `ignoringElementIdentifiers: [String]` argument.\n\n### Test Suites\n\nA11yUITests contains 4 pre-built test suites with tests suitable for different elements.\n\n`a11yTestSuiteAll` Runs all tests.\n\n`a11yTestSuiteImages` Runs tests suitable for images.\n\n`a11yTestSuiteInteractive` runs tests suitable for interactive elements.\n\n`a11yTestSuiteLabels` runs tests suitable for static text elements.\n\n\nAlternatively you can create an array of `A11yTests` enum values for the tests you want to run.\n\n### Tests\n\n#### Minimum Size\n\n`minimumSize` or checks an element is at least 14px x 14px.\nTo specify a minimum size set a value to `A11yTestValues.minSize`\nSeverity: Warning\n\nNote: 14px is arbitrary.\n\n#### Minimum Interactive Size\n\n`minimumInteractiveSize` checks tappable elements are a minimum of 44px x 44px.\nThis satisfies [WCAG 2.1 Success Criteria 2.5.5 Target Size Level AAA](https://www.w3.org/TR/WCAG21/#target-size)\nTo specify a custom minimum interactive size set a value to `A11yTestValues.minInteractiveSize`. This is not recommended.\nSeverity: Error\n\nNote: Many of Apple's controls fail this requirement. For this reason, when running a suite of tests with `minimumInteractiveSize` only buttons and cells are checked. This may still result in some failures for `UITabBarButton`s for example.\nFor full compliance, you should run `a11yCheckValidSizeFor(interactiveElement: XCUIElement)` on any element that your user might interact with, eg. sliders, steppers, switches, segmented controls. But you will need to make your own subclass as Apple's are not strictly adherent to WCAG.\n\n#### Label Presence\n\n`labelPresence` checks the element has an accessibility label that is a minimum of 2 characters long. \nPass a `minMeaningfulLength` argument to `a11yCheckValidLabelFor(element: XCUIElement, minMeaningfulLength: Int )` to change the minimum length. Or to set a minimum length for all tests set a value to `A11yTestValues.minMeaningfulLength`\nThis counts towards [WCAG 2.1 Guideline 1.1 Text Alternatives](https://www.w3.org/TR/WCAG21/#text-alternatives) but does not guarantee compliance.\nSeverity: Warning\n\nAdditionally this tests checks for elements that have a placeholder but no label and that the label is not uppercased.\nSeverity: Failure\n\nNote: A length of 2 is arbitrary\n\n#### Button Label\n\n`buttonLabel` checks labels for interactive elements begin with a capital letter and don't contain a period or the word button. Checks the label is a minimum of 2 characters long. Checks the button doesn't contain common non-descriptive titles. This also checks that other interactive elements don't include their type in their label. \nPass a `minMeaningfulLength` argument to `a11yCheckValidLabelFor(interactiveElement: XCUIElement, minMeaningfulLength: Int )` to change the minimum length.  Or to set a minimum length for all tests set a value to `A11yTestValues.minMeaningfulLength`\nThis follows [Apple's guidance for writing accessibility labels](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html).\nThis follows [WCAG 2.1 Success Criterion 2.4.9 Link Purpose](https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only)\nSeverity: Error\n\nNote: This test is not localised.\nNote: A length of 2 is arbitrary\n\n#### Image Label\n\n`imageLabel` checks accessible images don't contain the words image, picture, graphic, or icon, and checks that the label isn't reusing the image filename. Checks the label is a minimum of 2 characters long.\nPass a `minMeaningfulLength` argument to `a11yCheckValidLabelFor(image: XCUIElement, minMeaningfulLength: Int )` to change the minimum length. Or to set a minimum length for all tests set a value to `A11yTestValues.minMeaningfulLength`\nThis follows [Apple's guidelines for writing accessibility labels](https://developer.apple.com/videos/play/wwdc2019/254/). Care should be given when deciding whether to make images accessible to avoid creating unnecessary noise.\nSeverity: Error\n\n\nNote: This test is not localised.\nNote: A length of 2 is arbitrary\n\n#### Label Length\n`labelLength` checks accessibility labels are <= 40 characters.\nTo set a maiximum length for all tests set a value to `A11yTestValues.maxMeaningfulLength`\nThis follows [Apple's guidelines for writing accessibility labels](https://developer.apple.com/videos/play/wwdc2019/254/).\nIdeally, labels should be as short as possible while retaining meaning. If you feel your element needs more context consider adding an accessibility hint.\nSeverity: Warning\n\nNote: A length of 40 is arbitrary\n\n#### Header\n`header` checks the screen has at least one text element with a header trait.\nHeaders are used by VoiceOver users to orientate and quickly navigate content.\nThis follows [WCAG 2.1 Success Criterion 2.4.10](https://www.w3.org/WAI/WCAG21/Understanding/section-headings.html)\nSeverity: Error\n\n#### Button Trait\n`buttonTrait` checks that a button element has the Button or Link trait applied.\nThis follows [Apple's guide for using traits](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html).\nSeverity: Error\n\n#### Image Trait\n`imageTrait` checks that an image element has the Image trait applied.\nThis follows [Apple's guide for using traits](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html).\nSeverity: Error\n\n#### Conflicting Traits\n`conflictingTraits` checks elements don't have conflicting traits.\nElements can't be both a button and a link, or static text and updates frequently\n\n#### Disabled Elements\n`disabled` checks that elements aren't disabled.\nDisabled elements can be confusing if it is not clear why the element is disabled. Ideally keep the element enabled and clearly message if your app is not ready to process the action.\nSeverity: Warning\n\n#### Duplicated Labels\n`duplicated` checks all elements provided for duplication of accessibility labels.\nDuplicated accessibility labels can make your screen confusing to navigate with VoiceOver, and make Voice Control fail. Ideally you should avoid duplication if possible.\nSeverity: Warning\n\n#### Control Spacing\n\n`controlSpacing` checks that controls have minimum padding between them. This is 8px for iPhone and 12px for iPad.\n12px minimum is recommended for iPad by the [HIG]( https://developer.apple.com/design/human-interface-guidelines/inputs/pointing-devices). 8px is set for iPhone and can be changed by setting a value to `A11yTestValues.iPhonePadding`.\n\nNote: 8px on iPhone is arbitrary.\n\n#### Control Overlap\n\n`controlOverlap` checks that controls don't have overlapping frames.\nSeverity: Failure\n\n## Snapshot tests\n\nSnapshot creates a JSON representation of your screen's accessibility tree on the first run. On subsequent runs this initial snapshot is taken as a reference. The test fails if there are any differences between the reference snapshot and the current snapshot. No assertions are made that the accessibility tree is correct or valid, you must make these checks yourself and generate a known-good reference snapshot to protect against future regressions.\n\n### Running tests\n\nIn your UI test call `a11ySnapshot()`.\nOn first run the test will fail because no snapshot has been created for this test. A reference snapshot is generated. Grab the reference snapshot from the URL provided in the failure message or find it attached in the test's XCResult. Add this file to your **UITest** target ensuring the filename matches the `filename` property of the generated json file.\nSubsequent test runs will be compared against this snapshot, if you wish to generate a new snapshot, remove the reference from your UITest target, run the test, and a new reference will be generated.\n\n### Tests\n\nSnapshot testing checks for changes in the following:\n* Accessibility label\n* Frame\n* Enabled status\n* Control type\n* Accessibility traits\n\n### Test properties\n\nUse `A11yTestValues` to set various default values for all tests.\n\nProperty | Default | Purpose\n---|---|---\n`minSize` | 14 | Minimum element size on screen for accessible elements. arbitrary.\n`minInteractiveSize` | 44 | Minimum size on screen for interactive elements. 44 is specified by [WCAG](https://www.w3.org/TR/WCAG21/#target-size)\n`minMeaningfulLength` | 2 | Minimum length of an accessible string. arbitrary.\n`maxMeaningfulLength` | 40 | Maximum length of an accessible string. arbitrary.\n`allInteractiveElements` | true | When false this skips the 44px size test on interactive elements. This is useful when relying heavily on standard iOS components that do not have valid sizes. Note: Using these elements is still a failure under WCAG, you should customise their appearance so they are large enough. \n`floatComparisonTolerance` | 0.1 | Float comparison threshold\n`preferredItemLabel` | label | Failure messages prefer reporting the items label, accessibility Identifier, or both.\n\n## Example\n\nTo run the example project, clone the repo, and run `pod install` from the Example directory first.\n\n`A11yUITests_ExampleUITests.swift` contains example tests that show a fail for each test above.\n\n## Requirements\n\niOS 11\n\nSwift 5\n\n## Installation\n\n### Swift Package Manager\n\nThis library support [Swift Package Manager](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app). Ensure the package is added as a dependancy to your UITests target, not your app's target.\n\n### Cocoapods\n\nA11yUITests is available through [CocoaPods](https://cocoapods.org). \nTo install add the pod to your target's test target in your podfile. eg\n\n```ruby\ntarget 'My_Application' do\n    target 'My_Application_UITests' do\n    pod 'A11yUITests'\n    end\nend\n```\n\n## Note\n\n* This library accesses a private property in the iOS SDK, so care should be taken when adding it to your project to ensure you are not shipping this code. If you submit this code to app review you will likely receive a rejection from Apple. If you do submit this code then you've installed it wrong, go take another look at [Installation](#installation).\n\n## Known Issues\n\nIf two elements of the same type have the same identifier (eg, two buttons both labeled 'Next') this can cause the tests to crash on some iOS versions. This was an issue on iOS 13 and appears fixed as of iOS 15.\n\nElements that are hidden from accessibility are still assessed by these tests. This is due to how XCUI presents elements to the test runner, I'm not currently aware of a way to detect elements hidden from accessibility.\n\n## Author\n\nRob Whitaker, rw@rwapp.co.uk\\\nhttps://mobilea11y.com\n\n## License\n\nA11yUITests is available under the MIT license. See the LICENSE file for more info.\n"
  },
  {
    "path": "Sources/A11yUITests/Elements/A11yElement.swift",
    "content": "//\n//  A11yElement.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 08/12/2019.\n//\n\nimport XCTest\n\nstruct A11yElement {\n    struct CodableElement: Codable {\n        static let version = 1\n\n        let label: String\n        let frame: CGRect\n        let type: String\n        let traits: [String]\n        let enabled: Bool\n        let placeholder: String?\n        let value: String?\n    }\n\n    typealias A11ySnapshot = XCUIElementSnapshot & NSObject\n\n    let label: String\n    let frame: CGRect\n    let type: XCUIElement.ElementType\n    let underlyingElement: XCUIElement\n    let traits: UIAccessibilityTraits?\n    let enabled: Bool\n    let placeholder: String?\n    let value: String?\n    let id = UUID()\n    let axIdentifier: String\n\n    var shouldIgnore: Bool {\n        return type == .window ||\n            type == .scrollBar ||\n            type == .other ||\n            type == .navigationBar ||\n            type == .table ||\n            type == .scrollView ||\n            type == .key ||\n            type == .keyboard ||\n            type == .tabBar\n    }\n\n    var isInteractive: Bool {\n        // strictly switches, steppers, sliders, segmented controls, & text fields should be included\n        // but standard iOS implementations aren't large enough.\n\n        return self.type == .button ||\n            self.type == .cell\n    }\n\n    var isControl: Bool {\n        return type == .button ||\n            type == .slider ||\n            type == .stepper ||\n            type == .segmentedControl ||\n            type == .textField ||\n            type == .switch ||\n            type == .pageIndicator ||\n            type == .link ||\n            type == .searchField ||\n            type == .secureTextField ||\n            type == .datePicker ||\n            type == .picker ||\n            type == .pickerWheel ||\n            type == .cell\n    }\n\n    var description: String {\n        \"\\(itemLabel) \\(self.type.name())\"\n    }\n\n    var itemLabel: String {\n        let noIdentifier = \"[No identifier]\"\n        var itemLabel: String\n\n        let label = self.label.count > 0 ? \"Label: \\\"\\(self.label)\\\"\" : nil\n        let identifier = self.axIdentifier.count > 0 ? \"Identifier: \\\"\\(axIdentifier)\\\"\" : nil\n\n        switch A11yTestValues.preferredItemLabel {\n        case .label:\n            itemLabel = label ?? identifier ?? noIdentifier\n        case .identifier:\n            itemLabel = identifier ?? label ?? noIdentifier\n        case .both:\n            itemLabel = [label, identifier].compactMap { $0 }\n                .joined(separator: \", \")\n\n            if itemLabel.count < 1 {\n                itemLabel = noIdentifier\n            }\n        }\n\n        return itemLabel\n    }\n\n    var codable: CodableElement? {\n        guard !shouldIgnore else { return nil }\n\n        return CodableElement(label: label,\n                              frame: frame,\n                              type: type.name(),\n                              traits: traits?.names() ?? UIAccessibilityTraits.none.names(),\n                              enabled: enabled,\n                              placeholder: placeholder,\n                              value: value)\n    }\n\n    init(_ element: XCUIElement) {\n        label = element.label\n        frame = element.frame\n        type = element.elementType\n        underlyingElement = element\n        enabled = element.isEnabled\n        placeholder = element.placeholderValue\n        value = element.value as? String\n        axIdentifier = element.identifier\n\n\n        guard let snapshot = try? element.snapshot() as? A11ySnapshot else {\n            traits = nil\n            return\n        }\n\n        traits = snapshot.traits\n    }\n}\n\nextension A11yElement: Hashable {\n    func hash(into hasher: inout Hasher) {\n        hasher.combine(id)\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Elements/XCUIElement.ElementType+Name.swift",
    "content": "//\n//  XCUIElement.ElementType+Name.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 26/03/2021.\n//\n\nimport XCTest\n\ninternal extension XCUIElement.ElementType {\n    func name() -> String {\n        switch self {\n        case .staticText:\n            return \"Label\"\n        case .button:\n            return \"Button\"\n        case .textField:\n            return \"Text Field\"\n        case .cell:\n            return \"Cell\"\n        case .switch:\n            return \"Switch\"\n        case .alert:\n            return \"Alert\"\n        case .pageIndicator:\n            return \"Page Indicator\"\n        case .activityIndicator:\n            return \"Activity Indicator\"\n        case .link:\n            return \"Link\"\n        case .searchField:\n            return \"Search Field\"\n        case .slider:\n            return \"Slider\"\n        case .textView:\n            return \"Text View\"\n        case .secureTextField:\n            return \"Secure Text Field\"\n        case .datePicker:\n            return \"Date Picker\"\n        case .stepper:\n            return \"Stepper\"\n        case .dialog:\n            return \"Dialog\"\n        case .progressIndicator:\n            return \"Progress Indicator\"\n        case .segmentedControl:\n            return \"Segmented Control\"\n        case .picker:\n            return \"Picker\"\n        case .pickerWheel:\n            return \"Picker Wheel\"\n        case .image:\n            return \"Image\"\n\n        default:\n            return \"Other\"\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Extensions/CGFloat+Extensions.swift",
    "content": "//\n//  CGFloat+Extensions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 25/02/2023.\n//\n\nimport Foundation\n\nextension CGFloat {\n    var printable: String {\n        String(format: \"%.1f\", self)\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Extensions/NSObject+Extensions.swift",
    "content": "//\n//  NSObject+Extensions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 28/03/2021.\n//\n\nimport Foundation\n\nextension NSObject {\n\n    // This code kindly provided by [Chris Kolbu](https://github.com/nesevis)\n\n    func optionalValue<T>(for key: String) -> T? {\n        guard self.responds(to: Selector(key)),\n              let value = self.value(forKey: key) else {\n            print(\"Unable to get property \\\"\\(type(of: self)).\\(key)\\\". This is likely due to a change in Apple's private API. Please raise an issue https://github.com/rwapp/A11yUITests/issues\")\n            return nil\n        }\n\n        guard let castValue = value as? T else {\n            print(\"Unable to cast property \\\"\\(type(of: self)).\\(key)\\\" from `\\(type(of: value))` to `\\(T.self)`. This is likely due to a change in Apple's private API. Please raise an issue https://github.com/rwapp/A11yUITests/issues\")\n            return nil\n        }\n        \n        return castValue\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Extensions/String+Extensions.swift",
    "content": "//\n//  String+Extensions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 28/03/2021.\n//\n\nimport XCTest\n\ninternal extension String {\n\n    init(_ staticString: StaticString) {\n        self = staticString.withUTF8Buffer {\n            String(decoding: $0, as: UTF8.self)\n        }\n    }\n\n    func containsCaseInsensitive(_ substring: String) -> Bool {\n        return self.lowercased().contains(substring.lowercased())\n    }\n\n    func containsWords(_ words : [String]) -> [String] {\n        var contained = [String]()\n\n        for word in words {\n            if self.containsCaseInsensitive(word) {\n                contained.append(word)\n            }\n        }\n\n        return contained\n    }\n}\n\nextension StringProtocol {\n    func prepending<T>(_ aString: T) -> String where T : StringProtocol {\n        \"\\(aString)\\(self)\"\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Extensions/UIAccessibilityTraits+Extensions.swift",
    "content": "//\n//  UIAccessibilityTraits+Extensions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 27/03/2021.\n//\n\nimport UIKit\n\ninternal extension UIAccessibilityTraits {\n    func nameString() -> String {\n        names().joined(separator: \", \")\n    }\n\n    func names() -> [String] {\n        if self == .none {\n            return [\"None\"]\n        }\n\n        var traits = [String]()\n\n        if self.contains(.button) {\n            traits.append(\"Button\")\n        }\n        if self.contains(.link) {\n            traits.append(\"Link\")\n        }\n        if self.contains(.header) {\n            traits.append(\"Header\")\n        }\n        if self.contains(.searchField) {\n            traits.append(\"Search Field\")\n        }\n        if self.contains(.image) {\n            traits.append(\"Image\")\n        }\n        if self.contains(.selected) {\n            traits.append(\"Selected\")\n        }\n        if self.contains(.playsSound) {\n            traits.append(\"Plays Sound\")\n        }\n        if self.contains(.keyboardKey) {\n            traits.append(\"Keyboard Key\")\n        }\n        if self.contains(.staticText) {\n            traits.append(\"Static Text\")\n        }\n        if self.contains(.summaryElement) {\n            traits.append(\"Summary Element\")\n        }\n        if self.contains(.notEnabled) {\n            traits.append(\"Not Enabled\")\n        }\n        if self.contains(.updatesFrequently) {\n            traits.append(\"Updates Frequently\")\n        }\n        if self.contains(.startsMediaSession) {\n            traits.append(\"Starts Media Session\")\n        }\n        if self.contains(.adjustable) {\n            traits.append(\"Adjustable\")\n        }\n        if self.contains(.allowsDirectInteraction) {\n            traits.append(\"Allows Direct Interaction\")\n        }\n        if self.contains(.causesPageTurn) {\n            traits.append(\"Causes Page Turn\")\n        }\n        if self.contains(.tabBar) {\n            traits.append(\"Tab Bar\")\n        }\n\n        return traits\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Extensions/XCTest+extensions.swift",
    "content": "//\n//  XCTest+extensions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 25/02/2023.\n//\n\nimport XCTest\n\nfunc A11yAssertGreaterThanOrEqual<T>(_ expression1: @autoclosure () -> T,\n                                     _ expression2: @autoclosure () -> T,\n                                     message: String,\n                                     elements: [A11yElement]? = nil,\n                                     reason: String? = nil,\n                                     severity: Failure,\n                                     file: StaticString,\n                                     line: UInt)  where T : Comparable {\n    guard !(expression1() >= expression2()) else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertGreaterThan<T>(_ expression1: @autoclosure () -> T,\n                              _ expression2: @autoclosure () -> T,\n                              message: String,\n                              elements: [A11yElement]? = nil,\n                              reason: String? = nil,\n                              severity: Failure,\n                              file: StaticString,\n                              line: UInt)  where T : Comparable {\n    guard expression2() >= expression1() else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertFalse(_ expression: @autoclosure () -> Bool,\n                     message: String,\n                     elements: [A11yElement]? = nil,\n                     reason: String? = nil,\n                     severity: Failure,\n                     file: StaticString,\n                     line: UInt) {\n    guard expression() else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssert(_ expression: @autoclosure () -> Bool,\n                message: String,\n                elements: [A11yElement]? = nil,\n                reason: String? = nil,\n                severity: Failure,\n                file: StaticString,\n                line: UInt) {\n    guard !expression() else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertNil(_ expression: @autoclosure () -> Any?,\n                   message: String,\n                   elements: [A11yElement]? = nil,\n                   reason: String? = nil,\n                   severity: Failure,\n                   file: StaticString,\n                   line: UInt) {\n    guard expression() != nil else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertEqual<T>(_ expression1: @autoclosure () -> T,\n                        _ expression2: @autoclosure () -> T,\n                        message: String,\n                        elements: [A11yElement]? = nil,\n                        reason: String? = nil,\n                        severity: Failure,\n                        file: StaticString,\n                        line: UInt) where T : Equatable {\n    guard expression1() != expression2() else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertEqual<T>(_ expression1: @autoclosure () -> T,\n                        _ expression2: @autoclosure () -> T,\n                        accuracy: T,\n                        message: String,\n                        elements: [A11yElement]? = nil,\n                        reason: String? = nil,\n                        severity: Failure,\n                        file: StaticString,\n                        line: UInt) where T : FloatingPoint {\n    guard ((expression1() - expression2()) - accuracy) > 0 else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertLessThanOrEqual<T>(_ expression1: @autoclosure () -> T,\n                                  _ expression2: @autoclosure () -> T,\n                                  message: String,\n                                  elements: [A11yElement]? = nil,\n                                  reason: String? = nil,\n                                  severity: Failure,\n                                  file: StaticString,\n                                  line: UInt) where T : Comparable {\n    guard expression1() > expression2() else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yAssertNotEqual<T>(_ expression1: @autoclosure () -> T,\n                           _ expression2: @autoclosure () -> T,\n                           message: String,\n                           elements: [A11yElement]? = nil,\n                           reason: String? = nil,\n                           severity: Failure,\n                           file: StaticString,\n                           line: UInt) where T : Equatable {\n    guard expression1() == expression2() else { return }\n\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nfunc A11yFail(message: String,\n              elements: [A11yElement]? = nil,\n              reason: String? = nil,\n              severity: Failure,\n              file: StaticString,\n              line: UInt) {\n    fail(severity.message, report(message, elements, reason), file, line)\n}\n\nprivate func fail(_ failure: String,\n                  _ message: String,\n                  _ file: StaticString,\n                  _ line: UInt) {\n    _XCTPreformattedFailureHandler(nil, false, String(file), Int(line), failure, message)\n}\n\nprivate func report(_ message: String,\n                    _ elements: [A11yElement]?,\n                    _ reason: String?\n) -> String {\n\n    var reasonMessage = \"\"\n    if let reason = reason {\n        reasonMessage = \"\\n\\(reason)\"\n    }\n\n    let elementMessage = elements?.compactMap { $0 }\n        .map { \"\\($0.description)\" }\n        .joined(separator: \", \")\n        .description\n        .appending(\".\")\n        .prepending(\"\\n\")\n    ?? \"\"\n\n    return \"\\(message)\\(elementMessage)\\(reasonMessage)\"\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Extensions/XCUIElementSnapshot+Extensions.swift",
    "content": "//\n//  XCUIElementSnapshot+Extensions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 28/03/2021.\n//\n\nimport XCTest\n\ninternal extension XCUIElementSnapshot where Self: NSObject {\n    var traits: UIAccessibilityTraits? {\n        optionalValue(for: \"traits\")\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Helpers/Failure.swift",
    "content": "//\n//  Failure.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 12/07/2022.\n//\n\nimport Foundation\n\nenum Failure: String {\n    case failure, warning\n\n    var message: String {\n        let prefix = self == .warning ? \"⚠️\" : \"❌\"\n        return \"\\(prefix) Accessibility \\(self.rawValue.capitalized)\"\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Tests/A11yAssertions.swift",
    "content": "//\n//  A11yAssertions.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 28/03/2021.\n//\n\nimport XCTest\n\nfinal class A11yAssertions {\n\n    private var hasHeader = false\n    private var duplicatedItems = [String: Set<A11yElement>]()\n    private var closeControls = [Int: Set<A11yElement>]()\n    private var overlappedControls = [Int: Set<A11yElement>]()\n\n    func setupTests() {\n        hasHeader = false\n    }\n\n    func validSizeFor(_ element: A11yElement,\n                      _ minSize: Int,\n                      _ file: StaticString,\n                      _ line: UInt) {\n\n        guard !element.shouldIgnore else { return }\n\n        let minFloatSize = CGFloat(minSize)\n\n        let heightDifference = element.frame.size.height - minFloatSize\n\n        A11yAssertGreaterThanOrEqual(heightDifference,\n                                     -A11yTestValues.floatComparisonTolerance,\n                                     message: \"Element may not be tall enough.\",\n                                     elements: [element],\n                                     reason: \"Minimum height: \\(minSize). Current height: \\(element.frame.size.height.printable)\",\n                                     severity: .warning,\n                                     file: file,\n                                     line: line)\n\n        let widthDifference = element.frame.size.width - minFloatSize\n        A11yAssertGreaterThanOrEqual(widthDifference,\n                                     -A11yTestValues.floatComparisonTolerance,\n                                     message: \"Element may not be wide enough.\",\n                                     elements: [element],\n                                     reason: \"Minimum width: \\(minSize). Current width: \\(element.frame.size.width.printable)\",\n                                     severity: .warning,\n                                     file: file,\n                                     line: line)\n    }\n\n    func validLabelFor(_ element: A11yElement,\n                       _ length: Int,\n                       _ file: StaticString,\n                       _ line: UInt) {\n\n        guard !element.shouldIgnore,\n              element.type != .cell else { return }\n\n        if let placeholder = element.placeholder,\n           placeholder.count > 0,\n           element.label.count == 0 {\n\n            A11yFail(message: \"No label for element with placeholder \\\"\\(placeholder)\\\".\", elements: [element], severity: .failure, file: file, line: line)\n        } else {\n\n            A11yAssertGreaterThan(element.label.count,\n                                  length,\n                                  message: \"Label may not be meaningful.\",\n                                  elements: [element],\n                                  reason: \"Minimum length: \\(length)\",\n                                  severity: .warning,\n                                  file: file,\n                                  line: line)\n        }\n\n        let notLetters = CharacterSet.uppercaseLetters.inverted\n        let capitalised = element.label.uppercased()\n\n        if capitalised.trimmingCharacters(in: notLetters).count > 0 {\n            A11yAssertNotEqual(capitalised,\n                               element.label,\n                               message: \"Label is uppercased.\",\n                               elements: [element],\n                               severity: .warning,\n                               file: file,\n                               line: line)\n        }\n    }\n\n    func validLabelFor(interactiveElement element: A11yElement,\n                       _ length: Int,\n                       _ file: StaticString,\n                       _ line: UInt) {\n\n        guard element.isControl else { return }\n\n        // TODO: Localise this check\n        let nondescriptiveLabels = [\"click here\", \"tap here\", \"more\"]\n        let contained = element.label.containsWords(nondescriptiveLabels)\n        contained.forEach {\n            A11yFail(message: \"Button label may not be descriptive.\",\n                     elements: [element],\n                     reason: \"Offending word: \\($0)\",\n                     severity: .failure,\n                     file: file,\n                     line: line)\n        }\n\n        // TODO: Localise this check\n        A11yAssertFalse(element.label.containsCaseInsensitive(\"button\"),\n                        message: \"Button should not contain the word 'button' in the accessibility label.\",\n                        elements: [element],\n                        severity: .failure,\n                        file: file,\n                        line: line)\n\n        if let first = element.label.first {\n            A11yAssert(first.isUppercase,\n                       message: \"Buttons should begin with a capital letter.\",\n                       elements: [element],\n                       severity: .failure,\n                       file: file,\n                       line: line)\n        }\n\n        A11yAssertNil(element.label.range(of: \".\"),\n                      message: \"Button accessibility labels shouldn't contain punctuation.\",\n                      elements: [element],\n                      severity: .failure,\n                      file: file,\n                      line: line)\n\n        if element.type == .textView || element.type == .textField || element.type == .searchField || element.type == .secureTextField {\n            A11yAssertFalse(element.label.containsCaseInsensitive(\"field\"),\n                            message: \"Text fields should not include their type in the label.\",\n                            elements: [element],\n                            severity: .failure,\n                            file: file,\n                            line: line)\n        }\n\n        if element.traits?.contains(.link) ?? false || element.type == .link {\n            A11yAssertFalse(element.label.containsCaseInsensitive(\"link\"),\n                            message: \"Links should not include their type in the label.\",\n                            elements: [element],\n                            severity: .failure,\n                            file: file,\n                            line: line)\n        }\n\n        if element.traits?.contains(.adjustable) ?? false || element.type == .slider {\n            A11yAssertFalse(element.label.containsCaseInsensitive(\"adjustable\"),\n                            message: \"Links should not include their type in the label.\",\n                            elements: [element],\n                            severity: .failure,\n                            file: file,\n                            line: line)\n\n            A11yAssertFalse(element.label.containsCaseInsensitive(\"slider\"),\n                            message: \"Links should not include their type in the label.\",\n                            elements: [element],\n                            severity: .failure,\n                            file: file,\n                            line: line)\n        }\n    }\n\n    func validLabelFor(image: A11yElement,\n                       _ length: Int,\n                       _ file: StaticString,\n                       _ line: UInt) {\n\n        guard image.type == .image else { return }\n\n        // TODO: Localise this test\n        let avoidWords = [\"image\", \"picture\", \"graphic\", \"icon\", \"photo\"]\n\n        let contained = image.label.containsWords(avoidWords)\n        contained.forEach {\n            A11yFail(message: \"Images should not contain image words in the accessibility label.\",\n                     elements: [image],\n                     reason: \"Offending word: \\($0)\",\n                     severity: .failure,\n                     file: file,\n                     line: line)\n        }\n\n        let possibleFilenames = [\"_\", \"-\", \"png\", \"jpg\", \"jpeg\", \"pdf\", \"avci\", \"heic\", \"heif\", \"svg\"]\n\n        let containedFilenames = image.label.containsWords(possibleFilenames)\n        containedFilenames.forEach {\n            A11yFail(message: \"Image file name is used as the accessibility label.\",\n                     elements: [image],\n                     reason: \"Offending word: \\($0)\",\n                     severity: .failure,\n                     file: file,\n                     line: line)\n        }\n    }\n\n    func validTraitFor(image: A11yElement,\n                       _ file: StaticString,\n                       _ line: UInt) {\n        guard image.type == .image else { return }\n\n        A11yAssert(image.traits?.contains(.image) ?? false,\n                   message: \"Image should have Image trait.\",\n                   elements: [image],\n                   severity: .failure,\n                   file: file,\n                   line: line)\n    }\n\n    func validTraitFor(button: A11yElement,\n                       _ file: StaticString,\n                       _ line: UInt) {\n        guard button.type == .button else { return }\n\n        A11yAssert(button.traits?.contains(.button) ?? false ||\n                   button.traits?.contains(.link) ?? false,\n                   message: \"Button should have Button or Link trait.\",\n                   elements: [button],\n                   severity: .failure,\n                   file: file,\n                   line: line)\n    }\n\n    func conflictingTraits(_ element: A11yElement,\n                           _ file: StaticString,\n                           _ line: UInt) {\n        guard let traits = element.traits else { return }\n\n        A11yAssert(!traits.contains(.button) || !traits.contains(.link),\n                   message: \"Elements shouldn't have both Button and Link traits.\",\n                   elements: [element],\n                   severity: .failure,\n                   file: file,\n                   line: line)\n\n        A11yAssert(!traits.contains(.staticText) || !traits.contains(.updatesFrequently),\n                   message: \"Elements shouldn't have both Static Text and Updates Frequently traits.\",\n                   elements: [element],\n                   severity: .failure,\n                   file: file,\n                   line: line)\n    }\n\n    func labelLength(_ element: A11yElement,\n                     _ maxLength: Int,\n                     _ file: StaticString,\n                     _ line: UInt) {\n\n        guard element.type != .staticText,\n              element.type != .textView,\n              !element.shouldIgnore else { return }\n\n        A11yAssertLessThanOrEqual(element.label.count,\n                                  maxLength,\n                                  message: \"Label may be too long.\",\n                                  elements: [element],\n                                  reason: \"Max length: \\(maxLength)\",\n                                  severity: .warning,\n                                  file: file,\n                                  line: line)\n    }\n\n    func validSizeFor(interactiveElement: A11yElement,\n                      allElements:  Bool,\n                      _ file: StaticString,\n                      _ line: UInt) {\n\n        if (!allElements && !interactiveElement.isInteractive) ||\n            !interactiveElement.isControl { return }\n\n        let heightDifference = interactiveElement.frame.size.height - A11yTestValues.minInteractiveSize\n\n        A11yAssertGreaterThanOrEqual(heightDifference,\n                                     -A11yTestValues.floatComparisonTolerance,\n                                     message: \"Interactive element not tall enough.\",\n                                     elements: [interactiveElement],\n                                     reason: \"Minimum height: \\(A11yTestValues.minInteractiveSize). Current height: \\(interactiveElement.frame.size.height.printable)\",\n                                     severity: .failure,\n                                     file: file,\n                                     line: line)\n\n        let widthDifference = interactiveElement.frame.size.width - A11yTestValues.minInteractiveSize\n        A11yAssertGreaterThanOrEqual(widthDifference,\n                                     -A11yTestValues.floatComparisonTolerance,\n                                     message: \"Interactive element not wide enough.\",\n                                     elements: [interactiveElement],\n                                     reason: \"Minimum width: \\(A11yTestValues.minInteractiveSize). Current width: \\(interactiveElement.frame.size.width.printable)\",\n                                     severity: .failure,\n                                     file: file,\n                                     line: line)\n    }\n\n    func hasHeader(_ element: A11yElement) {\n        guard !hasHeader,\n              element.traits?.contains(.header) ?? false else { return }\n        hasHeader = true\n    }\n\n    func checkHeader(_ file: StaticString, _ line: UInt) {\n        A11yAssert(hasHeader,\n                   message: \"Screen has no element with a header trait.\",\n                   severity: .failure,\n                   file: file,\n                   line: line)\n    }\n\n    func disabled(_ element: A11yElement,\n                  _ file: StaticString,\n                  _ line: UInt) {\n\n        guard element.isControl else { return }\n\n        A11yAssert(element.enabled,\n                   message: \"Element disabled.\",\n                   elements: [element],\n                   severity: .warning,\n                   file: file,\n                   line: line)\n    }\n\n    func duplicatedLabels(_ element1: A11yElement,\n                          _ element2: A11yElement) {\n\n        guard element1.isControl,\n              element2.isControl,\n              element1.id != element2.id,\n              element1.label.count > 0,\n              element2.label.count > 0 else { return }\n\n        if element1.label == element2.label {\n            var items = duplicatedItems[element1.label] ?? Set<A11yElement>()\n            items.insert(element1)\n            items.insert(element2)\n            duplicatedItems[element1.label] = items\n        }\n    }\n\n    func checkDuplicates(_ file: StaticString,\n                         _ line: UInt) {\n        for duplicatePair in duplicatedItems.enumerated() {\n            let element = duplicatePair.element.value\n            A11yFail(message: \"Elements have duplicated labels.\", elements: Array(element), severity: .warning, file: file, line: line)\n        }\n    }\n\n    func controlSpacing(_ element1: A11yElement,\n                        _ element2: A11yElement,\n                        tests: [A11yTests] ) {\n        guard element1.isControl,\n              element2.isControl,\n              element1.id != element2.id else { return }\n\n        let hash = hashElements(element1, element2)\n\n        guard overlappedControls[hash] == nil,\n              closeControls[hash] == nil else { return }\n\n        if element1.frame.intersects(element2.frame) {\n            if tests.contains(.controlOverlap) {\n                overlappedControls[hash] = [element1, element2]\n            }\n\n            return\n        }\n\n        let padding = UIDevice.current.userInterfaceIdiom == .pad ? 12 : A11yTestValues.iPhonePadding\n\n        let expandedFrame1 = CGRect(x: element1.frame.origin.x - CGFloat(padding), y: element1.frame.origin.y - CGFloat(padding), width: element1.frame.size.width + CGFloat(padding * 2), height: element1.frame.size.height + CGFloat(padding * 2))\n\n        if tests.contains(.controlSpacing) && expandedFrame1.intersects(element2.frame) {\n            closeControls[hash] = [element1, element2]\n        }\n    }\n\n    func checkControlSpacing(_ file: StaticString, _ line: UInt) {\n        overlappedControls.values.forEach {\n            A11yFail(message: \"Controls are overlapping.\",\n                     elements: Array($0),\n                     severity: .failure,\n                     file: file,\n                     line: line)\n        }\n\n        closeControls.values.forEach {\n            A11yFail(message: \"Controls are closely spaced.\",\n                     elements: Array($0),\n                     severity: .warning,\n                     file: file,\n                     line: line)\n        }\n    }\n\n    private func hashElements(_ element1: A11yElement, _ element2: A11yElement) -> Int {\n        var hasher = Hasher()\n        [element1.id.uuidString, element2.id.uuidString].sorted { $0 > $1 }\n            .forEach {\n                hasher.combine($0)\n            }\n\n        return hasher.finalize()\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Tests/A11ySnapshot.swift",
    "content": "//\n//  Snapshot.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 15/01/2022.\n//\n\nimport Foundation\nimport XCTest\n\nextension XCTestCase {\n    public func a11ySnapshot(testName: StaticString = #function,\n                             testsFile: StaticString = #file,\n                             line: UInt = #line) {\n        A11ySnapshot.shared.a11ySnapshot(from: self, testName: testName, testsFile: testsFile, line: line)\n    }\n}\n\nfinal class A11ySnapshot {\n\n    static let shared = A11ySnapshot()\n\n    private struct SnapshotWrapper: Codable {\n        private static let wrapperVersion = 1\n        static let snapshotVersion = \"\\(SnapshotWrapper.wrapperVersion).\\(A11yElement.CodableElement.version)\"\n        \n        var filename: String\n        var version: String\n        var generated: Date\n        let snapshot: [A11yElement.CodableElement]\n\n        init(snapshots: [A11yElement.CodableElement], fileName: String) {\n            filename = fileName\n            snapshot = snapshots\n            version = SnapshotWrapper.snapshotVersion\n            generated = Date()\n        }\n    }\n\n    private struct Screen {\n        let snapshot: SnapshotWrapper\n        let elements: [A11yElement]\n\n        init(elements: [A11yElement], fileName: String) {\n            self.elements = elements.filter { $0.codable != nil }\n            self.snapshot = SnapshotWrapper(snapshots: elements.compactMap { $0.codable }, fileName: fileName)\n\n        }\n    }\n\n    private let forbiddenCharacters: [Character] = [\"(\", \")\",]\n\n    private var calledInFunction = 0\n    private var currentFunction = \"\"\n    private var currentSuite = \"\"\n    private var fileName: String {\n        var fileName = \"\\(currentSuite)-\\(currentFunction)-\\(calledInFunction)\"\n        fileName.removeAll(where: { forbiddenCharacters.contains($0) })\n        fileName = fileName.replacingOccurrences(of: \"_\", with: \"-\")\n        fileName.append(\".json\")\n        return fileName\n    }\n\n    private let fileManager = FileManager.default\n\n    public init() {}\n\n    public func a11ySnapshot(from test: XCTestCase,\n                             testName: StaticString = #function,\n                             testsFile: StaticString = #file,\n                             line: UInt = #line) {\n        let elements = XCUIApplication()\n            .descendants(matching: .any)\n            .allElementsBoundByAccessibilityElement\n            .map { A11yElement($0) }\n\n        makeSnapshot(screen: elements,\n                     testName: String(testName),\n                     testsFile: testsFile,\n                     test: test,\n                     line: line)\n    }\n\n    private func makeSnapshot(screen: [A11yElement],\n                              testName: String,\n                              testsFile: StaticString,\n                              test: XCTestCase,\n                              line: UInt) {\n\n        let suite = ((String(testsFile) as NSString).lastPathComponent as NSString).deletingPathExtension\n        if currentFunction == testName &&\n            currentSuite == suite {\n            calledInFunction += 1\n        } else {\n            calledInFunction = 0\n            currentFunction = testName\n            currentSuite = suite\n        }\n\n        let screen = Screen(elements: screen, fileName: fileName)\n\n        let path = Bundle(for: type(of: test)).bundleURL.appendingPathComponent(fileName)\n        let decoder = JSONDecoder()\n        decoder.dateDecodingStrategy = .iso8601\n\n        if let data = try? Data(contentsOf: path),\n           let referenceScreen = try? decoder.decode(SnapshotWrapper.self, from: data) {\n            compareScreens(reference: referenceScreen, screen: screen, test: test, file: testsFile, line: line)\n\n        } else {\n            if let docPath = createNewSnapshot(screen.snapshot, test: test, file: testsFile, line: line) {\n                A11yFail(message: \"No reference snapshot. Generated new snapshot.\\nCheck test report or \\(docPath)\", severity: .warning, file: testsFile, line: line)\n                return\n            }\n\n            A11yFail(message: \"No reference snapshot. Unable to create new reference\", severity: .failure, file: testsFile, line: line)\n        }\n    }\n\n    private func createNewSnapshot(_ snapshot: SnapshotWrapper,\n                                   test: XCTestCase,\n                                   file: StaticString,\n                                   line: UInt) -> URL? {\n        guard let documentDirectory = fileManager.urls(for: .documentDirectory,\n                                                       in: .userDomainMask).first else {\n            A11yFail(message: \"Unable get documents directory\", severity: .failure, file: file, line: line)\n            return nil\n        }\n\n        do {\n            let encoder = JSONEncoder()\n            encoder.outputFormatting = .prettyPrinted\n            encoder.dateEncodingStrategy = .iso8601\n            let jsonData = try encoder.encode(snapshot)\n\n            do {\n                let documentPath = documentDirectory.appendingPathComponent(fileName)\n                try jsonData.write(to: documentPath)\n\n                let attachment = XCTAttachment(contentsOfFile: documentPath)\n                test.add(attachment)\n\n                return documentPath\n\n            } catch {\n                print(\"Unable to write snapshot to disk. \\(error.localizedDescription)\")\n                return nil\n            }\n\n        } catch {\n            print(\"Unable to encode snapshot. \\(error.localizedDescription)\")\n            return nil\n        }\n    }\n\n    private func compareScreens(reference: SnapshotWrapper,\n                                screen: Screen,\n                                test: XCTestCase,\n                                file: StaticString,\n                                line: UInt) {\n\n        if reference.version < SnapshotWrapper.snapshotVersion {\n            if let docPath = createNewSnapshot(screen.snapshot, test: test, file: file, line: line) {\n                A11yFail(message: \"Reference snapshot is outdated. Generated new snapshot. Check for regressions before replacing as reference.\\nCheck test report or \\(docPath)\", severity: .warning, file: file, line: line)\n\n                return\n            }\n\n            A11yFail(message: \"Reference snapshot is outdated. Unable to create new reference\", severity: .failure, file: file, line: line)\n            return\n        }\n\n        A11yAssertEqual(reference.snapshot.count,\n                        screen.snapshot.snapshot.count,\n                        message: \"Snapshots contain a different number of items. This screen has changed\",\n                        severity: .failure,\n                        file: file,\n                        line: line)\n\n        for i in 0..<reference.snapshot.count {\n\n            guard screen.snapshot.snapshot.count > i else { return }\n\n            let snapshotElement = screen.elements[i]\n            let referenceElement = reference.snapshot[i]\n            let snapshotElementLabel = snapshotElement.label\n\n            A11yAssertEqual(referenceElement.label,\n                            snapshotElementLabel,\n                            message: \"Label does not match reference snapshot\",\n                            elements: [snapshotElement],\n                            reason: \"Reference: \\(referenceElement.label). Snapshot: \\(snapshotElementLabel)\",\n                            severity: .failure,\n                            file: file,\n                            line: line)\n\n            A11yAssertEqual(referenceElement.type,\n                            snapshotElement.type.name(),\n                            message: \"Type does not match reference snapshot\",\n                            elements: [snapshotElement],\n                            reason: \"Reference: \\(referenceElement.type). Snapshot: \\(snapshotElement.type)\",\n                            severity: .failure,\n                            file: file,\n                            line: line)\n\n            A11yAssertEqual(referenceElement.traits,\n                            snapshotElement.traits?.names() ?? [],\n                            message: \"Traits do not match reference snapshot\",\n                            elements: [snapshotElement],\n                            reason: \"Reference: \\(referenceElement.traits.joined(separator: \", \")). Snapshot: \\(snapshotElement.traits?.nameString() ?? \"\")\",\n                            severity: .failure,\n                            file: file,\n                            line: line)\n\n            A11yAssertEqual(referenceElement.enabled,\n                            snapshotElement.enabled,\n                            message: \"Enabled status does not match reference snapshot\",\n                            elements: [snapshotElement],\n                            reason: \"Reference: \\(referenceElement.enabled). Snapshot: \\(snapshotElement.enabled)\",\n                            severity: .failure,\n                            file: file,\n                            line: line)\n\n            compareFrame(reference: referenceElement.frame, snapshot: snapshotElement, label: snapshotElementLabel, file: file, line: line)\n        }\n    }\n\n    private func compareFrame(reference: CGRect, snapshot: A11yElement, label: String, file: StaticString, line: UInt) {\n\n        let refX = reference.origin.x\n        let refY = reference.origin.y\n        let refWidth = reference.size.width\n        let refHeight = reference.size.height\n\n        let snapX = snapshot.frame.origin.x\n        let snapY = snapshot.frame.origin.y\n        let snapWidth = snapshot.frame.size.width\n        let snapHeight = snapshot.frame.size.height\n\n        A11yAssertEqual(refX, snapX, accuracy: A11yTestValues.floatComparisonTolerance,\n                        message: \"Frame does not match reference snapshot\",\n                        elements: [snapshot],\n                        reason: \"Reference x: \\(refX.printable). Snapshot x: \\(snapX.printable)\",\n                        severity: .failure, file: file, line: line)\n\n        A11yAssertEqual(refY, snapY, accuracy: A11yTestValues.floatComparisonTolerance,\n                        message: \"Frame does not match reference snapshot\",\n                        elements: [snapshot],\n                        reason: \"Reference y: \\(refY.printable). Snapshot y: \\(snapY.printable)\",\n                        severity: .failure, file: file, line: line)\n\n        A11yAssertEqual(refWidth, snapWidth, accuracy: A11yTestValues.floatComparisonTolerance,\n                        message: \"Frame does not match reference snapshot\",\n                        elements: [snapshot],\n                        reason: \"Reference width: \\(refWidth.printable). Snapshot width: \\(snapWidth.printable)\",\n                        severity: .failure, file: file, line: line)\n\n        A11yAssertEqual(refHeight, snapHeight, accuracy: A11yTestValues.floatComparisonTolerance,\n                        message: \"Frame does not match reference snapshot\",\n                        elements: [snapshot],\n                        reason: \"Reference height: \\(refHeight.printable). Snapshot height: \\(snapHeight.printable)\",\n                        severity: .failure, file: file, line: line)\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Tests/A11yTests.swift",
    "content": "//\n//  A11yTests.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 26/03/2021.\n//\n\npublic enum A11yTests: CaseIterable {\n    case minimumSize,\n         minimumInteractiveSize,\n         labelPresence,\n         buttonLabel,\n         imageLabel,\n         labelLength,\n         duplicated,\n         imageTrait,\n         header,\n         buttonTrait,\n         conflictingTraits,\n         disabled,\n         controlSpacing,\n         controlOverlap\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Tests/TestRunner.swift",
    "content": "//\n//  TestRunner.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 19/04/2021.\n//\n\nimport Foundation\n\n\nfinal class TestRunner {\n\n    let assertions = A11yAssertions()\n\n    func a11y(_ tests: [A11yTests],\n              _ elements: [A11yElement],\n              _ minLength: Int,\n              _ maxLength: Int,\n              _ minSize: Int,\n              _ allInteractiveElements: Bool,\n              _ file: StaticString,\n              _ line: UInt) {\n\n        assertions.setupTests()\n\n        for element in elements.filter( { !$0.shouldIgnore } ) {\n            runTests(tests,\n                     elements,\n                     element,\n                     minLength,\n                     maxLength,\n                     minSize,\n                     allInteractiveElements,\n                     file,\n                     line)\n        }\n\n        if tests.contains(.header) {\n            assertions.checkHeader(file, line)\n        }\n\n        if tests.contains(.duplicated) {\n            assertions.checkDuplicates(file, line)\n        }\n\n        if tests.contains(.controlSpacing) || tests.contains(.controlOverlap) {\n            assertions.checkControlSpacing(file, line)\n        }\n    }\n\n    private func runTests(_ tests: [A11yTests],\n                          _ elements: [A11yElement],\n                          _ element: A11yElement,\n                          _ minLength: Int,\n                          _ maxLength: Int,\n                          _ minSize: Int,\n                          _ allInteractiveElements: Bool,\n                          _ file: StaticString,\n                          _ line: UInt) {\n\n        var tests = tests\n        if tests.contains(.buttonLabel) || tests.contains(.imageLabel) {\n            tests.append(.labelPresence)\n        }\n\n        if tests.contains(.minimumSize) {\n            assertions.validSizeFor(element,\n                                    minSize,\n                                    file,\n                                    line)\n        }\n\n        if tests.contains(.minimumInteractiveSize) {\n            assertions.validSizeFor(interactiveElement: element,\n                                    allElements: allInteractiveElements,\n                                    file,\n                                    line)\n        }\n\n        if tests.contains(.labelPresence) {\n            assertions.validLabelFor(element,\n                                     minLength,\n                                     file,\n                                     line)\n        }\n\n        if tests.contains(.buttonLabel) {\n            assertions.validLabelFor(interactiveElement: element,\n                                     minLength,\n                                     file,\n                                     line)\n        }\n\n        if tests.contains(.imageLabel) {\n            assertions.validLabelFor(image: element,\n                                     minLength,\n                                     file,\n                                     line)\n        }\n\n        if tests.contains(.labelLength) {\n            assertions.labelLength(element,\n                                   maxLength,\n                                   file,\n                                   line)\n        }\n\n        if tests.contains(.imageTrait) {\n            assertions.validTraitFor(image: element,\n                                     file,\n                                     line)\n        }\n\n        if tests.contains(.buttonTrait) {\n            assertions.validTraitFor(button: element,\n                                     file,\n                                     line)\n        }\n\n        if tests.contains(.header) {\n            assertions.hasHeader(element)\n        }\n\n        if tests.contains(.disabled) {\n            assertions.disabled(element,\n                                file,\n                                line)\n        }\n\n        if tests.contains(.conflictingTraits) {\n            assertions.conflictingTraits(element,\n                                         file,\n                                         line)\n        }\n        for element2 in elements {\n            if tests.contains(.duplicated) {\n                assertions.duplicatedLabels(element,\n                                            element2)\n            }\n\n            if tests.contains(.controlSpacing) || tests.contains(.controlOverlap) {\n                assertions.controlSpacing(element, element2, tests: tests)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Tests/Values.swift",
    "content": "//\n//  Values.swift\n//  A11yUITests\n//\n//  Created by Rob Whitaker on 19/04/2021.\n//\n\nimport CoreGraphics\n\npublic enum A11yTestValues {\n    public enum ReportValue {\n        case label, identifier, both\n    }\n\n    public static let minSize = 14\n    public static let minInteractiveSize: CGFloat = 44.0\n    public static let minMeaningfulLength = 2\n    public static let maxMeaningfulLength = 40\n    public static let allInteractiveElements = true\n    public static let floatComparisonTolerance: CGFloat = 0.1\n    public static let preferredItemLabel: ReportValue = .label\n    public static let iPhonePadding = 8\n}\n"
  },
  {
    "path": "Sources/A11yUITests/Tests/XCTestCase+A11y.swift",
    "content": "//\n//  XCTestCase+A11y.swift\n//  A11yUITestsUITests\n//\n//  Created by Rob Whitaker on 05/12/2019.\n//  Copyright © 2019 RWAPP. All rights reserved.\n//\n\nimport XCTest\n\nextension XCTestCase {\n\n    private var testRunner: TestRunner {\n        TestRunner()\n    }\n\n    // MARK: - Test Suites\n\n    public var a11yTestSuiteAll: [A11yTests] {\n        A11yTests.allCases\n    }\n\n    public var a11yTestSuiteImages: [A11yTests] {\n        [.minimumSize, .labelPresence, .imageLabel, .labelLength, .imageTrait]\n    }\n\n    public var a11yTestSuiteInteractive: [A11yTests] {\n        // Valid tests for any interactive elements, eg. buttons, cells, switches, text fields etc.\n        // Note: Many standard Apple controls fail these tests.\n\n        [.minimumInteractiveSize, .labelPresence, .buttonLabel, .labelLength, .duplicated, .buttonTrait, .disabled, .conflictingTraits, .disabled, .controlSpacing, .controlOverlap]\n    }\n\n    public var a11yTestSuiteLabels: [A11yTests] {\n        // valid for any text elements, eg. labels, text views\n        [.minimumSize, .labelPresence, .conflictingTraits]\n    }\n\n    // MARK: - Test Groups\n\n    /// Run all checks on every element on screen\n    public func a11yCheckAllOnScreen(file: StaticString = #file,\n                                     line: UInt = #line,\n                                     ignoringElementIdentifiers: [String] = [String]()) {\n\n        let elements = XCUIApplication()\n            .descendants(matching: .any)\n            .allElementsBoundByAccessibilityElement\n            .filter ({\n                !ignoringElementIdentifiers.contains($0.identifier)\n            })\n\n        a11yAllTestsOn(elements: elements,\n                       file: file,\n                       line: line)\n    }\n\n\n    /// Run all checks on the elements provided\n    /// - Parameters:\n    ///   - elements: Array of elements to run checks against\n    ///   - minMeaningfulLength: An optional parameter to specify the minimum label length for controls. Default is 2\n    public func a11yAllTestsOn(elements: [XCUIElement],\n                               minMeaningfulLength length: Int = A11yTestValues.minMeaningfulLength,\n                               maxMeaningfulLength maxLength: Int = A11yTestValues.maxMeaningfulLength,\n                               minSize: Int = A11yTestValues.minSize,\n                               allInteractiveElements: Bool = A11yTestValues.allInteractiveElements,\n                               file: StaticString = #file,\n                               line: UInt = #line) {\n\n        a11y(tests: a11yTestSuiteAll,\n             on: elements,\n             minMeaningfulLength: length,\n             maxMeaningfulLength: maxLength,\n             allInteractiveElements: allInteractiveElements,\n             file: file,\n             line: line)\n    }\n\n\n    /// Run the provided tests on the provided elements\n    /// - Parameters:\n    ///   - tests: Array of test suites to run\n    ///   - elements: Array of elements to run checks against\n    ///   - minMeaningfulLength: An optional parameter to specify the minimum label length for controls. Default is 2\n    ///   - maxMeaningfulLength: An optional parameter to specify the maximum label length for controls. Default is 40\n    ///   - minSize: An optional parameter to specify the minimum size for elements. Default is 14\n    ///   - allInteractiveElements: An optional parameter to run interactive element size check on all interactive elements. Default is true\n    public func a11y(tests: [A11yTests],\n                     on elements: [XCUIElement],\n                     minMeaningfulLength minLength: Int = A11yTestValues.minMeaningfulLength,\n                     maxMeaningfulLength maxLength: Int = A11yTestValues.maxMeaningfulLength,\n                     minSize: Int = A11yTestValues.minSize,\n                     allInteractiveElements: Bool = A11yTestValues.allInteractiveElements,\n                     file: StaticString = #file,\n                     line: UInt = #line) {\n\n        let a11yElements = elements.map { A11yElement($0) }\n        testRunner.a11y(tests,\n                        a11yElements,\n                        minLength,\n                        maxLength,\n                        minSize,\n                        allInteractiveElements,\n                        file,\n                        line)\n\n    }\n\n    // MARK: - Individual Tests\n\n    /// Checks element has a minimum size\n    /// - Parameters:\n    ///   - element: Element to run check against\n    ///   - minSize: An optional parameter to specify the minimum size for the element. Default is 14\n    public func a11yCheckValidSizeFor(element: XCUIElement,\n                                      minSize: Int = A11yTestValues.minSize,\n                                      file: StaticString = #file,\n                                      line: UInt = #line) {\n\n        let a11yElement = A11yElement(element)\n\n        testRunner.assertions.validSizeFor(a11yElement,\n                                           minSize,\n                                           file,\n                                           line)\n    }\n\n\n    /// Check the provided element has a label with a minimum length of `length`\n    /// - Parameters:\n    ///   - element: Element to run check against\n    ///   - minMeaningfulLength: An optional parameter to specify the minimum label length for controls. Default is 2\n    public func a11yCheckValidLabelFor(element: XCUIElement,\n                                       minMeaningfulLength length: Int = A11yTestValues.minMeaningfulLength,\n                                       file: StaticString = #file,\n                                       line: UInt = #line) {\n\n        let a11yElement = A11yElement(element)\n\n        testRunner.assertions.validLabelFor(a11yElement,\n                                            length,\n                                            file,\n                                            line)\n    }\n\n\n    /// Check the provided interactive element has a valid label\n    /// - Parameters:\n    ///   - interactiveElement: Interactive element to run check against\n    ///   - minMeaningfulLength: An optional parameter to specify the minimum label length for controls. Default is 2\n    public func a11yCheckValidLabelFor(interactiveElement: XCUIElement,\n                                       minMeaningfulLength length: Int = A11yTestValues.minMeaningfulLength,\n                                       file: StaticString = #file,\n                                       line: UInt = #line) {\n\n        let a11yElement = A11yElement(interactiveElement)\n\n        testRunner.assertions.validLabelFor(interactiveElement: a11yElement,\n                                            length,\n                                            file,\n                                            line)\n    }\n\n\n    /// Check the provided image has a valid label\n    /// - Parameters:\n    ///   - image: Image element to run the check against\n    ///   - minMeaningfulLength: An optional parameter to specify the minimum label length for controls. Default is 2\n    public func a11yCheckValidLabelFor(image: XCUIElement,\n                                       minMeaningfulLength length: Int = A11yTestValues.minMeaningfulLength,\n                                       file: StaticString = #file,\n                                       line: UInt = #line) {\n\n        let a11yElement = A11yElement(image)\n\n        testRunner.assertions.validLabelFor(image: a11yElement,\n                                            length,\n                                            file,\n                                            line)\n    }\n\n\n    /// Check the provided element's label is less than the provided number of characters\n    /// - Parameters:\n    ///   - element: Element to run check against\n    ///   - maxLength: An optional parameter to specify the maximum label length for controls. Default is 40\n    public func a11yCheckLabelLength(element: XCUIElement,\n                                     maxLength: Int = A11yTestValues.maxMeaningfulLength,\n                                     file: StaticString = #file,\n                                     line: UInt = #line) {\n\n        let a11yElement = A11yElement(element)\n\n        testRunner.assertions.labelLength(a11yElement,\n                                          maxLength,\n                                          file,\n                                          line)\n    }\n\n\n    /// Check the provided interactive element has a minimum size of 44px square\n    /// - Parameters:\n    ///   - interactiveElement: Interactive element to run check against\n    ///   - allElements: An optional parameter to run interactive element size check on all interactive elements. Default is true\n    public func a11yCheckValidSizeFor(interactiveElement: XCUIElement,\n                                      allElements: Bool = A11yTestValues.allInteractiveElements,\n                                      file: StaticString = #file,\n                                      line: UInt = #line) {\n\n        let a11yElement = A11yElement(interactiveElement)\n\n        testRunner.assertions.validSizeFor(interactiveElement: a11yElement,\n                                           allElements: allElements,\n                                           file,\n                                           line)\n    }\n}\n"
  }
]