From 20cefb4001b46c94942e2ba039a01776e7579b2f Mon Sep 17 00:00:00 2001 From: Victor Gama Date: Sat, 4 Sep 2021 01:14:27 -0300 Subject: [PATCH] Initial commit --- .gitignore | 2 + LICENSE.txt | 21 + Podman.xcodeproj/project.pbxproj | 482 +++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/swiftpm/Package.resolved | 16 + Podman/AppDelegate.h | 18 + Podman/AppDelegate.m | 164 +++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/icon_128x128.png | Bin 0 -> 9440 bytes .../AppIcon.appiconset/icon_128x128@2x@2x.png | Bin 0 -> 23899 bytes .../AppIcon.appiconset/icon_16x16.png | Bin 0 -> 765 bytes .../AppIcon.appiconset/icon_16x16@2x@2x.png | Bin 0 -> 1713 bytes .../AppIcon.appiconset/icon_256x256.png | Bin 0 -> 23131 bytes .../AppIcon.appiconset/icon_256x256@2x@2x.png | Bin 0 -> 54749 bytes .../AppIcon.appiconset/icon_32x32.png | Bin 0 -> 1713 bytes .../AppIcon.appiconset/icon_32x32@2x@2x.png | Bin 0 -> 3377 bytes .../AppIcon.appiconset/icon_512x512.png | Bin 0 -> 54749 bytes .../AppIcon.appiconset/icon_512x512@2x@2x.png | Bin 0 -> 150447 bytes Podman/Assets.xcassets/Contents.json | 6 + .../icon.imageset/Contents.json | 15 + Podman/Assets.xcassets/icon.imageset/icon.pdf | Bin 0 -> 6908 bytes .../podman-logo-full.imageset/Contents.json | 12 + .../podman-logo-full.pdf | Bin 0 -> 14219 bytes .../podman-logo-text.imageset/Contents.json | 15 + .../podman-logo-text.pdf | Bin 0 -> 5278 bytes .../podman-logo.imageset/Contents.json | 15 + .../podman-logo.imageset/podman-logo.pdf | Bin 0 -> 12564 bytes Podman/Base.lproj/Main.storyboard | 1216 +++++++++++++++++ .../PMInstallProgressViewController.h | 16 + .../PMInstallProgressViewController.m | 72 + .../Controllers/PMInstallWindowController.h | 16 + .../Controllers/PMInstallWindowController.m | 62 + Podman/Controllers/PMPreferencesController.h | 16 + Podman/Controllers/PMPreferencesController.m | 39 + Podman/Controllers/PMStatusBarController.h | 19 + Podman/Controllers/PMStatusBarController.m | 50 + Podman/Controllers/PopoverController.h | 13 + Podman/Controllers/PopoverController.m | 341 +++++ Podman/Controls/PMContainerCellView.h | 22 + Podman/Controls/PMContainerCellView.m | 53 + Podman/Info.plist | 32 + Podman/Interop/PMCommon.h | 34 + Podman/Interop/PMContainer.h | 34 + Podman/Interop/PMContainer.m | 17 + Podman/Interop/PMLoginItem.h | 31 + Podman/Interop/PMLoginItem.m | 74 + Podman/Interop/PMManager.h | 115 ++ Podman/Interop/PMManager.m | 391 ++++++ Podman/Interop/PMOperationResult.h | 45 + Podman/Interop/PMOperationResult.m | 63 + Podman/PMApplication.h | 17 + Podman/PMApplication.m | 26 + Podman/PMDispatch.h | 32 + Podman/PMDispatch.m | 24 + Podman/PMMoveToApplications.h | 23 + Podman/PMMoveToApplications.m | 513 +++++++ Podman/PMPreferences.h | 30 + Podman/PMPreferences.m | 52 + Podman/Podman.entitlements | 5 + Podman/main.m | 15 + README.md | 66 + 63 files changed, 4434 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 Podman.xcodeproj/project.pbxproj create mode 100644 Podman.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Podman.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Podman.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 Podman/AppDelegate.h create mode 100644 Podman/AppDelegate.m create mode 100644 Podman/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_128x128.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x@2x.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_16x16.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x@2x.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_256x256.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x@2x.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_32x32.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x@2x.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_512x512.png create mode 100644 Podman/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x@2x.png create mode 100644 Podman/Assets.xcassets/Contents.json create mode 100644 Podman/Assets.xcassets/icon.imageset/Contents.json create mode 100644 Podman/Assets.xcassets/icon.imageset/icon.pdf create mode 100644 Podman/Assets.xcassets/podman-logo-full.imageset/Contents.json create mode 100644 Podman/Assets.xcassets/podman-logo-full.imageset/podman-logo-full.pdf create mode 100644 Podman/Assets.xcassets/podman-logo-text.imageset/Contents.json create mode 100644 Podman/Assets.xcassets/podman-logo-text.imageset/podman-logo-text.pdf create mode 100644 Podman/Assets.xcassets/podman-logo.imageset/Contents.json create mode 100644 Podman/Assets.xcassets/podman-logo.imageset/podman-logo.pdf create mode 100644 Podman/Base.lproj/Main.storyboard create mode 100644 Podman/Controllers/PMInstallProgressViewController.h create mode 100644 Podman/Controllers/PMInstallProgressViewController.m create mode 100644 Podman/Controllers/PMInstallWindowController.h create mode 100644 Podman/Controllers/PMInstallWindowController.m create mode 100644 Podman/Controllers/PMPreferencesController.h create mode 100644 Podman/Controllers/PMPreferencesController.m create mode 100644 Podman/Controllers/PMStatusBarController.h create mode 100644 Podman/Controllers/PMStatusBarController.m create mode 100644 Podman/Controllers/PopoverController.h create mode 100644 Podman/Controllers/PopoverController.m create mode 100644 Podman/Controls/PMContainerCellView.h create mode 100644 Podman/Controls/PMContainerCellView.m create mode 100644 Podman/Info.plist create mode 100644 Podman/Interop/PMCommon.h create mode 100644 Podman/Interop/PMContainer.h create mode 100644 Podman/Interop/PMContainer.m create mode 100644 Podman/Interop/PMLoginItem.h create mode 100644 Podman/Interop/PMLoginItem.m create mode 100644 Podman/Interop/PMManager.h create mode 100644 Podman/Interop/PMManager.m create mode 100644 Podman/Interop/PMOperationResult.h create mode 100644 Podman/Interop/PMOperationResult.m create mode 100644 Podman/PMApplication.h create mode 100644 Podman/PMApplication.m create mode 100644 Podman/PMDispatch.h create mode 100644 Podman/PMDispatch.m create mode 100644 Podman/PMMoveToApplications.h create mode 100644 Podman/PMMoveToApplications.m create mode 100644 Podman/PMPreferences.h create mode 100644 Podman/PMPreferences.m create mode 100644 Podman/Podman.entitlements create mode 100644 Podman/main.m create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0491c7e --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +**/xcuserdata/* diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..abe2656 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021 Victor Gama + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Podman.xcodeproj/project.pbxproj b/Podman.xcodeproj/project.pbxproj new file mode 100644 index 0000000..ecbc8b4 --- /dev/null +++ b/Podman.xcodeproj/project.pbxproj @@ -0,0 +1,482 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + DA1ED08826E2B6AF009A8CD8 /* PMContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1ED08726E2B6AF009A8CD8 /* PMContainer.m */; }; + DA1ED08B26E2BD06009A8CD8 /* PMOperationResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1ED08A26E2BD06009A8CD8 /* PMOperationResult.m */; }; + DA1ED08F26E2C816009A8CD8 /* PMDispatch.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1ED08E26E2C816009A8CD8 /* PMDispatch.m */; }; + DA60FC2826E2DF5A00756E30 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = DA60FC2726E2DF5A00756E30 /* Sparkle */; }; + DA60FC2B26E2E79600756E30 /* PMMoveToApplications.m in Sources */ = {isa = PBXBuildFile; fileRef = DA60FC2A26E2E79600756E30 /* PMMoveToApplications.m */; }; + DA60FC3026E2F1AA00756E30 /* PMPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA60FC2F26E2F1AA00756E30 /* PMPreferencesController.m */; }; + DA60FC3326E2F31300756E30 /* PMPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = DA60FC3226E2F31300756E30 /* PMPreferences.m */; }; + DA60FC6A26E318AC00756E30 /* PMLoginItem.m in Sources */ = {isa = PBXBuildFile; fileRef = DA60FC6926E318AC00756E30 /* PMLoginItem.m */; }; + DA618A9726E1233A000AB06C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618A9626E1233A000AB06C /* AppDelegate.m */; }; + DA618A9A26E1233A000AB06C /* PopoverController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618A9926E1233A000AB06C /* PopoverController.m */; }; + DA618A9C26E1233C000AB06C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA618A9B26E1233C000AB06C /* Assets.xcassets */; }; + DA618A9F26E1233C000AB06C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DA618A9D26E1233C000AB06C /* Main.storyboard */; }; + DA618AA226E1233C000AB06C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618AA126E1233C000AB06C /* main.m */; }; + DA618AAB26E12E1A000AB06C /* PMStatusBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618AAA26E12E1A000AB06C /* PMStatusBarController.m */; }; + DA618AAE26E13CAD000AB06C /* PMApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618AAD26E13CAD000AB06C /* PMApplication.m */; }; + DA618AB126E14BF8000AB06C /* PMManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618AB026E14BF8000AB06C /* PMManager.m */; }; + DA618AB426E1684C000AB06C /* PMInstallWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618AB326E1684C000AB06C /* PMInstallWindowController.m */; }; + DA618AB826E1AB30000AB06C /* PMInstallProgressViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618AB626E1AB30000AB06C /* PMInstallProgressViewController.m */; }; + DA618ABC26E1D227000AB06C /* PMContainerCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = DA618ABB26E1D227000AB06C /* PMContainerCellView.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + DA60FC6626E3146200756E30 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = Contents/Library/LoginItems; + dstSubfolderSpec = 1; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + DA1ED08626E2B6AF009A8CD8 /* PMContainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMContainer.h; sourceTree = ""; }; + DA1ED08726E2B6AF009A8CD8 /* PMContainer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMContainer.m; sourceTree = ""; }; + DA1ED08926E2BD06009A8CD8 /* PMOperationResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMOperationResult.h; sourceTree = ""; }; + DA1ED08A26E2BD06009A8CD8 /* PMOperationResult.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMOperationResult.m; sourceTree = ""; }; + DA1ED08C26E2BFC1009A8CD8 /* PMCommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMCommon.h; sourceTree = ""; }; + DA1ED08D26E2C816009A8CD8 /* PMDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMDispatch.h; sourceTree = ""; }; + DA1ED08E26E2C816009A8CD8 /* PMDispatch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMDispatch.m; sourceTree = ""; }; + DA60FC2926E2E79600756E30 /* PMMoveToApplications.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMMoveToApplications.h; sourceTree = ""; }; + DA60FC2A26E2E79600756E30 /* PMMoveToApplications.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMMoveToApplications.m; sourceTree = ""; }; + DA60FC2E26E2F1AA00756E30 /* PMPreferencesController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMPreferencesController.h; sourceTree = ""; }; + DA60FC2F26E2F1AA00756E30 /* PMPreferencesController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMPreferencesController.m; sourceTree = ""; }; + DA60FC3126E2F31300756E30 /* PMPreferences.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMPreferences.h; sourceTree = ""; }; + DA60FC3226E2F31300756E30 /* PMPreferences.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMPreferences.m; sourceTree = ""; }; + DA60FC6826E318AC00756E30 /* PMLoginItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMLoginItem.h; sourceTree = ""; }; + DA60FC6926E318AC00756E30 /* PMLoginItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMLoginItem.m; sourceTree = ""; }; + DA618A9226E1233A000AB06C /* Podman.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Podman.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DA618A9526E1233A000AB06C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + DA618A9626E1233A000AB06C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + DA618A9826E1233A000AB06C /* PopoverController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PopoverController.h; sourceTree = ""; }; + DA618A9926E1233A000AB06C /* PopoverController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PopoverController.m; sourceTree = ""; }; + DA618A9B26E1233C000AB06C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + DA618A9E26E1233C000AB06C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + DA618AA026E1233C000AB06C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DA618AA126E1233C000AB06C /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + DA618AA326E1233C000AB06C /* Podman.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Podman.entitlements; sourceTree = ""; }; + DA618AA926E12E1A000AB06C /* PMStatusBarController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMStatusBarController.h; sourceTree = ""; }; + DA618AAA26E12E1A000AB06C /* PMStatusBarController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMStatusBarController.m; sourceTree = ""; }; + DA618AAC26E13CAD000AB06C /* PMApplication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMApplication.h; sourceTree = ""; }; + DA618AAD26E13CAD000AB06C /* PMApplication.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMApplication.m; sourceTree = ""; }; + DA618AAF26E14BF8000AB06C /* PMManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMManager.h; sourceTree = ""; }; + DA618AB026E14BF8000AB06C /* PMManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMManager.m; sourceTree = ""; }; + DA618AB226E1684C000AB06C /* PMInstallWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMInstallWindowController.h; sourceTree = ""; }; + DA618AB326E1684C000AB06C /* PMInstallWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMInstallWindowController.m; sourceTree = ""; }; + DA618AB526E1AB30000AB06C /* PMInstallProgressViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMInstallProgressViewController.h; sourceTree = ""; }; + DA618AB626E1AB30000AB06C /* PMInstallProgressViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMInstallProgressViewController.m; sourceTree = ""; }; + DA618ABA26E1D227000AB06C /* PMContainerCellView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PMContainerCellView.h; sourceTree = ""; }; + DA618ABB26E1D227000AB06C /* PMContainerCellView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PMContainerCellView.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + DA618A8F26E1233A000AB06C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DA60FC2826E2DF5A00756E30 /* Sparkle in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + DA1ED08526E2B698009A8CD8 /* Interop */ = { + isa = PBXGroup; + children = ( + DA618AAF26E14BF8000AB06C /* PMManager.h */, + DA618AB026E14BF8000AB06C /* PMManager.m */, + DA1ED08626E2B6AF009A8CD8 /* PMContainer.h */, + DA1ED08726E2B6AF009A8CD8 /* PMContainer.m */, + DA1ED08926E2BD06009A8CD8 /* PMOperationResult.h */, + DA1ED08A26E2BD06009A8CD8 /* PMOperationResult.m */, + DA1ED08C26E2BFC1009A8CD8 /* PMCommon.h */, + DA60FC6826E318AC00756E30 /* PMLoginItem.h */, + DA60FC6926E318AC00756E30 /* PMLoginItem.m */, + ); + path = Interop; + sourceTree = ""; + }; + DA60FC2C26E2EE3500756E30 /* Controllers */ = { + isa = PBXGroup; + children = ( + DA618A9826E1233A000AB06C /* PopoverController.h */, + DA618A9926E1233A000AB06C /* PopoverController.m */, + DA618AA926E12E1A000AB06C /* PMStatusBarController.h */, + DA618AAA26E12E1A000AB06C /* PMStatusBarController.m */, + DA618AB226E1684C000AB06C /* PMInstallWindowController.h */, + DA618AB326E1684C000AB06C /* PMInstallWindowController.m */, + DA618AB526E1AB30000AB06C /* PMInstallProgressViewController.h */, + DA618AB626E1AB30000AB06C /* PMInstallProgressViewController.m */, + DA60FC2E26E2F1AA00756E30 /* PMPreferencesController.h */, + DA60FC2F26E2F1AA00756E30 /* PMPreferencesController.m */, + ); + path = Controllers; + sourceTree = ""; + }; + DA60FC2D26E2EE6200756E30 /* Controls */ = { + isa = PBXGroup; + children = ( + DA618ABA26E1D227000AB06C /* PMContainerCellView.h */, + DA618ABB26E1D227000AB06C /* PMContainerCellView.m */, + ); + path = Controls; + sourceTree = ""; + }; + DA618A8926E1233A000AB06C = { + isa = PBXGroup; + children = ( + DA618A9426E1233A000AB06C /* Podman */, + DA618A9326E1233A000AB06C /* Products */, + ); + sourceTree = ""; + }; + DA618A9326E1233A000AB06C /* Products */ = { + isa = PBXGroup; + children = ( + DA618A9226E1233A000AB06C /* Podman.app */, + ); + name = Products; + sourceTree = ""; + }; + DA618A9426E1233A000AB06C /* Podman */ = { + isa = PBXGroup; + children = ( + DA60FC2D26E2EE6200756E30 /* Controls */, + DA60FC2C26E2EE3500756E30 /* Controllers */, + DA1ED08526E2B698009A8CD8 /* Interop */, + DA60FC2926E2E79600756E30 /* PMMoveToApplications.h */, + DA60FC2A26E2E79600756E30 /* PMMoveToApplications.m */, + DA618A9526E1233A000AB06C /* AppDelegate.h */, + DA618A9626E1233A000AB06C /* AppDelegate.m */, + DA618AAC26E13CAD000AB06C /* PMApplication.h */, + DA618AAD26E13CAD000AB06C /* PMApplication.m */, + DA1ED08D26E2C816009A8CD8 /* PMDispatch.h */, + DA1ED08E26E2C816009A8CD8 /* PMDispatch.m */, + DA60FC3126E2F31300756E30 /* PMPreferences.h */, + DA60FC3226E2F31300756E30 /* PMPreferences.m */, + DA618A9B26E1233C000AB06C /* Assets.xcassets */, + DA618A9D26E1233C000AB06C /* Main.storyboard */, + DA618AA026E1233C000AB06C /* Info.plist */, + DA618AA126E1233C000AB06C /* main.m */, + DA618AA326E1233C000AB06C /* Podman.entitlements */, + ); + path = Podman; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + DA618A9126E1233A000AB06C /* Podman */ = { + isa = PBXNativeTarget; + buildConfigurationList = DA618AA626E1233C000AB06C /* Build configuration list for PBXNativeTarget "Podman" */; + buildPhases = ( + DA618A8E26E1233A000AB06C /* Sources */, + DA618A8F26E1233A000AB06C /* Frameworks */, + DA618A9026E1233A000AB06C /* Resources */, + DA60FC6626E3146200756E30 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Podman; + packageProductDependencies = ( + DA60FC2726E2DF5A00756E30 /* Sparkle */, + ); + productName = "Podman macOS"; + productReference = DA618A9226E1233A000AB06C /* Podman.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + DA618A8A26E1233A000AB06C /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1250; + TargetAttributes = { + DA618A9126E1233A000AB06C = { + CreatedOnToolsVersion = 12.5.1; + }; + }; + }; + buildConfigurationList = DA618A8D26E1233A000AB06C /* Build configuration list for PBXProject "Podman" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = DA618A8926E1233A000AB06C; + packageReferences = ( + DA60FC2626E2DF5A00756E30 /* XCRemoteSwiftPackageReference "Sparkle" */, + ); + productRefGroup = DA618A9326E1233A000AB06C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + DA618A9126E1233A000AB06C /* Podman */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + DA618A9026E1233A000AB06C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DA618A9C26E1233C000AB06C /* Assets.xcassets in Resources */, + DA618A9F26E1233C000AB06C /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + DA618A8E26E1233A000AB06C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DA60FC3326E2F31300756E30 /* PMPreferences.m in Sources */, + DA618AAB26E12E1A000AB06C /* PMStatusBarController.m in Sources */, + DA618A9A26E1233A000AB06C /* PopoverController.m in Sources */, + DA618AA226E1233C000AB06C /* main.m in Sources */, + DA618A9726E1233A000AB06C /* AppDelegate.m in Sources */, + DA1ED08F26E2C816009A8CD8 /* PMDispatch.m in Sources */, + DA618AB826E1AB30000AB06C /* PMInstallProgressViewController.m in Sources */, + DA618ABC26E1D227000AB06C /* PMContainerCellView.m in Sources */, + DA1ED08B26E2BD06009A8CD8 /* PMOperationResult.m in Sources */, + DA618AB126E14BF8000AB06C /* PMManager.m in Sources */, + DA60FC2B26E2E79600756E30 /* PMMoveToApplications.m in Sources */, + DA618AB426E1684C000AB06C /* PMInstallWindowController.m in Sources */, + DA1ED08826E2B6AF009A8CD8 /* PMContainer.m in Sources */, + DA60FC6A26E318AC00756E30 /* PMLoginItem.m in Sources */, + DA618AAE26E13CAD000AB06C /* PMApplication.m in Sources */, + DA60FC3026E2F1AA00756E30 /* PMPreferencesController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + DA618A9D26E1233C000AB06C /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DA618A9E26E1233C000AB06C /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + DA618AA426E1233C000AB06C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + DA618AA526E1233C000AB06C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + }; + name = Release; + }; + DA618AA726E1233C000AB06C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Podman/Podman.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 7GEB3UCDV7; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = "$(SRCROOT)/Podman/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "io.vito.Podman-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + DA618AA826E1233C000AB06C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Podman/Podman.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 7GEB3UCDV7; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = "$(SRCROOT)/Podman/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "io.vito.Podman-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + DA618A8D26E1233A000AB06C /* Build configuration list for PBXProject "Podman" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DA618AA426E1233C000AB06C /* Debug */, + DA618AA526E1233C000AB06C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DA618AA626E1233C000AB06C /* Build configuration list for PBXNativeTarget "Podman" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DA618AA726E1233C000AB06C /* Debug */, + DA618AA826E1233C000AB06C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + DA60FC2626E2DF5A00756E30 /* XCRemoteSwiftPackageReference "Sparkle" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/sparkle-project/Sparkle"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 1.26.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + DA60FC2726E2DF5A00756E30 /* Sparkle */ = { + isa = XCSwiftPackageProductDependency; + package = DA60FC2626E2DF5A00756E30 /* XCRemoteSwiftPackageReference "Sparkle" */; + productName = Sparkle; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = DA618A8A26E1233A000AB06C /* Project object */; +} diff --git a/Podman.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Podman.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Podman.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Podman.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Podman.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Podman.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Podman.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Podman.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..c7cb63e --- /dev/null +++ b/Podman.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "Sparkle", + "repositoryURL": "https://github.com/sparkle-project/Sparkle", + "state": { + "branch": null, + "revision": "c0933a516b420806e9216e71bd13ba76c54f0de6", + "version": "1.26.0" + } + } + ] + }, + "version": 1 +} diff --git a/Podman/AppDelegate.h b/Podman/AppDelegate.h new file mode 100644 index 0000000..d21ebaa --- /dev/null +++ b/Podman/AppDelegate.h @@ -0,0 +1,18 @@ +// +// AppDelegate.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +@interface AppDelegate : NSObject + + +/// Starts the agent by placing an icon in the system's Menu Bar. +/// Multiple calls to this method has no effect. +- (void)startAgent; + +@end + diff --git a/Podman/AppDelegate.m b/Podman/AppDelegate.m new file mode 100644 index 0000000..9f2800e --- /dev/null +++ b/Podman/AppDelegate.m @@ -0,0 +1,164 @@ +// +// AppDelegate.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +#import "AppDelegate.h" +#import "PMStatusBarController.h" +#import "PopoverController.h" +#import "PMManager.h" +#import "PMMoveToApplications.h" +#import "PMPreferences.h" +#import "PMDispatch.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate { + PMStatusBarController *controller; + NSPopover *popover; + BOOL agentRunning; +} + +- (void)ensureSingleInstance { + pid_t selfPid = [[NSRunningApplication currentApplication] processIdentifier]; + NSArray *appArray = [NSRunningApplication runningApplicationsWithBundleIdentifier:[[NSBundle mainBundle] bundleIdentifier]]; + for (NSRunningApplication *app in appArray) { + if ([app processIdentifier] != selfPid) { + [NSApp terminate:nil]; + break; + } + } +} + + +- (void)applicationWillFinishLaunching:(NSNotification *)notification { + [self ensureSingleInstance]; +#ifndef DEBUG + [PMMoveToApplications moveToApplicationsFolderIfNecessary]; +#endif +} + + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + SUUpdater *updater = [SUUpdater sharedUpdater]; + updater.automaticallyChecksForUpdates = PMPreferences.checkForUpdates; + updater.feedURL = [NSURL URLWithString:@"https://heyvito.github.io/podman-macos/sparkle.xml"]; + + PMOperationResult *detectPodmanResult = [PMManager.manager detectPodman]; + switch ([detectPodmanResult detectStateValue]) { + case PMDetectStateNotInPath: { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleCritical; + alert.messageText = @"Podman for macOS did not find a Podman executable"; + alert.informativeText = @"Make sure Podman is installed and available in your PATH."; + [alert addButtonWithTitle:@"OK"]; + [alert runModal]; + [NSApp terminate:nil]; + return; + } + case PMDetectStateError: { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleCritical; + alert.messageText = @"Error detecting Podman executable"; + alert.informativeText = detectPodmanResult.output; + [alert addButtonWithTitle:@"OK"]; + [alert runModal]; + [NSApp terminate:nil]; + return; + } + case PMDetectStateOK: + NSLog(@"Podman detection succeeded."); + } + + PMOperationResult *detectVMResult = [PMManager.manager detectVM]; + switch ([detectVMResult vmPresenceValue]) { + case PMVMPresenceError: { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleCritical; + alert.messageText = @"Error detecting Podman Machine"; + alert.informativeText = detectVMResult.output; + [alert addButtonWithTitle:@"OK"]; + [alert runModal]; + [NSApp terminate:nil]; + return; + } + + case PMVMPresenceAbsent: { + NSStoryboard *story = [NSStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; + NSWindowController *windowController = [story instantiateControllerWithIdentifier:@"InstallWindow"]; + [windowController showWindow:self]; + return; + } + + case PMVMPresencePresent: + NSLog(@"Podman Machine detection succeeded."); + } + + [self startAgent]; +} + + +- (void)startAgent { + if (self->agentRunning) { + return; + } + self->agentRunning = YES; + + NSStoryboard *story = [NSStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; + NSViewController *viewController = [story instantiateControllerWithIdentifier:@"PopoverViewController"]; + popover = [[NSPopover alloc] init]; + popover.contentViewController = viewController; + popover.behavior = NSPopoverBehaviorTransient; + controller = [[PMStatusBarController alloc] initWithPopover:popover]; + if (PMPreferences.startPodmanVM) { + NSLog(@"PM is set to autostart VM"); + if (PMManager.manager.serviceStatus == PMServiceStatusStopped) { + [PMDispatch background:^{ + PMOperationResult *result = [PMManager.manager startVM]; + if (!result.succeeded) { + [PMDispatch sync:^{ + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = @"Podman for macOS could not automatically start Podman's VM"; + alert.informativeText = result.output; + [alert addButtonWithTitle:@"OK"]; + [alert runModal]; + }]; + } else { + NSLog(@"VM started successfully."); + } + }]; + } else { + NSLog(@"VM is already running."); + } + } + + if (!PMPreferences.askedToStartAtLogin) { + PMPreferences.askedToStartAtLogin = YES; + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleInformational; + alert.messageText = @"Would you like to Podman for macOS to start at login?"; + alert.informativeText = @"This can be changed both in Podman for macOS's preferences and the System Preferences."; + NSButton *yesButton = [alert addButtonWithTitle:@"Yes"]; + yesButton.keyEquivalent = @"\r"; + NSButton *noButton = [alert addButtonWithTitle:@"No"]; + noButton.keyEquivalent = @"\033"; + if([alert runModal] == NSAlertFirstButtonReturn) { + PMPreferences.startAtLogin = YES; + } + } +} + + +- (void)applicationWillResignActive:(NSNotification *)notification { + [popover close]; +} + + +@end diff --git a/Podman/Assets.xcassets/AccentColor.colorset/Contents.json b/Podman/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Podman/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/Contents.json b/Podman/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..b8bd462 --- /dev/null +++ b/Podman/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "icon_16x16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "icon_16x16@2x@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "icon_32x32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "icon_32x32@2x@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "icon_128x128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "icon_128x128@2x@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "icon_256x256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "icon_256x256@2x@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "icon_512x512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "icon_512x512@2x@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..874cf1c7ab83327d1f5716df00968e891eca5709 GIT binary patch literal 9440 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 literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..fc718b01d703852fc3dfe95efd33f8fb5ca924ae GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&Rm5z?AOk;uvBf zI5*haC)iQMcD>ClCvN^1`=_vMl;}`Pa%}bxUVY?(%j2dQ63H*lEv+t(o#9b(^jI(V zWmkJOw@cTuq*_=$&Xx$+I4wRzM{H@t8+I?QrRRKVJ2x~>-ZQg2{hj6abJgh<41S;9 zNZX`-vf-b8`fBd>+qz8(A>JG(jJA7k-QhdIYw4wj1rDLZSpT5yT^!%ZsrL0bSCmk*M;q0K%{DxyoZlSv2 z?yjp5QlDoy*@(5rs5PHWJ3RfPyn)I`O0Z+;{TR6tnASKc}I<JQs+sw= zBPC{=^A*-%WaIP>hY1y~W`^A>83bXx^a`JfItJyv9C|3Wnipy~BS!=5mm$VJO zt2M5hWxS)fnqgKE^Q|9cF7w<9I`u%tP n@87?VbGI_>F7(^B`}{-w_Y;hxV<%794@!ETu6{1-oD!M<Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$_8%ab#R9Fe+R%>jNRTzHS^|r3< zE^XPxQ94$JG8vE|+c1i3xF9AN4H`5dV&X6{>OT`>;t%}i4-+N+8N(Q}OoI9c5hn)5 zMer8J=C06VBt7EfH#%y>2e9LLSZX zB%DWr9W*}>BHgD*u_g^xTuLI5$jJwSoTQX6z9qzT??K{ryPr*xd!Ve>>)kIH!Q#qD znv;`r=nngz{JzRC8Imjkm!niFcO>{#r+AFRl~22&E7d@z$`NHKNk!i4@}tnC!^3;c zkjjL+iN_+NP$(D{Q?e{=r)2!1jG1w;`$60C;fPIegXU`t&-o2ZbANt+~ zwO$2tLs^QRqy3*xL`zEx4jw#++S*!CiWzX? z#0k(P(A3m~jm>8Cesc>NgBpen1)^LM!!FKWJ~>c=H$=IxcL^gGC-|7kb7ko2>Ox~< zBLV^D!4-13Triu>ICkt9qR}XF6jE&3w;mKS1Qx<8f~#=J2BaLvV{r_3j$vJ0DKu-; zSX^9$)oMjWs2cL?MOd&dVsNk@6BBksdlb+QR$^C869xtbcs;p=N?4vM$4$}^3yZmy zg25I-2<|$to_CtXCF z-vPhEjp^y>Wc@tPypf4AhCo}A2k-PsteFAyKp_|nAAgD9^p&V-*i2NZd7>dz9eO1Sh(7qBG7TARZ3-v9I)%crD%>6!Lf`dkc<1f6_})NIF4{hR4;7z$4h?m~Xe5T*g3KXE_5cfb zN-46o%UsB^zuvzW_Es-Wl^jL2uL1Spy@*7@2+X>%P1yj0)`;M;ADX!$lt>I186H4k zMRiv9Gq)t?z)Hp?9LB=1FyX_EAqVtNs$nbc#p%;$@UyoQ1-q0OvW}xdZhWXLU4I*;w`wV9bf&dms;yO z7^@1wk&g!Lf1%&z5%n+^O3C%k2^(%)`w7py^d{t_C9o)k^alqH9dCw&aw(k>Z$U^n zVFq|?2}?%yDhAzQJhW{MeED+xVZGD!xH!k!0E!o) zQ0Wv{TU!EMS?1cO=Qu=I`eXxC^uXMrMq*-M*(fj{;%~U<3ZSgU2swS6FvHaPT$r{O zL-P+w$8?86p((lyzBvdn z=eoPQ&zMZ6eaympA=X?rG_JiD(Ys`NdV0>#W=h$!>@OP|8@rI*_WM62PhVzOG*T*# zRfDp=zP`?8vt7J@nAJ7V1+VPfxwC;`(GV(-*gM2FSQXT?wzj@MIy!pZ@Aps9Hy;ad ze07yscjN58q{BtJF1EF`eL%XmBrrs9k)Z=dY^|WdO2j}zmsqE`i}vo7*r(7E4Id3w zv+SLY&=BLFZUCL}Mz99QK-sx4i2c{ZfP}$}p>DAP&b0jv@5v121iC&&00000NkvXX Hu0mjfPFNPE literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..59c3fc5f218e5a6d325aadf7f1379d8b7049c502 GIT binary patch literal 23131 zcmdRW1ydYtu=OnN9^4&*LvV-SPJ#q?hu{v2y9I&-cL~9Ry99T4cXwwmZ+-RE{SCLa zrskQQsi~Pqy8E0yJrOEO(x^y;NB{t!%F0Np0RZT|2?7w{-gmlACFcJfIjc#F0~KS$ zhwlfHW?Hi5ii!Z^dm8}&g;@bG|6TIF5x#E#0G$H@px^hP|NhH?`u}G^Ko0c(w*R}( z;)qZd07L;{e!&hDBE3%v2R=>{2Hdoka zo}eOAGRgdmy;*~jm7!{*i@(T(_%2zI*$vTVlk-T|KI;r z3BWBawn_H0sNBt4Lq>VlJz_|OnoUGSMf1YK;Ok}1qzqf!PNAyZot>}y+wT?rL$d58GMU@`uc#xdlBnYB z?mZ49Pc@k1Y^<%n{|Rm|7XGJC?3~s&J3H%1rF zzdz(MD=TZ;!<4MY*XDfZReh8P7n+8Np?ufQQ(Jp6^8G%Juc$mL-!p!fm;R|&WQUez z`j+lUyG5ek5B&B)mi5z;EY% z{~~y5j*uSn9IktxY**>c5pDSuPZO3AWhO3wScCe_WHRq_*Vq_>sLU7~?v{nBzp01E zgHHLt@xE=Q%Bia#3Y&w>M@Gix?BaBh?+!aNoux&vV+D`(7;jIv$5h%T&-Rj%y-uHB z#*}5omZ0ZY`{3c>{YUu&J-zSGPRCvWAtUEs0khipU~<2?qZT|oymb!Kf%r_@e=S{U z7^8MyC#2XrhxVLX+|S$7K7=UyJslReuPE|q@%hA&WU3F|H8JbA@|wOpTpF;|&`-8mw<}Sga}Jq;g@2dTt}B&Mi|!g7!kG zvM1;K^yzjgI5^nVXEoOq`p3Y{se723 zKY*!seDCKozT-IO7V)2$u{+GNyLt{dMn*>Ai`(0_pmZZ5lZhebX$9OrYvD_9THzve zbo+9jUt+InOWf*kpoN8nd8%)ZR9WCv3$6qltg78S*HuTrSPW9u#s??c6Mvat6oo)BECfa}rCY$z&`*TrY)oHh*y znDBLGcJ|5bKxCGOrPbB8-=sQ6T1Gj4jKJ`X7Xi@lW4_0K8g2q4|ICffWmx3f+h#R2 zH8s?>-P~&Q1eR$Tb(*47d0sGUxQKMlc5{$thA7y7K8~U|dw;?hL{wDYp_{DVNFU(7 zVM3SVv}U^M2Q?z5BGoO4u6+BDukW%F1x+t}d41gy9ruAAr4a|NtgMW?O36^%%ggJ7 zyDmRcT4d0iiX`}5IcQGe|_rl{7Kp<&iJ2~DCq+%T9E!*9;`d+FvtNciV0(* z#=rr}(bd6XEgfYZ4m}Dz%7P)78S2SWEWPDl#;-nL!mA;cM8K=M-Z_+APqmN{g_j4; z19jN3)?z$%Pd~K?g)0h#a0y9N7A6?UQz~(WD3skIL5CW3`d;k}VmG=B0w~#Vsa-(9 z!};1@oB8U{T%`}?Y!h&7oqW($fqzYb(E9-tIIt2J(W9!!xo%TP?R}_t+2I!G45@hx z7@<(lBM4ALWdOZqmrLUgh*9Xh%-8po(~H0H0Ja|&y3cSywdYg^?%mfsEy%|q(3uYn zs*0NUY_QPN#mfC$KoBQBI9H+55>eExvrRgV^x*$>mlRuPtWzqZ1iB%YZ)B4c)u`2_ z9UI6!Yx%~`QP!>sT+@oQbhArZ#w10Iz)C_j7q{vE*JdExS$Ohp33`ch%dx#eXko&) zl|E}iBy4LJnYaFnu4YFov$Yt(7R8Lgv;Aoky`Jv$64gG&KD@rgaw)Y5nw+44JIeO!EJav zNH%eKou8(spX=x|`&$Ur+Saz+B%+3iKv-s0e0N^BNeRcJEdz`I6AZBYC@*&pj43pJ zIk~MlfqQFh!JP;nW{kjz+foX@xCY}Y!NOu9p#cn7ovG|5J|5cV2t8h#!LSYwrgW$J z@wQfvRocGv^t9lm&HaBJOWArE*AeyoLMwCY^Q7f12G6#q&mOA8bHe0q9(wIyle+Gs z_KNl;@2gAoBRo8&$|z{m98BV_-3yfvL`ik1#SC(Cgzpa)!lA;hUz9OI6 zH*SW;$|o}oCg4Rc5sd;9XKoE^UN+JvF-O6*KhtX{5|caX2d7TNH17%!@6oF>TDrx) zE;@dDxFMXJ)w@PlHLYZW!v2zD1kT(O<<#-uOtO#8g37tHUu|}kpJ*<8!?XA~IgZX$ z{L4Dn2fGh7yg(McDa%_DBHuC%9zG5f*KBQ%h%FygA(LT-Td+doGI_x1M1h-#6@a$i zyHfFO4fSiaU=X`TN3cAX=hROZwI>bb@C@sFUW`M*M!`UZk$8FR`tZf0uGeVU#=K|2 z8m_SEeJcBsOK|{Pgy{k{pS}VZRK}Acb87$4?7r=v9ZF3bq|3aG!03Kh5nQqScZ|)z zhV{f!ilbYW6c~*>mKN|ch#D0n6bep20Z?&C3}MMRG8?&UAI(|qo{c(S;W3`K;pp2+ z{2S5b#jpogvCSRwPTD+gma%^`c{t5N*TaC#ql=WcKZ?@nW`YVFgrqt;s=BV2=@if9 zpesw#A>Zs955yEY?p(%9dYIeRUv)VCKrD-QS3aP-pa4N7MuuErm@yV`8#P&^g-suB zrhSKl2a!9BUCzJr-y_2KFie=_toN;^GThbaeq&Gn8EB)c$uNKdaBbhH11~wJ)=g=< z{jNWQeqqzWUgBA#M6f)E)HDt|>$|h&KUO#!Ka_`sslMdUPkJaaG-e=8>#8$o4Ff0; zikLU7LNw9oEBrN*{xZYCsAC2@^<>MW^cEt$izyGcJ4bD!l1Vc7xp;y~rJPQBRO#K2 zpIj+_X#0nixt{EGymS7@0xbQ2+n4}#pwCVi-`kp45*zX18cqfpwBNf^IJiaJ*(}sV zst{iNXm>@*38aRhWI~`Fi(~-ZI0DkJgE$FM?v{qP%DG`w)FV%OO4PRYIElJZ0z%A8 zn8FPNdG-6M;hSc3H?1+fO|afyG0spm<<>llKE;f5y4kjp;nw;tW=rqJmO-(VG86C0N z%rSXwMbOdH!aaVB2^q<3y6GEPKal*H%#+i*=ia$R?S`2FMHYde8jXDfV;o-I9&f zdx+Y*n9MvM!w*0|+|C;uE<1D-21238NfPgTu57(RTJ_kDk@{-G;NGtc&llE7mVE8# zj-H3f({RY-Jj?W%)+sDA8&p-&6u=4fSN2r#>!9OPQiRC)_uL2G9;`siJ&khfiQBj=S=oAe_& z3UJS{f7Ux7&q)W*f|?_*#{}XuDs-*Txn^`i4e-5@YOH2^bT||Di3f@w+XIplv+_k>!zf9QxfN}`A{n4!N<0-oNI$QtvJREl0(%T*ErL*Ivo z?KlQ@cGXl|Pcx#;c+)TG`53B?rh1aQ`t_aVz78#_vwshrVoU+t-fEbfYMbE?`$FJG zzWcL6m`iN1LOa4$fLd80oBNq=^ZvV^WKX13%p7+*oB;(o)JzrpYyhrN6h*(2i zrRv2LN6~92eq`r| zb&PY`oTr<(f}$cMJCQxe#Er=FNo}v&#&pMyq5Gzip!c1vQL>=ZPWVAwf?~!)C&m%) z7v!qIV)BBTmn37V-?q+XM6V&TEPKQ~T2vyHb}atXcVONnHDIzQIhK#B^Hb^5cV4DGz+MemjFO{iHU~mzR0w`84HaNd()@V~8 zUxiA?L-bCjk{~bpB6S{@#;SAqal(vTC-tzkJcSpxBHuTFF7?X4AO++xF$CeEp(!WQ z0dB<%UR8Q%N5A(KtnTDg(`t6#=1|gr>#&($n&yOtJ5lNHP%9_avaK9D;l`SZ4C5R? zCW_$CR4VnwP$TU^0^Y|TCJetXCG z(KPxUJ~W2RE|6;qgB)$MX+JApEC?>5z9$=Wv7hZ9X@lBk5qB(aup~nyJo_U;oWXlA z-9mNW(eaMH`RkAhO3v2_d%Z)4@|$I0_m0MJ-8W5Nt`OtrWx7mvH#ctAvz0VCdHKV; zWryN)hj#55bv-?1$$gQx3CTsHp3q6xc|AJfK(-oEL63Oh=M&DQn$On~qNyyp&W}OW z_N^r27~o(J7$9|2k!O`UFn$9RPA@J4L*{#vzy{rIgE>v;0sB5}W+_ELFVGnBhSZ{% z52Jsg4hHy{)9AaaE&M!%Lu$P1IRoDT$RVI~ZAPBbLG33PTJZCZ(l04Yln_It+qJU! zh*1~o;`zKIk=hSKc*KTEIu@rn0F8t{{J{r95aEXj)4?yB3ihOj$r1{QP!%<`9|MRN z?E#KH*hG|fhF+7FaWgLrpwfTov@RwGdH^_(%=)7XLa{D`p33MLsDD~{#Uq=6r1 zDyM{a<94jTPNCO*s!0#>I12a*(+?4UlL#u6)4==mQy>Sn7YIlts=>+4jz@`xD=>Y2 zX(OpU3SU)xQm0MWy#j8}&0zGds)A^#+vp7NBwM=Z7x78k zQ_-EP4)@ZKhlF7WCA8C{Njr+DmV*wh-;Lu?5<~A~PPa9fNy=Qb@|s_pnJ2a}CTMti zq-3e|NCl;HZy&4ag~uZ5_rPu(pP8ZEP1EzKOuCd~{VD$z=_-em(}ck(yor_t<0&g{`f$NKJt66@tRr@J z$@0(1R??T!ZKNw)C?_W;%lQhuP+GLf?J2s2bQV7oEMK=%pH0f>8@mqSD|o$|f0C~z zEZ#mxth<3FqAUt{O4XB~#RW9Vzj4RX(N?~`{PF1litPFcnNEBF5IJGxahtkc;LJj*yB+5QO6m*U^NXAsAwF12?R z_K2?S26FmRehxkIO-H6Q%Bd7$wt9G1h&P>i%u=ib!4s`45)@}WY00j~v%{z~D<3JY zqw&1`U^H(-H)L(OFHnkuzp1S0>&CL$a7g&;Y0>Z-@x=$B>SMPjidU1eveJT@6S<{F z`?7&;hh<>!LZedO&U^UcI!hhP>H$?Y*-L{Hnzw4CRA`3T*J?0em=j=<@b!pE{*LW@ zWi=j0Mddsq_VU?S5m57;h3}UyvpTmRz!BkVEv%bfZ1gVWqfs zzI6+2V4?Oo>lP=s-O2G!d3jRbg-Oz{U)_FBi`|%|49-q7s$ah-a+)jWpuK93Soi}T z_=1@Skzomq@wa!*d(?;eqlK?GgK}coql7t*&{Ii*3`LiajZ1d)N1n;tGsNb!wiaL z@6Qtb^${l-Uve{oLgRjOgzNi;Xm?4LMwY^FC%nmp3+Fx;awBW+-xf4IJxEgDti^^ZXEOrp@c7d5)MK0eDYDgUBenwx(`#)li(HSK@AjOyi~h#!XMqOB3zaD@^{Wu^aX!>NjsteXaP4mx>}ioG zT@Vo6&Jio-zaDL}%%E@YL^0}ZSxE3zz?6iA0Ysi6GUYWGA{amHzjSS)_!v+%g$Ce) zLxF3%&en1N{7W9R+QykJ!Y%llcuiM@42{b=G4$j4%EH^@c`cUPlf`sbGzpK%abX-> z+<$8x?cF$O+1b+GcPHk7E0Q`5_L$$EJg@zB$|a!}+(h(EY54Wae(JfDr?x+AA!BY( zA&16^6n(&-|9lFgI-BGgj{h5gZ>)zMU;t`1GQqfy7#%1t}q`Hachv)h0 zKR^eS>Auk@V?FM>--^ICZ!IyJWN5|qiTtUnNg98~ck#i0?(SRtqwD2aAVn{cS}yA5 z<9sC02xoiJ(kc6@(j6=(z!%B;HE)NuzGqJu6$?n#mcEQTv*ugb*N;rSBA!<``tln` zwEMWxap#>+A&~8b;Ov8Uhx`G>=yEH><*tB1d=g$yv=R&|#%ODI^wp*VUBuneqIalU zq{{dO%193)+@AmP6@1I;N^0ZD{-H_oVfx3Tzk%!oe6TALcMHQGjrGzFmEWKG9wO2I zZ0Nr6KeN933lX}mhe#Wng%Mt_C+4kcalBAtIjzBI{td&hW_zW1yB)8IAAqK@~J1mzNjye~zW zN_U;rw6=AlRL0qIL)hKP^1I>h>3!r&z*9|9F87(SUZ<*JMMWi{t8mRQ{sSbT2ZDf` z#`t@M^;(C%5Z2iI3AA6FUunD%jB_y+F!f+{LqSQVKPOqAbl<2;XrXAap9{erwL z{rz3i1Dm^pw@Z^cwazaho8LWNM6NtaiLv)VEHR%YPaE-90oL4dwsC*Rx1lMrP6`CD zm8f=F(aFp@&+|gd+&Q$m7%=Cdd%0&`n?7lMo5^2S_f0+e&%*@SiPA74C4g|&bW!N& zHn_W4sp@USQmtrGnf*=)VTnWF={ z`6o&Bg?&uDIELYd@RA+zeM}bDG62AtWNe0=tymBkoNGxkXPGtGKHS3Q*rqAv8~PmK_kLm zE?A(HX0sLH?z5%;w|_{7@I%u2?7!Y4*&PfN;4~#Ghd1_62XX^@zeL!G0v#@EtvqlT zh9YwD7N|(XZNw?Y0p2UW#!KCh=*c>gtNNW{rcnb-#QNk54zf1K1{iTE%JMNabGRI^ z{bm_-eKLFsqRAB&{l?Bl!?YK$PXpaqD-rrmu99FG|BABAI~eW>th?^$JH>_Oi|e6z`uBXrf-k4 zD!qL|o|^xc9b)bVO(vAXha%eA3Gtz7qjxf-|BQlCL+Q7|%F0TmAE+nzE474Su@@1N zcx_ui;vjR4_Al6F9axU;c)HqXqXSX-X;lJ|1h_+L;r@x?2JIi8SuZIn8|K=7zy}Gs zAwU_%$FIxU{Oup{(hCIvrH;^)%#EMYL10n#c{mxUDz2gg=z@vJ*oa-`P-CrD^!=G- zFXi@b@zG*XUvQ}Pl9%?*`r923#gPQw#c9Jj7UgBtP9qEqEkzHTq*L?=y2wjaE6rVr z&K>}RUAnmf0|wl-KkMWz!~xGaa0SShRih#^(BE<3z9(Ia7^?u1cPI@uM?9(}&=BV| z2EZ?fSAQZ%c+M||E0G4E9!?6LS3v>KaU4TPv$7N}=7itu?Mc6k2B*3*g-Jg+<-R03 z4Dx4rY#~<9brz=RGxmCwbG4d}5_SRcIoBt(v5FUOV!0#>?9#T=WiEnt=1^uYHIMSvc`&JPtG>hcbM;l$eW|?eB5^ zL46cDeR7dsz^{>qQSb%%NzY59zh92eY}ES-6e|uAC%2wu$jpNn=5{UI;RbI)8Ga{325f z(3(o|@bnl@R*ZIkeOt{-8Ik_?-PTCDksr`2?PKTqkB6J=1P!d@{w3L6c3y?2TCzFk zP=?SfwQ$4JqfY|_@W7bE96HN>OUx)FDpLMH3oU)YdjF7=^sL(v0fy`!5k5HBmUcoH zgJOJiSz1z6%8Su%p(-n)ZY-MS7R>|R3n6$bFcp+~Z)^?4NsbRA3K2{S5^%T2p6}_V zqNi&B%MCNq$BzbyFbk+L%Xn)q(xXVa)4_22H5{%9S5tXYfg%CKLRe5cwq3lLQzJ5Ya~ zot;SuudU4p3nuaZ>sPBJT`g5U*EgP-$M!cj$2}GK9$pLsD~_TpcSIK{NggM_n$Dc~ z-B>j?inU#fi5iJ#W!b(ZCI=%)PVxbcnwmO%HiV_+gk$qVcwqb=dVc=MTe#nnO}>dw zH9;yE=};dR`7AjFNJ*-+NLLoR=rd@778dB`4ltxMu?1AVn0lLIfOa-LkMN-x5Y*wp zrqNpkAKnTb{yf7OyUJ~8SjzqW;(1g#%{aDo z)>r(G_pLWm@;8_LWKoAu-99v(0uGzqAvcG`WJu2B>6lajn_~SNh2HBG@6Y{zhn4& zNpZWLr%4{qR~X_gON_v@Qx=fHQv`uTdzBRwaH68+7%D7 z!p1}(K69u(!xUXQpPjvK&*TZT`{}bjd(xAbm{58$s*I@z`Xq~^sUay-E!75MpyZVT zf?$wLE7z@%w}?d{;6edU9wD7#0vzxbfjB6rUqI330C{;`9an(!Au_8!_}`rhf^lqi z3ObPw>SGVgyl}Lj&4-A<2hQ4%ZVZ^SK_e*tm+FiN|GyXK9fw6auwp!4(92;s`tY;F z6guBoExF-jX3WaYSNDxhu@S=>dS;>NZkU&}h1`RWhQ}~P6w;6FmO8u*e@Ls>>-`AO zL5Zd|V%qw!9}29^kmq78!SQ&eFQLqRp zA8Y}&3%D3#xS>cV=|{1kmbcOO`@5avuSBqm6B47X6`DZvFX(v5pYj~QcW?LPpTFZY zZ34u~(b+ioRrWx^;cGaZt?e~OjpQZY-Ks#?6B53?anEdI&6j~Bo3>)%v5^?1?Q?&0 zdfGwH3t8E+$haeT>FrF*CZ_PD?8aQ2jEdTX12DQHq+p7!jDp_fbeed2ISXW%R3O&Z zrx z*f~oKrnc7o0kRAb+YFv0>kUTF9e$Yh2V)so)V$~CT0Bq*Jbppp2N)?qvoDKF^csBm zLMeHDQH3##19AkZ7iEm+zaVH_kzfpomBZ%Xjd$5z=oTwwB2sox`)IR{B+xJ|1vR;Z zM`6OSrUCc?%-EgYhJ;n7GxL7hEJ@&ScF_w}?XgWM0zM{z~XaFrlPa8H2R^ntI zlfc;zKp@10qKA_>LL5RwMz*LH$&m2=iz3d(EY5y-s)u(#g;cgr){1N72+l*FMoztB zJL35Vqa^)O0;fc7YFR*_~KupBodeSG>HgJ}>^&Mwb$+nSn7&PLpcT7-#pB z#nIlNoF8*2nDWBpPnVPwTwqBdT8_ndRyW~)%xhE#SA0xyK|z7GR*!L>R;S5G>Li!_ z3U7BE6fV>ODy7zmL-d6T0deGw(&v~@z}`PfH`LI1Bd|!=TaD=y4()_iQztyWXlKM1 zud}_b7$N)l=Wrki<2dlnf6;y33}_}3O8hLA4;3_5X~0@UfPabM78Tuyv26#U5`?lg ztn7zl07gJWFS~^c`n_*JI`=CBcfk(n;BZv7fEgp|frv`@TK(?QHnE+kALX7~9mWcpvZNpr5%=cg;IKqx9SlK56TDw_&o&yi zgN1uSPWSf{!&HWbVy=HnW()9p<+?X3cMBFaieRr5Rf4D(*h2WvRcepile~13K^yR$ zTmT9HegW>#Py$nkx@~F5;n!n$)?~2hlx$~CXx6((sn}dV7-`iMEtRJ9WPT6182SE> zyLg*-$fe}f5p!_9B#L~Yd>pryaL+VV+VRCihBDuG#6)uYc_S4%%Go57D2XG<2SsZp zkJ;nDvok=Rk*onz1dssKh^9}VO{yQ~p+xpM^9KHzPxt5RQ;bTUWcj{c zUWBht!-D!!wzVp{Syw8YETW}|dw|FG>Nvxqg)!&a9O>&kvjhW2ohOpu@5zq!!^BkX z7BQu}KzUA}?Nk$@T6e=E2_Bv)Rfi2A4<#jVt4gZJ1f;${?xr9Ic08Z8^ey>m$(;nD z3vU2fV{X5(eiNFYg4no)I+Mb@*#3z9Gq`CG77CrQAfLu?q9W%a=wASur0*xo`kXyI zD{620c)WB6n=pPMYaof@;X(pv32y?iRLHWb&28T8k(!r6<8O#*O36!6ao8 zzCsBf5CvO=s`AFHUDMnB<&M=W<_aA$NV~W^FkShE@^7@XIM?DQR23R0%P0VbYXlE< zlJCG2Q35lP6Mn*HOsAVd3Qu}o{1~K>H5Fkil0c6 zW9%JVz=EMr$b=-_sQWA#I@93Is8)HHpj1jIcJVZzpsu^*x(5*1jJku(HDSqMO>sg) zNhx37gO0(EuzFp>z?}WyC`)4&-j5$Yf@^SOWfStrgKkkY^?X>2M#T^KP7nuR5%InQ z;yt7KMBQ1w)zaFdiL1XfsoHT&>k-UiZZX%0v^B546?qeGZS2pF;%Rn21~ne;6EwGs z3J|j!2W#;Y@tw!(VxxdA?^IxpK#{C6NZ~Ca>R|WHcf}k7*Fn7*__1>bA<@X#n3DDJ z)wQ-9O)U-KTr%GkzuvC@DI&F9ln2~Ai7rEW7kEo{T3}XbkJESC(nzG}>6O$LS?|rq zluPcymCci?VSSu)A#?VeCtyR;hV0My5AGLK*+Ng*zKcWR4pe?|S^Yq82?+JU@jjwh#qG5kDW<5|UfPZmVUe=Xc5uEU z_X;0U`Df%J-F&WN-}Kq?&0;KrAu@0rR0Dw`kKy_d&rSTzEBw{`n9Y<(>_tUTTrH3k z%C{CzO9#-MhgR8|mZ{bif#vP}z+c{O^!VFhM9vo^%T-g}G6nk=7Yb0Q^IM7YX? z#P{`Fx|fFjc|#q1Rnw;|KLE`S%loi^tkQ3NXCBOfu_q=2+U}1l{v3rH!GLqr zv^VBIbrGSMokb%FI}wskE;cV_^bPUV{pfxRYVXbcPjlH>5j1HUJ1koeJ;j^A2@cTF zf`IZQ^9(gc&GsLWiPwuxlRfe;YKje#tdiiJp*c!(g?3wqe3`F1D5;dBp>8&bc(o5J z;fUIc4z?h{eeI=xTJG+farEdRdl^jpRChSs(C3{hOzudJ1D^Q0u=KX>bFJw3n&CW# zIo_~CHWDx{{LHjZHZv7BTmzQZVxPcc3w03oNJIO2PwgJp`~rQo_;lCf{W+r>xM?S? zIC=ZspF)7riG`A1xsVWhizcSU1oIKWBw?TkD#;g|KqZ}3b0EF+Ls0IGJ-sYd6l4hK zu}0+`s8VdT(m;^VlP0s2r%I{+isNjbol3pankBEyFs z?%l_(8`Z_d1`mHJff=5F-;4?%TxUaGiob6Ku;kMK=;9b{OxTA5pzo%EI{}i6Du$F3 zh_qdSs~r>9%8<-L@IR5|rx)mQY5-3cI;VZT%u!+PUgNrw?*<20orH%oBAoaF2MCA= zYk~E3VkZfD(K)e46cG-E9A02?Qf7mm;L(eBvTGTP+2DtI=O3$0STfSmx@fBuE(M9r zp`f6&JL1Xj^040E#n-PVRj<%43XsUukbm&#FRWbMPQuXrG1RFc z837Kg1<4d>sI9TfobAru>Ra-^yd;s#8!IWXWbf9*&B%Gvbjeo=;t!|G@;j47@}L5X zw^3StS;(Zvt*yn!LJ@2e2a3S$&APfT-21+L5u)5`vcI_Zl@%4ScQ?pze7pPGT`C(j zy3OR{k^P2dOs|?(hBIKRn&#pA!iKf;1_~w0hk5IpWMs&1h30?Qggg)T-oXA)J-fqF znlOGHRY>FbjMMS1gqa-Qn=6DUrZcX7YCyB_S!3e1e6`^xFY3l}4G??$kU^Idehana zq+4vmvhp2NpWrTh`nTyW%-vU>l~#yuYcF>cPSUGCvQ4v5AgbP3duJSLKL`%hX#K(F z^A9Bj<_*NKN$=x1<_yIHY`3vNBj-gqLR{p28s(uEs_ZwXWs;Z&S)2b|27Z-XxfWkDvxT{Z5(7SoTZ*Ww;FK{)rg7YF2KfyKSe*68C-@mbYlF zWE2!@5$2U^T8{iP)Hzdf|K}2CK{cInu)d2AK_lXcn&3B-tKPFQs*1t&QQEe-{WNvZT@SS7Z1sBIb|Rg!nYX*hWdNS@m7M0}%D%#225Wio63?uA)Yq08w zw%+<26!R*!KMD10f-`SMB;qDUBhb~nBa3{q&8EQcSf;ARaaZVM!qjsV^dCQdFnfB2 zk8F26h$k0B*+o7azAmM2%HWTUE|OmtmQPiwj@=~DT$gQd@d}5E3_93w*Pc0+in+kV z2A9U#)-n}W`|3L-Xdz>bQ+yy!je$aimXZgs#+4{QT8E%tgx7siR? znkzr|7lL@bN1}5j>+dBJ{zbYX9i2#LfzDdRA@{;Yj{EUC?lj=#nt&P8+uz1J)drRH?wEin#fUOPmt}$h_%-5}hQAZO> zvarI8mTxyu;>Q_j_J`1a!Gl8EVI9TA!14lt}A&zIlfU*hX#BRks-(F%CdG5y$78A zpkcTosO`bwyfsd-bUh)PJp{xCl@SQ)d}fWzhu#eb`GYI4KV9O97{hXgy6;J_IfKdY^IlvA%uOT4 zd9iXwswNe`vX*3L9T+e5hMdCZb{4NZT9@L6R0Q$@eH(#4t{*LF)4m|ya%KO)3nxvP zqNpA%`|gB)v==?z3s**I!s6f+yB8YuC9#9f{6U3cYd#KEN5cnxL}_T+(6(a>augL>grg$6Sso*KeBTOD4~n6N)@rdrH+!`4 zrI(piNUC~VUb>agj!3Iv3u}J7H-e?Dl!*V0>5uHF^MmB125k>CDRue|% zmqZgu(j9_FtIWolDwRM7vY)bip2+Q49KQHqF6ikp@`|8r&~2r1LI3OeR_8{4(mQVj zKO47BC6A3nz{pkfp^|jz9^F*Ak33LfIyyCti~B{Fkxy09u{~mEax4);N{_Pu9O;hZ z=zDrFr{l1Hmx=L&T#6^=X^BqxTJ>HKprXKMKGG;zuF-nFV@|l>i1f2KBPWgIyr6t2 z|I1hPL04*owouJ@_&qYC;+pO-AGcZ&VojlI8Im0xIoZ@UK?hq&SCu9 zO3cW+YpmJqV#suCaskq+JSAfE2j4#xqktIaGyctkC*9{*oFatpa`-Kw^E&a9L z&IBJwneb!!0abn>VOYwDjXOD z5F(*;_cKYD-I{Y>{x~C(+M;4$T5`%m7SWjbEEycpVpWbUb0iQySN`pvoKW7!%GO}% zk+bpzLh6?_vu@Pr)a3?;?MY_=i=#;&w5@G{E4i-fr1v!RmPvj{YIe`CI~|$QZYm5} zHc*0rx{*#D;`bU0^G^)fH4FA12j-Se;>U| z=uSYbxKzG;Vms?IC*Lw#G;!Bpn`tBB@>r`N6)<_f|&LhV=Cf{NMX!VB*VC!Eh&~- z5zG`i(-HE5^^UDUZhpb%;)yKM<^^w1GI?dbGuB}i%e56C$#0!ra0i4=ykw%FkC)UZ zYi&_NAI=LAv1!8vLE|EjRznt^N7n^1REtq+baw z#B201OR^=F?m!9vrps*rImbUByvnqxJ43|k)VbK$^n#SMf&$VK zyEI5zAiZ=f9Rkv|bO=b7gmkCm5)#rOA<_sEOG!(7=ksTL&z$*b?#$eK&%Nh7_j%s$ z*9W$8{d#m#cH*QQMuz^kIY$4OA%7E;5x5ViD=W zw^KOG!gq={r<9;MmFlC!$1@B^FlmHu>!Lm_0lsk%_aiMbo2OAsg~QQ@jA4EQHB>SK z1goQ)v67+KbyhSf71N2&nPh*S#k0{*B6o^&tEv#QKa4N87sSJ9)?gL`-2~_w_a)!$ z-WLtkrYVG1)##+BdXG|o>4)^Q9ro)EMZ*XDam}fhZ2s%4#WJ?;F76Z@{j;+$qP6k4 z(WThT1d^8@6gV^tWI}paHgDqI@ofiIRu)8@yEV}?RQqVxP75fAAZubls$iVIjDb=bp?TTF`({m~5tPKy(?BQ5K zS!GWZiclb-cJu8)z0nM6NKm(7p99w_FW~2)%E{_QjC_8`{wKky|BQuomOFlPx4o6w zN=}Z=)6+|!nx^{HHzB1LF%y?Km8^J6#k24x(w~)UW4Vh5G7TuvIWoty!uO(?;7Ns0 zDw)T0LlAY&cT&G}~jmd*}(DaCsB zVM}fJmR+mtEZXnU^l0`ttpHFM4~!{G;`+l8rUBB0vZ}!RT45F{6XCM`)iQhU)8t}z zn8#w`K$0bkn3=~V{-(}Ix-)bApE099g+xaN=l7NTYbd^a!?6I6Pv6nepPA;dhK#~9 zK5(ef^~p&psNyeQgvx7FwF6hQRl59TK%9DS3`6%M;jnv-cBK?Gz8RT{(n02Iopq_E z4Z4;ca@|9Tp=PdT=KZ`Ig!Rct-qe2O8?j+WIPdp{SM5S~skXv<7>v^HynhaLF$mz4%S=Y<{#SZ10;BC2#w=1h0m0P$92wDzg^PE22QK)}WDsxuso$s)<-LviTm{o+7B&6cB@VB18 zNn??0KHM#aFh5UE$Ne^_o#vjtrRYs&hhm{#7O(!6W< znBLza_FU#1C+9$1TVGj;(S~}+C|P0Dulh&Xwt8`2dMKKkKWO07U z&FHs6j_h0&?f5=ryAe`(<3{@hF@;>o$U{!KtnT%7S?WyLuZnEumoXNra5q;)SsWkr ziJ~5gDWTT12=1Tb+Ip?w2G7#)wAHp{+*S9Lxeb@(Q1IEOi?qJDl_!o%%N%X{N~G1H z>>Htu(_CxA_vM>u$pHnw!UQ0HsmYa~*ZUO{tjEV@QgeW;#j9pvODRj-oO(v%oE$=B z|2dJIFQn_SyQbz3i1Fq8*M!UrTL3S6e<75pt(h>qYop;erCf(&EGPDkbK&fA8V5y3 z0U)Kx4Qy49A5??+*RG2P_Gr_^07gs~V9SCVZO=cUs{y-j>M9hSw3NU=xj@|Z>*K_W%3Ki zG+!?m?A+7dpLIXJ0piJ0eymC_h`xvs*$n0DZb^a@ebU`+3=!@NoGO{n zlkhvl+d~1;^csf4Ux5w%zufG^v7gBrkJsAVQc6zJw})(r^X-Rng>DyKgw9yJd%Iv9 zHhH7|g*eTEA9(%T^ki^;%WSrcP4{5RMh2>f`RGP#5{aehjLPA4%gpgCnk#<(R#kvM zuJv)|bZblWgs}C;)FZdDn@LMunr+a)=BbR`>BMaPXgO&ei&B{&h7Iwrpyq-Gtsmi6 zU{Fg->Ma{gCin^ULL9kXT+wFXpy3lw%R`7Mle^J;-0SboM3fM22U_BJt0msGn*y)w z_Xf+)1j&Wtp#AU_T753`$asHWvYsNksop4I+O5hmeOF%#6b6brrJ~ay>9^m6+mb&( ztI)K7ZJPQ$`K^Mwy>5oO>%ME(+=-uj3_tmm)<;2~-KK?DW?e(u(kVfzC?7g2RjB{8 z#x$e$euKjyneO$HU1D3~Q#!I}mowMG{4IkXhx_z2%P_2+4!1fV?w=uf*mpoR6{m`` zN~pe$n7{n=y=ECa^Y5%9-AVFI-O5^K-S70aH*dd$q<3MD8#zTE?_r+^W)$ALe!B9> z!zaz*$fkZo%<)@_FE%S%6}32TF|f~>zO%I^?c;g)gG_|uCE@|mnR!}3k@fl193`Q@ zw!6UynX$p|*lDd(D*3m^o0~1x6b_(oTWg^Uhf=n3M-8`fSJ|*N!a-KEt8{vUQcKWv z{&?r6osp7k7iJ+)M%wf@IjHWm4V#!~Y~a;Xl|y;VS4mV!e@IQ0zWR_~yHq zLZ0}N+y+&*1SHx5X#aJ7f8?MhSbG%v(m`V$BhMq*cCph|cbJg*CO+@m@SwdX!H4mj z(hn1HD6jPG7d$)ey*_Sl@7bldWKUNw7H~~I7l`ZG97}B*;GC71v8_GqC(cQsML1N< zT+jlA?S?(H#$&0%_l~*^ZpTR;OO%vUE)R3#`nnc4tPG1t!0dpKM3|z2t7o*g<+cSALLg9*IZsYMnuP$1m9jQVZ`}hw{f33x8uj^T9iaE`3yVO)+s=ZC&y@$k7%=M@k`*;=c|jkr(M;IIC&h%%&5{I-K(3x>Sssu)18h%Wp+Z?{O)M|`ddZ${f|6^D)FW&^quy- zyO;^5qRHmUtW%mN15fi#Y^A4Heyr3)Cg%!}Z@HMZymA99dt+)EH}$tkUoC{@oUs z$(6yMhV`%ED0(vpZK?2nr%3A2hM0jID53hp{0A zr2`?%EPPQ04@4XtgM9QCnh?nZH}rAz-Hsxr6_)$CtTGctyo8ENv|*?}Dt2syq21nE z;IVzT?LGFVs{MU1b*3%~il-@MgYjsnsD|$n6T7DRGw(H8$6fWkG=48G&*l)2&L8i% zyUIq7dZ5%55X||`sqhK=3LlmLmCy1%V{iqL^Z6=e2%2x6X}#Vi@YSvk&p%Pr5lXZo zHtc0P14gCMZ}tW6;WpU!UN)v}TST$Zi~CA3vqc6@nfQ?9v#*p|%k@3D?6={h3lV&XqV(8?0ny(UqOI_f^|35q;U0qyC^*juh$lYvVP#*i<42zxM z;b$%VDw?nDGHs#CqR0>Qj$cvW^z9N@S#&loyq}+SU-F^(y2?)wgpau-u(9wg^!jB5 z^*?%O?*B*D#l;1_1`s5V+;wbb>i*+ZkWuN_&Dl~`L%Xv>SUV@D%0p&vlaC&^W3^YWCKkNaq`6HH z`xa4g3t<%x9}_Ba-!NX5pf+!jz?VP3&^v~A&-^K3r7r&ntGgoY^d`;>8PX#lO|*)q zci#3mJf7Cj(-{WsBh~0^%%51#j+F`w7;m|*J zLA)wZ%SY%4!i$qR06^4wp=Mf_y|r69v*Jf?K1K|{ zcPrw(o-7Ks&5?2?%D9(VmI9`f6k9I|1+)HZOpTlJ4}N_->A;6`{}}ft5Dk+$+kB3f zG5~0P&VVM?_6ppB{(Vm!6#BA~Z#fON?0MS)3g(Q7&KQXiBe!a@XdQ4W9@0MWr-yX5 zhEyA2()s!M*Vb`uz~+x(%knN~?tjKszJn||`n_6xphu7iSe~;b1l)A<0jZ}xSBHH@ zX8d>VGI4<*F?Ql9?}JVPUcN)tWrC%S;_vWqt6FwoD)PDc7v^*P;0nFQy;IOPzYw1O zU*93PyMJ#@!GUKlx3g?(Y}|;vh1`*7MC18?D9`r?`5(8hH-cN7WCOYodVK(QN9`Qt z&GRz~LikBu$CiP^Jt%+zgdN4hB+bRd#N?ym{=xWlyekmKIUrL^_ZHMi-?SH~B(Lfb z;Krr-Dbsv8Wyoz}MTno?1y~xuL;8*W2pwLdF$m1FyNCP3Wn;+mc+qR$V3GIRQ;S6D+}@4ZAt1laN{JW+*=nk;Ma*@20UeABvU*#p0uc~%fHstpZ%8unw06r zXpdmX2MMJ7>)s>vNy&nqPf1wan3@k1E-2v`m2*77JW5nTP#eVG8mR_fm#gCT*qAsC;l26!u`i z-*=d=`lW;$#ax;HBJ_6_b%F=F@r3I9wVe}*@`!u+URF%5kxB&V~+2Z{6U+nsit_SOJ0yW!NETx~=e0R+qN#%SapUsa! z>vJ5Hkx#g~6158i{U1dpLgU`x#e*VjUS3JY%Z+pgLs65Su*gqx7}!gYvgyb&Z?eAU zw_DxUu2+SW=FkRA`oI9d2o&ho8CnH(hhJMI;#nF4R+YA;iBLAyIC99Tl)tu-kJ~H= z*$@|d_|Q12r9~VTf)f%T&;{&Xq^71mNai(a|MNMNQTJnfJPsLC@Y8TcRYb(U_=5uW zov3ZWzwF9yET-osn)3y7Eb*9~=Z8x{AYQ;37^?tUuv1Hmv21OQyUfq6F0?Y zdNjD4kr5FjE?*YyY(Fd>jfn5tZZOyD+mmnn9oq<+WglOopLw_^UX~j>Kg}%4ii@x` zYw5&0jsl+JaNRw5z=m(j_#d}#O>?My=swi(X@jAyd>Gm&z=SA@VJ4XF{rGSYHfyH* z*XSXqo|xpB7Kew`k@VP|X)=_~0b?-9YO-AHPW%D?41s7}Q>D=OWd|GEPU(mX$2>1B z#1#*=B7J~_Hh6hzNNx5CK+iw{k-T%hmY_hG)u~XJMeqG>EEc=@`}gm`#n9O+n=>hi zf&(-3iebywt(bA@ImUU(rB`D(#7bQ?yE=lLVVm`O(GnZM5B!fnOr-PlMDk&KpvdkZ z2q1~9si}FEkdPoC;;@)8pi^91Q(G%N%lzJ!*~&Klpt{fJ+E6M_`(WVxVcrP-k*r&V zR`yTbInrIbR7jX%hYlM~JBfn7T6^A79*@u0hE4BzoFlP8d^aQ=)Ha-S^C(SXdjE+p z`xSi{<7Rvj`{AI=H5YFx-goDpWZCof_;%RtPuCxNBHFTwe)oe*WbaVbCkkN{BLT&6 z;*s{_sVr{$3LB%4u$iW4l}KW3VEd4vlAF}W?Cq&`o59oFz&Q1LYAgwE=(FU=BXVCn zhTU|GX{T~v^Tg|FRx~*WF0}x%bFq3c5ar+o_JN&C$(Y|D%g&h;r%%!|rtR0d*O5WH z`6GfpJLvX5|9RC-+vmCar4qf1r|%3WjgsXDP)GFtE-SY7OHEDrb2wk=B;2I^_q3@U zb@J(9W&PK-OAifpq+Z5sR^!*$oM?9?^0xN$OVp+5wE)NhMf@LJm>bx+AAS;3*vqAl RAO8b8E6c0PRmdO%{|Be@$fp1R literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x@2x.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2728759a4ea8756cdf64f3613a66e0e455dbb930 GIT binary patch literal 54749 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 z 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 Cn9G&` literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c4960d11dd5be72001f050775d08f246e34508cd GIT binary patch literal 1713 zcmV;i22S~jP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$_8%ab#R9Fe+R%>jNRTzHS^|r3< zE^XPxQ94$JG8vE|+c1i3xF9AN4H`5dV&X6{>OT`>;t%}i4-+N+8N(Q}OoI9c5hn)5 zMer8J=C06VBt7EfH#%y>2e9LLSZX zB%DWr9W*}>BHgD*u_g^xTuLI5$jJwSoTQX6z9qzT??K{ryPr*xd!Ve>>)kIH!Q#qD znv;`r=nngz{JzRC8Imjkm!niFcO>{#r+AFRl~22&E7d@z$`NHKNk!i4@}tnC!^3;c zkjjL+iN_+NP$(D{Q?e{=r)2!1jG1w;`$60C;fPIegXU`t&-o2ZbANt+~ zwO$2tLs^QRqy3*xL`zEx4jw#++S*!CiWzX? z#0k(P(A3m~jm>8Cesc>NgBpen1)^LM!!FKWJ~>c=H$=IxcL^gGC-|7kb7ko2>Ox~< zBLV^D!4-13Triu>ICkt9qR}XF6jE&3w;mKS1Qx<8f~#=J2BaLvV{r_3j$vJ0DKu-; zSX^9$)oMjWs2cL?MOd&dVsNk@6BBksdlb+QR$^C869xtbcs;p=N?4vM$4$}^3yZmy zg25I-2<|$to_CtXCF z-vPhEjp^y>Wc@tPypf4AhCo}A2k-PsteFAyKp_|nAAgD9^p&V-*i2NZd7>dz9eO1Sh(7qBG7TARZ3-v9I)%crD%>6!Lf`dkc<1f6_})NIF4{hR4;7z$4h?m~Xe5T*g3KXE_5cfb zN-46o%UsB^zuvzW_Es-Wl^jL2uL1Spy@*7@2+X>%P1yj0)`;M;ADX!$lt>I186H4k zMRiv9Gq)t?z)Hp?9LB=1FyX_EAqVtNs$nbc#p%;$@UyoQ1-q0OvW}xdZhWXLU4I*;w`wV9bf&dms;yO z7^@1wk&g!Lf1%&z5%n+^O3C%k2^(%)`w7py^d{t_C9o)k^alqH9dCw&aw(k>Z$U^n zVFq|?2}?%yDhAzQJhW{MeED+xVZGD!xH!k!0E!o) zQ0Wv{TU!EMS?1cO=Qu=I`eXxC^uXMrMq*-M*(fj{;%~U<3ZSgU2swS6FvHaPT$r{O zL-P+w$8?86p((lyzBvdn z=eoPQ&zMZ6eaympA=X?rG_JiD(Ys`NdV0>#W=h$!>@OP|8@rI*_WM62PhVzOG*T*# zRfDp=zP`?8vt7J@nAJ7V1+VPfxwC;`(GV(-*gM2FSQXT?wzj@MIy!pZ@Aps9Hy;ad ze07yscjN58q{BtJF1EF`eL%XmBrrs9k)Z=dY^|WdO2j}zmsqE`i}vo7*r(7E4Id3w zv+SLY&=BLFZUCL}Mz99QK-sx4i2c{ZfP}$}p>DAP&b0jv@5v121iC&&00000NkvXX Hu0mjfPFNPE literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x@2x.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b22828199a1274945cba92a88d4cb1cfd31d939 GIT binary patch literal 3377 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 z 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 Cn9G&` literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x@2x.png b/Podman/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c7ea9f296f25190ddc793d50af5293c982696791 GIT binary patch literal 150447 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

