Repository: alexp2ad/record-ios-simulator Branch: master Commit: 8bc8ea7053a0 Files: 10 Total size: 67.2 KB Directory structure: gitextract_16c15lv8/ ├── LICENSE ├── README.md ├── Record Simulator.alfredworkflow ├── Record Simulator.kmmacros ├── record-simulator.sh └── utils/ ├── base.alfredworkflow/ │ └── info.plist ├── base.kmmacros ├── generateAlfred.php ├── generateFiles.sh └── generateKM.php ================================================ FILE CONTENTS ================================================ ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2019 Alex Stevenson-Price Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Record iOS Simulator A script to start and stop video recordings from the iOS Simulator as easily as taking a screenshot. Run the script to start a video recording, then run it again to stop that recording and have it saved to the Desktop with a name like `Simulator 2019-01-04 at 10.16.21.mp4`. Also includes Alfred and Keyboard Maestro implementations that allow you to start and stop a recording easily with ⌘R in the Simulator (or any other trigger those apps support). # Usage Instructions ## Alfred Download the [Record Simulator.alfredworkflow](https://github.com/alexp2ad/record-ios-simulator/raw/master/Record%20Simulator.alfredworkflow) file and open it to add the workflow to Alfred. After adding the workflow you can double click the `Hotkey` action and assign a hotkey of your choice to start and stop the recording (I like ⌘R), or you can just trigger the workflow from Alfred with the `record` keyword. Once the workflow has been added, and the hotkey set, just use the hotkey in the Simulator to start a video recording, and then again to end the recording. ## Keyboard Maestro Download the [Record Simulator.kmmacros](https://github.com/alexp2ad/record-ios-simulator/raw/master/Record%20Simulator.kmmacros) file and open it to add the macro to Keyboard Maestro. By default it is triggered using the ⌘R hotkey while the Simulator is focused, but you can tweak this behaviour after adding the macro if desired. Once the macro has been added, just use the hotkey in the Simulator to start a video recording, and then again to end the recording. ## Script Usage If using other utilities, or wanting to simply have a script that you can run in the terminal, then download and run the bash script. On first run it will start a recording, on second run it will end the recording and save it to the Desktop. # Behaviour There are several variables at the top of the script that can be edited to modify the behaviour: | Variable | Default | Description | | --- | --- | --- | | `outputDirectory` | `~/Desktop/` | Determines where recordings are saved. | | `openRecordings` | `true` | If `true` video recordings will be opened when ended, otherwise a notification is displayed. | | `playSounds` | `true` | If `true` system sounds will be played when starting and stopping a recording. | | `filename` | `"Simulator "$(date '+%Y-%m-%d at %H.%M.%S')` | By default files are saved with date-based names like `Simulator 2019-01-04 at 10.16.21.mp4`, tweak this to change filenames to your liking. (No need to include an extension, `.mp4` is added further into the script) | # Contributing PRs with improvements, fixes, features welcomed. After modifying the script, please run the `utils/generateFiles.sh` script to update the Keyboard Maestro and Alfred implementations with the script changes, and include those changes with your script update commit. You do __not__ need Alfred or KM to do this. ================================================ FILE: Record Simulator.kmmacros ================================================ Activate Normal CreationDate 568291225.87612998 Macros Actions DisplayKind Asynchronously IncludeStdErr MacroActionType ExecuteShellScript Path Source Nothing Text #!/bin/bash # Starts and stops recording in the simulator # Set your prefered output directory here outputDirectory=~/Desktop/ # Open recordings in the default app when ending recording openRecordings=true # Choose whether to play sounds when starting and stopping a recording playSounds=true # Edit the format of the filename. By default it saves files with names like `Simulator 2019-01-04 at 10.16.21.mp4` # do not add an extension to the below variable, `.mp4` will be added further down. filename="Simulator "$(date '+%Y-%m-%d at %H.%M.%S') tmpPathPrefix="/tmp/com.alexjsp.simulator-recording." recordingPathVarStoragePath="$tmpPathPrefix""recordingPath.txt" recordingPIDVarStoragePath="$tmpPathPrefix""recordingPID.txt" function notify { # If running in an interactive terminal then echo status notifications, # otherwise post a system notification. if [ -t 0 ]; then echo $1 else osascript -e 'display notification "'"$1"'" with title "Simulator Recording"' fi } if [ -f $recordingPathVarStoragePath ] && [ -f $recordingPIDVarStoragePath ]; then # Stop existing recording read recordingPath < $recordingPathVarStoragePath read recordingPID < $recordingPIDVarStoragePath rm "$tmpPathPrefix""recordingPath.txt" rm "$tmpPathPrefix""recordingPID.txt" notify "Stopping recording..." if [ "$playSounds" = true ] ; then afplay /System/Library/Sounds/Purr.aiff > /dev/null 2>&1 fi sleep 2 kill -SIGINT $recordingPID sleep 1 if [ "$openRecordings" = true ] ; then open "$recordingPath" else notify "Recording saved to ""$recordingPath" fi else if ! pgrep -xq -- "Simulator"; then notify "Simulator doesn't appear to be running" if [ "$playSounds" = true ] ; then afplay /System/Library/Sounds/Basso.aiff > /dev/null 2>&1 fi exit 1 fi # Start a new recording if [ "$playSounds" = true ] ; then afplay /System/Library/Sounds/Pop.aiff > /dev/null 2>&1 fi recordingPath="$outputDirectory""$filename"".mp4" xcrun simctl io booted recordVideo "$recordingPath" & echo $! > "$tmpPathPrefix""recordingPID.txt" echo $recordingPath > "$tmpPathPrefix""recordingPath.txt" notify "Started recording to ""$recordingPath" fi TimeOutAbortsMacro TrimResults TrimResultsNew UseText CreationDate 568291231.02187896 CustomIconData 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 AAAAAAAAAAAAAAAAAAAAC2Rlc2MAAAEIAAAAb2RzY20A AAF4AAAFnGNwcnQAAAcUAAAAOHd0cHQAAAdMAAAAFHJY WVoAAAdgAAAAFGdYWVoAAAd0AAAAFGJYWVoAAAeIAAAA FHJUUkMAAAecAAAADmNoYWQAAAesAAAALGJUUkMAAAec AAAADmdUUkMAAAecAAAADmRlc2MAAAAAAAAAFEdlbmVy aWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAABRHZW5lcmlj IFJHQiBQcm9maWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVj AAAAAAAAAB8AAAAMc2tTSwAAACgAAAGEZGFESwAAAC4A AAGsY2FFUwAAACQAAAHadmlWTgAAACQAAAH+cHRCUgAA ACYAAAIidWtVQQAAACoAAAJIZnJGVQAAACgAAAJyaHVI VQAAACgAAAKaemhUVwAAABYAAALCbmJOTwAAACYAAALY Y3NDWgAAACIAAAL+aGVJTAAAAB4AAAMgaXRJVAAAACgA AAM+cm9STwAAACQAAANmZGVERQAAACwAAAOKa29LUgAA ABYAAAO2c3ZTRQAAACYAAALYemhDTgAAABYAAAPMamFK UAAAABoAAAPiZWxHUgAAACIAAAP8cHRQTwAAACYAAAQe bmxOTAAAACgAAAREZXNFUwAAACYAAAQedGhUSAAAACQA AARsdHJUUgAAACIAAASQZmlGSQAAACgAAASyaHJIUgAA ACgAAATacGxQTAAAACwAAAUCcnVSVQAAACIAAAUuYXJF RwAAACYAAAVQZW5VUwAAACYAAAV2AFYBYQBlAG8AYgBl AGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbABHAGUA bgBlAHIAZQBsACAAUgBHAEIALQBiAGUAcwBrAHIAaQB2 AGUAbABzAGUAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcA ZQBuAOgAcgBpAGMAQx6lAHUAIABoAOwAbgBoACAAUgBH AEIAIABDAGgAdQBuAGcAUABlAHIAZgBpAGwAIABSAEcA QgAgAEcAZQBuAOkAcgBpAGMAbwQXBDAEMwQwBDsETAQ9 BDgEOQAgBD8EQAQ+BEQEMAQ5BDsAIABSAEcAQgBQAHIA bwBmAGkAbAAgAGcA6QBuAOkAcgBpAHEAdQBlACAAUgBW AEIAwQBsAHQAYQBsAOEAbgBvAHMAIABSAEcAQgAgAHAA cgBvAGYAaQBskBp1KAAgAFIARwBCACCCcl9pY8+P8ABH AGUAbgBlAHIAaQBzAGsAIABSAEcAQgAtAHAAcgBvAGYA aQBsAE8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBm AGkAbAXkBegF1QXkBdkF3AAgAFIARwBCACAF2wXcBdwF 2QBQAHIAbwBmAGkAbABvACAAUgBHAEIAIABnAGUAbgBl AHIAaQBjAG8AUAByAG8AZgBpAGwAIABSAEcAQgAgAGcA ZQBuAGUAcgBpAGMAQQBsAGwAZwBlAG0AZQBpAG4AZQBz ACAAUgBHAEIALQBQAHIAbwBmAGkAbMd8vBgAIABSAEcA QgAg1QS4XNMMx3xmbpAaACAAUgBHAEIAIGPPj/Blh072 TgCCLAAgAFIARwBCACAw1zDtMNUwoTCkMOsDkwO1A70D uQO6A8wAIAPAA8EDvwPGA68DuwAgAFIARwBCAFAAZQBy AGYAaQBsACAAUgBHAEIAIABnAGUAbgDpAHIAaQBjAG8A QQBsAGcAZQBtAGUAZQBuACAAUgBHAEIALQBwAHIAbwBm AGkAZQBsDkIOGw4jDkQOHw4lDkwAIABSAEcAQgAgDhcO MQ5IDicORA4bAEcAZQBuAGUAbAAgAFIARwBCACAAUABy AG8AZgBpAGwAaQBZAGwAZQBpAG4AZQBuACAAUgBHAEIA LQBwAHIAbwBmAGkAaQBsAGkARwBlAG4AZQByAGkBDQBr AGkAIABSAEcAQgAgAHAAcgBvAGYAaQBsAFUAbgBpAHcA ZQByAHMAYQBsAG4AeQAgAHAAcgBvAGYAaQBsACAAUgBH AEIEHgQxBEkEOAQ5ACAEPwRABD4ERAQ4BDsETAAgAFIA RwBCBkUGRAZBACAGKgY5BjEGSgZBACAAUgBHAEIAIAYn BkQGOQYnBkUARwBlAG4AZQByAGkAYwAgAFIARwBCACAA UAByAG8AZgBpAGwAZXRleHQAAAAAQ29weXJpZ2h0IDIw MDcgQXBwbGUgSW5jLiwgYWxsIHJpZ2h0cyByZXNlcnZl ZC4AWFlaIAAAAAAAAPNSAAEAAAABFs9YWVogAAAAAAAA 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 2GFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgAL YWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAA APbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVz YwAAAQgAAABvZHNjbQAAAXgAAAWcY3BydAAABxQAAAA4 d3RwdAAAB0wAAAAUclhZWgAAB2AAAAAUZ1hZWgAAB3QA AAAUYlhZWgAAB4gAAAAUclRSQwAAB5wAAAAOY2hhZAAA B6wAAAAsYlRSQwAAB5wAAAAOZ1RSQwAAB5wAAAAOZGVz YwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAA AAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAG1sdWMAAAAAAAAAHwAAAAxza1NLAAAA KAAAAYRkYURLAAAALgAAAaxjYUVTAAAAJAAAAdp2aVZO AAAAJAAAAf5wdEJSAAAAJgAAAiJ1a1VBAAAAKgAAAkhm ckZVAAAAKAAAAnJodUhVAAAAKAAAApp6aFRXAAAAFgAA AsJuYk5PAAAAJgAAAthjc0NaAAAAIgAAAv5oZUlMAAAA HgAAAyBpdElUAAAAKAAAAz5yb1JPAAAAJAAAA2ZkZURF AAAALAAAA4prb0tSAAAAFgAAA7ZzdlNFAAAAJgAAAth6 aENOAAAAFgAAA8xqYUpQAAAAGgAAA+JlbEdSAAAAIgAA A/xwdFBPAAAAJgAABB5ubE5MAAAAKAAABERlc0VTAAAA JgAABB50aFRIAAAAJAAABGx0clRSAAAAIgAABJBmaUZJ AAAAKAAABLJockhSAAAAKAAABNpwbFBMAAAALAAABQJy dVJVAAAAIgAABS5hckVHAAAAJgAABVBlblVTAAAAJgAA BXYAVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAA cgBvAGYAaQBsAEcAZQBuAGUAcgBlAGwAIABSAEcAQgAt AGIAZQBzAGsAcgBpAHYAZQBsAHMAZQBQAGUAcgBmAGkA bAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBDHqUAdQAg AGgA7ABuAGgAIABSAEcAQgAgAEMAaAB1AG4AZwBQAGUA cgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBv BBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkE OwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QBy AGkAcQB1AGUAIABSAFYAQgDBAGwAdABhAGwA4QBuAG8A cwAgAFIARwBCACAAcAByAG8AZgBpAGyQGnUoACAAUgBH AEIAIIJyX2ljz4/wAEcAZQBuAGUAcgBpAHMAawAgAFIA RwBCAC0AcAByAG8AZgBpAGwATwBiAGUAYwBuAP0AIABS AEcAQgAgAHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAA UgBHAEIAIAXbBdwF3AXZAFAAcgBvAGYAaQBsAG8AIABS AEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBQAHIAbwBmAGkA bAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBBAGwAbABn AGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYA aQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfGZukBoAIABS AEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w 1TChMKQw6wOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7 ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcA ZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABS AEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUO TAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBs ACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkA bgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBH AGUAbgBlAHIAaQENAGsAaQAgAFIARwBCACAAcAByAG8A ZgBpAGwAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcABy AG8AZgBpAGwAIABSAEcAQgQeBDEESQQ4BDkAIAQ/BEAE PgREBDgEOwRMACAAUgBHAEIGRQZEBkEAIAYqBjkGMQZK BkEAIABSAEcAQgAgBicGRAY5BicGRQBHAGUAbgBlAHIA aQBjACAAUgBHAEIAIABQAHIAbwBmAGkAbABldGV4dAAA AABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwg cmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAA AAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAA AFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1 cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///z JgAAB5IAAP2R///7ov///aMAAAPcAADAbIAAIFA4JBYN B4RCYVC4MAYEBiUCwiXyCHQ8Q3m+Xy9Fc4m+p2m/XyvY ZJYXDgABD8FQ2njyRSEXQOFQlAn8/wA5m03n4YGAvzKu 3091EBQYEAkCgoGQ2DA0IhECQoGw84F2pVA/Hs83jCBY AACQVqIxWvgODQSAH6/H7BQOAwEAGg8Xy80aaUQ2wMJB eGwNEgmAAOCgIBpQszCLhq8m+02ZBALTxEaxQPFcZWAs he+gABYTcZw9gJnkgkpI6w8KYE+39agDcQeB4EzECUSw 5mMsFTBAIGRGIzaWz40yejDYCdaCM/agA7gYEQApUoww A6adAnm7gA/G51AaIRaAHCtUwgm0r0Yf4KBAOCSKimA0 SYm0EJRI115zLTNoG+QAX4nj4ABoi6PwAAEtoAHgZJVg AdhTjagQEugfwBAIdZ5HacpHHgd53kQggZj2WxdgiDwZ CIFhSkIAAPG0YwAH8BC0nAHYrAAZYgjQAAIgQAi1H+uJ 4lkO4AHmaRZSAhx7HseoAHue57FOdp2nYLSCBMLRHEwC YlDiM4AtbHitO2AMfgSBYDAAdp3tauKBAgAUnHAT8bnu dhvgAf5/octh+Oadp1jAeNCFCggMB+NI5A8LRLEaAR9r aBQCocfJ9oEe59Jwej/O2fwBrAdZorAWorrUtcYn61s+ AEf51nUdIcyiehkoIBoTCKJwSDOXRYwwtoUAqhx6HwnB wu0gs+VABBslAtRjSKAABrSfx/T+owLgAdB2nqKh8HYb JWsgCYTBcEw2GgZh3n0BAChOCljWQfDOJTN4CgI0BgjP J5tXFMzlWszjviAAB1HsBJCHiaZRD6ggAgMB4KBiOJqG oAIGg5bMxHvS9pTfhx9HwnJSBsAB6HUbLOgM5QDALUAA gcEZUHgeh9Eufh2GkYSGgGG42GKZgIA4FoUmwbhzHUf5 5nAcZ8ncbZu6cbRtH2dhqmyAJ3GWDB/n8fohn7sIZgFs gFn3kIYH2fh/HEhgAgeE4ZxifNNHsdJyrUe53oGnCTgD v4CcCCmyAECaNHzlKBb6k3GcbxyCICAAEQEAAAMAAAAB ABAAAAEBAAMAAAABABAAAAECAAMAAAAEAAA4/AEDAAMA AAABAAUAAAEGAAMAAAABAAIAAAEKAAMAAAABAAEAAAER AAQAAAABAAA1FAESAAMAAAABAAEAAAEVAAMAAAABAAQA AAEWAAMAAAABABAAAAEXAAQAAAABAAADFgEcAAMAAAAB AAEAAAEoAAMAAAABAAIAAAE9AAMAAAABAAIAAAFSAAMA AAABAAEAAAFTAAMAAAAEAAA5BIdzAAcAAAfYAAA5DAAA AAAACAAIAAgACAABAAEAAQABAAAH2GFwcGwCIAAAbW50 clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAA YXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1h cHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNj bQAAAXgAAAWcY3BydAAABxQAAAA4d3RwdAAAB0wAAAAU clhZWgAAB2AAAAAUZ1hZWgAAB3QAAAAUYlhZWgAAB4gA AAAUclRSQwAAB5wAAAAOY2hhZAAAB6wAAAAsYlRSQwAA B5wAAAAOZ1RSQwAAB5wAAAAOZGVzYwAAAAAAAAAUR2Vu ZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVy aWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1s dWMAAAAAAAAAHwAAAAxza1NLAAAAKAAAAYRkYURLAAAA LgAAAaxjYUVTAAAAJAAAAdp2aVZOAAAAJAAAAf5wdEJS AAAAJgAAAiJ1a1VBAAAAKgAAAkhmckZVAAAAKAAAAnJo dUhVAAAAKAAAApp6aFRXAAAAFgAAAsJuYk5PAAAAJgAA Athjc0NaAAAAIgAAAv5oZUlMAAAAHgAAAyBpdElUAAAA KAAAAz5yb1JPAAAAJAAAA2ZkZURFAAAALAAAA4prb0tS AAAAFgAAA7ZzdlNFAAAAJgAAAth6aENOAAAAFgAAA8xq YUpQAAAAGgAAA+JlbEdSAAAAIgAAA/xwdFBPAAAAJgAA BB5ubE5MAAAAKAAABERlc0VTAAAAJgAABB50aFRIAAAA JAAABGx0clRSAAAAIgAABJBmaUZJAAAAKAAABLJockhS AAAAKAAABNpwbFBMAAAALAAABQJydVJVAAAAIgAABS5h ckVHAAAAJgAABVBlblVTAAAAJgAABXYAVgFhAGUAbwBi AGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcA ZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBzAGsAcgBp AHYAZQBsAHMAZQBQAGUAcgBmAGkAbAAgAFIARwBCACAA ZwBlAG4A6AByAGkAYwBDHqUAdQAgAGgA7ABuAGgAIABS AEcAQgAgAEMAaAB1AG4AZwBQAGUAcgBmAGkAbAAgAFIA RwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRM BD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAA cgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABS AFYAQgDBAGwAdABhAGwA4QBuAG8AcwAgAFIARwBCACAA cAByAG8AZgBpAGyQGnUoACAAUgBHAEIAIIJyX2ljz4/w AEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8A ZgBpAGwATwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBv AGYAaQBsBeQF6AXVBeQF2QXcACAAUgBHAEIAIAXbBdwF 3AXZAFAAcgBvAGYAaQBsAG8AIABSAEcAQgAgAGcAZQBu AGUAcgBpAGMAbwBQAHIAbwBmAGkAbAAgAFIARwBCACAA ZwBlAG4AZQByAGkAYwBBAGwAbABnAGUAbQBlAGkAbgBl AHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsx3y8GAAgAFIA RwBCACDVBLhc0wzHfGZukBoAIABSAEcAQgAgY8+P8GWH TvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wOTA7UD vQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABl AHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMA bwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBv AGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAO Fw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQ AHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcA QgAtAHAAcgBvAGYAaQBpAGwAaQBHAGUAbgBlAHIAaQEN AGsAaQAgAFIARwBCACAAcAByAG8AZgBpAGwAVQBuAGkA dwBlAHIAcwBhAGwAbgB5ACAAcAByAG8AZgBpAGwAIABS AEcAQgQeBDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAA UgBHAEIGRQZEBkEAIAYqBjkGMQZKBkEAIABSAEcAQgAg BicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBHAEIA IABQAHIAbwBmAGkAbABldGV4dAAAAABDb3B5cmlnaHQg MjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2Vy dmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAA AAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRY WVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHN AABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7 ov///aMAAAPcAADAbA== ModificationDate 568291967.22791898 Name Record Simulator Triggers FireType Pressed KeyCode 15 MacroTriggerType HotKey Modifiers 256 UID 7A39B0BF-B4D2-4D58-8806-29FBE4D9205E Name Simulator Targeting Targeting Included TargetingApps BundleIdentifier com.apple.iphonesimulator Name Simulator NewFile /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app ToggleMacroUID 0270BC6C-3FF2-4F9F-91A9-C56C96477C02 UID 3C9F8BB7-514B-44B8-AC8E-545DFB333407 ================================================ FILE: record-simulator.sh ================================================ #!/bin/bash # Starts and stops recording in the simulator # Set your prefered output directory here outputDirectory=~/Desktop/ # Open recordings in the default app when ending recording openRecordings=true # Choose whether to play sounds when starting and stopping a recording playSounds=true # Edit the format of the filename. By default it saves files with names like `Simulator 2019-01-04 at 10.16.21.mp4` # do not add an extension to the below variable, `.mp4` will be added further down. filename="Simulator "$(date '+%Y-%m-%d at %H.%M.%S') tmpPathPrefix="/tmp/com.alexjsp.simulator-recording." recordingPathVarStoragePath="$tmpPathPrefix""recordingPath.txt" recordingPIDVarStoragePath="$tmpPathPrefix""recordingPID.txt" function notify { # If running in an interactive terminal then echo status notifications, # otherwise post a system notification. if [ -t 0 ]; then echo $1 else osascript -e 'display notification "'"$1"'" with title "Simulator Recording"' fi } if [ -f $recordingPathVarStoragePath ] && [ -f $recordingPIDVarStoragePath ]; then # Stop existing recording read recordingPath < $recordingPathVarStoragePath read recordingPID < $recordingPIDVarStoragePath rm "$tmpPathPrefix""recordingPath.txt" rm "$tmpPathPrefix""recordingPID.txt" notify "Stopping recording..." if [ "$playSounds" = true ] ; then afplay /System/Library/Sounds/Purr.aiff > /dev/null 2>&1 fi sleep 2 kill -SIGINT $recordingPID sleep 1 if [ "$openRecordings" = true ] ; then open "$recordingPath" else notify "Recording saved to ""$recordingPath" fi else if ! pgrep -xq -- "Simulator"; then notify "Simulator doesn't appear to be running" if [ "$playSounds" = true ] ; then afplay /System/Library/Sounds/Basso.aiff > /dev/null 2>&1 fi exit 1 fi # Start a new recording if [ "$playSounds" = true ] ; then afplay /System/Library/Sounds/Pop.aiff > /dev/null 2>&1 fi recordingPath="$outputDirectory""$filename"".mp4" xcrun simctl io booted recordVideo "$recordingPath" & echo $! > "$tmpPathPrefix""recordingPID.txt" echo $recordingPath > "$tmpPathPrefix""recordingPath.txt" notify "Started recording to ""$recordingPath" fi ================================================ FILE: utils/base.alfredworkflow/info.plist ================================================ bundleid com.alexjsp.record-simulator connections 6FC86196-CA1F-4259-805F-B8C67458A622 destinationuid EBD0B34D-1E5D-4021-B09E-8023981CBA1D modifiers 0 modifiersubtext vitoclose B87E5BC1-3622-4A9F-824B-D0E22A8952B1 destinationuid EBD0B34D-1E5D-4021-B09E-8023981CBA1D modifiers 0 modifiersubtext vitoclose DADA5CC7-2A03-4E31-9674-B6C61BECCDA6 destinationuid EBD0B34D-1E5D-4021-B09E-8023981CBA1D modifiers 0 modifiersubtext vitoclose createdby Alex Stevenson-Price description Record video from the iOS Simulator disabled name Record Simulator objects config action 0 argument 0 focusedappvariable focusedappvariablename hotkey 15 hotmod 1048576 hotstring R leftcursor modsmode 0 relatedApps com.apple.iphonesimulator relatedAppsMode 1 type alfred.workflow.trigger.hotkey uid B87E5BC1-3622-4A9F-824B-D0E22A8952B1 version 2 config concurrently escaping 102 script #INSERT_SCRIPT# scriptargtype 1 scriptfile type 0 type alfred.workflow.action.script uid EBD0B34D-1E5D-4021-B09E-8023981CBA1D version 2 config argument argumenttype 0 triggerid com.alexjsp.record-ios-simulator triggername Record Simulator workflowonly type alfred.workflow.trigger.remote uid DADA5CC7-2A03-4E31-9674-B6C61BECCDA6 version 1 config argumenttype 2 keyword record subtext Starts a video recording of the iOS Simulator. text Record iOS Simulator withspace type alfred.workflow.input.keyword uid 6FC86196-CA1F-4259-805F-B8C67458A622 version 1 readme A workflow to start and stop video recordings from the iOS Simulator as easily as taking a screenshot. Assign a hotkey such as ⌘R after adding this workflow. uidata 6FC86196-CA1F-4259-805F-B8C67458A622 xpos 90 ypos 370 B87E5BC1-3622-4A9F-824B-D0E22A8952B1 xpos 90 ypos 80 DADA5CC7-2A03-4E31-9674-B6C61BECCDA6 xpos 90 ypos 220 EBD0B34D-1E5D-4021-B09E-8023981CBA1D xpos 350 ypos 220 version 1.0 webaddress https://github.com/alexp2ad/record-ios-simulator ================================================ FILE: utils/base.kmmacros ================================================ Activate Normal CreationDate 568291225.87612998 Macros Actions DisplayKind Asynchronously IncludeStdErr MacroActionType ExecuteShellScript Path Source Nothing Text #INSERT_SCRIPT# TimeOutAbortsMacro TrimResults TrimResultsNew UseText CreationDate 568291231.02187896 CustomIconData TU0AKgAAGoKAACBQOCQWDQeEQmFQuGQ2HQ+IRGJROKRW LReMRmNRuOR2PR+QSGRSOSSWTSeUQwCAAAg0EywJgaBA p+wJ+vgAP94Th/u6BvuU0GhUOiAAIgABCgWgACksYAAC EcOwIR0cABQDywEP6bPOBPJ1TlzNgAP5ltAAPtYtwAPx gVwAPai3O6XWDBKkCglAAEHchgABlMQ1AGhEHA8AAoK0 cDhO8AMFS9/v2avt4vEAPd0z56O2fOl+Thm2VoLIAPpI M7TqWBvy7a/YR8bgADGkxXxCC+oBIKiXBhAbC4AAkSCD AAsFUgCSuWAGBv+cv2uP59PrTul2gB6NJrAB2sxqABxv PMLS2rVSZk3PKyt7Y+/4Q0CFHho0x7Q3CIJBMABcih2x IUBGwABgG6KarK6CBQUhgAucpABIEAkDH2dp4AAdxgmQ ABzGe7phH+fhvEgAB6iycwAH6ZT4xY94AvoBJIjUAADj aEIPg4/okB4qAHAanJ+KAnKTACAcIwgAB5GishyF/FZi H2fBzEJEoknXFJpRaiQAgEAQEgKwoLAMB4Kgmepym4aj Jn460tII2baj6xJLBMDYMv6IjZgGArmH8uDYAKArtG2c DxGC1RZpuaJEO0ILrH+d66AEAwEAeAwHAkDAEgsDwPgU DIRBKBYOBKE4GA6E4SgSDAQA+BILg+DR/z8AhijSGwbH wdxzu7LSjgEE5EgABpkByBYGggDQghiwAEgQgU/TdCUD HiahvgAcBqrYR4AHwSBYMyOKLuWBLCgOCIKg1V4PhEBY NhIE1R1KBYOhQEoEU4DoCgiDIKgGBYIAUAICplAsJIGB sDQSrh4Hu1xkDgHonHgbBlFnNwuMSUI0gCBIvA+F0BgQ DC8RTBFpIHBycn+6B1GYbQAGYeB4HsOgBnwIJ4AWBZyA QCYNBABVWBIBgPBQE93BIEoFA0EgRAOCoOg2AkyAmyAH ALIsDSMgQDQeBQBOgBYBJqBrmawgQBwftUFoGA8jlydK VmoQwsDmc5gFSRz4rwpJGgABxmBqB4HAWCgUA3aGUQaA TnHueB6AAcRsvcVAciOdhpjmSgBAOA4GAlLwGSQqEH68 gWxq5syuAWAboAbrPSptBR9QQeZ9ugec29u6B6tc08EH 4uCpQiYR3JWbZQECTRtlGQAzviH8aDqP4AAWRQOg0/gE geyR/QZxaFwYdhvHQABkAiC4AGOTxfAA3j+YErgFOYAk jnyfrodq5x5SEeQ+joD0SEPYfh0B9oIe+QJlRSCWFIQe QSB7tToBAA2hEaQ8SVjcF6KwYA0RDBVCKa014AQ3gAAY LwLSXghATAsA50j4SIIOOcPQeI9wADbHoV4ZIlhXgAHi DMISSYBIldwZlBB0jnPfOhAtxpAkInOge+AgkUkhkHdo ggGwFznDoHySsbAzxmDfGYHUHINk1jsUkQIA6wgHDZCA AMBAHwGgKJlDAicCx9D7K4OUe6kRShkUYOMKwbimR5ga +Ig0VG2kFfBIpBUinhECBQBE5yE0DDOG8OkeozQ3gvBu PoeI6hqkkAGpQCAEAUg3B6Apd4JQJgMAiDMNgrxRBVBd HoAoCUix2IogofwAToDrH+V4WQTA0AAGoG5vYAx8pCkU c+KcVpFkJkaQpBkCQAAWJeAAEQD0IjDHIa4aYeQdBKHm N0ZwtySLyByD0TAzRjAEAij8A42iyBPDKD4AAJZIlZgf LwiaDFIlyFuEILQABmh1E2VCQzLCHyPfFM+RNEmVkCAS cwG4GEIi9HMgYbQjQrBwHUMUVYkSSAEAUAwEwOxMDPGM BMEAJAJg5HgeECgUy/gkH2a6f1ACKoMQuXIWoQwvgAGg HIS9DEhRWopNWa004qzUINNgIwIKNjoQMN8UgfxMDhFW IINJJUHATBuIoXwwgLg0CACoHg/xxl8Cc9IFw9ELkySP T4iSDCfD1AAMMLYdwADGCyICQpQKHVPqjYmaEjCERUmf FcgQRQPnOGY8cAA3xeinF4NkSIWgkEDZOSAA4Lg6ihFk BgIwXgjBBAfXwAYVoggwHAWRZ6gq8EST+iiGw1BAidO0 EYLAABljhKAAZhVjLFWLooyuJMu22gBWjVCRb+CBA8A2 c4cQ9SVjaGeMgbY1RAA8BurMfqkSRgiCwHoTAIAwCFDO DoDC0A8BmAADYXB6UfnJn/bchlhlsJ8AAKcQ4vAAAzBy Cw7w8yajYHedAAtd6ITWioVxCIB3XLDHqOEsqkzMgJTu PkqBbUEABOliIrgLQKspkuNwc48xrB6BeDYfY8x2FkJG BgHwVw6AoDqKgRYNU7mZFwuAGgfGM3xWfXe/hDCcYgGQ CgHQABfiANMyxAwRgPHOGmOsrg5q+OyuTdK5hwwBHWAY L8QVlxiGmAGAcl4EAOgmesCBZgAgPAzLSBUFKJQDXxAk 2MAAH4XAAGAN2Ao3BCA3CUPYcAzhcEkAcCQGgUgYCJGM K0FLViWD4PYBcMQRAAAxHMzAmUdcl1TIGZguQrQyiTAA OUI59wBTNMAg+yRzhhjjdykKJuYmWHQH9hwDA49HjVEq fcfKXoGnQH6Ps60wCagHAMStTGKQHAcBOAACYJgagABC CsGgABogEKWNUTIZw3joGMKoSRJADgSA0DUGYjhnDBA8 BgCuHgIoRHAJ2hYUBNSEAgYmBmp0GHWxANsEOCB1iXFy AAYg63RoGK4/kgSliBA6gqAAXQ3+KoKihNBWZcABkrAi MLNI1Ra2+zacmip0OYEDiUkA1w/UgrQuKAYmQEwMOJAI pQco+B6DvF0PbowwTLjxGQO3pg2SMACAKAcD4MxGTwAt t8DQNALFcFwN4nAPRDhWAADQab7iskvv3HYmpXB14XFY G81gFgjBLAAv4mowhxlcuMQKA5zgOo/AACsChzhbjeOg /ZBdDk1nDH/DYf4qQwWXGuNEqDBORTRSHL4riDGWHTWi Pzmy0CuclJXtIrIDAGAKHqAbaQlxqDTnGPz2TvyIgOBY HkWYvQKA2CZWoC5NRdDlQMAcsYAAiiCChNwdo5MQ09ZR 5sABXi5C9CcHgAA1wr2EH6w4AAO7rnaTaNEdR0O9gAHy 78FgFTnASWeADvGDroFt9ltoehZB1igqK5CG3LyGeK8U iqgSOmJymw/+2AH8JqHuHuJwAwAwfUHsHqHoCIHPAmF6 ImAGBGDAEgFOAsCYDehAAy7u7yW6T2cAGqGGAACEEeC8 AAA8lCMAL4sWNe5iLkhsGICCDKqMC6b+caYUgSgOIECO BEOcGuHYOgHCMwKYYU/OuqA4hmTaGeHONcAEOoAAAwHC h6HEFezSc+4G9mLap2LS5vC8T883AK8S8zAGke2AVmLS H2KAMoJqAYOQQIAEDAHJDuFCIoAyCODWEQA6DCEoDuCA AwJqGsHYK4HY/2H8AMUEAWG0GW+6E0RmBKHGGmKZBgOc yUJSJqOsHgAEQMGKCUDg+uCiD2gYT6T+Wg5AIGCUBGOc GIHEOgHcJw1q74QQCRFcAAGwHUOsG8HWhsAyGYSoHGYs OGAYMQsa8yWip2NdDcKASDGe5uMpDK5hDZDGWiMoNcAz AaV0HcHcCE6YHaGOIoAiBeCODMBGDoFuEyBkAqK4HiHw OgG6HgOgbYRSUCMAHeHSAABUFcEKAABeGGFOKMH0K8+G gauOIs5if0W6LKQ4BAN0HoDKTkFqAu7oAMWimA+hBitA LgAajqB8A8QiF0G6K4H0LggemAOhCCKAGlF8AAHeFSvo HgHU+Y9YKyIa/+qYZMJrC8OqxBAShtGcLLGwMo28VaGs GyGyGwCBGcSuImlYBWCMBOEAGUFuBOAqAQAEAcAMOgGU HMwcuOkfE+RSiaAaG7EgBIGCFA28GiwIAmHeHORoNPBe 5CiiRSSGOsQiHsAKdGHJIgAAGqBsCuKuCYCqIFGOAAGe HENdHsxKoqILHswsIEAc/aKqOcAgAQOdJIK48RKIOgl0 xACGAZEsFaEMPuMAUEcbJSqlDUkSbbGqK4SC5qWiT9J6 /mHyHyJwAsAqAoFGGtOADCtAIopQAgBWBUEGGiGIAyA2 A8AgBUAmJqF48MNoOYuSmu5LIcIEAKV2AAAeHJEsAeHG PCAcHUUKAMHyciH6ACJWACAqAsWGBQBU4gAMwQHwA2BQ LSlKAACcBEIEGMHCNc9AIEAbJxMyOcAYjqAdJwwsOcgk W6SFM9KyIEHMci0IHA8OxIW6HwxAA8HKFUAAHIFoEGRo AWKO5iIjDVFXKJNlDA86YWkW5iOdNiDUHDRsqSIuS4AE AsBODwGGGGAkygBMB8A2JqFqG28OwhNfI4QWl2H6ia9p MfDYLSLgB+MG+i/2GyLCMAMmAAA0AYOgB/JEO0f9HiW6 d+HlFoHc/2HmHyd6TadqJtFTCBFyAsYEmQ/GAAGUHGOs AcAEhsAwGcD8AAG4GQPMpSMQ1+gU7Sqc8vRfNnDRUUVm 85DCKBDkAWHsHUHUHSCCHfU8RWI0AQBCDMFOFsAeBuCw CCCWBAJqFtSQQSwlFsbSQeAOOZI/QIdOAgm2AjM0MStt HsFwG4OmQUHwSECABAOc0EOcFmGyK4HRQsgWge16gWsO ui4tAGicIGCeBQQiAhJwGoHSJwBAASSuGOEo8jDuHKRo c8IvAM2Y9DUk/8wi5jN0JwAoAoAkGkGxX2CE9mOyI0AC AwCct6AmCWD8DCCMA+JqGQ10/AomIFV0IEBu++sOsPCX Jg/2YaosOYB+smuEHOOgGPFiNoYVMmAACkBSOcHa/2Fk GxHqSOuisPM9ZNQKOdQKIEAkl0cA/aa420m2HEHeK4AS 1nCqHqGeAAFIEI8iAE5+Oa7S7SsbADKNIXXlRjO0IGH0 HyOslOAcE8Gva+voJsI4AiBuC6D0AuC+FEEKCAA4K4G8 HcOgHGHjHqQfWuA+AeOcBQAoIEFsG0ilMegXB++NFyBE AgOcFgGwYZFpcEBiAwOcB2A61wHCOgk0IEAm5cAe/bcz EybWQeHuSEYadyxAQwLkO1dGHqTaQiJq/YxABoHiNYFk E2EChMAaLxRkILag8S4qui8zaqirao89ZfRmVmDIHFeM t8I+AUBCByCwA4DeGIFOBgvjDSqMHQwcSOsOAWtsBzY8 FpZczBWuujK4OcCoBWOcHYHsOhb6OgAOdiuiCWBOOcS+ IFY0MyTbTWK/YzTNTaIFYvMekOrvWmIQH8KAACH2LkAq Ga+sHIGeFqL4AW0GqiQfgmOfACWjRRd6uVd6LgQVKGAc AcAYHoHThGB+ZmHgNUI+X2A9e4DqGcGABCZIAMA4AcK4 GDOo2nSYAACmBWQiF4G2K4e6OcAjZ0AUAKOgAsAWOdiK IEGTYaG4J9MgA48BKwOcFzb8RTg45AQe17E0mkuQzEoq 5sxAAeH7H2AIFyYyHaHVLkUCjrdzNheoimsPjlUi/8IN XrCqAwAsGeGrj6CHDgvMI86heUA+DoGgGOAqVIAuByA6 K4FiGq/JOsQUkiAACBFyAMSPHhfoHvFldLc+IECGBIOc FoGs2AIG1oAACZZSAAGlZAAAxagU8wsfVisQkaK42cxA A6HxEgHYFcqLPWrtWjUZFVTnOuqjGrGq8SiWJ/ayAAA6 BKBaGmGWGIF4B6QXCQJCAgA4DMF0F+AaBSCKBhFxkdkg heipMfkoiq16mwBNb3S8AaOcF8G5kiJmOYCIBMOcFaGl LDYemouWscqbKMSCxABGHVLYG8Frdmc/ROodLvI4ilog ZXXmOfYrDWK42kJWAUA6B0HdBMFW26H+H2PcJEAIAsCk EuFYAWBwDQCeCeBMK4FyGyf0tDDPSW8w/MSECgBYOcGP QwQw/3cEByyzTOIEGfLAKZi7OuqbUpi+uQMmKAAIH8r4 A0GkDmsuGaFtge8AwjhzoplkqhjtUcLTmaAxOZJgAaBu H8HIGYFWCEH+HwHaGCJIAgB4DkEcAYCWEaDiCWBIK4Gd YaHUy/qTjokYQUAw0HqEOcFGGYOgjppqCoBfWWTVSpg1 hzUa/7jBjCTYfeH/LkAGF1MIHYHWfMUCttswzDjloBrF liHwHur4BEBS3CG4H4wQHmG0FqDGH4HcGyE8JIAUBQCa DWAiC0FkEoB2A9ERQsG1CLFqsQIJMeBRccABkYOcGwHS OgG2mEWGAOOcBGxSAAFrnLVqofsyuXq8kYgToG28H0Q2 HSFgYyNcJkhldxi9losYkbmSOa74H0httiCMuEHfP8H6 HOGQESHyHCF6+sJGAMAyBgCWAoDIGSFmBaA0azQSOgGK G+/JITsqumd+C0BoOcwuL4YVcEcLcOGmK4HIvNZ7tRpq qksSH+v3jmIIH85q2cAABMHaE0huFvoUAVoZvMkQmjon ofRYNpEYAABQBoCOsCHUA+RSHiHAFeHuGmE4Cnq6IyAE AUAoBeAuDQGkGITsAyAYBaAyK5vDnpszxeIGCkBjcOGc OgAcm2CGBKOcHiTaFxlLubsIkZxnpvGTqa8U2aNoH/qm GoDaAAG8nSRoAU8Bxdxh0B0BUo4Pa1S8A4KmziBzwABI LiHwHwGkHqGID2QAJzQsI8S4AIX6DEGOGIAgA+BoBFzq K4FaGhn5zXMgAXu4AACWBWIEFLVBe0IECaOEAAFuV6Hp dH0hqbvLyHtSLKH4xA8GRQAEF5yxtEfMOW1MZTvJvryJ 0kW7tcAABIBZ02H+AczkHeAMz2i4AnfQF4DEBrpCHoUK JEAUAmCoFaFwAQBSCkB6CoBaK4FYGfgxd+kPgk20AWIE BqA8IEFhaOAACzxCoRYaG6jQKhex3B0jyzqW9EK50+Jw BOH+GMAAHUFmoO2jv124rz0FptMgtANCAAA4BaCSO8H6 TuAqA8N0GwHsBGJuF6C6B+H6HiG8GKJGACAcCAEOFEAM BwDwC4CgBXhqZgSTdHahZkYUA00GpkIEH0H4f5TMGkfN Wx4PvMsdvPWtizljO2YVQTVwNcAkAUOsAUG4EqfOFazS AQlhzYIzvxvukXNsesAUWeAIA8s+HeH6viBmBkKeGKHY wQHyGGDOC+H4HKGAFFt8BeDKEAAQCME0D+CSBQOgGvlc HGvM16IRkoBGP4AACMBRCHLkAAF5ivfbw6sPMfZi5IdN Vtc0/az/ctiSNottfmxEOgcgKBv4ciHgF8mOGkGQ4eAU WPxjyF0Dw72ZNyxABABDP8z702dB4aU+N0GGHYN1l2EC EMHyGqExFNwWA6B+C6AYCr8uBuA+Og/mZjYaALLFjud+ IAQRMAQAMQ8AAAilu/wAAwHCABDAABIeAASBIQDQRCAk C4IDwTCAmC4QCALCADBAA/H7CHe9YQ8nvCHa9YY73tCH s+YQ+X3DH4+54GwK4gAAV8TwA32+3gABwPGwLU4mBIxD ofKZVEH/XYhX4lX7FY5QAHw93oABSMR+AG4+RPKwYKgA /QgLgAAgeKAA+mwnVa92KcSrXLJh8RhwGDxEPgcXGevR OGgcBAyD4Yu2vDIpCH8/rLCAHKhMGIQ/5bTwLBAgCoQE JDFgNCH1qX7qXdMAA7XpDHjMwA8ZyAHu+9pqa/KdFKuV EYlt9A+nzPBeBF8AG6qysAHg9ZbzYjKOUAvJVYxU5PVo fWKPyq94YlYfDYH7xg4KiC8Gk5QE4wIAoEnI1B8nCfx8 Hab5/HgbRln8ehxmIiDjMTCjEgCAwGBKCAuGmYwKgwEA KCMFKGF+bCGAqByEAsBiCAQ2YAAXGB7H0hB8Qm4SEHWe aGJkmJ8J7CZ+PkhABJU8qjogfyJM+zz4okAoBIQBKTgA BzYgkBB+AACIEp4AJqkUABclKQijgHKrDq2+SGLCgiCI dKSrPOqk5ry8qtLq26LASBJ/yaNRynKcZcohIEbQkiEa oRLbPQrR7EACCQHioX5hAMDgfhWOoioYYxsoQDIJoQY5 uIYeDhnoni+0a0DQzu8SxyaAFZver4DIrGSEJAhAKAYj LYpGggDyqflXH5Rp2Hm4x4x8AZojwABhFmTE7oq5ixK3 SCuza+avTyh06IxPIOXKdJyXQHx63WbrDNPd1IXjeUMC KT5YAKFIwCSJ4WoYGYQIQIgWIILBKNAbx3OXJyEH7Vz3 tGhADowAAGgOhErxWBqPtdiiNgABGJxpIKCJwhB2N0eN D5TIKEH3RZ/nudB9n8eJtHeGABFseh0GcUIRHGcx0udI k8zyw8iK5pGk6I5QVacXhraiJ1uOBeWrausgEhmPBJgG HBDjYJYVIYM4gIIGYQoQMxOtAXBqoQC4G122IKY0ACOo QA2J4khDipieyCN/HTdHlQ551WfUJn6ljaHee4AnscuE nqcB0QUbBxQUbUEnibkCnmcHMnudR0AIAJ+HwEoShIKK oAQJJ79iEp49oCHaHi4nY3jNerAX3wAA34JBm14g/ax4 /kVuEYpDiAoilaRwhhOhgTAqhAFRgdJ54Ws0JpqgkfAA djh/Ce0J8S059nuhh8naefIHEdZ/nmb5zH+eJs8yeBsn Afp5DeHAP8eg5ByoGHa0Ifw+x3kQN0ABVZKyIHIVckkk p5ABASAbBkDwEIOAsgyA0GZWAYj2hICN24DXbwOOm8gD MLSvhNHPDEWjyYaNYAIBYGoUAFhSGQK8CIDUpAVJIAAd T2wAPmZYAAfaE4lDyS2PgdQ8QAj1HCOkf48htjkZoNpA o7xsIJHmOFzI9hzv2HyO8dZEHcE6USoyCKSo4LvUc1cr ZFSGkQYmx9OcP4Mgfg4BAFrvgFg0gsDCEg9gQjwkUAoe UjS+j6RqAaSQAAXSVGqNOTARzpj5HLDWTzuwFAYBoA4K 40hiJLAEP4fg9BzDvACPQb46H7uYH650cCChtoFHoOIc TMB0yyH2PUdpEB5KGjaXWOKtJklhgnJ+ZxEEpJFIhHZN JJipgSAdNkEMfwXAKm8DQz4/gTySAMuddAix1zpGDMeZ 87SxACAIBQAYEwXBHH/GQd4/h7jtHQrQfQ8CIFpJ6RBR syI5zKoOWFpU7qGUMmiXmaZEE0gJKwAw24/VDncmNHKh tHY7UPofMyZa8KO0lpNSWh7vKD0npZS2l1L6YUxplTOm lNabU3pxTmnVO6eU9p9T+oFMSAgAABEBAAADAAAAAQBA AAABAQADAAAAAQBAAAABAgADAAAABAAAG1QBAwADAAAA AQAFAAABBgADAAAAAQACAAABCgADAAAAAQABAAABEQAE AAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAAB FgADAAAAAQBAAAABFwAEAAAAAQAAGnkBHAADAAAAAQAB AAABKAADAAAAAQACAAABPQADAAAAAQACAAABUgADAAAA AQABAAABUwADAAAABAAAG1yHcwAHAAAH2AAAG2QAACxa AAgACAAIAAgAAQABAAEAAQAAB9hhcHBsAiAAAG1udHJS R0IgWFlaIAfZAAIAGQALABoAC2Fjc3BBUFBMAAAAAGFw cGwAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBw bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAC2Rlc2MAAAEIAAAAb2RzY20A AAF4AAAFnGNwcnQAAAcUAAAAOHd0cHQAAAdMAAAAFHJY WVoAAAdgAAAAFGdYWVoAAAd0AAAAFGJYWVoAAAeIAAAA FHJUUkMAAAecAAAADmNoYWQAAAesAAAALGJUUkMAAAec AAAADmdUUkMAAAecAAAADmRlc2MAAAAAAAAAFEdlbmVy aWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAABRHZW5lcmlj IFJHQiBQcm9maWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVj AAAAAAAAAB8AAAAMc2tTSwAAACgAAAGEZGFESwAAAC4A AAGsY2FFUwAAACQAAAHadmlWTgAAACQAAAH+cHRCUgAA ACYAAAIidWtVQQAAACoAAAJIZnJGVQAAACgAAAJyaHVI VQAAACgAAAKaemhUVwAAABYAAALCbmJOTwAAACYAAALY Y3NDWgAAACIAAAL+aGVJTAAAAB4AAAMgaXRJVAAAACgA AAM+cm9STwAAACQAAANmZGVERQAAACwAAAOKa29LUgAA ABYAAAO2c3ZTRQAAACYAAALYemhDTgAAABYAAAPMamFK UAAAABoAAAPiZWxHUgAAACIAAAP8cHRQTwAAACYAAAQe bmxOTAAAACgAAAREZXNFUwAAACYAAAQedGhUSAAAACQA AARsdHJUUgAAACIAAASQZmlGSQAAACgAAASyaHJIUgAA ACgAAATacGxQTAAAACwAAAUCcnVSVQAAACIAAAUuYXJF RwAAACYAAAVQZW5VUwAAACYAAAV2AFYBYQBlAG8AYgBl AGMAbgD9ACAAUgBHAEIAIABwAHIAbwBmAGkAbABHAGUA bgBlAHIAZQBsACAAUgBHAEIALQBiAGUAcwBrAHIAaQB2 AGUAbABzAGUAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcA ZQBuAOgAcgBpAGMAQx6lAHUAIABoAOwAbgBoACAAUgBH AEIAIABDAGgAdQBuAGcAUABlAHIAZgBpAGwAIABSAEcA QgAgAEcAZQBuAOkAcgBpAGMAbwQXBDAEMwQwBDsETAQ9 BDgEOQAgBD8EQAQ+BEQEMAQ5BDsAIABSAEcAQgBQAHIA bwBmAGkAbAAgAGcA6QBuAOkAcgBpAHEAdQBlACAAUgBW AEIAwQBsAHQAYQBsAOEAbgBvAHMAIABSAEcAQgAgAHAA cgBvAGYAaQBskBp1KAAgAFIARwBCACCCcl9pY8+P8ABH AGUAbgBlAHIAaQBzAGsAIABSAEcAQgAtAHAAcgBvAGYA aQBsAE8AYgBlAGMAbgD9ACAAUgBHAEIAIABwAHIAbwBm AGkAbAXkBegF1QXkBdkF3AAgAFIARwBCACAF2wXcBdwF 2QBQAHIAbwBmAGkAbABvACAAUgBHAEIAIABnAGUAbgBl AHIAaQBjAG8AUAByAG8AZgBpAGwAIABSAEcAQgAgAGcA ZQBuAGUAcgBpAGMAQQBsAGwAZwBlAG0AZQBpAG4AZQBz ACAAUgBHAEIALQBQAHIAbwBmAGkAbMd8vBgAIABSAEcA QgAg1QS4XNMMx3xmbpAaACAAUgBHAEIAIGPPj/Blh072 TgCCLAAgAFIARwBCACAw1zDtMNUwoTCkMOsDkwO1A70D uQO6A8wAIAPAA8EDvwPGA68DuwAgAFIARwBCAFAAZQBy AGYAaQBsACAAUgBHAEIAIABnAGUAbgDpAHIAaQBjAG8A QQBsAGcAZQBtAGUAZQBuACAAUgBHAEIALQBwAHIAbwBm AGkAZQBsDkIOGw4jDkQOHw4lDkwAIABSAEcAQgAgDhcO MQ5IDicORA4bAEcAZQBuAGUAbAAgAFIARwBCACAAUABy AG8AZgBpAGwAaQBZAGwAZQBpAG4AZQBuACAAUgBHAEIA LQBwAHIAbwBmAGkAaQBsAGkARwBlAG4AZQByAGkBDQBr AGkAIABSAEcAQgAgAHAAcgBvAGYAaQBsAFUAbgBpAHcA ZQByAHMAYQBsAG4AeQAgAHAAcgBvAGYAaQBsACAAUgBH AEIEHgQxBEkEOAQ5ACAEPwRABD4ERAQ4BDsETAAgAFIA RwBCBkUGRAZBACAGKgY5BjEGSgZBACAAUgBHAEIAIAYn BkQGOQYnBkUARwBlAG4AZQByAGkAYwAgAFIARwBCACAA UAByAG8AZgBpAGwAZXRleHQAAAAAQ29weXJpZ2h0IDIw MDcgQXBwbGUgSW5jLiwgYWxsIHJpZ2h0cyByZXNlcnZl ZC4AWFlaIAAAAAAAAPNSAAEAAAABFs9YWVogAAAAAAAA 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 2GFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgAL YWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAA APbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVz YwAAAQgAAABvZHNjbQAAAXgAAAWcY3BydAAABxQAAAA4 d3RwdAAAB0wAAAAUclhZWgAAB2AAAAAUZ1hZWgAAB3QA AAAUYlhZWgAAB4gAAAAUclRSQwAAB5wAAAAOY2hhZAAA B6wAAAAsYlRSQwAAB5wAAAAOZ1RSQwAAB5wAAAAOZGVz YwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAA AAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAG1sdWMAAAAAAAAAHwAAAAxza1NLAAAA KAAAAYRkYURLAAAALgAAAaxjYUVTAAAAJAAAAdp2aVZO AAAAJAAAAf5wdEJSAAAAJgAAAiJ1a1VBAAAAKgAAAkhm ckZVAAAAKAAAAnJodUhVAAAAKAAAApp6aFRXAAAAFgAA AsJuYk5PAAAAJgAAAthjc0NaAAAAIgAAAv5oZUlMAAAA HgAAAyBpdElUAAAAKAAAAz5yb1JPAAAAJAAAA2ZkZURF AAAALAAAA4prb0tSAAAAFgAAA7ZzdlNFAAAAJgAAAth6 aENOAAAAFgAAA8xqYUpQAAAAGgAAA+JlbEdSAAAAIgAA A/xwdFBPAAAAJgAABB5ubE5MAAAAKAAABERlc0VTAAAA JgAABB50aFRIAAAAJAAABGx0clRSAAAAIgAABJBmaUZJ AAAAKAAABLJockhSAAAAKAAABNpwbFBMAAAALAAABQJy dVJVAAAAIgAABS5hckVHAAAAJgAABVBlblVTAAAAJgAA BXYAVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAA cgBvAGYAaQBsAEcAZQBuAGUAcgBlAGwAIABSAEcAQgAt AGIAZQBzAGsAcgBpAHYAZQBsAHMAZQBQAGUAcgBmAGkA bAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBDHqUAdQAg AGgA7ABuAGgAIABSAEcAQgAgAEMAaAB1AG4AZwBQAGUA cgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBv BBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkE OwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QBy AGkAcQB1AGUAIABSAFYAQgDBAGwAdABhAGwA4QBuAG8A cwAgAFIARwBCACAAcAByAG8AZgBpAGyQGnUoACAAUgBH AEIAIIJyX2ljz4/wAEcAZQBuAGUAcgBpAHMAawAgAFIA RwBCAC0AcAByAG8AZgBpAGwATwBiAGUAYwBuAP0AIABS AEcAQgAgAHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAA UgBHAEIAIAXbBdwF3AXZAFAAcgBvAGYAaQBsAG8AIABS AEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBQAHIAbwBmAGkA bAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBBAGwAbABn AGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYA aQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfGZukBoAIABS AEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w 1TChMKQw6wOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7 ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcA ZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABS AEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUO TAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBs ACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkA bgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBH AGUAbgBlAHIAaQENAGsAaQAgAFIARwBCACAAcAByAG8A ZgBpAGwAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcABy AG8AZgBpAGwAIABSAEcAQgQeBDEESQQ4BDkAIAQ/BEAE PgREBDgEOwRMACAAUgBHAEIGRQZEBkEAIAYqBjkGMQZK BkEAIABSAEcAQgAgBicGRAY5BicGRQBHAGUAbgBlAHIA aQBjACAAUgBHAEIAIABQAHIAbwBmAGkAbABldGV4dAAA AABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwg cmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAA AAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAA AFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1 cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///z JgAAB5IAAP2R///7ov///aMAAAPcAADAbIAAIFA4JBYN B4RCYVC4MAYEBiUCwiXyCHQ8Q3m+Xy9Fc4m+p2m/XyvY ZJYXDgABD8FQ2njyRSEXQOFQlAn8/wA5m03n4YGAvzKu 3091EBQYEAkCgoGQ2DA0IhECQoGw84F2pVA/Hs83jCBY AACQVqIxWvgODQSAH6/H7BQOAwEAGg8Xy80aaUQ2wMJB eGwNEgmAAOCgIBpQszCLhq8m+02ZBALTxEaxQPFcZWAs he+gABYTcZw9gJnkgkpI6w8KYE+39agDcQeB4EzECUSw 5mMsFTBAIGRGIzaWz40yejDYCdaCM/agA7gYEQApUoww A6adAnm7gA/G51AaIRaAHCtUwgm0r0Yf4KBAOCSKimA0 SYm0EJRI115zLTNoG+QAX4nj4ABoi6PwAAEtoAHgZJVg AdhTjagQEugfwBAIdZ5HacpHHgd53kQggZj2WxdgiDwZ CIFhSkIAAPG0YwAH8BC0nAHYrAAZYgjQAAIgQAi1H+uJ 4lkO4AHmaRZSAhx7HseoAHue57FOdp2nYLSCBMLRHEwC YlDiM4AtbHitO2AMfgSBYDAAdp3tauKBAgAUnHAT8bnu dhvgAf5/octh+Oadp1jAeNCFCggMB+NI5A8LRLEaAR9r aBQCocfJ9oEe59Jwej/O2fwBrAdZorAWorrUtcYn61s+ AEf51nUdIcyiehkoIBoTCKJwSDOXRYwwtoUAqhx6HwnB wu0gs+VABBslAtRjSKAABrSfx/T+owLgAdB2nqKh8HYb JWsgCYTBcEw2GgZh3n0BAChOCljWQfDOJTN4CgI0BgjP J5tXFMzlWszjviAAB1HsBJCHiaZRD6ggAgMB4KBiOJqG oAIGg5bMxHvS9pTfhx9HwnJSBsAB6HUbLOgM5QDALUAA gcEZUHgeh9Eufh2GkYSGgGG42GKZgIA4FoUmwbhzHUf5 5nAcZ8ncbZu6cbRtH2dhqmyAJ3GWDB/n8fohn7sIZgFs gFn3kIYH2fh/HEhgAgeE4ZxifNNHsdJyrUe53oGnCTgD v4CcCCmyAECaNHzlKBb6k3GcbxyCICAAEQEAAAMAAAAB ABAAAAEBAAMAAAABABAAAAECAAMAAAAEAAA4/AEDAAMA AAABAAUAAAEGAAMAAAABAAIAAAEKAAMAAAABAAEAAAER AAQAAAABAAA1FAESAAMAAAABAAEAAAEVAAMAAAABAAQA AAEWAAMAAAABABAAAAEXAAQAAAABAAADFgEcAAMAAAAB AAEAAAEoAAMAAAABAAIAAAE9AAMAAAABAAIAAAFSAAMA AAABAAEAAAFTAAMAAAAEAAA5BIdzAAcAAAfYAAA5DAAA AAAACAAIAAgACAABAAEAAQABAAAH2GFwcGwCIAAAbW50 clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAA YXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1h cHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNj bQAAAXgAAAWcY3BydAAABxQAAAA4d3RwdAAAB0wAAAAU clhZWgAAB2AAAAAUZ1hZWgAAB3QAAAAUYlhZWgAAB4gA AAAUclRSQwAAB5wAAAAOY2hhZAAAB6wAAAAsYlRSQwAA B5wAAAAOZ1RSQwAAB5wAAAAOZGVzYwAAAAAAAAAUR2Vu ZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVy aWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1s dWMAAAAAAAAAHwAAAAxza1NLAAAAKAAAAYRkYURLAAAA LgAAAaxjYUVTAAAAJAAAAdp2aVZOAAAAJAAAAf5wdEJS AAAAJgAAAiJ1a1VBAAAAKgAAAkhmckZVAAAAKAAAAnJo dUhVAAAAKAAAApp6aFRXAAAAFgAAAsJuYk5PAAAAJgAA Athjc0NaAAAAIgAAAv5oZUlMAAAAHgAAAyBpdElUAAAA KAAAAz5yb1JPAAAAJAAAA2ZkZURFAAAALAAAA4prb0tS AAAAFgAAA7ZzdlNFAAAAJgAAAth6aENOAAAAFgAAA8xq YUpQAAAAGgAAA+JlbEdSAAAAIgAAA/xwdFBPAAAAJgAA BB5ubE5MAAAAKAAABERlc0VTAAAAJgAABB50aFRIAAAA JAAABGx0clRSAAAAIgAABJBmaUZJAAAAKAAABLJockhS AAAAKAAABNpwbFBMAAAALAAABQJydVJVAAAAIgAABS5h ckVHAAAAJgAABVBlblVTAAAAJgAABXYAVgFhAGUAbwBi AGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcA ZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBzAGsAcgBp AHYAZQBsAHMAZQBQAGUAcgBmAGkAbAAgAFIARwBCACAA ZwBlAG4A6AByAGkAYwBDHqUAdQAgAGgA7ABuAGgAIABS AEcAQgAgAEMAaAB1AG4AZwBQAGUAcgBmAGkAbAAgAFIA RwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRM BD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAA cgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABS AFYAQgDBAGwAdABhAGwA4QBuAG8AcwAgAFIARwBCACAA cAByAG8AZgBpAGyQGnUoACAAUgBHAEIAIIJyX2ljz4/w AEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8A ZgBpAGwATwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBv AGYAaQBsBeQF6AXVBeQF2QXcACAAUgBHAEIAIAXbBdwF 3AXZAFAAcgBvAGYAaQBsAG8AIABSAEcAQgAgAGcAZQBu AGUAcgBpAGMAbwBQAHIAbwBmAGkAbAAgAFIARwBCACAA ZwBlAG4AZQByAGkAYwBBAGwAbABnAGUAbQBlAGkAbgBl AHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsx3y8GAAgAFIA RwBCACDVBLhc0wzHfGZukBoAIABSAEcAQgAgY8+P8GWH TvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wOTA7UD vQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABl AHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMA bwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBv AGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAO Fw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQ AHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcA QgAtAHAAcgBvAGYAaQBpAGwAaQBHAGUAbgBlAHIAaQEN AGsAaQAgAFIARwBCACAAcAByAG8AZgBpAGwAVQBuAGkA dwBlAHIAcwBhAGwAbgB5ACAAcAByAG8AZgBpAGwAIABS AEcAQgQeBDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAA UgBHAEIGRQZEBkEAIAYqBjkGMQZKBkEAIABSAEcAQgAg BicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBHAEIA IABQAHIAbwBmAGkAbABldGV4dAAAAABDb3B5cmlnaHQg MjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2Vy dmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAA AAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRY WVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHN AABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7 ov///aMAAAPcAADAbA== ModificationDate 568291967.22791898 Name Record Simulator Triggers FireType Pressed KeyCode 15 MacroTriggerType HotKey Modifiers 256 UID 7A39B0BF-B4D2-4D58-8806-29FBE4D9205E Name Simulator Targeting Targeting Included TargetingApps BundleIdentifier com.apple.iphonesimulator Name Simulator NewFile /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app ToggleMacroUID 0270BC6C-3FF2-4F9F-91A9-C56C96477C02 UID 3C9F8BB7-514B-44B8-AC8E-545DFB333407 ================================================ FILE: utils/generateAlfred.php ================================================ #!/usr/bin/php open($workflow, ZipArchive::CREATE|ZipArchive::OVERWRITE) !== true) { die("cannot open zip"); } $zip->addFromString("info.plist", $alfredInfo); $zip->addFile($dir."/utils/base.alfredworkflow/icon.png","icon.png"); $zip->close(); ?> ================================================ FILE: utils/generateFiles.sh ================================================ #!/bin/bash utilsDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" $utilsDir/generateAlfred.php $utilsDir/generateKM.php ================================================ FILE: utils/generateKM.php ================================================ #!/usr/bin/php