yGJeBLeR!l$j4mL<^7cRj? zgTqFt&Ycv86&Ictmp%+}UQk+twtHKjk|29V>&5LI92{0b1?EeswErj(|AfXFDfp1x z7xR`!_CwWWNHcR&Vcus>>~qL?E*lv0j@%F@CHUaw7ZU1PMSF?8{B;3%s9)#HL!C1A zwUk&?SE53tpqi;cf|)OyrZwyHL|3nV9faFq9Wvhf7c&g%INI9rphg`$#@+I-bI+l~e-XiR!_X>z6_3%~9!1NAHW{7ffDG`x7Ua$spBC|NWug1RK zh&cIRCA@Vgj*q^uyp6nau5b;SMfdo-xLg&HfSeV$2o6=K5CS9!?j-d(2P+gz2oE@< zD7p;a^?UETWPJMN^-U>UH#&t|1!#EwHWB-;7@YC#TMn&}u)uN{I-IhNqjW72X=GSs zbT(~;haxW*NMCt#v9DLI13fX<4f0sx-lLo(08v|6p|V;okwYTv<1?kDqnFYe*LX_R z?KD3VAoqrTbvmubUNQZja7ByndLHNtipdguceV?*)4Q$Lp2+jSQHG}jMrR49=qfR4 z4XtR`^VVpbF81@K_kwQCD(P#o86o-{Y#>!W6w9S%Xcyv`UOGmxuaPCyzj3J8DZLbj zT_r(+SXwJv>i_ZdXHqJZ4;(tbG(f%wgP9jRA5;frvj6)*g2a^&GqePin%AS%w-2Y$W>;FD_DtYz$%g)$e-+=DSsvoJ3Z74J zsb)3%>8l!M-)3#Oh_X68hM&irp9~cgPKALTK7VzdEbA|x0CkLv06aH1vT1ncn@TV` zt*LTFATdmY-Ns6aQco5Bj4ngn__L(UX`1ieJ&PltR^6Gbbt!brPKdJnqw@V@SXC&L z0Pgwhg;unVBbKwGFw3(*x=CWMeWI`l(B*zUmwxdpno9rta9Zy~ORV?ES3sa<#=PT~ z9;ltxXnJzigZ(m`CITKakzCFTkq(DTP=48&QyC{s>Yux$h*2U|qYQh#dxoTbApi*@WPr;F^`9icZs8G!F1I_ab}4Ba!wp^C09 zPY!5zorUUP$|fhG`V^OGaPB5$_0kuDb|9tm>T`_Q(3=`th0a$EUTgZVs&m#l4gZ&d zDk5lLHdkUI&k76CDK|}dh@Lv~n9{=7YMvCGWo7U6{=U_7WYz%4s}1>N(4Tc@ zL2rKKs<#g*3eIz&8?{u9|IR z;3wb(@eGH}Qc~nbr!J2%B$98f4b6Ru&~PT$nH^&euTJ6m>VR77R|&kGfcMG2e> zTC}WFOcFDF7q&!8?OBwbck4iP`C~V&9`ip}uqp&#;u4KMnvp;%`~uJ?ts&O3GbN`{vuI2u}@OC4yO^H>oo+?~^{Q7p8 zM4bTPGqah;=atOwCM-J`pe&9bBx-u)V>E_mE*9zd641oaS(6DBs(XIE$EojGt2aE1 zEkoUz=OW^!zuwVCEz+z*l+jWK6rrJJ|Mj~-_fjUAqlZp`=kYp$avvM!CXRe)@KQT( zsxZ^cr%x~OTB%%WiT@S-6+Nj9&M(YDcK(O!t6^JIIBe9gxY+PQU$}HZnoRy$DkMdS z;I2)Zp%qFg?EiE|6^t_InZx;)Syr*ay}Z0eTmpZ3zYsXzxl>LuGlo^(c|(({q?Yn| z#v2MXRX4}|*34Zwcl6}BEu0ipgS@cP#f$p#MUUp7(ufF1#s_x

X)j?Q~;6DW3jX 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 BiU0rr literal 0 HcmV?d00001 diff --git a/Podman/Assets.xcassets/podman-logo-full.imageset/Contents.json b/Podman/Assets.xcassets/podman-logo-full.imageset/Contents.json new file mode 100644 index 0000000..f624839 --- /dev/null +++ b/Podman/Assets.xcassets/podman-logo-full.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "podman-logo-full.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Podman/Assets.xcassets/podman-logo-full.imageset/podman-logo-full.pdf b/Podman/Assets.xcassets/podman-logo-full.imageset/podman-logo-full.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13af72357fe73cceab5e35570ebe940ce21634e9 GIT binary patch literal 14219 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 G_rCy+WhUAH literal 0 HcmV?d00001 diff --git a/Podman/Base.lproj/Main.storyboard b/Podman/Base.lproj/Main.storyboard new file mode 100644 index 0000000..24907ed --- /dev/null +++ b/Podman/Base.lproj/Main.storyboard @@ -0,0 +1,1216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Podman on macOS requires a virtual machine in place to run containers. For those purposes, Podman provides the command "podman machine", which executes a virtual machine through QEMU to which the podman CLI communicates to. Continuing will create a new "podman-machine-default" virtual machine (later accessible through the podman machine list) using the "podman machine init" command. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Podman for macOS is distributed under the MIT license: + +The MIT License (MIT) + +Copyright (c) 2021 Victor Gama + +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. + + +Podman is distributed under the Apache License. +Podman is maintained by the containers organization. https://github.com/containers + + +Apache License +Version 2.0, January 2004 +https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: + +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T +S2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBcLDBkaIRQmKywzNjs+P0RHSEtVXV5iZVUkbnVsbNYNDg8Q +ERITFBUWFxhWTlNTaXplXk5TUmVzaXppbmdNb2RlViRjbGFzc1xOU0ltYWdlRmxhZ3NWTlNSZXBzV05T +Q29sb3KAAhAAgBYSIMMAAIADgBFWezEsIDF90hsPHCBaTlMub2JqZWN0c6MdHh+ABIAKgA2AENIbDyIl +oiMkgAWABoAJ0w8nKCkqFF8QFE5TVElGRlJlcHJlc2VudGF0aW9uXxAZTlNJbnRlcm5hbExheW91dERp +cmVjdGlvboAIgAdPEQ0qTU0AKgAAAAwAAAAAABABAAADAAAAAQABAAABAQADAAAAAQABAAABAgADAAAA +BAAAANIBAwADAAAAAQABAAABBgADAAAAAQACAAABCgADAAAAAQABAAABEQAEAAAAAQAAAAgBEgADAAAA +AQABAAABFQADAAAAAQAEAAABFgADAAAAAQABAAABFwAEAAAAAQAAAAQBHAADAAAAAQABAAABKAADAAAA +AQACAAABUgADAAAAAQABAAABUwADAAAABAAAANqHcwAHAAAMSAAAAOIAAAAAAAgACAAIAAgAAQABAAEA +AQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAA +AAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAA +FHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAA +iHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA +DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAx +OTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA +AAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFla +IAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVz +YwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVj +LmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA +LklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklF +QyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAA +AAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4x +AAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFla +IAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAA +AENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMA +aABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsB +AQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB +0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC +6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgE +VQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYG +FgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8I +MghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgK +rgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQN +jg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ +1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoU +ixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoY +rxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4d +Rx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7Iici +VSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn +3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last +4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0 +ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07 +azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC +90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRL +DEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T +qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc +1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1m +kmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw +4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7 +wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteH +O4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOT +TZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf ++qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCt +RK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7 +LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJ +uco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY +6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLo +vOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5 +OPnH+lf65/t3/Af8mP0p/br+S/7c/23//9ItLi8wWiRjbGFzc25hbWVYJGNsYXNzZXNfEBBOU0JpdG1h +cEltYWdlUmVwoy8xMlpOU0ltYWdlUmVwWE5TT2JqZWN00i0uNDVXTlNBcnJheaI0MtIbDzcloiM5gAWA +C4AJ0w8nKCk9FIAIgAxPEQ1eTU0AKgAAABgAAAAAAAAAAAAAAAAAAAAAABIBAAADAAAAAQACAAABAQAD +AAAAAQACAAABAgADAAAABAAAAQYBAwADAAAAAQABAAABBgADAAAAAQACAAABCgADAAAAAQABAAABEQAE +AAAAAQAAAAgBEgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQACAAABFwAEAAAAAQAAABABGgAF +AAAAAQAAAPYBGwAFAAAAAQAAAP4BHAADAAAAAQABAAABKAADAAAAAQACAAABUgADAAAAAQABAAABUwAD +AAAABAAAAQ6HcwAHAAAMSAAAARYAAAAAAAAAkAAAAAEAAACQAAAAAQAIAAgACAAIAAEAAQABAAEAAAxI +TGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAA +AAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFla +AAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVk +AAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJD +AAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBI +ZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA +AAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA +AABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA +AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMg +NjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5 +NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +ZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAA +AAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAA +AEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQg +Y3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQBy +AHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN +ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHh +AekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMA +AwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRx +BH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3 +BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRgha +CG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrc +CvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D +Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RET +ETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO +FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6 +GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2Z +HcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKv +It0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/ +KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5M +LoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTY +NRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvo +PCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9 +Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua +S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRC +VI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114 +XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9 +Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGV +cfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyB +fOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE +iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQg +lIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDY +oUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t +rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7wh +vJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3 +yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx +2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ +6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX ++uf7d/wH/Jj9Kf26/kv+3P9t///SGw9AJaIjQoAFgA6ACdMPJygpRhSACIAPTxENck1NACoAAAAsAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIBAAADAAAAAQADAAABAQADAAAAAQADAAAB +AgADAAAABAAAARoBAwADAAAAAQABAAABBgADAAAAAQACAAABCgADAAAAAQABAAABEQAEAAAAAQAAAAgB +EgADAAAAAQABAAABFQADAAAAAQAEAAABFgADAAAAAQADAAABFwAEAAAAAQAAACQBGgAFAAAAAQAAAQoB +GwAFAAAAAQAAARIBHAADAAAAAQABAAABKAADAAAAAQACAAABUgADAAAAAQABAAABUwADAAAABAAAASKH +cwAHAAAMSAAAASoAAAAAAAAA2AAAAAEAAADYAAAAAQAIAAgACAAIAAEAAQABAAEAAAxITGlubwIQAABt +bnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYA +AQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFj +cHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRn +WFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2 +aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxn +VFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBh +Y2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdC +IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA +AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBo +dHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4x +IERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERl +ZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAA +AAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJl +ZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAA +Vx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAA +AAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYA +iwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUB +KwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMC +DAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0D +OANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgE +tgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsG +jAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoI +vgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL +UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4O +SQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwR +qhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYV +eBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZ +txndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAe +ah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2Yj +lCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYp +OClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQv +Wi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1 +/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9 +Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpE +zkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpN +Ak1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVV +wlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1f +D19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo +7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFz +XXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ +Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ +/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmW +NJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopaj +BqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACw +dbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+ +hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXN +Nc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXc +it0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vs +hu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9 +Kf26/kv+3P9t///SLS5JSl5OU011dGFibGVBcnJheaNJNDLVTE1OTw9QUVJTVFdOU1doaXRlXE5TQ29t +cG9uZW50c1xOU0NvbG9yU3BhY2VfEBJOU0N1c3RvbUNvbG9yU3BhY2VEMCAwAEMwIDAQA4ASgBXUVldY +D1laW1xUTlNJRFVOU0lDQ1dOU01vZGVsEAmAExAAgBRPERGcAAARnGFwcGwCAAAAbW50ckdSQVlYWVog +B9wACAAXAA8ALgAPYWNzcEFQUEwAAAAAbm9uZQAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZGVzYwAAAMAAAAB5 +ZHNjbQAAATwAAAgaY3BydAAACVgAAAAjd3RwdAAACXwAAAAUa1RSQwAACZAAAAgMZGVzYwAAAAAAAAAf +R2VuZXJpYyBHcmF5IEdhbW1hIDIuMiBQcm9maWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAA +AAAAHwAAAAxza1NLAAAALgAAAYRkYURLAAAAOgAAAbJjYUVTAAAAOAAAAex2aVZOAAAAQAAAAiRwdEJS +AAAASgAAAmR1a1VBAAAALAAAAq5mckZVAAAAPgAAAtpodUhVAAAANAAAAxh6aFRXAAAAGgAAA0xrb0tS +AAAAIgAAA2ZuYk5PAAAAOgAAA4hjc0NaAAAAKAAAA8JoZUlMAAAAJAAAA+pyb1JPAAAAKgAABA5kZURF +AAAATgAABDhpdElUAAAATgAABIZzdlNFAAAAOAAABNR6aENOAAAAGgAABQxqYUpQAAAAJgAABSZlbEdS +AAAAKgAABUxwdFBPAAAAUgAABXZubE5MAAAAQAAABchlc0VTAAAATAAABgh0aFRIAAAAMgAABlR0clRS +AAAAJAAABoZmaUZJAAAARgAABqpockhSAAAAPgAABvBwbFBMAAAASgAABy5hckVHAAAALAAAB3hydVJV +AAAAOgAAB6RlblVTAAAAPAAAB94AVgFhAGUAbwBiAGUAYwBuAOEAIABzAGkAdgDhACAAZwBhAG0AYQAg +ADIALAAyAEcAZQBuAGUAcgBpAHMAawAgAGcAcgDlACAAMgAsADIAIABnAGEAbQBtAGEALQBwAHIAbwBm +AGkAbABHAGEAbQBtAGEAIABkAGUAIABnAHIAaQBzAG8AcwAgAGcAZQBuAOgAcgBpAGMAYQAgADIALgAy +AEMepQB1ACAAaADsAG4AaAAgAE0A4AB1ACAAeADhAG0AIABDAGgAdQBuAGcAIABHAGEAbQBtAGEAIAAy +AC4AMgBQAGUAcgBmAGkAbAAgAEcAZQBuAOkAcgBpAGMAbwAgAGQAYQAgAEcAYQBtAGEAIABkAGUAIABD +AGkAbgB6AGEAcwAgADIALAAyBBcEMAQzBDAEOwRMBD0EMAAgAEcAcgBhAHkALQQzBDAEPAQwACAAMgAu +ADIAUAByAG8AZgBpAGwAIABnAOkAbgDpAHIAaQBxAHUAZQAgAGcAcgBpAHMAIABnAGEAbQBtAGEAIAAy +ACwAMgDBAGwAdABhAGwA4QBuAG8AcwAgAHMAegD8AHIAawBlACAAZwBhAG0AbQBhACAAMgAuADKQGnUo +cHCWjlFJXqYAMgAuADKCcl9pY8+P8Md8vBgAINaMwMkAIKwQucgAIAAyAC4AMgAg1QS4XNMMx3wARwBl +AG4AZQByAGkAcwBrACAAZwByAOUAIABnAGEAbQBtAGEAIAAyACwAMgAtAHAAcgBvAGYAaQBsAE8AYgBl +AGMAbgDhACABYQBlAGQA4QAgAGcAYQBtAGEAIAAyAC4AMgXSBdAF3gXUACAF0AXkBdUF6AAgBdsF3AXc +BdkAIAAyAC4AMgBHAGEAbQBhACAAZwByAGkAIABnAGUAbgBlAHIAaQBjAQMAIAAyACwAMgBBAGwAbABn +AGUAbQBlAGkAbgBlAHMAIABHAHIAYQB1AHMAdAB1AGYAZQBuAC0AUAByAG8AZgBpAGwAIABHAGEAbQBt +AGEAIAAyACwAMgBQAHIAbwBmAGkAbABvACAAZwByAGkAZwBpAG8AIABnAGUAbgBlAHIAaQBjAG8AIABk +AGUAbABsAGEAIABnAGEAbQBtAGEAIAAyACwAMgBHAGUAbgBlAHIAaQBzAGsAIABnAHIA5QAgADIALAAy +ACAAZwBhAG0AbQBhAHAAcgBvAGYAaQBsZm6QGnBwXqZ8+2VwADIALgAyY8+P8GWHTvZOAIIsMLAw7DCk +MKww8zDeACAAMgAuADIAIDDXMO0w1TChMKQw6wOTA7UDvQO5A7oDzAAgA5MDugPBA7kAIAOTA6wDvAO8 +A7EAIAAyAC4AMgBQAGUAcgBmAGkAbAAgAGcAZQBuAOkAcgBpAGMAbwAgAGQAZQAgAGMAaQBuAHoAZQBu +AHQAbwBzACAAZABhACAARwBhAG0AbQBhACAAMgAsADIAQQBsAGcAZQBtAGUAZQBuACAAZwByAGkAagBz +ACAAZwBhAG0AbQBhACAAMgAsADIALQBwAHIAbwBmAGkAZQBsAFAAZQByAGYAaQBsACAAZwBlAG4A6QBy +AGkAYwBvACAAZABlACAAZwBhAG0AbQBhACAAZABlACAAZwByAGkAcwBlAHMAIAAyACwAMg4jDjEOBw4q +DjUOQQ4BDiEOIQ4yDkAOAQ4jDiIOTA4XDjEOSA4nDkQOGwAgADIALgAyAEcAZQBuAGUAbAAgAEcAcgBp +ACAARwBhAG0AYQAgADIALAAyAFkAbABlAGkAbgBlAG4AIABoAGEAcgBtAGEAYQBuACAAZwBhAG0AbQBh +ACAAMgAsADIAIAAtAHAAcgBvAGYAaQBpAGwAaQBHAGUAbgBlAHIAaQENAGsAaQAgAEcAcgBhAHkAIABH +AGEAbQBtAGEAIAAyAC4AMgAgAHAAcgBvAGYAaQBsAFUAbgBpAHcAZQByAHMAYQBsAG4AeQAgAHAAcgBv +AGYAaQBsACAAcwB6AGEAcgBvAVsAYwBpACAAZwBhAG0AbQBhACAAMgAsADIGOgYnBkUGJwAgADIALgAy +ACAGRAZIBkYAIAYxBkUGJwYvBkoAIAY5BicGRQQeBDEESQQwBE8AIARBBDUEQAQwBE8AIAQzBDAEPAQ8 +BDAAIAAyACwAMgAtBD8EQAQ+BEQEOAQ7BEwARwBlAG4AZQByAGkAYwAgAEcAcgBhAHkAIABHAGEAbQBt +AGEAIAAyAC4AMgAgAFAAcgBvAGYAaQBsAGUAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIw +MTIAAFhZWiAAAAAAAADzUQABAAAAARbMY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3 +ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDL +ANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGD +AYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKE +Ao4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPT +A+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 +BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0 +B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnP +CeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyO +DKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+z +D88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxND +E2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdB +F2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2Mbihuy +G9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCY +IMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 +JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvR +LAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIq +MmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkF +OUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0Bk +QKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhL +SJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7 +UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4 +WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND +Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g +bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gR +eG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INX +g7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82 +j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuv +nByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjE +qTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5 +tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTO +xUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG +1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj +4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn +9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t///SLS5fYFxOU0NvbG9yU3Bh +Y2WiYTJcTlNDb2xvclNwYWNl0i0uY2RXTlNDb2xvcqJjMtItLmZnV05TSW1hZ2WiZjIACAARABoAJAAp +ADIANwBJAEwAUQBTAG0AcwCAAIcAlgCdAKoAsQC5ALsAvQC/AMQAxgDIAM8A1ADfAOMA5QDnAOkA6wDw +APMA9QD3APkBAAEXATMBNQE3DmUOag51Dn4OkQ6VDqAOqQ6uDrYOuQ6+DsEOww7FDscOzg7QDtIcNBw5 +HDwcPhxAHEIcSRxLHE0pwynIKdcp2ynmKe4p+yoIKh0qIiomKigqKiosKjUqOipAKkgqSipMKk4qUDvw +O/U8AjwFPBI8FzwfPCI8JzwvAAAAAAAAAgEAAAAAAAAAaAAAAAAAAAAAAAAAAAAAPDI + + + + + + + diff --git a/Podman/Controllers/PMInstallProgressViewController.h b/Podman/Controllers/PMInstallProgressViewController.h new file mode 100644 index 0000000..3d1c780 --- /dev/null +++ b/Podman/Controllers/PMInstallProgressViewController.h @@ -0,0 +1,16 @@ +// +// PMInstallProgressViewController.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PMInstallProgressViewController : NSViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Controllers/PMInstallProgressViewController.m b/Podman/Controllers/PMInstallProgressViewController.m new file mode 100644 index 0000000..081ed91 --- /dev/null +++ b/Podman/Controllers/PMInstallProgressViewController.m @@ -0,0 +1,72 @@ +// +// PMInstallProgressViewController.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import "PMInstallProgressViewController.h" +#import "PMManager.h" +#import "AppDelegate.h" + +@interface PMInstallProgressViewController () +@property (weak) IBOutlet NSTextField *stateLabel; +@property (weak) IBOutlet NSProgressIndicator *progressBar; +@property (weak) IBOutlet NSButton *cancelButton; + +@end + +@implementation PMInstallProgressViewController { + NSTask *installTask; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do view setup here. +} + +- (void)viewDidAppear { + self.progressBar.maxValue = 100; + self.progressBar.doubleValue = 0; + installTask = [[PMManager manager] installVirtualMachineWithProgress:^(PMManagerInstallState * _Nonnull state) { + dispatch_sync(dispatch_get_main_queue(), ^{ + if (state.status == PMManagerInstallStatusDownloadingVM) { + self.stateLabel.stringValue = @"Downloading VM Image..."; + self.progressBar.maxValue = state.total; + self.progressBar.doubleValue = state.completed; + } else { + self.stateLabel.stringValue = @"Extracting image..."; + if (!self.progressBar.indeterminate) { + self.progressBar.indeterminate = YES; + self.progressBar.usesThreadedAnimation = YES; + [self.progressBar startAnimation:self]; + } + } + }); + } andCompletion:^(NSError * _Nullable error) { + dispatch_sync(dispatch_get_main_queue(), ^{ + if (error != nil) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleCritical; + alert.messageText = @"An error occurred during the installation process"; + alert.informativeText = @"Extra details may be available in the system's log."; + [alert addButtonWithTitle:@"OK"]; + [alert beginSheetModalForWindow:self.view.window + completionHandler:^(NSModalResponse returnCode) { + [NSApplication.sharedApplication terminate:nil]; + }]; + } else { + [[PMManager manager] startVM]; + AppDelegate *delegate = [NSApp delegate]; + [delegate startAgent]; + [self.view.window close]; + } + }); + }]; +} + +- (IBAction)cancelButtonDidClick:(id)sender { + +} + +@end diff --git a/Podman/Controllers/PMInstallWindowController.h b/Podman/Controllers/PMInstallWindowController.h new file mode 100644 index 0000000..485bee7 --- /dev/null +++ b/Podman/Controllers/PMInstallWindowController.h @@ -0,0 +1,16 @@ +// +// PMInstallWindowController.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PMInstallWindowController : NSViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Controllers/PMInstallWindowController.m b/Podman/Controllers/PMInstallWindowController.m new file mode 100644 index 0000000..95d28cf --- /dev/null +++ b/Podman/Controllers/PMInstallWindowController.m @@ -0,0 +1,62 @@ +// +// PMInstallWindowController.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import "PMInstallWindowController.h" +#import "PMManager.h" + +@interface PMInstallWindowController () +@property (weak) IBOutlet NSButton *disclosureButton; +@property (weak) IBOutlet NSTextField *moreInfoLabel; +@property (strong) IBOutlet NSLayoutConstraint *moreInfoHideConstraint; + +@end + +@implementation PMInstallWindowController { + CGSize initialSize; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.moreInfoHideConstraint.active = YES; +} + +- (IBAction)moreInfoDidClick:(id)sender { + self.disclosureButton.state = self.disclosureButton.state == 1 ? 0 : 1; + [self disclosureDidClick:sender]; +} + +- (IBAction)disclosureDidClick:(id)sender { + + + [NSAnimationContext runAnimationGroup:^(NSAnimationContext * _Nonnull context) { + context.duration = 0.2; + context.allowsImplicitAnimation = YES; + + self.moreInfoHideConstraint.animator.active = self.disclosureButton.state == 0; + [self.view layoutSubtreeIfNeeded]; + + NSWindow *window = self.view.window; + NSRect rect = [window contentRectForFrameRect:window.frame]; + rect.size = self.view.fittingSize; + NSRect frame = [window frameRectForContentRect:rect]; + frame.origin.y = window.frame.origin.y + (window.frame.size.height - frame.size.height); + [self.view.window.animator setFrame:frame display:YES animate:YES]; + }]; +} + +- (IBAction)exitDidClick:(id)sender { + [NSApplication.sharedApplication terminate:sender]; +} + +- (IBAction)installDidClick:(id)sender { + NSWindow *window = self.view.window; + NSViewController *newController = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"PMInstallProgressViewController"]; + window.contentViewController = newController; +} + + +@end diff --git a/Podman/Controllers/PMPreferencesController.h b/Podman/Controllers/PMPreferencesController.h new file mode 100644 index 0000000..1f6cfea --- /dev/null +++ b/Podman/Controllers/PMPreferencesController.h @@ -0,0 +1,16 @@ +// +// PMPreferencesController.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PMPreferencesController : NSViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Controllers/PMPreferencesController.m b/Podman/Controllers/PMPreferencesController.m new file mode 100644 index 0000000..23720dd --- /dev/null +++ b/Podman/Controllers/PMPreferencesController.m @@ -0,0 +1,39 @@ +// +// PMPreferencesController.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMPreferencesController.h" +#import "PMPreferences.h" + +@interface PMPreferencesController () +@property (weak) IBOutlet NSButton *startAtLoginCheckbox; +@property (weak) IBOutlet NSButton *startVMCheckbox; +@property (weak) IBOutlet NSButton *checkForUpdatesCheckbox; + +@end + +@implementation PMPreferencesController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.startAtLoginCheckbox.state = PMPreferences.startAtLogin ? NSControlStateValueOn : NSControlStateValueOff; + self.startVMCheckbox.state = PMPreferences.startPodmanVM ? NSControlStateValueOn : NSControlStateValueOff; + self.checkForUpdatesCheckbox.state = PMPreferences.checkForUpdates ? NSControlStateValueOn : NSControlStateValueOff; +} + +- (IBAction)startAtLoginDidChange:(id)sender { + PMPreferences.startAtLogin = self.startAtLoginCheckbox.state == NSControlStateValueOn; +} + +- (IBAction)startVMDidChange:(id)sender { + PMPreferences.startPodmanVM = self.startVMCheckbox.state == NSControlStateValueOn; +} + +- (IBAction)checkForUpdatesDidChange:(id)sender { + PMPreferences.checkForUpdates = self.checkForUpdatesCheckbox.state == NSControlStateValueOn; +} + +@end diff --git a/Podman/Controllers/PMStatusBarController.h b/Podman/Controllers/PMStatusBarController.h new file mode 100644 index 0000000..cd71d25 --- /dev/null +++ b/Podman/Controllers/PMStatusBarController.h @@ -0,0 +1,19 @@ +// +// PMStatusBarController.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PMStatusBarController : NSObject + +- (instancetype)initWithPopover:(NSPopover *)popover; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Controllers/PMStatusBarController.m b/Podman/Controllers/PMStatusBarController.m new file mode 100644 index 0000000..2a9cd0b --- /dev/null +++ b/Podman/Controllers/PMStatusBarController.m @@ -0,0 +1,50 @@ +// +// PMStatusBarController.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import "PMStatusBarController.h" + +@implementation PMStatusBarController { + NSStatusBar *statusBar; + NSStatusItem *statusItem; + NSPopover *popover; +} + +- (instancetype)initWithPopover:(NSPopover *)popover { + if ((self = [super init]) == nil) { + return nil; + } + + self->popover = popover; + self->statusBar = [[NSStatusBar alloc] init]; + self->statusItem = [statusBar statusItemWithLength:28]; + self->statusItem.button.image = [NSImage imageNamed:@"icon"]; + self->statusItem.button.image.size = CGSizeMake(17.27, 16); + self->statusItem.button.image.template = YES; + self->statusItem.button.action = @selector(togglePopover:); + self->statusItem.button.target = self; + + return self; +} + +- (void)togglePopover:(id)sender { + if (self->popover.isShown) { + [self hidePopover:sender]; + } else { + [self showPopover:sender]; + } +} + +- (void)showPopover:(id)sender { + [NSApp activateIgnoringOtherApps:YES]; + [self->popover showRelativeToRect:self->statusItem.button.bounds ofView:self->statusItem.button preferredEdge:NSRectEdgeMaxY]; +} + +- (void)hidePopover:(id)sender { + [self->popover performClose:sender]; +} + +@end diff --git a/Podman/Controllers/PopoverController.h b/Podman/Controllers/PopoverController.h new file mode 100644 index 0000000..ae7b17a --- /dev/null +++ b/Podman/Controllers/PopoverController.h @@ -0,0 +1,13 @@ +// +// ViewController.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +@interface PopoverController : NSViewController + +@end + diff --git a/Podman/Controllers/PopoverController.m b/Podman/Controllers/PopoverController.m new file mode 100644 index 0000000..2d15cfe --- /dev/null +++ b/Podman/Controllers/PopoverController.m @@ -0,0 +1,341 @@ +// +// ViewController.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import "PopoverController.h" +#import "PMManager.h" +#import "PMContainerCellView.h" +#import + +@interface PopoverController () + +@property (weak) IBOutlet NSButton *optionsButton; +@property (weak) IBOutlet NSButton *vmStateChangeButton; +@property (weak) IBOutlet NSTextField *statusLabel; +@property (weak) IBOutlet NSImageView *statusIndicatorImage; +@property (strong) IBOutlet NSMenu *optionsMenu; +@property (weak) IBOutlet NSTableView *containersTableView; +@property (strong) IBOutlet NSMenu *contextMenu; + +@property (weak) IBOutlet NSMenuItem *startContainerMenuItem; +@property (weak) IBOutlet NSMenuItem *restartContainerMenuItem; +@property (weak) IBOutlet NSMenuItem *killContainerMenuItem; +@property (weak) IBOutlet NSMenuItem *deleteContainerMenuItem; + +@end + +typedef NS_ENUM(NSUInteger, ServiceState) { + ServiceStateAny, + ServiceStateStopped, + ServiceStateStopping, + ServiceStateStarting, + ServiceStateRunning, +}; + +@implementation PopoverController { + NSTimer *updateTimer; + PMManager *manager; + ServiceState serviceState; + ServiceState expectedNextState; + NSArray *containers; +} + +- (void)setPodmanState:(ServiceState)newState { + if (self->expectedNextState != ServiceStateAny) { + if (newState != self->expectedNextState) { + return; + } + self->expectedNextState = ServiceStateAny; + } + + switch (newState) { + case ServiceStateAny: + NSLog(@"BUG: Attempt to setPodmanState to ServiceStateAny"); + abort(); + return; + case ServiceStateStopping: + self.statusLabel.stringValue = @"Podman is Stopping"; + self.statusIndicatorImage.image = [NSImage imageNamed:NSImageNameStatusPartiallyAvailable]; + self.vmStateChangeButton.title = @"Stop Podman"; + self.vmStateChangeButton.enabled = NO; + break; + case ServiceStateRunning: + self.statusLabel.stringValue = @"Podman is Running"; + self.statusIndicatorImage.image = [NSImage imageNamed:NSImageNameStatusAvailable]; + self.vmStateChangeButton.title = @"Stop Podman"; + self.vmStateChangeButton.enabled = YES; + self.vmStateChangeButton.tag = ServiceStateStopped; + break; + case ServiceStateStopped: + self.vmStateChangeButton.enabled = YES; + self.vmStateChangeButton.tag = ServiceStateRunning; + self.vmStateChangeButton.title = @"Start Podman"; + self.statusLabel.stringValue = @"Podman is Stopped"; + self.statusIndicatorImage.image = [NSImage imageNamed:NSImageNameStatusUnavailable]; + break; + case ServiceStateStarting: + self.vmStateChangeButton.enabled = NO; + self.vmStateChangeButton.title = @"Stop Podman"; + self.statusLabel.stringValue = @"Podman is Starting"; + self.statusIndicatorImage.image = [NSImage imageNamed:NSImageNameStatusPartiallyAvailable]; + break; + } + self->serviceState = newState; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.containersTableView.delegate = self; + self.containersTableView.dataSource = self; + self->expectedNextState = ServiceStateAny; + self->manager = [PMManager manager]; + [self executePeriodicTasks:nil]; + [self.contextMenu setDelegate:self]; +} + +- (void)scheduleNextPeriodicTasks { + updateTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 + target:self + selector:@selector(executePeriodicTasks:) + userInfo:nil + repeats:NO]; +} + +- (void)executePeriodicTasks:(NSTimer *)timer { + if (timer != nil) { + [timer invalidate]; + updateTimer = nil; + } + + switch (self->manager.serviceStatus) { + case PMServiceStatusRunning: { + [self setPodmanState:ServiceStateRunning]; + [self->manager listContainersWithCallback:^(PMOperationResult *> * result) { + if (result.succeeded) { + self->containers = result.result; + NSInteger row = [self.containersTableView selectedRow]; + [self.containersTableView reloadData]; + [self.containersTableView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; + } + [self scheduleNextPeriodicTasks]; + }]; + return; + } + + case PMServiceStatusStarting: { + [self setPodmanState:ServiceStateStarting]; + break; + } + + case PMServiceStatusStopped: { + [self setPodmanState:ServiceStateStopped]; + break; + } + } + + [self scheduleNextPeriodicTasks]; +} + +- (IBAction)optionsButtonDidClick:(id)sender { + [self.optionsMenu popUpMenuPositioningItem:[self.optionsMenu itemAtIndex:0] atLocation:NSEvent.mouseLocation inView:nil]; +} + +- (IBAction)vmStateChangeButtonDidClick:(id)sender { + if (self->updateTimer != nil) { + [self->updateTimer invalidate]; + self->updateTimer = nil; + } + + if (self.vmStateChangeButton.tag == ServiceStateRunning) { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ + [self->manager startVM]; + }); + [self setPodmanState:ServiceStateStarting]; + self->expectedNextState = ServiceStateRunning; + } else { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = @"Are you sure you want to stop Podman?"; + alert.informativeText = @"Ensure you stopped your containers before continuing. Otherwise, data loss may occur."; + NSButton *yesButton = [alert addButtonWithTitle:@"Yes"]; + yesButton.keyEquivalent = @"\r"; + NSButton *noButton = [alert addButtonWithTitle:@"No"]; + noButton.keyEquivalent = @"\033"; + if([alert runModal] == NSAlertFirstButtonReturn) { + [self setPodmanState:ServiceStateStopping]; + self->expectedNextState = ServiceStateStopped; + [self->manager stopVM]; + } + } + [self scheduleNextPeriodicTasks]; +} + +- (IBAction)aboutPodmanMenuDidClick:(id)sender { + NSWindowController *controller = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"PMAboutWindow"]; + [controller showWindow:sender]; +} + +- (IBAction)quitPodmanMenuDidClick:(id)sender { + if (self->serviceState == ServiceStateRunning) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleInformational; + alert.messageText = @"Do you wish to keep Podman VM running?"; + alert.informativeText = @"Podman's VM seems to be running. Choosing Yes will keep the Podman Virtual Machine running, and will close this application. Otherwise, the VM will be stopped."; + NSButton *yesButton = [alert addButtonWithTitle:@"Yes"]; + yesButton.keyEquivalent = @"\r"; + NSButton *noButton = [alert addButtonWithTitle:@"No"]; + noButton.keyEquivalent = @"\033"; + if([alert runModal] == NSAlertSecondButtonReturn) { + [self->manager stopVM]; + } + } + + [NSApp terminate:self]; +} + + +- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { + return self->containers.count; +} + +- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + PMContainer *container = self->containers[row]; + PMContainerCellView *view = [tableView makeViewWithIdentifier:@"ContainerCellView" owner:nil]; + view.containerID = container.containerID; + view.containerStatus = container.containerStatus; + view.containerName = container.containerName; + view.containerImage = container.containerImage; + view.showsSeparator = row < self->containers.count - 1; + return view; +} + +- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row { + return 52; +} + +- (void)menuWillOpen:(NSMenu *)menu { + if (menu != self.contextMenu) { + return; + } + + if (self.containersTableView.selectedRow == -1) { + self.startContainerMenuItem.enabled = NO; + self.restartContainerMenuItem.enabled = NO; + self.killContainerMenuItem.enabled = NO; + self.deleteContainerMenuItem.enabled = NO; + return; + } + + PMContainer *container = [self->containers objectAtIndex:self.containersTableView.selectedRow]; + + self.startContainerMenuItem.enabled = YES; + self.deleteContainerMenuItem.enabled = YES; + if (container.isRunning) { + self.startContainerMenuItem.title = @"Stop"; + self.restartContainerMenuItem.enabled = YES; + self.killContainerMenuItem.enabled = YES; + } else { + self.startContainerMenuItem.title = @"Start"; + self.restartContainerMenuItem.enabled = NO; + self.killContainerMenuItem.enabled = NO; + } +} + + +- (IBAction)startContainerMenuDidClick:(id)sender { + if (self.containersTableView.selectedRow == -1) { + return; + } + + PMContainer *container = [self->containers objectAtIndex:self.containersTableView.selectedRow]; + __block NSString *operation; + PMOperationCallback callback = ^(PMOperationResult *result) { + if (!result.succeeded) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = [NSString stringWithFormat:@"Could not %@ container %@", operation, container.containerName]; + alert.informativeText = result.output; + NSButton *yesButton = [alert addButtonWithTitle:@"OK"]; + yesButton.keyEquivalent = @"\r"; + [alert runModal]; + } + }; + + if (container.isRunning) { + container.containerStatus = @"Stopping..."; + operation = @"stop"; + [PMManager.manager stopContainer:container withCallback:callback]; + } else { + container.containerStatus = @"Starting..."; + operation = @"start"; + [PMManager.manager startContainer:container withCallback:callback]; + } +} + +- (IBAction)restartContainerMenuDidClick:(id)sender { + if (self.containersTableView.selectedRow == -1) { + return; + } + + PMContainer *container = [self->containers objectAtIndex:self.containersTableView.selectedRow]; + [PMManager.manager restartContainer:container withCallback:^(PMOperationResult * _Nonnull result) { + if (!result.succeeded) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = [NSString stringWithFormat:@"Could not restart %@", container.containerName]; + alert.informativeText = result.output; + NSButton *yesButton = [alert addButtonWithTitle:@"OK"]; + yesButton.keyEquivalent = @"\r"; + [alert runModal]; + } + }]; +} + +- (IBAction)killContainerMenuDidClick:(id)sender { + if (self.containersTableView.selectedRow == -1) { + return; + } + + PMContainer *container = [self->containers objectAtIndex:self.containersTableView.selectedRow]; + [PMManager.manager killContainer:container withCallback:^(PMOperationResult * _Nonnull result) { + if (!result.succeeded) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = [NSString stringWithFormat:@"Could not kill %@", container.containerName]; + alert.informativeText = result.output; + NSButton *yesButton = [alert addButtonWithTitle:@"OK"]; + yesButton.keyEquivalent = @"\r"; + [alert runModal]; + } + }]; +} + +- (IBAction)deleteContainerMenuDidClick:(id)sender { + if (self.containersTableView.selectedRow == -1) { + return; + } + + PMContainer *container = [self->containers objectAtIndex:self.containersTableView.selectedRow]; + [PMManager.manager deleteContainer:container withCallback:^(PMOperationResult * _Nonnull result) { + if (!result.succeeded) { + NSAlert *alert = [[NSAlert alloc] init]; + alert.alertStyle = NSAlertStyleWarning; + alert.messageText = [NSString stringWithFormat:@"Could not delete %@", container.containerName]; + alert.informativeText = result.output; + NSButton *yesButton = [alert addButtonWithTitle:@"OK"]; + yesButton.keyEquivalent = @"\r"; + [alert runModal]; + } + }]; +} + +- (IBAction)preferencesMenuItemDidClick:(id)sender { + NSStoryboard *story = [NSStoryboard storyboardWithName:@"Main" bundle:nil]; + NSWindowController *controller = [story instantiateControllerWithIdentifier:@"PMPreferencesWindow"]; + [controller showWindow:sender]; +} + +@end diff --git a/Podman/Controls/PMContainerCellView.h b/Podman/Controls/PMContainerCellView.h new file mode 100644 index 0000000..36f9541 --- /dev/null +++ b/Podman/Controls/PMContainerCellView.h @@ -0,0 +1,22 @@ +// +// PMContainerCellView.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PMContainerCellView : NSTableCellView + +@property (nonatomic) NSString *containerName; +@property (nonatomic) NSString *containerImage; +@property (nonatomic) NSString *containerStatus; +@property (nonatomic, strong) NSString *containerID; +@property (nonatomic) BOOL showsSeparator; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Controls/PMContainerCellView.m b/Podman/Controls/PMContainerCellView.m new file mode 100644 index 0000000..b5bdba5 --- /dev/null +++ b/Podman/Controls/PMContainerCellView.m @@ -0,0 +1,53 @@ +// +// PMContainerCellView.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMContainerCellView.h" + +@interface PMContainerCellView () + +@property (weak) IBOutlet NSTextField *containerNameLabel; +@property (weak) IBOutlet NSTextField *containerImageLabel; +@property (weak) IBOutlet NSTextField *containerStatusLabel; +@property (weak) IBOutlet NSBox *bottomSeparator; + +@end + +@implementation PMContainerCellView + +- (void)setContainerName:(NSString *)containerName { + self.containerNameLabel.stringValue = containerName; +} + +- (NSString *)containerName { + return self.containerNameLabel.stringValue; +} + +- (void)setContainerImage:(NSString *)containerImage { + self.containerImageLabel.stringValue = containerImage; +} + +- (NSString *)containerImage { + return self.containerImageLabel.stringValue; +} + +- (void)setContainerStatus:(NSString *)containerStatus { + self.containerStatusLabel.stringValue = containerStatus; +} + +- (NSString *)containerStatus { + return self.containerStatusLabel.stringValue; +} + +- (void)setShowsSeparator:(BOOL)showsSeparator { + self.bottomSeparator.hidden = !showsSeparator; +} + +- (BOOL)showsSeparator { + return !self.bottomSeparator.hidden; +} + +@end diff --git a/Podman/Info.plist b/Podman/Info.plist new file mode 100644 index 0000000..4453391 --- /dev/null +++ b/Podman/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSApplicationCategoryType + public.app-category.developer-tools + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + LSUIElement + + NSPrincipalClass + PMApplication + + diff --git a/Podman/Interop/PMCommon.h b/Podman/Interop/PMCommon.h new file mode 100644 index 0000000..c1464b4 --- /dev/null +++ b/Podman/Interop/PMCommon.h @@ -0,0 +1,34 @@ +// +// PMCommon.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#ifndef PMCommon_h +#define PMCommon_h + +typedef enum : NSUInteger { + PMManagerInstallStatusDownloadingVM, + PMManagerInstallStatusExtracting, +} PMManagerInstallStatus; + +typedef enum : NSUInteger { + PMServiceStatusRunning, + PMServiceStatusStarting, + PMServiceStatusStopped, +} PMServiceStatus; + +typedef enum : NSUInteger { + PMDetectStateNotInPath, + PMDetectStateError, + PMDetectStateOK, +} PMDetectState; + +typedef enum : NSUInteger { + PMVMPresencePresent, + PMVMPresenceAbsent, + PMVMPresenceError, +} PMVMPresence; + +#endif /* PMCommon_h */ diff --git a/Podman/Interop/PMContainer.h b/Podman/Interop/PMContainer.h new file mode 100644 index 0000000..0ef9cad --- /dev/null +++ b/Podman/Interop/PMContainer.h @@ -0,0 +1,34 @@ +// +// PMContainer.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import +#import "PMOperationResult.h" + +NS_ASSUME_NONNULL_BEGIN + +/// PMContainer represents a single container in the Podman +@interface PMContainer : NSObject + + +/// Represents the container ID +@property (nonatomic) NSString *containerID; + +/// Represents the container name +@property (nonatomic) NSString *containerName; + +/// Represents the image this container is running +@property (nonatomic) NSString *containerImage; + +/// Represents the container status +@property (nonatomic) NSString *containerStatus; + +/// Returns whether the container is running inferring the value of `containerStatus` +@property (readonly, nonatomic) BOOL isRunning; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Interop/PMContainer.m b/Podman/Interop/PMContainer.m new file mode 100644 index 0000000..119606e --- /dev/null +++ b/Podman/Interop/PMContainer.m @@ -0,0 +1,17 @@ +// +// PMContainer.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMContainer.h" +#import "PMManager.h" + +@implementation PMContainer + +- (BOOL)isRunning { + return [self.containerStatus containsString:@"Up"]; +} + +@end diff --git a/Podman/Interop/PMLoginItem.h b/Podman/Interop/PMLoginItem.h new file mode 100644 index 0000000..61efce2 --- /dev/null +++ b/Podman/Interop/PMLoginItem.h @@ -0,0 +1,31 @@ +// +// PMLoginItem.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PMLoginItem : NSObject + + +/// Determines whether a Login Item exists with the provided URL +/// @param url URL to check for ++ (BOOL)loginItemExistsWithURL:(NSURL *)url; + + +/// Adds a given URL to the Login Items list in case it still does not exist. +/// @param url URL to the Application to be added to Login Items ++ (void)addLoginItemWithURL:(NSURL *)url; + + +/// Removes a given URL from the Login Items list in case it exists +/// @param url URL to the Application to be removed from Login Items ++ (void)removeLoginItemWithURL:(NSURL *)url; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Interop/PMLoginItem.m b/Podman/Interop/PMLoginItem.m new file mode 100644 index 0000000..1cb4eab --- /dev/null +++ b/Podman/Interop/PMLoginItem.m @@ -0,0 +1,74 @@ +// +// PMLoginItem.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMLoginItem.h" +#import + +@implementation PMLoginItem + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" ++ (BOOL)loginItemExistsWithURL:(NSURL *)url { + LSSharedFileListRef itemsRef = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL); + CFArrayRef items = LSSharedFileListCopySnapshot(itemsRef, nil); + + BOOL exists = NO; + for (id item in (__bridge NSArray *)items) { + CFURLRef loginItem = LSSharedFileListItemCopyResolvedURL((__bridge LSSharedFileListItemRef)item, 0, nil); + if (loginItem == nil) { + continue; + } + + if ([(__bridge NSURL *)loginItem isEqual:url]) { + exists = YES; + CFRelease(loginItem); + break; + } + CFRelease(loginItem); + } + + CFRelease(itemsRef); + CFRelease(items); + + return exists; +} + ++ (void)addLoginItemWithURL:(NSURL *)url { + if ([self loginItemExistsWithURL:url]) { + return; + } + LSSharedFileListRef itemsRef = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL); + LSSharedFileListItemRef newItem = LSSharedFileListInsertItemURL(itemsRef, kLSSharedFileListItemLast, nil, nil, (__bridge CFURLRef)url, nil, nil); + CFRelease(newItem); + CFRelease(itemsRef); +} + ++ (void)removeLoginItemWithURL:(NSURL *)url { + if (![self loginItemExistsWithURL:url]) { + return; + } + + LSSharedFileListRef itemsRef = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL); + CFArrayRef items = LSSharedFileListCopySnapshot(itemsRef, nil); + + for (id item in (__bridge NSArray *)items) { + CFURLRef loginItem = LSSharedFileListItemCopyResolvedURL((__bridge LSSharedFileListItemRef)item, 0, nil); + if ([(__bridge NSURL *)loginItem isEqual:url]) { + LSSharedFileListItemRemove(itemsRef, (__bridge LSSharedFileListItemRef)item); + CFRelease(loginItem); + break; + } + CFRelease(loginItem); + } + + CFRelease(items); + CFRelease(itemsRef); +} + +#pragma clang diagnostic pop + +@end diff --git a/Podman/Interop/PMManager.h b/Podman/Interop/PMManager.h new file mode 100644 index 0000000..a52cbbc --- /dev/null +++ b/Podman/Interop/PMManager.h @@ -0,0 +1,115 @@ +// +// PMManager.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import +#import "PMCommon.h" +#import "PMContainer.h" +#import "PMOperationResult.h" + +NS_ASSUME_NONNULL_BEGIN + +/// PMManagerInstallState provides a snapshot of the installation progress in a determined moment. +/// This class is passed as a parameter of PMInstallCompletionHandler. +@interface PMManagerInstallState : NSObject + +/// Indicates the installation status on this snapshot +@property (readonly, nonatomic) PMManagerInstallStatus status; + +/// Represents a value that indicates the total progress to complete a task. +@property (readonly, nonatomic) NSUInteger total; + +/// Represents a value indicating the amount of progress completed in relation to `total`. +@property (readonly, nonatomic) NSUInteger completed; + + +/// Initialises a new PMManagerInstallState +/// @param status The status to contain in this state +/// @param total The total progress of the operation +/// @param completed The completed progress of the operation +- (instancetype)initWithStatus:(PMManagerInstallStatus)status total:(NSUInteger)total andCompleted:(NSUInteger)completed; + +@end + +typedef void (^_Nonnull PMInstallProgressHandler)(PMManagerInstallState * _Nonnull state); +typedef void (^_Nonnull PMInstallCompletionHandler)(NSError * _Nullable error); +typedef void (^_Nonnull PMOperationCallback)(PMOperationResult *result); + + +/// PMManager provides utilities to execute operations against the local Podman installation +@interface PMManager : NSObject + +/// Provides a singleton instance of this class. +@property (nonatomic, class, readonly) PMManager *manager; + + +/// Represents the current service status. +@property (nonatomic, readonly) PMServiceStatus serviceStatus; + + +/// Detects whether Podman is available in the current system. Use the method `detectStateValue` to obtain +/// the underlying value representing the result of this operation. +- (PMOperationResult *)detectPodman; + + +/// Detects whether a Podman machine is already provisioned on this system. Use `detectVMValue` to obtain +/// the underlying value representing the result of this operation. +- (PMOperationResult *)detectVM; + + +/// Provisions a default Podman machine on this system. +/// @param progress The handler to be called with information about the progress of the installation. +/// @param completion The handler to be called when the installation completes (with or without errors) +- (nullable NSTask *)installVirtualMachineWithProgress:(PMInstallProgressHandler)progress + andCompletion:(PMInstallCompletionHandler)completion; + + +/// Starts the default Podman machine provisioned on this system. +- (PMOperationResult *)startVM; + +/// Stops the default Podman machine provisioned on this system. +- (PMOperationResult *)stopVM; + + +/// Lists all containers on this system. +/// @param callback Callback to be called with the result of the operation. The callback is already +/// executed in the main queue. +- (void)listContainersWithCallback:(void (^_Nonnull) (PMOperationResult *> * _Nullable list))callback; + + +/// Starts a given PMContainer +/// @param container Container to be started +/// @param callback Callback to be called when the operation completes. The callback is invoked in the +/// main queue. +- (void)startContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback; + +/// Stops a given PMContainer +/// @param container Container to be stopped +/// @param callback Callback to be called when the operation completes. The callback is invoked in the +/// main queue. +- (void)stopContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback; + +/// Restarts a given PMContainer +/// @param container Container to be restarted +/// @param callback Callback to be called when the operation completes. The callback is invoked in the +/// main queue. +- (void)restartContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback; + +/// Kills a given PMContainer +/// @param container Container to be killed +/// @param callback Callback to be called when the operation completes. The callback is invoked in the +/// main queue. +- (void)killContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback; + +/// Deletes a given PMContainer +/// @param container Container to be deleted +/// @param callback Callback to be called when the operation completes. The callback is invoked in the +/// main queue. +- (void)deleteContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Interop/PMManager.m b/Podman/Interop/PMManager.m new file mode 100644 index 0000000..0035f93 --- /dev/null +++ b/Podman/Interop/PMManager.m @@ -0,0 +1,391 @@ +// +// PMManager.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import +#include +#include +#include +#include +#include + +#import "PMManager.h" +#include "PMDispatch.h" + +@import Darwin.C; + +@implementation PMManagerInstallState + +- (instancetype)initWithStatus:(PMManagerInstallStatus)status total:(NSUInteger)total andCompleted:(NSUInteger)completed { + if ((self = [super init]) == nil) { + return nil; + } + + self->_status = status; + self->_total = total; + self->_completed = completed; + + return self; +} + +@end + +@implementation PMManager { + NSString *podmanPath; + NSRegularExpression *downloadExpr; + NSRegularExpression *extractExpr; + NSFileHandle *masterHandle, *slaveHandle; +} + ++ (PMManager *)manager { + static dispatch_once_t onceToken; + static PMManager *manager; + dispatch_once(&onceToken, ^{ + manager = [[self alloc] init]; + }); + + return manager; +} + +- (instancetype)init { + if ((self = [super init]) == nil) { + return nil; + } + + NSError *exprErr = nil; + downloadExpr = [NSRegularExpression + regularExpressionWithPattern:@"(?:\\^\\[\\[\\d*[A-Z])*([^:\\.]+): ?([^\\[]+)\\[([^\\]]+)\\] ?([a-zA-Z0-9\\. \\/]+)" + options:0 + error:&exprErr]; + if (exprErr != nil) { + NSLog(@"CRITICAL: installVirtualMachineWithProgress downloadExpr initialisation failed: %@", exprErr); + abort(); + } + + extractExpr = [NSRegularExpression + regularExpressionWithPattern:@"(?:\\\\^\\[\\[\\d*[A-Z])*([Ee]xtracting[\\n]*)" + options:0 + error:&exprErr + ]; + if (exprErr != nil) { + NSLog(@"CRITICAL: installVirtualMachineWithProgress downloadExpr initialisation failed: %@", exprErr); + abort(); + } + + return self; +} + +- (PMServiceStatus)serviceStatus { + if (![self vmRunning]) { + return PMServiceStatusStopped; + } + + if (![self serviceAccessible]) { + return PMServiceStatusStarting; + } + + return PMServiceStatusRunning; +} + +- (NSArray *)paths { + NSString *path = [NSProcessInfo.processInfo.environment objectForKey:@"PATH"]; + return [path componentsSeparatedByString:@":"]; +} + +- (NSString *)findInPath:(NSString *)appName { + for (NSString *base in [self paths]) { + NSString *target = [base stringByAppendingPathComponent:appName]; + if ([[NSFileManager defaultManager] isExecutableFileAtPath:target]) { + return target; + } + } + + // Test for homebrew path as a last resort... + NSString *base = @"/usr/local/bin"; + NSString *target = [base stringByAppendingPathComponent:appName]; + if ([[NSFileManager defaultManager] isExecutableFileAtPath:target]) { + return target; + } + + return nil; +} + +- (NSTask *)execCommand:(NSString *)command withPipe:(NSPipe *)pipe andArgs:(NSString *)procArgs, ... { + NSMutableArray *argsArr = [[NSMutableArray alloc] init]; + [argsArr addObject:procArgs]; + va_list args; + NSString *arg = nil; + va_start(args, procArgs); + while ((arg = va_arg(args, NSString *)) != nil) { + [argsArr addObject:[arg copy]]; + } + va_end(args); + + NSTask *task = [[NSTask alloc] init]; + task.launchPath = command; + task.arguments = argsArr; + if (pipe != nil) { + task.standardOutput = pipe; + } + + return task; +} + +- (PMOperationResult *)detectPodman { + NSString *podmanPath = [self findInPath:@"podman"]; + if (podmanPath == nil) { + NSLog(@"detectPodman: podman not in PATH"); + return [PMOperationResult resultWithSuccess:YES object:@(PMDetectStateNotInPath) andOutput:nil]; + } + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:podmanPath withPipe:pipe andArgs:@"--version", nil]; + [task launch]; + [task waitUntilExit]; + if (task.terminationStatus != 0) { + return [PMOperationResult resultWithSuccess:NO object:@(PMDetectStateError) andOutput:pipe.fileHandleForReading]; + } + self->podmanPath = podmanPath; + NSLog(@"detectPodman: Podman executable found at %@", podmanPath); + return [PMOperationResult resultWithSuccess:YES object:@(PMDetectStateOK) andOutput:pipe.fileHandleForReading]; +} + +- (PMOperationResult *)detectVM { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"machine", @"list", @"--noheading", nil]; + [task launch]; + [task waitUntilExit]; + + if (task.terminationStatus != 0) { + return [PMOperationResult resultWithSuccess:NO object:@(PMVMPresenceError) andOutput:pipe.fileHandleForReading]; + } + + NSString *output = [[NSString alloc] initWithData:[pipe.fileHandleForReading readDataToEndOfFile] encoding:NSUTF8StringEncoding]; + if ([output stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length == 0) { + return [PMOperationResult resultWithSuccess:YES object:@(PMVMPresenceAbsent) andOutput:nil]; + } + + return [PMOperationResult resultWithSuccess:YES object:@(PMVMPresencePresent) andOutput:nil]; +} + +- (void)handleInstallerOutput:(NSString *)input forProgressHandler:(PMInstallProgressHandler)handler { + NSArray *res = [downloadExpr matchesInString:input options:0 range:NSMakeRange(0, input.length)]; + if (res.count > 0) { + NSTextCheckingResult *match = res[0]; +// NSString *status = [input substringWithRange:[match rangeAtIndex:1]]; // Downloading VM image +// NSString *imageName = [input substringWithRange:[match rangeAtIndex:2]]; // fedora-coreos-34.20210821.1.1-qemu.x86_64.qcow2.xz + NSString *progress = [input substringWithRange:[match rangeAtIndex:3]]; // =================>---------------------------------------- +// NSString *progressText = [input substringWithRange:[match rangeAtIndex:4]]; // 188.2MiB / 601.1MiB + + progress = [progress stringByReplacingOccurrencesOfString:@">" withString:@"="]; + NSUInteger total = 0, completed = 0; + + for (NSUInteger i = 0; i < progress.length; i++) { + total++; + if ([progress characterAtIndex:i] == '=') { + completed++; + } + } + + handler([[PMManagerInstallState alloc] initWithStatus:PMManagerInstallStatusDownloadingVM total:total andCompleted:completed]); + return; + } + + res = [extractExpr matchesInString:input options:0 range:NSMakeRange(0, input.length)]; + if (res.count > 0) { + handler([[PMManagerInstallState alloc] initWithStatus:PMManagerInstallStatusExtracting total:0 andCompleted:0]); + return; + } + + NSLog(@"%@", res); +} + +- (NSTask *)installVirtualMachineWithProgress:(void (^)(PMManagerInstallState * _Nonnull))progress andCompletion:(void (^)(NSError * _Nullable))completion { + // Fake a terminal so we can get download information while it runs. + // This is a really ugly hack, but I'm really not sure what to do instead. + + int fdMaster, fdSlave; + struct termios fakeTermios; + struct winsize sz; + sz.ws_col = 1024; + sz.ws_row = 1024; + sz.ws_xpixel = 60000; + sz.ws_ypixel = 60000; + memset(&fakeTermios, 0, sizeof(struct termios)); + + int rc = openpty(&fdMaster, &fdSlave, NULL, &fakeTermios, &sz); + if (rc != 0) { + NSLog(@"installVirtualMachineWithProgress: openpty failed with status %d", rc); + completion([NSError errorWithDomain:NSPOSIXErrorDomain code:rc userInfo:nil]); + return nil; + } + + fcntl(fdMaster, F_SETFD, FD_CLOEXEC); + fcntl(fdSlave, F_SETFD, FD_CLOEXEC); + + masterHandle = [[NSFileHandle alloc] initWithFileDescriptor:fdMaster closeOnDealloc:YES]; + slaveHandle = [[NSFileHandle alloc] initWithFileDescriptor:fdSlave closeOnDealloc:YES]; + + NSTask *task = [self execCommand:self->podmanPath withPipe:nil andArgs:@"machine", @"init", nil]; + task.standardInput = slaveHandle; + task.standardOutput = slaveHandle; + + __weak typeof(self) weakSelf = self; + masterHandle.readabilityHandler = ^(NSFileHandle *handle) { + NSString *str = [[NSString alloc] initWithData:handle.availableData encoding:NSUTF8StringEncoding]; + NSLog(@"installVirtualMachineWithProgress: [handle offset %lld]: %@", handle.offsetInFile, str); + [weakSelf handleInstallerOutput:str forProgressHandler:progress]; + }; + + NSLog(@"installVirtualMachineWithProgress: Installation launch"); + [task launch]; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ + [task waitUntilExit]; + self->masterHandle = nil; + self->slaveHandle = nil; + if (task.terminationStatus != 0) { + completion([NSError errorWithDomain:@"PMMachineInitExitStatus" code:task.terminationStatus userInfo:nil]); + } else { + completion(nil); + } + }); + return task; +} + +- (bool)vmRunning { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"machine", @"list", @"--noheading", @"--format", @"\"{{.LastUp}}\"", nil]; + [task launch]; + [task waitUntilExit]; + NSString *output = [[NSString alloc] initWithData:[pipe.fileHandleForReading readDataToEndOfFile] encoding:NSUTF8StringEncoding]; + return [output containsString:@"Currently running"]; +} + +- (bool)serviceAccessible { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"ps", nil]; + [task launch]; + [task waitUntilExit]; + return task.terminationStatus == 0; +} + +- (PMOperationResult *)startVM { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"machine", @"start", nil]; + [task launch]; + [task waitUntilExit]; + return [PMOperationResult resultWithTask:task andPipe:pipe]; +} + +- (PMOperationResult *)stopVM { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"machine", @"stop", nil]; + [task launch]; + [task waitUntilExit]; + return [PMOperationResult resultWithTask:task andPipe:pipe]; +} + +- (void)listContainersWithCallback:(void (^)(PMOperationResult *> *))callback { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath + withPipe:pipe + andArgs:@"ps", @"-a", @"--format", @"{{.ID}}${{.Image}}${{.Names}}${{.State}}", nil]; + [PMDispatch background:^{ + [task launch]; + [task waitUntilExit]; + if (task.terminationStatus != 0) { + callback([PMOperationResult resultWithTask:task andPipe:pipe]); + return; + } + + NSString *output = [[NSString alloc] initWithData:[pipe.fileHandleForReading readDataToEndOfFile] encoding:NSUTF8StringEncoding]; + NSArray *lines = [output componentsSeparatedByString:@"\n"]; + NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:lines.count]; + for (NSString *line in lines) { + NSArray *components = [[line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] componentsSeparatedByString:@"$"]; + if (components.count != 4) { + continue; + } + PMContainer *container = [[PMContainer alloc] init]; + container.containerID = components[0]; + container.containerImage = components[1]; + container.containerName = components[2]; + NSString *status = [components[3] stringByReplacingOccurrencesOfString:@" ago" withString:@""]; + container.containerStatus = status; + [result addObject:container]; + } + [result sortUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + PMContainer *ca = obj1, *cb = obj2; + return [ca.containerName compare:cb.containerName]; + }]; + + [PMDispatch sync:^{ + callback([PMOperationResult resultWithSuccess:YES object:result andOutput:nil]); + }]; + }]; +} + +- (void)startContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"start", container.containerID, nil]; + [PMDispatch background:^{ + [task launch]; + [task waitUntilExit]; + [PMDispatch sync:^{ + callback([PMOperationResult resultWithTask:task andPipe:pipe]); + }]; + }]; +} + +- (void)stopContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"stop", container.containerID, nil]; + [PMDispatch background:^{ + [task launch]; + [task waitUntilExit]; + [PMDispatch sync:^{ + callback([PMOperationResult resultWithTask:task andPipe:pipe]); + }]; + }]; +} + +- (void)restartContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"restart", container.containerID, nil]; + [PMDispatch background:^{ + [task launch]; + [task waitUntilExit]; + [PMDispatch sync:^{ + callback([PMOperationResult resultWithTask:task andPipe:pipe]); + }]; + }]; +} + +- (void)killContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"kill", container.containerID, nil]; + [PMDispatch background:^{ + [task launch]; + [task waitUntilExit]; + [PMDispatch sync:^{ + callback([PMOperationResult resultWithTask:task andPipe:pipe]); + }]; + }]; +} + +- (void)deleteContainer:(PMContainer *)container withCallback:(PMOperationCallback)callback { + NSPipe *pipe = [NSPipe pipe]; + NSTask *task = [self execCommand:self->podmanPath withPipe:pipe andArgs:@"rm", @"-f", container.containerID, nil]; + [PMDispatch background:^{ + [task launch]; + [task waitUntilExit]; + [PMDispatch sync:^{ + callback([PMOperationResult resultWithTask:task andPipe:pipe]); + }]; + }]; +} + +@end diff --git a/Podman/Interop/PMOperationResult.h b/Podman/Interop/PMOperationResult.h new file mode 100644 index 0000000..98f58f3 --- /dev/null +++ b/Podman/Interop/PMOperationResult.h @@ -0,0 +1,45 @@ +// +// PMOperationResult.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import +#import "PMCommon.h" + +NS_ASSUME_NONNULL_BEGIN + +/// PMOperationResult represents the result of a background-running task, usually started by a PMManger +/// method. +@interface PMOperationResult <__covariant T> : NSObject + +/// Indicates whether the operation succeeded. This flag indicates whether the underlying process exited with +/// a zeroed status code. +@property (nonatomic, readonly) BOOL succeeded; + +/// Contains the text outputted to the standard output of the underlying process. +@property (nonatomic, readonly) NSString *output; + +/// Contains an arbitrary value set by the method that created this result. Consult the method's documentation +/// to obtain further information. +@property (nonatomic, readonly, strong, nullable) T result; + ++ (instancetype)resultWithSuccess:(BOOL)success andOutput:(nullable NSFileHandle *)output; ++ (instancetype)resultWithSuccess:(BOOL)success object:(nullable T)obj andOutput:(nullable NSFileHandle *)output; ++ (instancetype)resultWithTask:(NSTask *)task andPipe:(NSPipe *)pipe; + +- (instancetype)initWithSuccess:(BOOL)success andOutput:(nullable NSFileHandle *)output; +- (instancetype)initWithSuccess:(BOOL)success object:(nullable T)obj andOutput:(nullable NSFileHandle *)output; + +/// Returns the underlying value as a PMDetectState value +- (PMDetectState)detectStateValue; + +/// Returns the underlying value as a PMServiceStatus value +- (PMServiceStatus)serviceStateValue; + +/// Returns the underlying value as a PMVMPresence value +- (PMVMPresence)vmPresenceValue; +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/Interop/PMOperationResult.m b/Podman/Interop/PMOperationResult.m new file mode 100644 index 0000000..2989562 --- /dev/null +++ b/Podman/Interop/PMOperationResult.m @@ -0,0 +1,63 @@ +// +// PMOperationResult.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMOperationResult.h" + +@implementation PMOperationResult + ++ (instancetype)resultWithSuccess:(BOOL)success andOutput:(NSFileHandle *)output { + return [self resultWithSuccess:success object:nil andOutput:output]; +} + ++ (instancetype)resultWithSuccess:(BOOL)success object:(id)obj andOutput:(NSFileHandle *)output { + return [[self alloc] initWithSuccess:success object:obj andOutput:output]; +} + ++ (instancetype)resultWithTask:(NSTask *)task andPipe:(NSPipe *)pipe { + return [self resultWithSuccess:task.terminationStatus == 0 andOutput:pipe.fileHandleForReading]; +} + +- (instancetype)initWithSuccess:(BOOL)success object:(id)obj andOutput:(NSFileHandle *)output { + if ((self = [self initWithSuccess:success andOutput:output]) == nil) { + return self; + } + self->_result = obj; + return self; +} + +- (instancetype)initWithSuccess:(BOOL)success andOutput:(NSFileHandle *)output { + if ((self = [super init]) == nil) { + return nil; + } + + if (output != nil) { + self->_output = [[NSString alloc] initWithData:[output readDataToEndOfFile] encoding:NSUTF8StringEncoding]; + } else { + self->_output = @""; + } + + self->_succeeded = success; + + return self; +} + +- (PMDetectState)detectStateValue { + NSNumber *value = self.result; + return value.unsignedIntegerValue; +} + +- (PMServiceStatus)serviceStateValue { + NSNumber *value = self.result; + return value.unsignedIntegerValue; +} + +- (PMVMPresence)vmPresenceValue { + NSNumber *value = self.result; + return value.unsignedIntegerValue; +} + +@end diff --git a/Podman/PMApplication.h b/Podman/PMApplication.h new file mode 100644 index 0000000..31549fa --- /dev/null +++ b/Podman/PMApplication.h @@ -0,0 +1,17 @@ +// +// PMApplication.h +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// PMApplication represents the entrypoint for this application. +@interface PMApplication : NSApplication + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/PMApplication.m b/Podman/PMApplication.m new file mode 100644 index 0000000..af59ffb --- /dev/null +++ b/Podman/PMApplication.m @@ -0,0 +1,26 @@ +// +// PMApplication.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import "PMApplication.h" +#import "AppDelegate.h" + +@implementation PMApplication { + AppDelegate *appDelegate; +} + +- (instancetype)init { + if ((self = [super init]) == nil) { + return self; + } + + self->appDelegate = [[AppDelegate alloc] init]; + self.delegate = self->appDelegate; + + return self; +} + +@end diff --git a/Podman/PMDispatch.h b/Podman/PMDispatch.h new file mode 100644 index 0000000..07ee397 --- /dev/null +++ b/Podman/PMDispatch.h @@ -0,0 +1,32 @@ +// +// PMDispatch.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +/// PMDispatch provides utility functions for dispatching blocks through the Grand Central Dispatch +@interface PMDispatch : NSObject + +/// Asynchronously executes a given block in a background queue. Blocks being executed here must not +/// attempt to update the UI. In case that's needed, execute any UI updates in another block provided to +/// `sync:` +/// @param block Block to be executed asynchronously. ++ (void)background:(void (^ _Nonnull) (void))block; + +/// Executes a block asynchronously in the main queue. +/// @param block Block to be executed asynchronously. ++ (void)async:(void (^ _Nonnull) (void))block; + +/// Executes a block synchronously in the main queue. +/// @param block Block to be executed synchronously. ++ (void)sync:(void (^ _Nonnull) (void))block; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/PMDispatch.m b/Podman/PMDispatch.m new file mode 100644 index 0000000..74e11e6 --- /dev/null +++ b/Podman/PMDispatch.m @@ -0,0 +1,24 @@ +// +// PMDispatch.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMDispatch.h" + +@implementation PMDispatch + ++ (void)background:(void (^)(void))block { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), block); +} + ++ (void)async:(void (^)(void))block { + dispatch_async(dispatch_get_main_queue(), block); +} + ++ (void)sync:(void (^)(void))block { + dispatch_sync(dispatch_get_main_queue(), block); +} + +@end diff --git a/Podman/PMMoveToApplications.h b/Podman/PMMoveToApplications.h new file mode 100644 index 0000000..c0cc369 --- /dev/null +++ b/Podman/PMMoveToApplications.h @@ -0,0 +1,23 @@ +// +// PFMoveApplication.h, version 1.25 +// LetsMove +// +// Created by Andy Kim at Potion Factory LLC on 9/17/09 +// Updated by Victor Gama on 9/03/21 +// +// The contents of this file are dedicated to the public domain. + + +#import + +@interface PMMoveToApplications : NSObject + +/** + Moves the running application to ~/Applications or /Applications if the former does not exist. + After the move, it relaunches app from the new location. + DOES NOT work for sandboxed applications. + + Call from \c NSApplication's delegate method \c -applicationWillFinishLaunching: method. */ ++ (void)moveToApplicationsFolderIfNecessary; + +@end diff --git a/Podman/PMMoveToApplications.m b/Podman/PMMoveToApplications.m new file mode 100644 index 0000000..dfdb020 --- /dev/null +++ b/Podman/PMMoveToApplications.m @@ -0,0 +1,513 @@ +// +// PFMoveApplication.m, version 1.25 +// LetsMove +// +// Created by Andy Kim at Potion Factory LLC on 9/17/09 +// Updated by Victor Gama on 9/03/21 +// +// The contents of this file are dedicated to the public domain. + +#import "PMMoveToApplications.h" +#import +#import +#import +#import + +// Strings +// These are macros to be able to use custom i18n tools +#define _I10NS(nsstr) NSLocalizedStringFromTableInBundle(nsstr, @"MoveApplication", [PMMoveToApplications bundle], nil) +#define kStrMoveApplicationCouldNotMove _I10NS(@"Could not move to Applications folder") +#define kStrMoveApplicationQuestionTitle _I10NS(@"Move to Applications folder?") +#define kStrMoveApplicationQuestionTitleHome _I10NS(@"Move to Applications folder in your Home folder?") +#define kStrMoveApplicationQuestionMessage _I10NS(@"I can move myself to the Applications folder if you'd like.") +#define kStrMoveApplicationButtonMove _I10NS(@"Move to Applications Folder") +#define kStrMoveApplicationButtonDoNotMove _I10NS(@"Do Not Move") +#define kStrMoveApplicationQuestionInfoWillRequirePasswd _I10NS(@"Note that this will require an administrator password.") +#define kStrMoveApplicationQuestionInfoInDownloadsFolder _I10NS(@"This will keep your Downloads folder uncluttered.") + +// By default, we use a small control/font for the suppression button. +// If you prefer to use the system default (to match your other alerts), +// set this to 0. +#define PFUseSmallAlertSuppressCheckbox 1 + +@interface PMMoveToApplications () + ++ (NSBundle *)bundle; + +@end + +@implementation PMMoveToApplications + ++ (NSBundle *)bundle { + return [NSBundle mainBundle]; +} + +static NSString *AlertSuppressKey = @"moveToApplicationsFolderAlertSuppress"; +static BOOL MoveInProgress = NO; + +// Main worker function ++ (void)moveToApplicationsFolderIfNecessary { + // Make sure to do our work on the main thread. + // Apparently Electron apps need this for things to work properly. + if (![NSThread isMainThread]) { + dispatch_async(dispatch_get_main_queue(), ^{ + [self moveToApplicationsFolderIfNecessary]; + }); + return; + } + + // Skip if user suppressed the alert before + if ([[NSUserDefaults standardUserDefaults] boolForKey:AlertSuppressKey]) return; + + // Path of the bundle + NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; + + // Check if the bundle is embedded in another application + BOOL isNestedApplication = [self isApplicationAtPathNested:bundlePath]; + + // Skip if the application is already in some Applications folder, + // unless it's inside another app's bundle. + if ([self isInApplicationsFolder:bundlePath] && !isNestedApplication) return; + + // OK, looks like we'll need to do a move - set the status variable appropriately + MoveInProgress = YES; + + // File Manager + NSFileManager *fm = [NSFileManager defaultManager]; + + // Are we on a disk image? + NSString *diskImageDevice = [self containingDiskImageDevice:bundlePath]; + + // Since we are good to go, get the preferred installation directory. + BOOL installToUserApplications = NO; + NSString *applicationsDirectory = [self preferredInstallLocation:&installToUserApplications]; + NSString *bundleName = [bundlePath lastPathComponent]; + NSString *destinationPath = [applicationsDirectory stringByAppendingPathComponent:bundleName]; + + // Check if we need admin password to write to the Applications directory + BOOL needAuthorization = ([fm isWritableFileAtPath:applicationsDirectory] == NO); + + // Check if the destination bundle is already there but not writable + needAuthorization |= ([fm fileExistsAtPath:destinationPath] && ![fm isWritableFileAtPath:destinationPath]); + + // Setup the alert + NSAlert *alert = [[NSAlert alloc] init]; + { + NSString *informativeText = nil; + + [alert setMessageText:(installToUserApplications ? kStrMoveApplicationQuestionTitleHome : kStrMoveApplicationQuestionTitle)]; + + informativeText = kStrMoveApplicationQuestionMessage; + + if (needAuthorization) { + informativeText = [informativeText stringByAppendingString:@" "]; + informativeText = [informativeText stringByAppendingString:kStrMoveApplicationQuestionInfoWillRequirePasswd]; + } + else if ([self isInDownloadsFolder:bundlePath]) { + // Don't mention this stuff if we need authentication. The informative text is long enough as it is in that case. + informativeText = [informativeText stringByAppendingString:@" "]; + informativeText = [informativeText stringByAppendingString:kStrMoveApplicationQuestionInfoInDownloadsFolder]; + } + + [alert setInformativeText:informativeText]; + + // Add accept button + [alert addButtonWithTitle:kStrMoveApplicationButtonMove]; + + // Add deny button + NSButton *cancelButton = [alert addButtonWithTitle:kStrMoveApplicationButtonDoNotMove]; + [cancelButton setKeyEquivalent:[NSString stringWithFormat:@"%C", 0x1b]]; // Escape key + + // Setup suppression button + [alert setShowsSuppressionButton:YES]; + + if (PFUseSmallAlertSuppressCheckbox) { + NSCell *cell = [[alert suppressionButton] cell]; + [cell setControlSize:NSControlSizeSmall]; + [cell setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; + } + } + + // Activate app -- work-around for focus issues related to "scary file from internet" OS dialog. + if (![NSApp isActive]) { + [NSApp activateIgnoringOtherApps:YES]; + } + + if ([alert runModal] == NSAlertFirstButtonReturn) { + NSLog(@"INFO -- Moving myself to the Applications folder"); + + // Move + if (needAuthorization) { + BOOL authorizationCanceled; + if (![self authorizedInstallAt:bundlePath withDestinationPath:destinationPath andCancelFlag:&authorizationCanceled]) { + if (authorizationCanceled) { + NSLog(@"INFO -- Not moving because user canceled authorization"); + MoveInProgress = NO; + return; + } + else { + NSLog(@"ERROR -- Could not copy myself to /Applications with authorization"); + goto fail; + } + } + } + else { + // If a copy already exists in the Applications folder, put it in the Trash + if ([fm fileExistsAtPath:destinationPath]) { + // But first, make sure that it's not running + if ([self isApplicationAtPathRunning:destinationPath]) { + // Give the running app focus and terminate myself + NSLog(@"INFO -- Switching to an already running version"); + [[NSTask launchedTaskWithLaunchPath:@"/usr/bin/open" arguments:[NSArray arrayWithObject:destinationPath]] waitUntilExit]; + MoveInProgress = NO; + exit(0); + } + else { + if (![self trash:[applicationsDirectory stringByAppendingPathComponent:bundleName]]) + goto fail; + } + } + + if (![self copyBundleAt:bundlePath to:destinationPath]) { + NSLog(@"ERROR -- Could not copy myself to %@", destinationPath); + goto fail; + } + } + + // Trash the original app. It's okay if this fails. + // NOTE: This final delete does not work if the source bundle is in a network mounted volume. + // Calling rm or file manager's delete method doesn't work either. It's unlikely to happen + // but it'd be great if someone could fix this. + if (!isNestedApplication && diskImageDevice == nil && ![self deleteOrTrash:bundlePath]) { + NSLog(@"WARNING -- Could not delete application after moving it to Applications folder"); + } + + // Relaunch. + [self relaunchWithPath:destinationPath]; + + // Launched from within a disk image? -- unmount (if no files are open after 5 seconds, + // otherwise leave it mounted). + if (diskImageDevice && !isNestedApplication) { + NSString *script = [NSString stringWithFormat:@"(/bin/sleep 5 && /usr/bin/hdiutil detach %@) &", [self shellQuotedString:diskImageDevice]]; + [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:[NSArray arrayWithObjects:@"-c", script, nil]]; + } + + MoveInProgress = NO; + exit(0); + } + // Save the alert suppress preference if checked + else if ([[alert suppressionButton] state] == NSControlStateValueOn) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:AlertSuppressKey]; + } + + MoveInProgress = NO; + return; + +fail: + { + // Show failure message + alert = [[NSAlert alloc] init]; + [alert setMessageText:kStrMoveApplicationCouldNotMove]; + [alert runModal]; + MoveInProgress = NO; + } +} + ++ (BOOL) PFMoveIsInProgres { + return MoveInProgress; +} + + + +#pragma mark - +#pragma mark Helper Functions + ++ (NSString *)preferredInstallLocation:(BOOL *)isUserDirectory { + // Return the preferred install location. + // Assume that if the user has a ~/Applications folder, they'd prefer their + // applications to go there. + + NSFileManager *fm = [NSFileManager defaultManager]; + + NSArray *userApplicationsDirs = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES); + + if ([userApplicationsDirs count] > 0) { + NSString *userApplicationsDir = [userApplicationsDirs objectAtIndex:0]; + BOOL isDirectory; + + if ([fm fileExistsAtPath:userApplicationsDir isDirectory:&isDirectory] && isDirectory) { + // User Applications directory exists. Get the directory contents. + NSArray *contents = [fm contentsOfDirectoryAtPath:userApplicationsDir error:NULL]; + + // Check if there is at least one ".app" inside the directory. + for (NSString *contentsPath in contents) { + if ([[contentsPath pathExtension] isEqualToString:@"app"]) { + if (isUserDirectory) *isUserDirectory = YES; + return [userApplicationsDir stringByResolvingSymlinksInPath]; + } + } + } + } + + // No user Applications directory in use. Return the machine local Applications directory + if (isUserDirectory) *isUserDirectory = NO; + + return [[NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSLocalDomainMask, YES) lastObject] stringByResolvingSymlinksInPath]; +} + ++ (BOOL)isInApplicationsFolder:(NSString *)path { + // Check all the normal Application directories + NSArray *applicationDirs = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSAllDomainsMask, YES); + for (NSString *appDir in applicationDirs) { + if ([path hasPrefix:appDir]) return YES; + } + + // Also, handle the case that the user has some other Application directory (perhaps on a separate data partition). + if ([[path pathComponents] containsObject:@"Applications"]) return YES; + + return NO; +} + ++ (BOOL)isInDownloadsFolder:(NSString *)path { + NSArray *downloadDirs = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSAllDomainsMask, YES); + for (NSString *downloadsDirPath in downloadDirs) { + if ([path hasPrefix:downloadsDirPath]) return YES; + } + + return NO; +} + ++ (BOOL)isApplicationAtPathRunning:(NSString *)bundlePath { + bundlePath = [bundlePath stringByStandardizingPath]; + + for (NSRunningApplication *runningApplication in [[NSWorkspace sharedWorkspace] runningApplications]) { + NSString *runningAppBundlePath = [[[runningApplication bundleURL] path] stringByStandardizingPath]; + if ([runningAppBundlePath isEqualToString:bundlePath]) { + return YES; + } + } + + return NO; +} + ++ (BOOL)isApplicationAtPathNested:(NSString *)path { + NSString *containingPath = [path stringByDeletingLastPathComponent]; + + NSArray *components = [containingPath pathComponents]; + for (NSString *component in components) { + if ([[component pathExtension] isEqualToString:@"app"]) { + return YES; + } + } + + return NO; +} + ++ (NSString *)containingDiskImageDevice:(NSString *)path { + NSString *containingPath = [path stringByDeletingLastPathComponent]; + + struct statfs fs; + if (statfs([containingPath fileSystemRepresentation], &fs) || (fs.f_flags & MNT_ROOTFS)) + return nil; + + NSString *device = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:fs.f_mntfromname length:strlen(fs.f_mntfromname)]; + + NSTask *hdiutil = [[NSTask alloc] init]; + [hdiutil setLaunchPath:@"/usr/bin/hdiutil"]; + [hdiutil setArguments:[NSArray arrayWithObjects:@"info", @"-plist", nil]]; + [hdiutil setStandardOutput:[NSPipe pipe]]; + [hdiutil launch]; + [hdiutil waitUntilExit]; + + NSData *data = [[[hdiutil standardOutput] fileHandleForReading] readDataToEndOfFile]; + NSDictionary *info = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:NULL];; + + if (![info isKindOfClass:[NSDictionary class]]) return nil; + + NSArray *images = (NSArray *)[info objectForKey:@"images"]; + if (![images isKindOfClass:[NSArray class]]) return nil; + + for (NSDictionary *image in images) { + if (![image isKindOfClass:[NSDictionary class]]) return nil; + + id systemEntities = [image objectForKey:@"system-entities"]; + if (![systemEntities isKindOfClass:[NSArray class]]) return nil; + + for (NSDictionary *systemEntity in systemEntities) { + if (![systemEntity isKindOfClass:[NSDictionary class]]) return nil; + + NSString *devEntry = [systemEntity objectForKey:@"dev-entry"]; + if (![devEntry isKindOfClass:[NSString class]]) return nil; + + if ([devEntry isEqualToString:device]) + return device; + } + } + + return nil; +} + ++ (BOOL) trash:(NSString *)path { + BOOL result = [[NSFileManager defaultManager] trashItemAtURL:[NSURL fileURLWithPath:path] resultingItemURL:NULL error:NULL]; + + // As a last resort try trashing with AppleScript. + // This allows us to trash the app in macOS Sierra even when the app is running inside + // an app translocation image. + if (!result) { + NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource: + [NSString stringWithFormat:@"\ + set theFile to POSIX file \"%@\" \n\ + tell application \"Finder\" \n\ + move theFile to trash \n\ + end tell", path]]; + NSDictionary *errorDict = nil; + NSAppleEventDescriptor *scriptResult = [appleScript executeAndReturnError:&errorDict]; + if (scriptResult == nil) { + NSLog(@"Trash AppleScript error: %@", errorDict); + } + result = (scriptResult != nil); + } + + if (!result) { + NSLog(@"ERROR -- Could not trash '%@'", path); + } + + return result; +} + ++ (BOOL)deleteOrTrash:(NSString *)path { + NSError *error; + + if ([[NSFileManager defaultManager] removeItemAtPath:path error:&error]) { + return YES; + } + else { + // Don't log warning if on Sierra and running inside App Translocation path + if ([path rangeOfString:@"/AppTranslocation/"].location == NSNotFound) + NSLog(@"WARNING -- Could not delete '%@': %@", path, [error localizedDescription]); + + return [self trash:path]; + } +} + ++ (BOOL)authorizedInstallAt:(NSString *)srcPath withDestinationPath:(NSString *)dstPath andCancelFlag:(BOOL *)canceled { + if (canceled) *canceled = NO; + + // Make sure that the destination path is an app bundle. We're essentially running 'sudo rm -rf' + // so we really don't want to fuck this up. + if (![[dstPath pathExtension] isEqualToString:@"app"]) return NO; + + // Do some more checks + if ([[dstPath stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] == 0) return NO; + if ([[srcPath stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] == 0) return NO; + + int pid, status; + AuthorizationRef myAuthorizationRef; + + // Get the authorization + OSStatus err = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &myAuthorizationRef); + if (err != errAuthorizationSuccess) return NO; + + AuthorizationItem myItems = {kAuthorizationRightExecute, 0, NULL, 0}; + AuthorizationRights myRights = {1, &myItems}; + AuthorizationFlags myFlags = (AuthorizationFlags)(kAuthorizationFlagInteractionAllowed | kAuthorizationFlagExtendRights | kAuthorizationFlagPreAuthorize); + + err = AuthorizationCopyRights(myAuthorizationRef, &myRights, NULL, myFlags, NULL); + if (err != errAuthorizationSuccess) { + if (err == errAuthorizationCanceled && canceled) + *canceled = YES; + goto fail; + } + + static OSStatus (*security_AuthorizationExecuteWithPrivileges)(AuthorizationRef authorization, const char *pathToTool, + AuthorizationFlags options, char * const *arguments, + FILE **communicationsPipe) = NULL; + if (!security_AuthorizationExecuteWithPrivileges) { + // On 10.7, AuthorizationExecuteWithPrivileges is deprecated. We want to still use it since there's no + // good alternative (without requiring code signing). We'll look up the function through dyld and fail + // if it is no longer accessible. If Apple removes the function entirely this will fail gracefully. If + // they keep the function and throw some sort of exception, this won't fail gracefully, but that's a + // risk we'll have to take for now. + security_AuthorizationExecuteWithPrivileges = (OSStatus (*)(AuthorizationRef, const char*, + AuthorizationFlags, char* const*, + FILE **)) dlsym(RTLD_DEFAULT, "AuthorizationExecuteWithPrivileges"); + } + if (!security_AuthorizationExecuteWithPrivileges) goto fail; + + // Delete the destination + { + char *args[] = {"-rf", (char *)[dstPath fileSystemRepresentation], NULL}; + err = security_AuthorizationExecuteWithPrivileges(myAuthorizationRef, "/bin/rm", kAuthorizationFlagDefaults, args, NULL); + if (err != errAuthorizationSuccess) goto fail; + + // Wait until it's done + pid = wait(&status); + if (pid == -1 || !WIFEXITED(status)) goto fail; // We don't care about exit status as the destination most likely does not exist + } + + // Copy + { + char *args[] = {"-pR", (char *)[srcPath fileSystemRepresentation], (char *)[dstPath fileSystemRepresentation], NULL}; + err = security_AuthorizationExecuteWithPrivileges(myAuthorizationRef, "/bin/cp", kAuthorizationFlagDefaults, args, NULL); + if (err != errAuthorizationSuccess) goto fail; + + // Wait until it's done + pid = wait(&status); + if (pid == -1 || !WIFEXITED(status) || WEXITSTATUS(status)) goto fail; + } + + AuthorizationFree(myAuthorizationRef, kAuthorizationFlagDefaults); + return YES; + +fail: + AuthorizationFree(myAuthorizationRef, kAuthorizationFlagDefaults); + return NO; +} + ++ (BOOL)copyBundleAt:(NSString *)srcPath to:(NSString *)dstPath { + NSFileManager *fm = [NSFileManager defaultManager]; + NSError *error = nil; + + if ([fm copyItemAtPath:srcPath toPath:dstPath error:&error]) { + return YES; + } + else { + NSLog(@"ERROR -- Could not copy '%@' to '%@' (%@)", srcPath, dstPath, error); + return NO; + } +} + ++ (NSString *)shellQuotedString:(NSString *)string { + return [NSString stringWithFormat:@"'%@'", [string stringByReplacingOccurrencesOfString:@"'" withString:@"'\\''"]]; +} + ++ (void)relaunchWithPath:(NSString *)destinationPath { + // The shell script waits until the original app process terminates. + // This is done so that the relaunched app opens as the front-most app. + int pid = [[NSProcessInfo processInfo] processIdentifier]; + + // Command run just before running open /final/path + NSString *preOpenCmd = @""; + + NSString *quotedDestinationPath = [self shellQuotedString:destinationPath]; + + // OS X >=10.5: + // Before we launch the new app, clear xattr:com.apple.quarantine to avoid + // duplicate "scary file from the internet" dialog. + if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_5) { + // Add the -r flag on 10.6 + preOpenCmd = [NSString stringWithFormat:@"/usr/bin/xattr -d -r com.apple.quarantine %@", quotedDestinationPath]; + } + else { + preOpenCmd = [NSString stringWithFormat:@"/usr/bin/xattr -d com.apple.quarantine %@", quotedDestinationPath]; + } + + NSString *script = [NSString stringWithFormat:@"(while /bin/kill -0 %d >&/dev/null; do /bin/sleep 0.1; done; %@; /usr/bin/open %@) &", pid, preOpenCmd, quotedDestinationPath]; + + [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:[NSArray arrayWithObjects:@"-c", script, nil]]; +} + + +@end + + diff --git a/Podman/PMPreferences.h b/Podman/PMPreferences.h new file mode 100644 index 0000000..3202cfd --- /dev/null +++ b/Podman/PMPreferences.h @@ -0,0 +1,30 @@ +// +// PMPreferences.h +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +/// PMPreferences provides helper properties for handling the application's preferences +@interface PMPreferences : NSObject + +/// Determines whether the application should start automatically during login +@property (nonatomic, class) BOOL startAtLogin; + +/// Determines whether the application should start Podman's VM at startup +@property (nonatomic, class) BOOL startPodmanVM; + +/// Determines whether the application should check for updates automatically +@property (nonatomic, class) BOOL checkForUpdates; + +/// Determines whether the application already offered to start at login +@property (nonatomic, class) BOOL askedToStartAtLogin; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Podman/PMPreferences.m b/Podman/PMPreferences.m new file mode 100644 index 0000000..d041ac5 --- /dev/null +++ b/Podman/PMPreferences.m @@ -0,0 +1,52 @@ +// +// PMPreferences.m +// Podman macOS +// +// Created by Victor Gama on 03/09/2021. +// + +#import "PMPreferences.h" +#import "PMLoginItem.h" + +@implementation PMPreferences + ++ (BOOL)startAtLogin { + return [PMLoginItem loginItemExistsWithURL:[[NSBundle mainBundle] bundleURL]]; +} + ++ (void)setStartAtLogin:(BOOL)startAtLogin { + if (startAtLogin) { + [PMLoginItem addLoginItemWithURL:[[NSBundle mainBundle] bundleURL]]; + } else { + [PMLoginItem removeLoginItemWithURL:[[NSBundle mainBundle] bundleURL]]; + } +} + ++ (BOOL)startPodmanVM { + if ([[NSUserDefaults standardUserDefaults] objectForKey:@"autoStartVM"] == nil) { + return YES; + } + return [[NSUserDefaults standardUserDefaults] boolForKey:@"autoStartVM"]; +} + ++ (void)setStartPodmanVM:(BOOL)startPodmanVM { + [[NSUserDefaults standardUserDefaults] setBool:startPodmanVM forKey:@"autoStartVM"]; +} + ++ (BOOL)checkForUpdates { + return [[NSUserDefaults standardUserDefaults] boolForKey:@"autoUpdate"]; +} + ++ (void)setCheckForUpdates:(BOOL)checkForUpdates { + [[NSUserDefaults standardUserDefaults] setBool:checkForUpdates forKey:@"autoUpdate"]; +} + ++ (BOOL)askedToStartAtLogin { + return [[NSUserDefaults standardUserDefaults] boolForKey:@"askedToAutoStart"]; +} + ++ (void)setAskedToStartAtLogin:(BOOL)askedToStartAtLogin { + [[NSUserDefaults standardUserDefaults] setBool:askedToStartAtLogin forKey:@"askedToAutoStart"]; +} + +@end diff --git a/Podman/Podman.entitlements b/Podman/Podman.entitlements new file mode 100644 index 0000000..0c67376 --- /dev/null +++ b/Podman/Podman.entitlements @@ -0,0 +1,5 @@ + + + + + diff --git a/Podman/main.m b/Podman/main.m new file mode 100644 index 0000000..86f64a7 --- /dev/null +++ b/Podman/main.m @@ -0,0 +1,15 @@ +// +// main.m +// Podman macOS +// +// Created by Victor Gama on 02/09/2021. +// + +#import + +int main(int argc, const char * argv[]) { + @autoreleasepool { + // Setup code that might create autoreleased objects goes here. + } + return NSApplicationMain(argc, argv); +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..5dc2192 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Podman for macOS + + + +![](https://img.shields.io/badge/-Electron--free-blue) ![](https://img.shields.io/badge/license-MIT-blue) + + +"Podman for macOS" is a macOS frontend for [Podman](https://github.com/containers/podman). It can be +used to start and stop both the Podman Machine and its running containers. In case a Podman Machine +is not yet setup, the application can provision and start it automatically. Additionally, users may +set it to automatically start and bring the machine up during login. + +> ⚠️ **Heads up!** Support to Apple M1 is under development. + +

+ +## Installing + +1. Install [Podman](https://github.com/containers/podman) through [Homebrew](https://brew.sh): + ``` + brew install podman + ``` +2. Download a [Precompiled Binary](https://github.com/heyvito/podman-macos), or clone this repo and +build it. +3. Move the application to your Application's folder +4. Launch it. + +## Contributing +Contributions are welcome! Feel free to send a Pull-Request, or file an issue in case you run into +any problem. + +## TODO + +- [ ] Provide Notarized binaries +- [ ] Add support to Apple M1 + +## Acknowledgements + +- Thanks [@ofeefo](https://github.com/ofeefo) for tips regarding UI ♥️ +- Thanks [@RLMD](https://github.com/RLMD) for creating the Menu Bar icon ♥️ + +## License + +``` +The MIT License (MIT) + +Copyright (c) 2021 Victor Gama + +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. +```