[
  {
    "path": "DNSCrypt-Menubar/COPYING",
    "content": "/*\n * Copyright (c) 2011-2014 OpenDNS, Inc.\n * Copyright (c) 2014 AlterStep\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/AppDelegate.h",
    "content": "\n#import <Cocoa/Cocoa.h>\n\n#define kDNSCRYPT_PREFPANE_APP_PATH @\"/Library/PreferencePanes/DNSCrypt.prefPane\"\n#define kDNSCRYPT_USR_BASE_DIR kDNSCRYPT_PREFPANE_APP_PATH @\"/Contents/Resources/usr\"\n#define kDNSCRIPT_SCRIPTS_BASE_DIR kDNSCRYPT_USR_BASE_DIR @\"/scripts\"\n#define kDNSCRYPT_VAR_BASE_DIR @\"/Library/Application Support/DNSCrypt\"\n#define kDNSCRYPT_CONTROL_DIR kDNSCRYPT_VAR_BASE_DIR @\"/control\"\n\n@interface AppDelegate : NSObject <NSApplicationDelegate> {\n    NSWindow *_window;\n    NSMenu *_dnscryptMenu;\n    NSStatusItem *_statusItem;\n    NSMenuItem *_versionMenuItem;\n    NSMenuItem *_statusResolversMenuItem;\n    NSMenuItem *_dnscryptMenuItem;\n}\n\n#define kREFRESH_DELAY 2.0\n#define kCHECKBOXES_AFTER_CHANGE_DELAY 8.0\n#define kMAX_TRIES_AFTER_CHANGE (30 / kREFRESH_DELAY)\n\ntypedef enum {\n    kDNS_CONFIGURATION_UNKNOWN, kDNS_CONFIGURATION_VANILLA, kDNS_CONFIGURATION_LOCALHOST\n} DNSConfigurationState;\n\n@property (strong) NSStatusItem *statusItem;\n@property (assign) NSWindow *window;\n\n@property (strong) IBOutlet NSMenu *dnscryptMenu;\n@property (strong) IBOutlet NSMenuItem *versionMenuItem;\n@property (strong) IBOutlet NSMenuItem *statusResolversMenuItem;\n@property (strong) IBOutlet NSMenuItem *dnscryptMenuItem;\n\n- (IBAction)preferencesMenuItemPushed:(NSMenuItem *)sender;\n- (IBAction)dnscryptMenuItemPushed:(NSMenuItem *)sender;\n\n@end\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/AppDelegate.m",
    "content": "\n#import \"AppDelegate.h\"\n\n@implementation AppDelegate\n@synthesize statusResolversMenuItem = _statusResolversMenuItem;\n@synthesize dnscryptMenuItem = _dnscryptMenuItem;\n@synthesize window = _window;\n@synthesize dnscryptMenu = _dnscryptMenu;\n@synthesize statusItem = _statusItem;\n@synthesize versionMenuItem = _versionMenuItem;\n\nDNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;\n\n- (void) setCheckBoxesEnabled: (BOOL) enabled\n{\n    [_dnscryptMenuItem setEnabled: enabled];\n}\n\n- (NSString *) fromCommand: (NSString *) launchPath withArguments: (NSArray *) arguments\n{\n    NSPipe *pipe = [NSPipe pipe];\n    NSTask *task = [[NSTask alloc] init];\n    NSData *data;\n    NSString *result;\n    task.launchPath = launchPath;\n    task.arguments = arguments;\n    task.standardOutput = pipe;\n    [task launch];\n    data = [[pipe fileHandleForReading] readDataToEndOfFile];\n    [task waitUntilExit];\n    [task release];\n    result = [[[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding] autorelease];\n    if ([result hasSuffix: @\"\\n\"]) {\n        result = [result substringToIndex: result.length - 1];\n    }\n    return result;\n}\n\n- (void) initState\n{\n    NSString *res;\n\n    _dnscryptMenuItem.state = 0;\n\n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-dnscrypt-status.sh\", nil]];\n    if ([res isEqualToString: @\"yes\"]) {\n        [_dnscryptMenuItem setState: 1];\n    }\n}\n\n- (BOOL) resolversForService: (NSArray *) resolversForService includeResolvers:(NSArray *) resolvers\n{\n    NSUInteger matches = 0U;\n    \n    for (NSString *resolverForService in resolversForService) {\n        if ([resolvers containsObject: resolverForService]) {\n            matches++;\n        } else {\n            break;\n        }\n    }\n    if (matches >= resolvers.count) {\n        return TRUE;\n    }\n    return FALSE;\n}\n\n- (void) updateLedStatus\n{\n    NSImage *led = nil;\n    \n    switch (currentState) {\n        case kDNS_CONFIGURATION_LOCALHOST:\n            led = [NSImage imageNamed: @\"icon-dnscrypt-active\"];\n            break;\n        case kDNS_CONFIGURATION_VANILLA:\n            led = [NSImage imageNamed: @\"icon-dnscrypt-inactive\"];\n            break;\n        default:\n            led = [NSImage imageNamed: @\"icon-no-network\"];\n    }\n    _statusItem.image = led;\n}\n\n- (BOOL) updateStatusWithCurrentConfig\n{\n    NSString *stateDescription = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh\", nil]];\n    if ([stateDescription isEqualToString: @\"DNSCrypt\"]) {\n        currentState = kDNS_CONFIGURATION_LOCALHOST;\n    } else if ([stateDescription isEqualToString: @\"None\"]) {\n        currentState = kDNS_CONFIGURATION_UNKNOWN;\n    } else if ([stateDescription isEqualToString: @\"Updating\"]) {\n        currentState = kDNS_CONFIGURATION_UNKNOWN;\n    } else if (stateDescription.length > 0) {\n        currentState = kDNS_CONFIGURATION_VANILLA;\n    }\n    [self updateLedStatus];\n    \n    NSString *currentResolvers = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./get-current-resolvers.sh | ./get-upstream-resolvers.sh\", nil]];\n    _statusResolversMenuItem.title = currentResolvers;\n    \n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./gui-pop-conf-change.sh menubar\", nil]];\n    if ([res isEqualToString: @\"yes\"]) {\n        [self initState];\n    }\n    [self setCheckBoxesEnabled: TRUE];\n    \n    return TRUE;\n}\n\n- (void) periodicallyUpdateStatusWithCurrentConfig {\n    [self updateStatusWithCurrentConfig];\n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(periodicallyUpdateStatusWithCurrentConfig) object: nil];\n    [self performSelector: @selector(periodicallyUpdateStatusWithCurrentConfig) withObject:nil afterDelay: 5.0];\n}\n\n- (void) waitForUpdate {\n    NSString *res;\n    static unsigned int tries;\n    \n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-tickets-count.sh\", nil]];\n    if (res.length <= 0 || [res isEqualToString: @\"0\"] || tries > kMAX_TRIES_AFTER_CHANGE) {\n        tries = 0U;\n        [self periodicallyUpdateStatusWithCurrentConfig];\n        return;\n    }\n    tries++;\n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(waitForUpdate) object: nil];\n    [self performSelector: @selector(waitForUpdate) withObject: self afterDelay:kREFRESH_DELAY];\n}\n\n- (void) showSpinners\n{\n    [self setCheckBoxesEnabled: FALSE];\n\n    NSImage *led = [NSImage imageNamed: @\"icon-no-network\"];\n    _statusItem.image = led;\n    \n    [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./gui-push-conf-change.sh prefpane\", nil]];\n    \n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(periodicallyUpdateStatusWithCurrentConfig) object: nil];\n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(waitForUpdate) object: nil];\n    [self performSelector: @selector(waitForUpdate) withObject: self afterDelay:kREFRESH_DELAY];\n}\n\n- (void) awakeFromNib\n{\n    _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];\n    [_statusItem retain];\n    _statusItem.highlightMode = TRUE;\n    _statusItem.toolTip = @\"DNSCrypt\";\n    _statusItem.menu = _dnscryptMenu;\n        \n    NSString *versionStringFormat = NSLocalizedString(@\"Client UI version: %@\", @\"Current UI version as shown in the menu\");\n    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@\"CFBundleShortVersionString\"];\n    _versionMenuItem.title = [NSString stringWithFormat: versionStringFormat, version];\n    \n    [self initState];\n    \n    [self periodicallyUpdateStatusWithCurrentConfig];\n    [self updateLedStatus];\n}\n\n- (void)applicationDidFinishLaunching:(NSNotification *)aNotification\n{\n}\n\n- (IBAction)preferencesMenuItemPushed:(NSMenuItem *)sender\n{\n    NSString *userPreferencePanePath = [NSString stringWithFormat: @\"%@\" kDNSCRYPT_PREFPANE_APP_PATH, NSHomeDirectory()];\n    NSArray *preferencePanePaths = [NSArray arrayWithObjects: userPreferencePanePath, kDNSCRYPT_PREFPANE_APP_PATH, nil];\n    for (NSString *preferencePanePath in preferencePanePaths) {\n        if ([[NSFileManager defaultManager] fileExistsAtPath: preferencePanePath]) {\n            [[NSWorkspace sharedWorkspace] openFile: preferencePanePath];\n            return;\n        }\n    }\n}\n\n- (BOOL) setDNSCryptOn {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-to-dnscrypt.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (BOOL) setDNSCryptOff {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-to-dhcp.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n\n- (IBAction)dnscryptMenuItemPushed:(NSMenuItem *)sender\n{\n    if (sender.state == 0) {\n        sender.state = 1;\n        [self setDNSCryptOn];\n    } else {\n        sender.state = 0;\n        [self setDNSCryptOff];\n    }\n}\n\n@end\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleIconFile</key>\n\t<string>dnscrypt.icns</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.github.dnscrypt-osxclient.${PRODUCT_NAME:rfc1034identifier}</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>DNSCrypt</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0.4</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1.0.4</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.utilities</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>${MACOSX_DEPLOYMENT_TARGET}</string>\n\t<key>LSUIElement</key>\n\t<true/>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>BSD</string>\n\t<key>NSMainNibFile</key>\n\t<string>MainMenu</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'DNSCrypt-Menubar' target in the 'DNSCrypt-Menubar' project\n//\n\n#ifdef __OBJC__\n    #import <Cocoa/Cocoa.h>\n#endif\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/en.lproj/InfoPlist.strings",
    "content": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/en.lproj/MainMenu.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"5056\" systemVersion=\"13D45a\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\">\n    <dependencies>\n        <deployment defaultVersion=\"1060\" identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"5056\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"NSApplication\">\n            <connections>\n                <outlet property=\"delegate\" destination=\"494\" id=\"495\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\"/>\n        <customObject id=\"494\" customClass=\"AppDelegate\">\n            <connections>\n                <outlet property=\"dnscryptMenu\" destination=\"539\" id=\"543\"/>\n                <outlet property=\"dnscryptMenuItem\" destination=\"542\" id=\"578\"/>\n                <outlet property=\"statusResolversMenuItem\" destination=\"550\" id=\"552\"/>\n                <outlet property=\"versionMenuItem\" destination=\"565\" id=\"568\"/>\n            </connections>\n        </customObject>\n        <menu id=\"539\">\n            <items>\n                <menuItem title=\"Enable DNSCrypt\" keyEquivalent=\"e\" id=\"542\">\n                    <connections>\n                        <action selector=\"dnscryptMenuItemPushed:\" target=\"494\" id=\"580\"/>\n                    </connections>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"576\"/>\n                <menuItem title=\"DNSCrypt-OSXClient Preferences\" keyEquivalent=\",\" id=\"570\">\n                    <connections>\n                        <action selector=\"preferencesMenuItemPushed:\" target=\"494\" id=\"571\"/>\n                    </connections>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"564\"/>\n                <menuItem enabled=\"NO\" id=\"565\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"553\"/>\n                <menuItem title=\"Current resolvers:\" enabled=\"NO\" id=\"549\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                </menuItem>\n                <menuItem title=\"...\" enabled=\"NO\" indentationLevel=\"1\" id=\"550\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                </menuItem>\n                <menuItem isSeparatorItem=\"YES\" id=\"554\"/>\n                <menuItem title=\"Hide from the menu bar\" keyEquivalent=\"h\" id=\"558\">\n                    <connections>\n                        <action selector=\"terminate:\" target=\"-1\" id=\"560\"/>\n                    </connections>\n                </menuItem>\n            </items>\n        </menu>\n    </objects>\n</document>\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar/main.m",
    "content": "\n#import <Cocoa/Cocoa.h>\n\nint main(int argc, char *argv[])\n{\n    nice(10);\n    return NSApplicationMain(argc, (const char **)argv);\n}\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t09651148147D832D007FEE31 /* dnscrypt.icns in Resources */ = {isa = PBXBuildFile; fileRef = 09651147147D832D007FEE31 /* dnscrypt.icns */; };\n\t\t098E725E1905DF4C00C8CC6E /* icon-dnscrypt-active.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72581905DF4C00C8CC6E /* icon-dnscrypt-active.png */; };\n\t\t098E72601905DF4C00C8CC6E /* icon-dnscrypt-inactive.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E725A1905DF4C00C8CC6E /* icon-dnscrypt-inactive.png */; };\n\t\t098E72621905DF4C00C8CC6E /* icon-no-network.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E725C1905DF4C00C8CC6E /* icon-no-network.png */; };\n\t\t098E72671905E1A700C8CC6E /* icon-dnscrypt-active@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72641905E1A700C8CC6E /* icon-dnscrypt-active@2x.png */; };\n\t\t098E72681905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72651905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png */; };\n\t\t098E72691905E1A700C8CC6E /* icon-no-network@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 098E72661905E1A700C8CC6E /* icon-no-network@2x.png */; };\n\t\t09A13AD2145F3B9000B227A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09A13AD1145F3B9000B227A4 /* Cocoa.framework */; };\n\t\t09A13ADC145F3B9000B227A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 09A13ADA145F3B9000B227A4 /* InfoPlist.strings */; };\n\t\t09A13ADE145F3B9000B227A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A13ADD145F3B9000B227A4 /* main.m */; };\n\t\t09A13AE5145F3B9000B227A4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A13AE4145F3B9000B227A4 /* AppDelegate.m */; };\n\t\t09A13AE8145F3B9000B227A4 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 09A13AE6145F3B9000B227A4 /* MainMenu.xib */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t0970EAA9160A5B0000865D5D /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t09651147147D832D007FEE31 /* dnscrypt.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = dnscrypt.icns; path = ../dnscrypt.icns; sourceTree = \"<group>\"; };\n\t\t098E72581905DF4C00C8CC6E /* icon-dnscrypt-active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"icon-dnscrypt-active.png\"; sourceTree = \"<group>\"; };\n\t\t098E725A1905DF4C00C8CC6E /* icon-dnscrypt-inactive.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"icon-dnscrypt-inactive.png\"; sourceTree = \"<group>\"; };\n\t\t098E725C1905DF4C00C8CC6E /* icon-no-network.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"icon-no-network.png\"; sourceTree = \"<group>\"; };\n\t\t098E72641905E1A700C8CC6E /* icon-dnscrypt-active@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"icon-dnscrypt-active@2x.png\"; sourceTree = \"<group>\"; };\n\t\t098E72651905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"icon-dnscrypt-inactive@2x.png\"; sourceTree = \"<group>\"; };\n\t\t098E72661905E1A700C8CC6E /* icon-no-network@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"icon-no-network@2x.png\"; sourceTree = \"<group>\"; };\n\t\t09A13ACD145F3B9000B227A4 /* DNSCrypt Menubar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"DNSCrypt Menubar.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t09A13AD1145F3B9000B227A4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };\n\t\t09A13AD4145F3B9000B227A4 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };\n\t\t09A13AD5145F3B9000B227A4 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };\n\t\t09A13AD6145F3B9000B227A4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\t09A13AD9145F3B9000B227A4 /* DNSCrypt-Menubar-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"DNSCrypt-Menubar-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t09A13ADB145F3B9000B227A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = \"<group>\"; };\n\t\t09A13ADD145F3B9000B227A4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\t09A13ADF145F3B9000B227A4 /* DNSCrypt-Menubar-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"DNSCrypt-Menubar-Prefix.pch\"; sourceTree = \"<group>\"; };\n\t\t09A13AE3145F3B9000B227A4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\t09A13AE4145F3B9000B227A4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\t09A13AE7145F3B9000B227A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t09A13ACA145F3B9000B227A4 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t09A13AD2145F3B9000B227A4 /* Cocoa.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t09A13AC2145F3B9000B227A4 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13AD7145F3B9000B227A4 /* DNSCrypt-Menubar */,\n\t\t\t\t09A13AD0145F3B9000B227A4 /* Frameworks */,\n\t\t\t\t09A13ACE145F3B9000B227A4 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09A13ACE145F3B9000B227A4 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13ACD145F3B9000B227A4 /* DNSCrypt Menubar.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09A13AD0145F3B9000B227A4 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13AD1145F3B9000B227A4 /* Cocoa.framework */,\n\t\t\t\t09A13AD3145F3B9000B227A4 /* Other Frameworks */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09A13AD3145F3B9000B227A4 /* Other Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13AD4145F3B9000B227A4 /* AppKit.framework */,\n\t\t\t\t09A13AD5145F3B9000B227A4 /* CoreData.framework */,\n\t\t\t\t09A13AD6145F3B9000B227A4 /* Foundation.framework */,\n\t\t\t);\n\t\t\tname = \"Other Frameworks\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09A13AD7145F3B9000B227A4 /* DNSCrypt-Menubar */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13AE3145F3B9000B227A4 /* AppDelegate.h */,\n\t\t\t\t09A13AE4145F3B9000B227A4 /* AppDelegate.m */,\n\t\t\t\t09A13AE6145F3B9000B227A4 /* MainMenu.xib */,\n\t\t\t\t09A13AD8145F3B9000B227A4 /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = \"DNSCrypt-Menubar\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09A13AD8145F3B9000B227A4 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09651147147D832D007FEE31 /* dnscrypt.icns */,\n\t\t\t\t09A13AD9145F3B9000B227A4 /* DNSCrypt-Menubar-Info.plist */,\n\t\t\t\t09A13ADA145F3B9000B227A4 /* InfoPlist.strings */,\n\t\t\t\t09A13ADD145F3B9000B227A4 /* main.m */,\n\t\t\t\t09A13ADF145F3B9000B227A4 /* DNSCrypt-Menubar-Prefix.pch */,\n\t\t\t\t098E72581905DF4C00C8CC6E /* icon-dnscrypt-active.png */,\n\t\t\t\t098E725A1905DF4C00C8CC6E /* icon-dnscrypt-inactive.png */,\n\t\t\t\t098E725C1905DF4C00C8CC6E /* icon-no-network.png */,\n\t\t\t\t098E72641905E1A700C8CC6E /* icon-dnscrypt-active@2x.png */,\n\t\t\t\t098E72651905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png */,\n\t\t\t\t098E72661905E1A700C8CC6E /* icon-no-network@2x.png */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t09A13ACC145F3B9000B227A4 /* DNSCrypt-Menubar */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 09A13AEB145F3B9000B227A4 /* Build configuration list for PBXNativeTarget \"DNSCrypt-Menubar\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t09A13AC9145F3B9000B227A4 /* Sources */,\n\t\t\t\t09A13ACA145F3B9000B227A4 /* Frameworks */,\n\t\t\t\t09A13ACB145F3B9000B227A4 /* Resources */,\n\t\t\t\t0970EAA9160A5B0000865D5D /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"DNSCrypt-Menubar\";\n\t\t\tproductName = \"DNSCrypt-Menubar\";\n\t\t\tproductReference = 09A13ACD145F3B9000B227A4 /* DNSCrypt Menubar.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t09A13AC4145F3B9000B227A4 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0510;\n\t\t\t};\n\t\t\tbuildConfigurationList = 09A13AC7145F3B9000B227A4 /* Build configuration list for PBXProject \"DNSCrypt-Menubar\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = 09A13AC2145F3B9000B227A4;\n\t\t\tproductRefGroup = 09A13ACE145F3B9000B227A4 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t09A13ACC145F3B9000B227A4 /* DNSCrypt-Menubar */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t09A13ACB145F3B9000B227A4 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t098E72681905E1A700C8CC6E /* icon-dnscrypt-inactive@2x.png in Resources */,\n\t\t\t\t09A13ADC145F3B9000B227A4 /* InfoPlist.strings in Resources */,\n\t\t\t\t098E725E1905DF4C00C8CC6E /* icon-dnscrypt-active.png in Resources */,\n\t\t\t\t09A13AE8145F3B9000B227A4 /* MainMenu.xib in Resources */,\n\t\t\t\t098E72691905E1A700C8CC6E /* icon-no-network@2x.png in Resources */,\n\t\t\t\t098E72601905DF4C00C8CC6E /* icon-dnscrypt-inactive.png in Resources */,\n\t\t\t\t098E72621905DF4C00C8CC6E /* icon-no-network.png in Resources */,\n\t\t\t\t098E72671905E1A700C8CC6E /* icon-dnscrypt-active@2x.png in Resources */,\n\t\t\t\t09651148147D832D007FEE31 /* dnscrypt.icns in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t09A13AC9145F3B9000B227A4 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t09A13ADE145F3B9000B227A4 /* main.m in Sources */,\n\t\t\t\t09A13AE5145F3B9000B227A4 /* AppDelegate.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t09A13ADA145F3B9000B227A4 /* InfoPlist.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13ADB145F3B9000B227A4 /* en */,\n\t\t\t);\n\t\t\tname = InfoPlist.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09A13AE6145F3B9000B227A4 /* MainMenu.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13AE7145F3B9000B227A4 /* en */,\n\t\t\t);\n\t\t\tname = MainMenu.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t09A13AE9145F3B9000B227A4 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = NO;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.6;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t09A13AEA145F3B9000B227A4 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = NO;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.6;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t09A13AEC145F3B9000B227A4 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"\\\"$(SRCROOT)\\\"\",\n\t\t\t\t\t\"\\\"$(SRCROOT)/../../../../../Library/Developer/Xcode/DerivedData/Sparkle-evkudstnytcsfdeunmxihhpyexor/Build/Products/Release\\\"\",\n\t\t\t\t);\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.8;\n\t\t\t\tPRODUCT_NAME = \"DNSCrypt Menubar\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t09A13AED145F3B9000B227A4 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"\\\"$(SRCROOT)\\\"\",\n\t\t\t\t\t\"\\\"$(SRCROOT)/../../../../../Library/Developer/Xcode/DerivedData/Sparkle-evkudstnytcsfdeunmxihhpyexor/Build/Products/Release\\\"\",\n\t\t\t\t);\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"DNSCrypt-Menubar/DNSCrypt-Menubar-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"DNSCrypt-Menubar/DNSCrypt-Menubar-Info.plist\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.8;\n\t\t\t\tPRODUCT_NAME = \"DNSCrypt Menubar\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t09A13AC7145F3B9000B227A4 /* Build configuration list for PBXProject \"DNSCrypt-Menubar\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t09A13AE9145F3B9000B227A4 /* Debug */,\n\t\t\t\t09A13AEA145F3B9000B227A4 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t09A13AEB145F3B9000B227A4 /* Build configuration list for PBXNativeTarget \"DNSCrypt-Menubar\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t09A13AEC145F3B9000B227A4 /* Debug */,\n\t\t\t\t09A13AED145F3B9000B227A4 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 09A13AC4145F3B9000B227A4 /* Project object */;\n}\n"
  },
  {
    "path": "DNSCrypt-Menubar/DNSCrypt-Menubar.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:DNSCrypt-Menubar.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "DNSCrypt-Meta-Installer/DNSCrypt-Meta-Installer.pkgproj",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PROJECT</key>\n\t<dict>\n\t\t<key>PACKAGE_FILES</key>\n\t\t<dict>\n\t\t\t<key>DEFAULT_INSTALL_LOCATION</key>\n\t\t\t<string>/</string>\n\t\t\t<key>HIERARCHY</key>\n\t\t\t<dict>\n\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t<array>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Utilities</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t<string>Applications</string>\n\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t<integer>509</integer>\n\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t</dict>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Application Support</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Documentation</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Filesystems</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Frameworks</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Internet Plug-Ins</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>LaunchAgents</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>LaunchDaemons</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>PreferencePanes</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Preferences</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Printers</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>PrivilegedHelperTools</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>QuickTime</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Screen Savers</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Scripts</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Services</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Widgets</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t</dict>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t<string>Extensions</string>\n\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t<string>System</string>\n\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t</dict>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t<string>Shared</string>\n\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t<integer>1023</integer>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t<string>Users</string>\n\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t</dict>\n\t\t\t\t</array>\n\t\t\t\t<key>GID</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>PATH</key>\n\t\t\t\t<string>/</string>\n\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t<integer>493</integer>\n\t\t\t\t<key>TYPE</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t\t<key>UID</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t</dict>\n\t\t\t<key>PAYLOAD_TYPE</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>VERSION</key>\n\t\t\t<integer>2</integer>\n\t\t</dict>\n\t\t<key>PACKAGE_SCRIPTS</key>\n\t\t<dict>\n\t\t\t<key>PREINSTALL_PATH</key>\n\t\t\t<dict>\n\t\t\t\t<key>PATH</key>\n\t\t\t\t<string>install.sh</string>\n\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t<integer>3</integer>\n\t\t\t</dict>\n\t\t\t<key>RESOURCES</key>\n\t\t\t<array>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t<array/>\n\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>pkg.tgz</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t</array>\n\t\t</dict>\n\t\t<key>PACKAGE_SETTINGS</key>\n\t\t<dict>\n\t\t\t<key>AUTHENTICATION</key>\n\t\t\t<false/>\n\t\t\t<key>CONCLUSION_ACTION</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>IDENTIFIER</key>\n\t\t\t<string>osx.org.pureftpd.pkg.DNSCrypt-Meta-Installer</string>\n\t\t\t<key>OVERWRITE_PERMISSIONS</key>\n\t\t\t<false/>\n\t\t\t<key>VERSION</key>\n\t\t\t<string>0.19</string>\n\t\t</dict>\n\t\t<key>PROJECT_COMMENTS</key>\n\t\t<dict>\n\t\t\t<key>NOTES</key>\n\t\t\t<data>\n\t\t\tPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M\n\t\t\tIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv\n\t\t\tc3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l\n\t\t\tcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7\n\t\t\tIGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250\n\t\t\tZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp\n\t\t\tdGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u\n\t\t\tdGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD\n\t\t\tb2NvYVZlcnNpb24iIGNvbnRlbnQ9IjExODcuMzQiPgo8c3R5bGUg\n\t\t\tdHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5\n\t\t\tPgo8L2JvZHk+CjwvaHRtbD4K\n\t\t\t</data>\n\t\t</dict>\n\t\t<key>PROJECT_SETTINGS</key>\n\t\t<dict>\n\t\t\t<key>BUILD_PATH</key>\n\t\t\t<dict>\n\t\t\t\t<key>PATH</key>\n\t\t\t\t<string>build</string>\n\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t</dict>\n\t\t\t<key>EXCLUDED_FILES</key>\n\t\t\t<array>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.DS_Store</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove .DS_Store files</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \".DS_Store\" files created by the Finder.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.pbdevelopment</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove .pbdevelopment files</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \".pbdevelopment\" files created by ProjectBuilder or Xcode.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>CVS</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.cvsignore</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.cvspass</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.svn</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove SCM metadata</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove helper files and folders used by the CVS and SVN Source Code Management systems.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>classes.nib</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>designable.db</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>info.nib</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Optimize nib files</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \"classes.nib\", \"info.nib\" and \"designable.nib\" files within .nib bundles.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>Resources Disabled</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove Resources Disabled folders</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \"Resources Disabled\" folders.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>SEPARATOR</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t</array>\n\t\t\t<key>NAME</key>\n\t\t\t<string>DNSCrypt</string>\n\t\t</dict>\n\t</dict>\n\t<key>TYPE</key>\n\t<integer>1</integer>\n\t<key>VERSION</key>\n\t<integer>2</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-Meta-Installer/install.sh",
    "content": "#! /bin/sh\n\nenv > /tmp/a\ntdir=$(mktemp -d /tmp/XXXXXXXXXXXXXXXX)\nchmod 755 \"$tdir\"\ntar x -z -C \"$tdir\" -f pkg.tgz\n(sleep 10 ; cd \"$tdir\" ; exec open -W -b 'com.apple.installer' ./DNSCrypt.mpkg) &\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/DNSCrypt-OSX-Installer.pkgproj",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PACKAGES</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>PACKAGE_FILES</key>\n\t\t\t<dict>\n\t\t\t\t<key>DEFAULT_INSTALL_LOCATION</key>\n\t\t\t\t<string>/</string>\n\t\t\t\t<key>HIERARCHY</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Utilities</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Applications</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>509</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Application Support</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Documentation</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Filesystems</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Frameworks</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Internet Plug-Ins</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>LaunchAgents</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>LaunchDaemons</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>PreferencePanes</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Preferences</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Printers</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>PrivilegedHelperTools</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>QuickTime</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Screen Savers</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Scripts</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Services</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Widgets</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>Extensions</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>System</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Shared</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>1023</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Users</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/bin/hostip</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>bin</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_aaaa_blocking.la</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_aaaa_blocking.so</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.la</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.so</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_deviceid.la</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_ldns_opendns_deviceid.so</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_logging.la</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/lib/dnscrypt-proxy/libdcplugin_example_logging.so</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<string>dnscrypt-proxy</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>lib</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/sbin/dnscrypt-proxy</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>sbin</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<string>dnscrypt-proxy</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/share/man/man8/dnscrypt-proxy.8</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/share/man/man8/hostip.8</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<string>man8</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<string>man</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>share</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>local</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>usr</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>PAYLOAD_TYPE</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>VERSION</key>\n\t\t\t\t<integer>2</integer>\n\t\t\t</dict>\n\t\t\t<key>PACKAGE_SCRIPTS</key>\n\t\t\t<dict>\n\t\t\t\t<key>POSTINSTALL_PATH</key>\n\t\t\t\t<dict/>\n\t\t\t\t<key>PREINSTALL_PATH</key>\n\t\t\t\t<dict/>\n\t\t\t\t<key>RESOURCES</key>\n\t\t\t\t<array/>\n\t\t\t</dict>\n\t\t\t<key>PACKAGE_SETTINGS</key>\n\t\t\t<dict>\n\t\t\t\t<key>AUTHENTICATION</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t\t<key>CONCLUSION_ACTION</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>IDENTIFIER</key>\n\t\t\t\t<string>com.github.dnscrypt-osxclient.dnscryptClient.dnscrypt-proxy</string>\n\t\t\t\t<key>LOCATION</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>NAME</key>\n\t\t\t\t<string>DNSCrypt Proxy</string>\n\t\t\t\t<key>OVERWRITE_PERMISSIONS</key>\n\t\t\t\t<false/>\n\t\t\t\t<key>REFERENCE_PATH</key>\n\t\t\t\t<string>/</string>\n\t\t\t\t<key>RELOCATABLE</key>\n\t\t\t\t<false/>\n\t\t\t\t<key>USE_HFS+_COMPRESSION</key>\n\t\t\t\t<true/>\n\t\t\t\t<key>VERSION</key>\n\t\t\t\t<string>1.4.1</string>\n\t\t\t</dict>\n\t\t\t<key>UUID</key>\n\t\t\t<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>PACKAGE_FILES</key>\n\t\t\t<dict>\n\t\t\t\t<key>DEFAULT_INSTALL_LOCATION</key>\n\t\t\t\t<string>/</string>\n\t\t\t\t<key>HIERARCHY</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Utilities</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Applications</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>509</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Application Support</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Documentation</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Filesystems</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Frameworks</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Internet Plug-Ins</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>LaunchAgents</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptAfterboot.plist</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptConsoleChange.plist</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptControlChange.plist</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptNetworkChange.plist</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>LaunchDaemons</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>/Users/j/Library/Developer/Xcode/DerivedData/DNSCrypt-fxkuknmyuyumstcqfthykzrsdius/Build/Products/Release/DNSCrypt.prefPane</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>PreferencePanes</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Preferences</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Printers</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>PrivilegedHelperTools</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>QuickTime</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Screen Savers</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Scripts</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Services</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Widgets</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>Extensions</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>System</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Shared</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>1023</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Users</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<string>/usr/local/bin/alarmer</string>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>bin</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>local</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>usr</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>PAYLOAD_TYPE</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>VERSION</key>\n\t\t\t\t<integer>2</integer>\n\t\t\t</dict>\n\t\t\t<key>PACKAGE_SCRIPTS</key>\n\t\t\t<dict>\n\t\t\t\t<key>POSTINSTALL_PATH</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/Scripts/dnscrypt-prefpane-postinstall.sh</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>PREINSTALL_PATH</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/Scripts/dnscrypt-prefpane-preinstall.sh</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>RESOURCES</key>\n\t\t\t\t<array/>\n\t\t\t</dict>\n\t\t\t<key>PACKAGE_SETTINGS</key>\n\t\t\t<dict>\n\t\t\t\t<key>AUTHENTICATION</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t\t<key>CONCLUSION_ACTION</key>\n\t\t\t\t<integer>2</integer>\n\t\t\t\t<key>IDENTIFIER</key>\n\t\t\t\t<string>com.github.dnscrypt-osxclient.dnscryptClient.DNSCrypt</string>\n\t\t\t\t<key>LOCATION</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>NAME</key>\n\t\t\t\t<string>DNSCrypt Preference Pane</string>\n\t\t\t\t<key>OVERWRITE_PERMISSIONS</key>\n\t\t\t\t<false/>\n\t\t\t\t<key>USE_HFS+_COMPRESSION</key>\n\t\t\t\t<true/>\n\t\t\t\t<key>VERSION</key>\n\t\t\t\t<string>1.0.4</string>\n\t\t\t</dict>\n\t\t\t<key>TYPE</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>UUID</key>\n\t\t\t<string>6FEDF493-DE5C-4438-B4BC-5B5AFCFBB3E6</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>PACKAGE_FILES</key>\n\t\t\t<dict>\n\t\t\t\t<key>DEFAULT_INSTALL_LOCATION</key>\n\t\t\t\t<string>/</string>\n\t\t\t\t<key>HIERARCHY</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>/Users/j/Library/Developer/Xcode/DerivedData/DNSCrypt-Menubar-fcseadxtcidaaddjtyicaarzthfd/Build/Products/Release/DNSCrypt Menubar.app</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Utilities</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Applications</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>509</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Application Support</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Documentation</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Filesystems</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Frameworks</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Internet Plug-Ins</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>com.github.dnscrypt-osxclient.DNSCryptMenuBar.plist</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>420</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>LaunchAgents</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>LaunchDaemons</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>PreferencePanes</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Preferences</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Printers</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>PrivilegedHelperTools</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>QuickTime</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Screen Savers</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Scripts</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Services</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Widgets</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t\t\t<string>Extensions</string>\n\t\t\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Library</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>System</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>CHILDREN</key>\n\t\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t\t\t<string>Shared</string>\n\t\t\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t\t\t<integer>1023</integer>\n\t\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t</array>\n\t\t\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t\t\t<integer>80</integer>\n\t\t\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t\t\t<string>Users</string>\n\t\t\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>GID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>PERMISSIONS</key>\n\t\t\t\t\t<integer>493</integer>\n\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t<key>UID</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>PAYLOAD_TYPE</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>VERSION</key>\n\t\t\t\t<integer>2</integer>\n\t\t\t</dict>\n\t\t\t<key>PACKAGE_SCRIPTS</key>\n\t\t\t<dict>\n\t\t\t\t<key>POSTINSTALL_PATH</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/Scripts/dnscrypt-menubar-postinstall.sh</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>PREINSTALL_PATH</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>/Users/j/OpenDNS/DNSCrypt/OSX/dnscrypt-osx-client/DNSCrypt-OSX-Installer/Scripts/dnscrypt-menubar-preinstall.sh</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>RESOURCES</key>\n\t\t\t\t<array/>\n\t\t\t</dict>\n\t\t\t<key>PACKAGE_SETTINGS</key>\n\t\t\t<dict>\n\t\t\t\t<key>AUTHENTICATION</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t\t<key>CONCLUSION_ACTION</key>\n\t\t\t\t<integer>2</integer>\n\t\t\t\t<key>IDENTIFIER</key>\n\t\t\t\t<string>com.github.dnscrypt-osxclient.dnscryptClient.DNSCrypt-Menubar</string>\n\t\t\t\t<key>LOCATION</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>NAME</key>\n\t\t\t\t<string>DNSCrypt Menu bar</string>\n\t\t\t\t<key>OVERWRITE_PERMISSIONS</key>\n\t\t\t\t<false/>\n\t\t\t\t<key>USE_HFS+_COMPRESSION</key>\n\t\t\t\t<true/>\n\t\t\t\t<key>VERSION</key>\n\t\t\t\t<string>1.0.4</string>\n\t\t\t</dict>\n\t\t\t<key>TYPE</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>UUID</key>\n\t\t\t<string>E69268A3-3CD1-49FF-8B46-4D45A963F8FA</string>\n\t\t</dict>\n\t</array>\n\t<key>PROJECT</key>\n\t<dict>\n\t\t<key>PROJECT_COMMENTS</key>\n\t\t<dict>\n\t\t\t<key>NOTES</key>\n\t\t\t<data>\n\t\t\tPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M\n\t\t\tIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv\n\t\t\tc3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l\n\t\t\tcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7\n\t\t\tIGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250\n\t\t\tZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp\n\t\t\tdGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u\n\t\t\tdGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD\n\t\t\tb2NvYVZlcnNpb24iIGNvbnRlbnQ9IjEyNjUuMiI+CjxzdHlsZSB0\n\t\t\teXBlPSJ0ZXh0L2NzcyI+Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+\n\t\t\tCjwvYm9keT4KPC9odG1sPgo=\n\t\t\t</data>\n\t\t</dict>\n\t\t<key>PROJECT_PRESENTATION</key>\n\t\t<dict>\n\t\t\t<key>BACKGROUND</key>\n\t\t\t<dict>\n\t\t\t\t<key>ALIGNMENT</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>BACKGROUND_PATH</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATH</key>\n\t\t\t\t\t<string>installed_background.gif</string>\n\t\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t\t<integer>1</integer>\n\t\t\t\t</dict>\n\t\t\t\t<key>CUSTOM</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>SCALING</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t</dict>\n\t\t\t<key>INSTALLATION TYPE</key>\n\t\t\t<dict>\n\t\t\t\t<key>HIERARCHIES</key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>INSTALLER</key>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>LIST</key>\n\t\t\t\t\t\t<array>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>DESCRIPTION</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>OPTIONS</key>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>HIDDEN</key>\n\t\t\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<key>PACKAGE_UUID</key>\n\t\t\t\t\t\t\t\t<string>7F7D70AB-F7A2-4027-8304-3063C7B9532F</string>\n\t\t\t\t\t\t\t\t<key>REQUIREMENTS</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TITLE</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TOOLTIP</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>UUID</key>\n\t\t\t\t\t\t\t\t<string>FE4B2779-1476-4341-A773-534E27377369</string>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>DESCRIPTION</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>OPTIONS</key>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>HIDDEN</key>\n\t\t\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<key>PACKAGE_UUID</key>\n\t\t\t\t\t\t\t\t<string>6FEDF493-DE5C-4438-B4BC-5B5AFCFBB3E6</string>\n\t\t\t\t\t\t\t\t<key>TITLE</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TOOLTIP</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>UUID</key>\n\t\t\t\t\t\t\t\t<string>7D8D1323-66FB-4A66-AB2A-CF2276924169</string>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t<key>DESCRIPTION</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>OPTIONS</key>\n\t\t\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t\t\t<key>HIDDEN</key>\n\t\t\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t\t\t<key>PACKAGE_UUID</key>\n\t\t\t\t\t\t\t\t<string>E69268A3-3CD1-49FF-8B46-4D45A963F8FA</string>\n\t\t\t\t\t\t\t\t<key>TITLE</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TOOLTIP</key>\n\t\t\t\t\t\t\t\t<array/>\n\t\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t\t\t<key>UUID</key>\n\t\t\t\t\t\t\t\t<string>979F40E5-BFE3-438D-BAC3-A1D17BEFE932</string>\n\t\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<key>REMOVED</key>\n\t\t\t\t\t\t<dict/>\n\t\t\t\t\t</dict>\n\t\t\t\t</dict>\n\t\t\t\t<key>INSTALLATION TYPE</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t\t<key>MODE</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t</dict>\n\t\t\t<key>INSTALLATION_STEPS</key>\n\t\t\t<array>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewIntroductionController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>Introduction</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewReadMeController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>ReadMe</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewLicenseController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>License</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewDestinationSelectController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>TargetSelect</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewInstallationTypeController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>PackageSelection</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewInstallationController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>Install</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>\n\t\t\t\t\t<string>ICPresentationViewSummaryController</string>\n\t\t\t\t\t<key>INSTALLER_PLUGIN</key>\n\t\t\t\t\t<string>Summary</string>\n\t\t\t\t\t<key>LIST_TITLE_KEY</key>\n\t\t\t\t\t<string>InstallerSectionTitle</string>\n\t\t\t\t</dict>\n\t\t\t</array>\n\t\t\t<key>INTRODUCTION</key>\n\t\t\t<dict>\n\t\t\t\t<key>LOCALIZATIONS</key>\n\t\t\t\t<array/>\n\t\t\t</dict>\n\t\t\t<key>LICENSE</key>\n\t\t\t<dict>\n\t\t\t\t<key>KEYWORDS</key>\n\t\t\t\t<dict/>\n\t\t\t\t<key>LOCALIZATIONS</key>\n\t\t\t\t<array/>\n\t\t\t\t<key>MODE</key>\n\t\t\t\t<integer>0</integer>\n\t\t\t</dict>\n\t\t\t<key>README</key>\n\t\t\t<dict>\n\t\t\t\t<key>LOCALIZATIONS</key>\n\t\t\t\t<array/>\n\t\t\t</dict>\n\t\t\t<key>SUMMARY</key>\n\t\t\t<dict>\n\t\t\t\t<key>LOCALIZATIONS</key>\n\t\t\t\t<array/>\n\t\t\t</dict>\n\t\t\t<key>TITLE</key>\n\t\t\t<dict>\n\t\t\t\t<key>LOCALIZATIONS</key>\n\t\t\t\t<array>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>LANGUAGE</key>\n\t\t\t\t\t\t<string>English</string>\n\t\t\t\t\t\t<key>VALUE</key>\n\t\t\t\t\t\t<string>DNSCrypt OSX Client</string>\n\t\t\t\t\t</dict>\n\t\t\t\t</array>\n\t\t\t</dict>\n\t\t</dict>\n\t\t<key>PROJECT_REQUIREMENTS</key>\n\t\t<dict>\n\t\t\t<key>LIST</key>\n\t\t\t<array>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>BEHAVIOR</key>\n\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t<key>DICTIONARY</key>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_CPU_ARCHITECTURE_FAMILY</key>\n\t\t\t\t\t\t<integer>2</integer>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_CPU_INTEL_ARCHITECTURE_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_CPU_MINIMUM_CPU_CORES_COUNT</key>\n\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_CPU_MINIMUM_FREQUENCY</key>\n\t\t\t\t\t\t<integer>866666</integer>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_CPU_POWERPC_ARCHITECTURE_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t</dict>\n\t\t\t\t\t<key>IC_REQUIREMENT_CHECK_TYPE</key>\n\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t<key>IDENTIFIER</key>\n\t\t\t\t\t<string>fr.whitebox.Packages.requirement.cpu</string>\n\t\t\t\t\t<key>MESSAGE</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>LANGUAGE</key>\n\t\t\t\t\t\t\t<string>English</string>\n\t\t\t\t\t\t\t<key>SECONDARY_VALUE</key>\n\t\t\t\t\t\t\t<string></string>\n\t\t\t\t\t\t\t<key>VALUE</key>\n\t\t\t\t\t\t\t<string>The DNSCrypt GUI for Mac currently requires at least an Intel Core CPU.</string>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>NAME</key>\n\t\t\t\t\t<string>Processor</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>BEHAVIOR</key>\n\t\t\t\t\t<integer>3</integer>\n\t\t\t\t\t<key>DICTIONARY</key>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_OS_DISK_TYPE</key>\n\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_OS_DISTRIBUTION_TYPE</key>\n\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t<key>IC_REQUIREMENT_OS_MINIMUM_VERSION</key>\n\t\t\t\t\t\t<integer>100800</integer>\n\t\t\t\t\t</dict>\n\t\t\t\t\t<key>IC_REQUIREMENT_CHECK_TYPE</key>\n\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t<key>IDENTIFIER</key>\n\t\t\t\t\t<string>fr.whitebox.Packages.requirement.os</string>\n\t\t\t\t\t<key>MESSAGE</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>LANGUAGE</key>\n\t\t\t\t\t\t\t<string>English</string>\n\t\t\t\t\t\t\t<key>VALUE</key>\n\t\t\t\t\t\t\t<string>This user interface doesn't work with this version of OSX.</string>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>NAME</key>\n\t\t\t\t\t<string>Operating System</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t</array>\n\t\t\t<key>POSTINSTALL_PATH</key>\n\t\t\t<dict/>\n\t\t\t<key>PREINSTALL_PATH</key>\n\t\t\t<dict/>\n\t\t\t<key>RESOURCES</key>\n\t\t\t<array/>\n\t\t\t<key>ROOT_VOLUME_ONLY</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<key>PROJECT_SETTINGS</key>\n\t\t<dict>\n\t\t\t<key>ADVANCED_OPTIONS</key>\n\t\t\t<dict/>\n\t\t\t<key>BUILD_FORMAT</key>\n\t\t\t<integer>1</integer>\n\t\t\t<key>BUILD_PATH</key>\n\t\t\t<dict>\n\t\t\t\t<key>PATH</key>\n\t\t\t\t<string>build</string>\n\t\t\t\t<key>PATH_TYPE</key>\n\t\t\t\t<integer>1</integer>\n\t\t\t</dict>\n\t\t\t<key>EXCLUDED_FILES</key>\n\t\t\t<array>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.DS_Store</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove .DS_Store files</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \".DS_Store\" files created by the Finder.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.pbdevelopment</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove .pbdevelopment files</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \".pbdevelopment\" files created by ProjectBuilder or Xcode.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>CVS</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.cvsignore</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.cvspass</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>.svn</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove SCM metadata</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove helper files and folders used by the CVS and SVN Source Code Management systems.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>classes.nib</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>designable.db</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>info.nib</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>0</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Optimize nib files</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \"classes.nib\", \"info.nib\" and \"designable.nib\" files within .nib bundles.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>PATTERNS_ARRAY</key>\n\t\t\t\t\t<array>\n\t\t\t\t\t\t<dict>\n\t\t\t\t\t\t\t<key>REGULAR_EXPRESSION</key>\n\t\t\t\t\t\t\t<false/>\n\t\t\t\t\t\t\t<key>STRING</key>\n\t\t\t\t\t\t\t<string>Resources Disabled</string>\n\t\t\t\t\t\t\t<key>TYPE</key>\n\t\t\t\t\t\t\t<integer>1</integer>\n\t\t\t\t\t\t</dict>\n\t\t\t\t\t</array>\n\t\t\t\t\t<key>PROTECTED</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>PROXY_NAME</key>\n\t\t\t\t\t<string>Remove Resources Disabled folders</string>\n\t\t\t\t\t<key>PROXY_TOOLTIP</key>\n\t\t\t\t\t<string>Remove \"Resources Disabled\" folders.</string>\n\t\t\t\t\t<key>STATE</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>SEPARATOR</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t</array>\n\t\t\t<key>NAME</key>\n\t\t\t<string>DNSCrypt</string>\n\t\t</dict>\n\t</dict>\n\t<key>TYPE</key>\n\t<integer>0</integer>\n\t<key>VERSION</key>\n\t<integer>2</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/Scripts/dnscrypt-menubar-postinstall.sh",
    "content": "#! /bin/sh\n\nexec 2>/dev/null\n\n/bin/launchctl load \\\n  '/Library/LaunchAgents/com.github.dnscrypt-osxclient.DNSCryptMenuBar.plist'\n\n/bin/launchctl start com.github.dnscrypt-osxclient.DNSCryptMenuBar\n\nexit 0\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/Scripts/dnscrypt-menubar-preinstall.sh",
    "content": "#! /bin/sh\n\nexec 2>/dev/null\n\n/bin/launchctl stop com.opendns.osx.RoamingClientMenubar\n/bin/launchctl remove com.opendns.osx.RoamingClientMenubar\n\n/bin/launchctl stop com.opendns.osx.RoamingClientConfigUpdater\n/bin/launchctl remove com.opendns.osx.RoamingClientConfigUpdater\n\n/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.Roaming*.plist\n\n/bin/launchctl stop com.opendns.osx.DNSCryptMenuBar\n/bin/launchctl remove com.opendns.osx.DNSCryptMenuBar\n\n/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptMenuBar\n/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptMenuBar\n\nkillall 'DNSCrypt-Menubar'\nkillall 'DNSCrypt Menubar'\n\n/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptMenuBar.plist\n/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptMenuBar.plist\n\nexit 0\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/Scripts/dnscrypt-prefpane-postinstall.sh",
    "content": "#! /bin/sh\n\nexec 2>/dev/null\n\n/bin/mkdir -p '/Library/Application Support/DNSCrypt/control'\n/bin/mkdir -p '/Library/Application Support/DNSCrypt/dnscrypt-proxy'\n/bin/mkdir -p '/Library/Application Support/DNSCrypt/probes'\n/bin/mkdir -p '/Library/Application Support/DNSCrypt/states'\n/bin/mkdir -p '/Library/Application Support/DNSCrypt/tickets'\n/bin/chmod 755 '/Library/Application Support/DNSCrypt'\n/bin/chmod 755 '/usr/local/bin/hostip'\n/bin/chmod 755 '/usr/local/sbin/dnscrypt-proxy'\n/bin/chmod -R 755 '/usr/local/lib/dnscrypt-proxy'\n/usr/sbin/chown -R 0:0 '/Library/Application Support/DNSCrypt'\n/usr/sbin/chown 0:0 '/usr/local/bin/hostip'\n/usr/sbin/chown 0:0 '/usr/local/lib/dnscrypt-proxy'\n/usr/sbin/chown -R 0:0 '/usr/local/sbin/dnscrypt-proxy'\n\neval $(/usr/bin/stat -s '/dev/console')\nif [ $? != 0 ]; then\n  wanted_uid=\"$st_uid\"\n  /usr/sbin/chown -R \"${wanted_uid}:0\" \\\n    '/Library/Application Support/DNSCrypt/control'\n  /usr/sbin/chown -R \"${wanted_uid}:0\" \\\n    '/Library/Application Support/DNSCrypt/tickets'\nfi\n\nrm -f '/Library/Application Support/DNSCrypt/control/plugin-parental-controls.enabled'\nrm -f '/Library/Application Support/DNSCrypt/control/plugin-lockin.enabled'\n\nfor service in com.github.dnscrypt-osxclient.DNSCryptAfterboot \\\n               com.github.dnscrypt-osxclient.DNSCryptConsoleChange \\\n               com.github.dnscrypt-osxclient.DNSCryptControlChange \\\n               com.github.dnscrypt-osxclient.DNSCryptNetworkChange; do\n  /bin/launchctl load \"/Library/LaunchDaemons/${service}.plist\"\n  /bin/launchctl start \"$service\"\ndone\n\n/usr/bin/touch '/Library/Application Support/DNSCrypt/control'\n\nexit 0\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/Scripts/dnscrypt-prefpane-preinstall.sh",
    "content": "#! /bin/sh\n\nexec 2>/dev/null\n\nkillall 'System Preferences'\n\n/bin/rm -rf '/Library/Application Support/DNSCrypt Updater'\n\n/bin/launchctl stop com.opendns.osx.DNSCryptConfigUpdater\n/bin/launchctl remove com.opendns.osx.DNSCryptConfigUpdater\n/bin/rm -f '/Library/LaunchDaemons/com.opendns.osx.DNSCryptConfigUpdater.plist'\n\n/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptConfigUpdater\n/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptConfigUpdater\n/bin/rm -f '/Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptConfigUpdater.plist'\n\n/bin/launchctl stop com.opendns.osx.DNSCryptAfterboot\n/bin/launchctl remove com.opendns.osx.DNSCryptAfterboot\n/bin/launchctl stop com.opendns.osx.DNSCryptConsoleChange\n/bin/launchctl remove com.opendns.osx.DNSCryptConsoleChange\n/bin/launchctl stop com.opendns.osx.DNSCryptControlChange\n/bin/launchctl remove com.opendns.osx.DNSCryptControlChange\n/bin/launchctl stop com.opendns.osx.DNSCryptNetworkChange\n/bin/launchctl remove com.opendns.osx.DNSCryptNetworkChange\n\n/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptAfterboot.plist\n/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptConsoleChange.plist\n/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptControlChange.plist\n/bin/rm -f /Library/LaunchDaemons/com.opendns.osx.DNSCryptNetworkChange.plist\n\n/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptAfterboot\n/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptAfterboot\n/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptConsoleChange\n/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptConsoleChange\n/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptControlChange\n/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptControlChange\n/bin/launchctl stop com.github.dnscrypt-osxclient.DNSCryptNetworkChange\n/bin/launchctl remove com.github.dnscrypt-osxclient.DNSCryptNetworkChange\n\n/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptAfterboot.plist\n/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptConsoleChange.plist\n/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptControlChange.plist\n/bin/rm -f /Library/LaunchDaemons/com.github.dnscrypt-osxclient.DNSCryptNetworkChange.plist\n\n/bin/rm -f /var/run/dnscrypt*.lock\n\nexit 0\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptAfterboot.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-/Apple/DTD PLIST 1.0/EN\" \"http:/www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>Label</key>\n  <string>com.github.dnscrypt-osxclient.DNSCryptAfterboot</string>\n  <key>KeepAlive</key>\n  <false/>\n  <key>RunAtLoad</key>\n  <true/>\n  <key>WorkingDirectory</key>\n  <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts</string>\n  <key>ProgramArguments</key>\n  <array>\n    <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts/afterboot.sh</string>\n  </array>\n  <key>ExitTimeOut</key>\n  <integer>300</integer>\n  <key>ThrottleInterval</key>\n  <integer>1</integer>\n  <key>Nice</key>\n  <integer>1</integer>\n  <key>UserName</key>\n  <string>root</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptConsoleChange.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-/Apple/DTD PLIST 1.0/EN\" \"http:/www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>Label</key>\n  <string>com.github.dnscrypt-osxclient.DNSCryptConsoleChange</string>\n  <key>KeepAlive</key>\n  <false/>\n  <key>RunAtLoad</key>\n  <true/>\n  <key>WorkingDirectory</key>\n  <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts</string>\n  <key>ProgramArguments</key>\n  <array>\n    <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts/handle-console-change.sh</string>\n  </array>\n  <key>ExitTimeOut</key>\n  <integer>30</integer>\n  <key>ThrottleInterval</key>\n  <integer>0</integer>\n  <key>Nice</key>\n  <integer>15</integer>\n  <key>UserName</key>\n  <string>root</string>\n  <key>WatchPaths</key>\n  <array>\n    <string>/dev/console</string>\n    <string>/var/run/utmpx</string>\n  </array>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptControlChange.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-/Apple/DTD PLIST 1.0/EN\" \"http:/www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>Label</key>\n  <string>com.github.dnscrypt-osxclient.DNSCryptControlChange</string>\n  <key>KeepAlive</key>\n  <false/>\n  <key>RunAtLoad</key>\n  <true/>\n  <key>WorkingDirectory</key>\n  <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts</string>\n  <key>ProgramArguments</key>\n  <array>\n    <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts/handle-control-change.sh</string>\n  </array>\n  <key>ExitTimeOut</key>\n  <integer>300</integer>\n  <key>ThrottleInterval</key>\n  <integer>0</integer>\n  <key>Nice</key>\n  <integer>1</integer>\n  <key>UserName</key>\n  <string>root</string>\n  <key>WatchPaths</key>\n  <array>\n    <string>/Library/Application Support/DNSCrypt/control</string>\n  </array>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptMenuBar.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>Label</key>\n  <string>com.github.dnscrypt-osxclient.DNSCryptMenuBar</string>\n  <key>KeepAlive</key>\n  <false/>\n  <key>RunAtLoad</key>\n  <true/>\n  <key>ProgramArguments</key>\n  <array>\n    <string>/Applications/DNSCrypt Menubar.app/Contents/MacOS/DNSCrypt Menubar</string>\n  </array>\n  <key>LimitLoadToSessionType</key>\n  <string>Aqua</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/com.github.dnscrypt-osxclient.DNSCryptNetworkChange.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-/Apple/DTD PLIST 1.0/EN\" \"http:/www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>Label</key>\n  <string>com.github.dnscrypt-osxclient.DNSCryptNetworkChange</string>\n  <key>KeepAlive</key>\n  <false/>\n  <key>RunAtLoad</key>\n  <true/>\n  <key>WorkingDirectory</key>\n  <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts</string>\n  <key>ProgramArguments</key>\n  <array>\n    <string>/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/scripts/handle-network-change.sh</string>\n  </array>\n  <key>ExitTimeOut</key>\n  <integer>300</integer>\n  <key>ThrottleInterval</key>\n  <integer>1</integer>\n  <key>Nice</key>\n  <integer>1</integer>\n  <key>UserName</key>\n  <string>root</string>\n  <key>WatchPaths</key>\n  <array>\n    <string>/Library/Preferences/SystemConfiguration</string>\n  </array>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-OSX-Installer/sign.sh",
    "content": "#! /bin/sh\n\nVERSION='1.0.4'\n\ncd build || exit 1\n[ -d DNSCrypt.mpkg ] || exit 1\n\n(\ncd DNSCrypt.mpkg/Contents/Packages || exit 1\n\nfor pkg in *pkg ; do\n  rm -fr \"x-${pkg}\"\n  mv \"$pkg\" \"x-${pkg}\"\n  productsign --sign 'Developer ID Installer' \"x-${pkg}\" \"$pkg\"\n  rm -fr \"x-${pkg}\"\ndone\n)\nrm -fr DNSCrypt-OSX.mpkg DNSCrypt-unsigned.mpkg\nproductsign --sign 'Developer ID Application' DNSCrypt.mpkg DNSCrypt-OSX.mpkg\nmv DNSCrypt.mpkg DNSCrypt-unsigned.mpkg\nmv DNSCrypt-OSX.mpkg DNSCrypt.mpkg\nzip -9 -r \"dnscrypt-osxclient-${VERSION}.zip\" DNSCrypt.mpkg\nrm -fr dnscrypt-pkg\nrm -f \"dnscrypt-osxclient-${VERSION}.dmg\"\nmkdir dnscrypt-pkg\nmv DNSCrypt.mpkg dnscrypt-pkg\nhdiutil create \"dnscrypt-osxclient-${VERSION}.dmg\" -srcfolder dnscrypt-pkg\n\nmv dnscrypt-pkg/DNSCrypt.mpkg .\nrm -fr dnscrypt-pkg\nrm -fr DNSCrypt-unsigned.mpkg\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/COPYING",
    "content": "/*\n * Copyright (c) 2011-2014 OpenDNS, Inc.\n * Copyright (c) 2014 AlterStep\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\nThe get-dhcp-resolvers.sh and check-network-change.sh scripts use code\nsnippets from the dnssec-trigger project, by Wouter Wijngaards, NLnet\nLabs. (great and similar project, check it out:\nhttp://www.nlnetlabs.nl/projects/dnssec-trigger/)\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/CHCSVParser/CHCSVParser.h",
    "content": "//\n//  CHCSVParser.h\n//  CHCSVParser\n/**\n Copyright (c) 2012 Dave DeLong\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n **/\n\n#import <Foundation/Foundation.h>\n\nextern NSString * const CHCSVErrorDomain;\n\nenum {\n    CHCSVErrorCodeInvalidFormat = 1,\n};\n\ntypedef NSInteger CHCSVErrorCode;\n\n@class CHCSVParser;\n@protocol CHCSVParserDelegate <NSObject>\n\n@optional\n- (void)parserDidBeginDocument:(CHCSVParser *)parser;\n- (void)parserDidEndDocument:(CHCSVParser *)parser;\n\n- (void)parser:(CHCSVParser *)parser didBeginLine:(NSUInteger)recordNumber;\n- (void)parser:(CHCSVParser *)parser didEndLine:(NSUInteger)recordNumber;\n\n- (void)parser:(CHCSVParser *)parser didReadField:(NSString *)field atIndex:(NSInteger)fieldIndex;\n- (void)parser:(CHCSVParser *)parser didReadComment:(NSString *)comment;\n\n- (void)parser:(CHCSVParser *)parser didFailWithError:(NSError *)error;\n\n@end\n\n@interface CHCSVParser : NSObject\n\n@property (assign) id<CHCSVParserDelegate> delegate;\n@property (assign) BOOL recognizesBackslashesAsEscapes; // default is NO\n@property (assign) BOOL sanitizesFields; // default is NO\n@property (assign) BOOL recognizesComments; // default is NO\n@property (assign) BOOL stripsLeadingAndTrailingWhitespace; // default is NO\n\n@property (readonly) NSUInteger totalBytesRead;\n\n// designated initializer\n- (id)initWithInputStream:(NSInputStream *)stream usedEncoding:(NSStringEncoding *)encoding delimiter:(unichar)delimiter;\n\n- (id)initWithCSVString:(NSString *)csv;\n- (id)initWithCSVString:(NSString *)csv delimiter:(unichar)delimiter;\n\n- (id)initWithContentsOfCSVFile:(NSString *)csvFilePath;\n- (id)initWithContentsOfCSVFile:(NSString *)csvFilePath delimiter:(unichar)delimiter;\n\n- (void)parse;\n- (void)cancelParsing;\n\n@end\n\n@interface CHCSVWriter : NSObject\n\n- (instancetype)initForWritingToCSVFile:(NSString *)path;\n- (instancetype)initWithOutputStream:(NSOutputStream *)stream encoding:(NSStringEncoding)encoding delimiter:(unichar)delimiter;\n\n- (void)writeField:(NSString *)field;\n- (void)finishLine;\n\n- (void)writeLineOfFields:(id<NSFastEnumeration>)fields;\n\n- (void)writeComment:(NSString *)comment;\n\n- (void)closeStream;\n\n@end\n\n#pragma mark - Convenience Categories\n\ntypedef NS_OPTIONS(NSUInteger, CHCSVParserOptions) {\n    CHCSVParserOptionsRecognizesBackslashesAsEscapes = 1 << 0,\n    CHCSVParserOptionsSanitizesFields = 1 << 1,\n    CHCSVParserOptionsRecognizesComments = 1 << 2,\n    CHCSVParserOptionsStripsLeadingAndTrailingWhitespace = 1 << 3\n};\n\n@interface NSArray (CHCSVAdditions)\n\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath;\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath delimiter:(unichar)delimiter;\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath options:(CHCSVParserOptions)options;\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath options:(CHCSVParserOptions)options delimiter:(unichar)delimiter;\n- (NSString *)CSVString;\n\n@end\n\n@interface NSString (CHCSVAdditions)\n\n- (NSArray *)CSVComponents;\n- (NSArray *)CSVComponentsWithDelimiter:(unichar)delimiter;\n- (NSArray *)CSVComponentsWithOptions:(CHCSVParserOptions)options;\n- (NSArray *)CSVComponentsWithOptions:(CHCSVParserOptions)options delimiter:(unichar)delimiter;\n\n@end\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/CHCSVParser/CHCSVParser.m",
    "content": "//\n//  CHCSVParser.m\n//  CHCSVParser\n/**\n Copyright (c) 2012 Dave DeLong\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n **/\n\n#import \"CHCSVParser.h\"\n\nNSString *const CHCSVErrorDomain = @\"com.davedelong.csv\";\n\n#define CHUNK_SIZE 512\n#define DOUBLE_QUOTE '\"'\n#define COMMA ','\n#define OCTOTHORPE '#'\n#define BACKSLASH '\\\\'\n\n#if __has_feature(objc_arc)\n\n#define CHCSV_HAS_ARC 1\n#define CHCSV_RETAIN(_o) (_o)\n#define CHCSV_RELEASE(_o)\n#define CHCSV_AUTORELEASE(_o) (_o)\n\n#else\n\n#define CHCSV_HAS_ARC 0\n#define CHCSV_RETAIN(_o) [(_o) retain]\n#define CHCSV_RELEASE(_o) [(_o) release]\n#define CHCSV_AUTORELEASE(_o) [(_o) autorelease]\n\n#endif\n\n@interface CHCSVParser ()\n@property (assign) NSUInteger totalBytesRead;\n@end\n\n@implementation CHCSVParser {\n    NSInputStream *_stream;\n    NSStringEncoding _streamEncoding;\n    NSMutableData *_stringBuffer;\n    NSMutableString *_string;\n    NSCharacterSet *_validFieldCharacters;\n    \n    NSUInteger _nextIndex;\n    \n    NSInteger _fieldIndex;\n    NSRange _fieldRange;\n    NSMutableString *_sanitizedField;\n    \n    unichar _delimiter;\n    \n    NSError *_error;\n    \n    NSUInteger _currentRecord;\n    BOOL _cancelled;\n}\n\n- (id)initWithCSVString:(NSString *)csv {\n    NSStringEncoding encoding = [csv fastestEncoding];\n    NSInputStream *stream = [NSInputStream inputStreamWithData:[csv dataUsingEncoding:encoding]];\n    return [self initWithInputStream:stream usedEncoding:&encoding delimiter:COMMA];\n}\n\n- (id)initWithCSVString:(NSString *)csv delimiter:(unichar)delimiter\n{\n    NSStringEncoding encoding = [csv fastestEncoding];\n    NSInputStream *stream = [NSInputStream inputStreamWithData:[csv dataUsingEncoding:encoding]];\n    return [self initWithInputStream:stream usedEncoding:&encoding delimiter:delimiter];\n}\n\n- (id)initWithContentsOfCSVFile:(NSString *)csvFilePath {\n    NSInputStream *stream = [NSInputStream inputStreamWithFileAtPath:csvFilePath];\n    NSStringEncoding encoding = 0;\n    return [self initWithInputStream:stream usedEncoding:&encoding delimiter:COMMA];\n}\n\n- (id)initWithContentsOfCSVFile:(NSString *)csvFilePath delimiter:(unichar)delimiter\n{\n    NSInputStream *stream = [NSInputStream inputStreamWithFileAtPath:csvFilePath];\n    NSStringEncoding encoding = 0;\n    return [self initWithInputStream:stream usedEncoding:&encoding delimiter:delimiter];\n}\n\n- (id)initWithInputStream:(NSInputStream *)stream usedEncoding:(NSStringEncoding *)encoding delimiter:(unichar)delimiter {\n    NSParameterAssert(stream);\n    NSParameterAssert(delimiter);\n    NSAssert([[NSCharacterSet newlineCharacterSet] characterIsMember:delimiter] == NO, @\"The field delimiter may not be a newline\");\n    NSAssert(delimiter != DOUBLE_QUOTE, @\"The field delimiter may not be a double quote\");\n    NSAssert(delimiter != OCTOTHORPE, @\"The field delimiter may not be an octothorpe\");\n    \n    self = [super init];\n    if (self) {\n        _stream = CHCSV_RETAIN(stream);\n        [_stream open];\n        \n        _stringBuffer = [[NSMutableData alloc] init];\n        _string = [[NSMutableString alloc] init];\n        \n        _delimiter = delimiter;\n        \n        _nextIndex = 0;\n        _recognizesComments = NO;\n        _recognizesBackslashesAsEscapes = NO;\n        _sanitizesFields = NO;\n        _sanitizedField = [[NSMutableString alloc] init];\n        _stripsLeadingAndTrailingWhitespace = NO;\n        \n        NSMutableCharacterSet *m = [[NSCharacterSet newlineCharacterSet] mutableCopy];\n        NSString *invalid = [NSString stringWithFormat:@\"%c%C\", DOUBLE_QUOTE, _delimiter];\n        [m addCharactersInString:invalid];\n        _validFieldCharacters = CHCSV_RETAIN([m invertedSet]);\n        CHCSV_RELEASE(m);\n        \n        if (encoding == NULL || *encoding == 0) {\n            // we need to determine the encoding\n            [self _sniffEncoding];\n            if (encoding) {\n                *encoding = _streamEncoding;\n            }\n        } else {\n            _streamEncoding = *encoding;\n        }\n    }\n    return self;\n}\n\n- (void)dealloc {\n    [_stream close];\n#if !CHCSV_HAS_ARC\n    [_stream release];\n    [_stringBuffer release];\n    [_string release];\n    [_sanitizedField release];\n    [_validFieldCharacters release];\n    [super dealloc];\n#endif\n}\n\n#pragma mark -\n\n- (void)_sniffEncoding {\n    NSStringEncoding encoding = NSUTF8StringEncoding;\n    \n    uint8_t bytes[CHUNK_SIZE];\n    NSInteger readLength = [_stream read:bytes maxLength:CHUNK_SIZE];\n    if (readLength > 0 && readLength <= CHUNK_SIZE) {\n        [_stringBuffer appendBytes:bytes length:readLength];\n        [self setTotalBytesRead:[self totalBytesRead] + readLength];\n        \n        NSInteger bomLength = 0;\n        \n        if (readLength > 3 && bytes[0] == 0x00 && bytes[1] == 0x00 && bytes[2] == 0xFE && bytes[3] == 0xFF) {\n            encoding = NSUTF32BigEndianStringEncoding;\n            bomLength = 4;\n        } else if (readLength > 3 && bytes[0] == 0xFF && bytes[1] == 0xFE && bytes[2] == 0x00 && bytes[3] == 0x00) {\n            encoding = NSUTF32LittleEndianStringEncoding;\n            bomLength = 4;\n        } else if (readLength > 3 && bytes[0] == 0x1B && bytes[1] == 0x24 && bytes[2] == 0x29 && bytes[3] == 0x43) {\n            encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingISO_2022_KR);\n            bomLength = 4;\n        } else if (readLength > 1 && bytes[0] == 0xFE && bytes[1] == 0xFF) {\n            encoding = NSUTF16BigEndianStringEncoding;\n            bomLength = 2;\n        } else if (readLength > 1 && bytes[0] == 0xFF && bytes[1] == 0xFE) {\n            encoding = NSUTF16LittleEndianStringEncoding;\n            bomLength = 2;\n        } else if (readLength > 2 && bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) {\n            encoding = NSUTF8StringEncoding;\n            bomLength = 3;\n        } else {\n            NSString *bufferAsUTF8 = nil;\n            \n            for (NSInteger triedLength = 0; triedLength < 4; ++triedLength) {\n                bufferAsUTF8 = CHCSV_AUTORELEASE([[NSString alloc] initWithBytes:bytes length:readLength-triedLength encoding:NSUTF8StringEncoding]);\n                if (bufferAsUTF8 != nil) {\n                    break;\n                }\n            }\n            \n            if (bufferAsUTF8 != nil) {\n                encoding = NSUTF8StringEncoding;\n            } else {\n                NSLog(@\"unable to determine stream encoding; assuming MacOSRoman\");\n                encoding = NSMacOSRomanStringEncoding;\n            }\n        }\n        \n        if (bomLength > 0) {\n            [_stringBuffer replaceBytesInRange:NSMakeRange(0, bomLength) withBytes:NULL length:0];\n        }\n    }\n    _streamEncoding = encoding;\n}\n\n- (void)_loadMoreIfNecessary {\n    NSUInteger stringLength = [_string length];\n    NSUInteger reloadPortion = stringLength / 3;\n    if (reloadPortion < 10) { reloadPortion = 10; }\n    \n    if ([_stream hasBytesAvailable] && _nextIndex+reloadPortion >= stringLength) {\n        // read more from the stream\n        uint8_t buffer[CHUNK_SIZE];\n        NSInteger readBytes = [_stream read:buffer maxLength:CHUNK_SIZE];\n        if (readBytes > 0) {\n            // append it to the buffer\n            [_stringBuffer appendBytes:buffer length:readBytes];\n            [self setTotalBytesRead:[self totalBytesRead] + readBytes];\n        }\n    }\n    \n    if ([_stringBuffer length] > 0) {\n        // try to turn the next portion of the buffer into a string\n        NSUInteger readLength = [_stringBuffer length];\n        while (readLength > 0) {\n            NSString *readString = [[NSString alloc] initWithBytes:[_stringBuffer bytes] length:readLength encoding:_streamEncoding];\n            if (readString == nil) {\n                readLength--;\n            } else {\n                [_string appendString:readString];\n                CHCSV_RELEASE(readString);\n                break;\n            }\n        };\n        \n        [_stringBuffer replaceBytesInRange:NSMakeRange(0, readLength) withBytes:NULL length:0];\n    }\n}\n\n- (void)_advance {\n    [self _loadMoreIfNecessary];\n    _nextIndex++;\n}\n\n- (unichar)_peekCharacter {\n    [self _loadMoreIfNecessary];\n    if (_nextIndex >= [_string length]) { return '\\0'; }\n    \n    return [_string characterAtIndex:_nextIndex];\n}\n\n- (unichar)_peekPeekCharacter {\n    [self _loadMoreIfNecessary];\n    NSUInteger nextNextIndex = _nextIndex+1;\n    if (nextNextIndex >= [_string length]) { return '\\0'; }\n    \n    return [_string characterAtIndex:nextNextIndex];\n}\n\n#pragma mark -\n\n- (void)parse {\n    [self _beginDocument];\n    \n    _currentRecord = 0;\n    while ([self _parseRecord]) {\n        ; // yep;\n    }\n    \n    if (_error != nil) {\n        [self _error];\n    } else {\n        [self _endDocument];\n    }\n}\n\n- (void)cancelParsing {\n    _cancelled = YES;\n}\n\n- (BOOL)_parseRecord {\n    while ([self _peekCharacter] == OCTOTHORPE && _recognizesComments) {\n        [self _parseComment];\n    }\n    \n    [self _beginRecord];\n    while (1) {\n        if (![self _parseField]) {\n            break;\n        }\n        if (![self _parseDelimiter]) {\n            break;\n        }\n    }    \n    BOOL followedByNewline = [self _parseNewline];\n    [self _endRecord];\n    \n    return (followedByNewline && _error == nil);\n}\n\n- (BOOL)_parseNewline {\n    if (_cancelled) { return NO; }\n    \n    NSUInteger charCount = 0;\n    while ([[NSCharacterSet newlineCharacterSet] characterIsMember:[self _peekCharacter]]) {\n        charCount++;\n        [self _advance];\n    }\n    return (charCount > 0);\n}\n\n- (BOOL)_parseComment {\n    [self _advance]; // consume the octothorpe\n    \n    NSCharacterSet *newlines = [NSCharacterSet newlineCharacterSet];\n    \n    [self _beginComment];\n    BOOL isBackslashEscaped = NO;\n    while (1) {\n        if (isBackslashEscaped == NO) {\n            unichar next = [self _peekCharacter];\n            if (next == BACKSLASH && _recognizesBackslashesAsEscapes) {\n                isBackslashEscaped = YES;\n                [self _advance];\n            } else if ([newlines characterIsMember:next] == NO) {\n                [self _advance];\n            } else {\n                // it's a newline\n                break;\n            }\n        } else {\n            isBackslashEscaped = YES;\n            [self _advance];\n        }\n    }\n    [self _endComment];\n    \n    return [self _parseNewline];\n}\n\n- (void)_parseFieldWhitespace {\n    NSCharacterSet *whitespace = [NSCharacterSet whitespaceCharacterSet];\n    while ([self _peekCharacter] != '\\0' &&\n           [whitespace characterIsMember:[self _peekCharacter]] &&\n           [self _peekCharacter] != _delimiter) {\n        // if we're sanitizing fields, then these characters would be stripped (because they're not appended to _sanitizedField)\n        // if we're not sanitizing fields, then they'll be included in the -substringWithRange:\n        [self _advance];\n    }\n}\n\n- (BOOL)_parseField {\n    if (_cancelled) { return NO; }\n    \n    BOOL parsedField = NO;\n    [self _beginField];\n    if (_stripsLeadingAndTrailingWhitespace) {\n        // consume leading whitespace\n        [self _parseFieldWhitespace];\n    }\n    \n    if ([self _peekCharacter] == DOUBLE_QUOTE) {\n        parsedField = [self _parseEscapedField];\n    } else {\n        parsedField = [self _parseUnescapedField];\n        if (_stripsLeadingAndTrailingWhitespace) {\n            NSString *trimmedString = [_sanitizedField stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];\n            [_sanitizedField setString:trimmedString];\n        }\n    }\n    \n    if (parsedField) {\n        if (_stripsLeadingAndTrailingWhitespace) {\n            // consume trailing whitespace\n            [self _parseFieldWhitespace];\n        }\n        [self _endField];\n    }\n    return parsedField;\n}\n\n- (BOOL)_parseEscapedField {\n    [self _advance]; // consume the opening double quote\n    \n    NSCharacterSet *newlines = [NSCharacterSet newlineCharacterSet];\n    BOOL isBackslashEscaped = NO;\n    while (1) {\n        unichar next = [self _peekCharacter];\n        if (next == '\\0') { break; }\n        \n        if (isBackslashEscaped == NO) {\n            if (next == BACKSLASH && _recognizesBackslashesAsEscapes) {\n                isBackslashEscaped = YES;\n                [self _advance]; // consume the backslash\n            } else if ([_validFieldCharacters characterIsMember:next] ||\n                       [newlines characterIsMember:next] ||\n                       next == _delimiter) {\n                [_sanitizedField appendFormat:@\"%C\", next];\n                [self _advance];\n            } else if (next == DOUBLE_QUOTE && [self _peekPeekCharacter] == DOUBLE_QUOTE) {\n                [_sanitizedField appendFormat:@\"%C\", next];\n                [self _advance];\n                [self _advance];\n            } else {\n                // not valid, or it's not a doubled double quote\n                break;\n            }\n        } else {\n            [_sanitizedField appendFormat:@\"%C\", next];\n            isBackslashEscaped = NO;\n            [self _advance];\n        }\n    }\n    \n    if ([self _peekCharacter] == DOUBLE_QUOTE) {\n        [self _advance];\n        return YES;\n    }\n    \n    return NO;\n}\n\n- (BOOL)_parseUnescapedField {\n    \n    BOOL isBackslashEscaped = NO;\n    while (1) {\n        unichar next = [self _peekCharacter];\n        if (next == '\\0') { break; }\n        \n        if (isBackslashEscaped == NO) {\n            if (next == BACKSLASH && _recognizesBackslashesAsEscapes) {\n                isBackslashEscaped = YES;\n                [self _advance];\n            } else if ([_validFieldCharacters characterIsMember:next]) {\n                [_sanitizedField appendFormat:@\"%C\", next];\n                [self _advance];\n            } else {\n                break;\n            }\n        } else {\n            isBackslashEscaped = NO;\n            [_sanitizedField appendFormat:@\"%C\", next];\n            [self _advance];\n        }\n    }\n    \n    return YES;\n}\n\n- (BOOL)_parseDelimiter {\n    unichar next = [self _peekCharacter];\n    if (next == _delimiter) {\n        [self _advance];\n        return YES;\n    }\n    if (next != '\\0' && [[NSCharacterSet newlineCharacterSet] characterIsMember:next] == NO) {\n        NSString *description = [NSString stringWithFormat:@\"Unexpected delimiter. Expected '%C' (0x%X), but got '%C' (0x%X)\", _delimiter, _delimiter, [self _peekCharacter], [self _peekCharacter]];\n        _error = [[NSError alloc] initWithDomain:CHCSVErrorDomain code:CHCSVErrorCodeInvalidFormat userInfo:@{NSLocalizedDescriptionKey : description}];\n    }\n    return NO;\n}\n\n- (void)_beginDocument {\n    if ([_delegate respondsToSelector:@selector(parserDidBeginDocument:)]) {\n        [_delegate parserDidBeginDocument:self];\n    }\n}\n\n- (void)_endDocument {\n    if ([_delegate respondsToSelector:@selector(parserDidEndDocument:)]) {\n        [_delegate parserDidEndDocument:self];\n    }\n}\n\n- (void)_beginRecord {\n    if (_cancelled) { return; }\n    \n    _fieldIndex = 0;\n    _currentRecord++;\n    if ([_delegate respondsToSelector:@selector(parser:didBeginLine:)]) {\n        [_delegate parser:self didBeginLine:_currentRecord];\n    }\n}\n\n- (void)_endRecord {\n    if (_cancelled) { return; }\n    \n    if ([_delegate respondsToSelector:@selector(parser:didEndLine:)]) {\n        [_delegate parser:self didEndLine:_currentRecord];\n    }\n}\n\n- (void)_beginField {\n    if (_cancelled) { return; }\n    \n    [_sanitizedField setString:@\"\"];\n    _fieldRange.location = _nextIndex;\n}\n\n- (void)_endField {\n    if (_cancelled) { return; }\n    \n    _fieldRange.length = (_nextIndex - _fieldRange.location);\n    NSString *field = nil;\n    \n    if (_sanitizesFields) {\n        field = CHCSV_AUTORELEASE([_sanitizedField copy]);\n    } else {\n        field = [_string substringWithRange:_fieldRange];\n        if (_stripsLeadingAndTrailingWhitespace) {\n            field = [field stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];\n        }\n    }\n    \n    if ([_delegate respondsToSelector:@selector(parser:didReadField:atIndex:)]) {\n        [_delegate parser:self didReadField:field atIndex:_fieldIndex];\n    }\n    \n    [_string replaceCharactersInRange:NSMakeRange(0, NSMaxRange(_fieldRange)) withString:@\"\"];\n    _nextIndex = 0;\n    _fieldIndex++;\n}\n\n- (void)_beginComment {\n    if (_cancelled) { return; }\n    \n    _fieldRange.location = _nextIndex;\n}\n\n- (void)_endComment {\n    if (_cancelled) { return; }\n    \n    _fieldRange.length = (_nextIndex - _fieldRange.location);\n    if ([_delegate respondsToSelector:@selector(parser:didReadComment:)]) {\n        NSString *comment = [_string substringWithRange:_fieldRange];\n        [_delegate parser:self didReadComment:comment];\n    }\n    \n    [_string replaceCharactersInRange:NSMakeRange(0, NSMaxRange(_fieldRange)) withString:@\"\"];\n    _nextIndex = 0;\n}\n\n- (void)_error {\n    if (_cancelled) { return; }\n    \n    if ([_delegate respondsToSelector:@selector(parser:didFailWithError:)]) {\n        [_delegate parser:self didFailWithError:_error];\n    }\n}\n\n@end\n\n@implementation CHCSVWriter {\n    NSOutputStream *_stream;\n    NSStringEncoding _streamEncoding;\n    \n    NSData *_delimiter;\n    NSData *_bom;\n    NSCharacterSet *_illegalCharacters;\n    \n    NSUInteger _currentField;\n}\n\n- (instancetype)initForWritingToCSVFile:(NSString *)path {\n    NSOutputStream *stream = [NSOutputStream outputStreamToFileAtPath:path append:NO];\n    return [self initWithOutputStream:stream encoding:NSUTF8StringEncoding delimiter:COMMA];\n}\n\n- (instancetype)initWithOutputStream:(NSOutputStream *)stream encoding:(NSStringEncoding)encoding delimiter:(unichar)delimiter {\n    self = [super init];\n    if (self) {\n        _stream = CHCSV_RETAIN(stream);\n        _streamEncoding = encoding;\n        \n        if ([_stream streamStatus] == NSStreamStatusNotOpen) {\n            [_stream open];\n        }\n        \n        NSData *a = [@\"a\" dataUsingEncoding:_streamEncoding];\n        NSData *aa = [@\"aa\" dataUsingEncoding:_streamEncoding];\n        if ([a length] * 2 != [aa length]) {\n            NSUInteger characterLength = [aa length] - [a length];\n            _bom = CHCSV_RETAIN([a subdataWithRange:NSMakeRange(0, [a length] - characterLength)]);\n            [self _writeData:_bom];\n        }\n        \n        NSString *delimiterString = [NSString stringWithFormat:@\"%C\", delimiter];\n        NSData *delimiterData = [delimiterString dataUsingEncoding:_streamEncoding];\n        if ([_bom length] > 0) {\n            _delimiter = CHCSV_RETAIN([delimiterData subdataWithRange:NSMakeRange([_bom length], [delimiterData length] - [_bom length])]);\n        } else {\n            _delimiter = CHCSV_RETAIN(delimiterData);\n        }\n        \n        NSMutableCharacterSet *illegalCharacters = [[NSCharacterSet newlineCharacterSet] mutableCopy];\n        [illegalCharacters addCharactersInString:delimiterString];\n        [illegalCharacters addCharactersInString:@\"\\\"\"];\n        _illegalCharacters = [illegalCharacters copy];\n        CHCSV_RELEASE(illegalCharacters);\n    }\n    return self;\n}\n\n- (void)dealloc {\n    [self closeStream];\n    \n#if !CHCSV_HAS_ARC\n    [_delimiter release];\n    [_bom release];\n    [_illegalCharacters release];\n    [super dealloc];\n#endif\n}\n\n- (void)_writeData:(NSData *)data {\n    if ([data length] > 0) {\n        const void *bytes = [data bytes];\n        [_stream write:bytes maxLength:[data length]];\n    }\n}\n\n- (void)_writeString:(NSString *)string {\n    NSData *stringData = [string dataUsingEncoding:_streamEncoding];\n    if ([_bom length] > 0) {\n        stringData = [stringData subdataWithRange:NSMakeRange([_bom length], [stringData length] - [_bom length])];\n    }\n    [self _writeData:stringData];\n}\n\n- (void)_writeDelimiter {\n    [self _writeData:_delimiter];\n}\n\n- (void)writeField:(id)field {\n    if (_currentField > 0) {\n        [self _writeDelimiter];\n    }\n    NSString *string = field ? [field description] : @\"\";\n    if ([string rangeOfCharacterFromSet:_illegalCharacters].location != NSNotFound) {\n        // replace double quotes with double double quotes\n        string = [string stringByReplacingOccurrencesOfString:@\"\\\"\" withString:@\"\\\"\\\"\"];\n        // surround in double quotes\n        string = [NSString stringWithFormat:@\"\\\"%@\\\"\", string];\n    }\n    [self _writeString:string];\n    _currentField++;\n}\n\n- (void)finishLine {\n    [self _writeString:@\"\\n\"];\n    _currentField = 0;\n}\n\n- (void)_finishLineIfNecessary {\n    if (_currentField != 0) {\n        [self finishLine];\n    }\n}\n\n- (void)writeLineOfFields:(id<NSFastEnumeration>)fields {\n    [self _finishLineIfNecessary];\n    \n    for (id field in fields) {\n        [self writeField:field];\n    }\n    [self finishLine];\n}\n\n- (void)writeComment:(NSString *)comment {\n    [self _finishLineIfNecessary];\n    \n    NSArray *lines = [comment componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];\n    for (NSString *line in lines) {\n        NSString *commented = [NSString stringWithFormat:@\"#%@\\n\", line];\n        [self _writeString:commented];\n    }\n}\n\n- (void)closeStream {\n    [_stream close];\n    CHCSV_RELEASE(_stream);\n    _stream = nil;\n}\n\n@end\n\n#pragma mark - Convenience Categories\n\n@interface _CHCSVAggregator : NSObject <CHCSVParserDelegate>\n\n@property (readonly) NSArray *lines;\n@property (readonly) NSError *error;\n\n@end\n\n@implementation _CHCSVAggregator {\n    NSMutableArray *_lines;\n    NSMutableArray *_currentLine;\n}\n\n#if !CHCSV_HAS_ARC\n- (void)dealloc {\n    [_currentLine release];\n    [_lines release];\n    [_error release];\n    [super dealloc];\n}\n#endif\n\n- (void)parserDidBeginDocument:(CHCSVParser *)parser {\n    _lines = [[NSMutableArray alloc] init];\n}\n\n- (void)parser:(CHCSVParser *)parser didBeginLine:(NSUInteger)recordNumber {\n    _currentLine = [[NSMutableArray alloc] init];\n}\n\n- (void)parser:(CHCSVParser *)parser didEndLine:(NSUInteger)recordNumber {\n    [_lines addObject:_currentLine];\n    CHCSV_RELEASE(_currentLine);\n    _currentLine = nil;\n}\n\n- (void)parser:(CHCSVParser *)parser didReadField:(NSString *)field atIndex:(NSInteger)fieldIndex {\n    [_currentLine addObject:field];\n}\n\n- (void)parser:(CHCSVParser *)parser didFailWithError:(NSError *)error {\n    _error = CHCSV_RETAIN(error);\n    CHCSV_RELEASE(_lines);\n    _lines = nil;\n}\n\n@end\n\n@implementation NSArray (CHCSVAdditions)\n\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath {\n    return [self arrayWithContentsOfCSVFile:csvFilePath options:0 delimiter:COMMA];\n}\n\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath delimiter:(unichar)delimiter\n{\n    return [self arrayWithContentsOfCSVFile:csvFilePath options:0 delimiter:delimiter];\n}\n\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath options:(CHCSVParserOptions)options\n{\n    return [self arrayWithContentsOfCSVFile:csvFilePath options:options delimiter:COMMA];\n}\n\n+ (instancetype)arrayWithContentsOfCSVFile:(NSString *)csvFilePath options:(CHCSVParserOptions)options delimiter:(unichar)delimiter {\n    NSParameterAssert(csvFilePath);\n    _CHCSVAggregator *aggregator = [[_CHCSVAggregator alloc] init];\n    CHCSVParser *parser = [[CHCSVParser alloc] initWithContentsOfCSVFile:csvFilePath delimiter:delimiter];\n    [parser setDelegate:aggregator];\n    \n    [parser setRecognizesBackslashesAsEscapes:!!(options & CHCSVParserOptionsRecognizesBackslashesAsEscapes)];\n    [parser setSanitizesFields:!!(options & CHCSVParserOptionsSanitizesFields)];\n    [parser setRecognizesComments:!!(options & CHCSVParserOptionsRecognizesComments)];\n    [parser setStripsLeadingAndTrailingWhitespace:!!(options & CHCSVParserOptionsStripsLeadingAndTrailingWhitespace)];\n    \n    [parser parse];\n    CHCSV_RELEASE(parser);\n    \n    NSArray *final = CHCSV_AUTORELEASE(CHCSV_RETAIN([aggregator lines]));\n    CHCSV_RELEASE(aggregator);\n    \n    return final;\n}\n\n- (NSString *)CSVString {\n    NSOutputStream *output = [NSOutputStream outputStreamToMemory];\n    CHCSVWriter *writer = [[CHCSVWriter alloc] initWithOutputStream:output encoding:NSUTF8StringEncoding delimiter:COMMA];\n    for (id object in self) {\n        if ([object conformsToProtocol:@protocol(NSFastEnumeration)]) {\n            [writer writeLineOfFields:object];\n        }\n    }\n    [writer closeStream];\n    CHCSV_RELEASE(writer);\n    \n    NSData *buffer = [output propertyForKey:NSStreamDataWrittenToMemoryStreamKey];\n    NSString *string = [[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding];\n    return CHCSV_AUTORELEASE(string);\n}\n\n@end\n\n@implementation NSString (CHCSVAdditions)\n\n\n- (NSArray *)CSVComponents {\n    return [self CSVComponentsWithOptions:0 delimiter:COMMA];\n}\n\n- (NSArray *)CSVComponentsWithDelimiter:(unichar)delimiter\n{\n    return [self CSVComponentsWithOptions:0 delimiter:delimiter];\n}\n\n- (NSArray *)CSVComponentsWithOptions:(CHCSVParserOptions)options\n{\n    return [self CSVComponentsWithOptions:options delimiter:COMMA];\n}\n\n- (NSArray *)CSVComponentsWithOptions:(CHCSVParserOptions)options delimiter:(unichar)delimiter {\n    _CHCSVAggregator *aggregator = [[_CHCSVAggregator alloc] init];\n    CHCSVParser *parser = [[CHCSVParser alloc] initWithCSVString:self delimiter:delimiter];\n    [parser setDelegate:aggregator];\n    \n    [parser setRecognizesBackslashesAsEscapes:!!(options & CHCSVParserOptionsRecognizesBackslashesAsEscapes)];\n    [parser setSanitizesFields:!!(options & CHCSVParserOptionsSanitizesFields)];\n    [parser setRecognizesComments:!!(options & CHCSVParserOptionsRecognizesComments)];\n    [parser setStripsLeadingAndTrailingWhitespace:!!(options & CHCSVParserOptionsStripsLeadingAndTrailingWhitespace)];\n    \n    [parser parse];\n    CHCSV_RELEASE(parser);\n    \n    NSArray *final = CHCSV_AUTORELEASE(CHCSV_RETAIN([aggregator lines]));\n    CHCSV_RELEASE(aggregator);\n    \n    return final;\n}\n\n@end\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>English</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.github.dnscrypt-osxclient.${PRODUCT_NAME:rfc1034identifier}</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0.4</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1.0.4</string>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>BSD</string>\n\t<key>NSMainNibFile</key>\n\t<string>DNSCrypt</string>\n\t<key>NSPrefPaneIconFile</key>\n\t<string>dnscrypt_256.png</string>\n\t<key>NSPrefPaneIconLabel</key>\n\t<string>DNSCrypt</string>\n\t<key>NSPrincipalClass</key>\n\t<string>DNSCrypt</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt-Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'DNSCrypt' target in the 'DNSCrypt' project\n//\n\n#ifdef __OBJC__\n    #import <Cocoa/Cocoa.h>\n#endif\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.h",
    "content": "\n#import <PreferencePanes/PreferencePanes.h>\n#import <WebKit/WebKit.h>\n#import \"CHCSVParser/CHCSVParser.h\"\n\n#define kDNSCRYPT_PACKAGE_VERSION @\"1.0.4\"\n\n#define kDNSCRYPT_PREFPANE_APP_PATH @\"/Library/PreferencePanes/DNSCrypt.prefPane\"\n#define kDNSCRYPT_USR_BASE_DIR kDNSCRYPT_PREFPANE_APP_PATH @\"/Contents/Resources/usr\"\n#define kDNSCRIPT_BIN_BASE_DIR kDNSCRYPT_USR_BASE_DIR @\"/bin\"\n#define kDNSCRIPT_SCRIPTS_BASE_DIR kDNSCRYPT_USR_BASE_DIR @\"/scripts\"\n#define kDNSCRYPT_VAR_BASE_DIR @\"/Library/Application Support/DNSCrypt\"\n#define kDNSCRYPT_CONTROL_DIR kDNSCRYPT_VAR_BASE_DIR @\"/control\"\n\n#define kDNSCRYPT_QUERY_LOG_FILE @\"/var/log/dnscrypt-query.log\"\n#define kDNSCRYPT_BLACKLIST_IPS_TMP_FILE kDNSCRYPT_CONTROL_DIR @\"/blacklist-ips.tmp\"\n#define kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE kDNSCRYPT_CONTROL_DIR @\"/blacklist-domains.tmp\"\n#define kDNSCRYPT_EXCEPTIONS_TMP_FILE kDNSCRYPT_CONTROL_DIR @\"/exceptions.tmp\"\n\n#define kBUNDLE_IDENTIFIER @\"com.github.dnscrypt-osxclient.DNSCrypt\"\n\n#define kRESOLVERS_LIST_FILE @\"/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv\"\n\n#define kREFRESH_DELAY 2.0\n#define kCHECKBOXES_AFTER_CHANGE_DELAY 8.0\n#define kMAX_TRIES_AFTER_CHANGE (30 / kREFRESH_DELAY)\n\ntypedef enum {\n    kDNS_CONFIGURATION_UNKNOWN, kDNS_CONFIGURATION_VANILLA, kDNS_CONFIGURATION_LOCALHOST\n} DNSConfigurationState;\n\n@interface DNSCrypt : NSPreferencePane {\n    AuthorizationRef auth;\n    \n    NSTabView *_tabView;\n    NSTabViewItem *_aboutTabViewItem;\n    NSTabViewItem *_releaseNotesTabViewItem;\n    \n    NSButton *_dnscryptButton;\n    NSButton *_fallbackButton;\n    \n    NSTextField *_currentResolverTextField;\n    NSImageView *_statusImageView;\n    NSTextField *_statusText;\n    WebView *_releaseNotesWebView;\n    WebView *_aboutWebView;\n    NSTextFieldCell *_staticResolversTextField;\n    NSTextField *_blacklistIPsTextField;\n    NSTextField *_blacklistDomainsTextField;\n    NSTextField *_exceptionsTextField;\n    WebView *_helpWebView;\n    NSButton *_viewLogButton;\n    NSButton *_queryLoggingButton;\n    NSPopUpButton *_resolverNamesButton;\n}\n@property (nonatomic, strong) IBOutlet NSTabView *tabView;\n@property (nonatomic, strong) IBOutlet NSTabViewItem *aboutTabViewItem;\n@property (nonatomic, strong) IBOutlet NSTabViewItem *releaseNotesTabViewItem;\n\n@property (nonatomic, strong) IBOutlet NSButton *dnscryptButton;\n@property (nonatomic, strong) IBOutlet NSButton *fallbackButton;\n\n@property (nonatomic, strong) IBOutlet NSTextField *currentResolverTextField;\n@property (nonatomic, strong) IBOutlet NSImageView *statusImageView;\n@property (nonatomic, strong) IBOutlet NSTextField *statusText;\n@property (nonatomic, strong) IBOutlet WebView *releaseNotesWebView;\n@property (nonatomic, strong) IBOutlet WebView *aboutWebView;\n@property (nonatomic, strong) IBOutlet NSTextFieldCell *staticResolversTextField;\n@property (nonatomic, strong) IBOutlet NSTextField *blacklistIPsTextField;\n@property (nonatomic, strong) IBOutlet NSTextField *blacklistDomainsTextField;\n@property (nonatomic, strong) IBOutlet NSTextField *exceptionsTextField;\n@property (nonatomic, strong) IBOutlet WebView *helpWebView;\n@property (nonatomic, strong) IBOutlet NSButton *viewLogButton;\n@property (nonatomic, strong) IBOutlet NSButton *queryLoggingButton;\n\n@property (nonatomic, strong) IBOutlet NSPopUpButton *resolverNamesButton;\n@property (nonatomic, strong) IBOutlet NSTextField *locationText;\n\n@property (nonatomic, strong) IBOutlet NSButton *providerLink;\n\n@property (nonatomic, strong) IBOutlet NSTextFieldCell *descriptionText;\n\n- (void) mainViewDidLoad;\n\n- (IBAction)dnscryptButtonPressed:(NSButton *)sender;\n- (IBAction)fallbackButtonPressed:(NSButton *)sender;\n\n- (IBAction)providerLinkPushed:(NSButton *)sender;\n- (IBAction)uninstallPushed:(NSButton *)sender;\n- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender;\n- (IBAction)queryLoggingButtonPressed:(NSButtonCell *)sender;\n- (IBAction)viewLogButtonPushed:(NSButton *)sender;\n- (IBAction)blacklistIPsUpdated:(NSTextField *)sender;\n- (IBAction)blacklistDomainsUpdated:(NSTextField *)sender;\n- (IBAction)exceptionsUpdated:(NSTextField *)sender;\n- (IBAction)helpButtonPressed:(NSButton *)sender;\n- (IBAction)resolversNamesPopupButtonPressed:(NSPopUpButton *)sender;\n\n@end\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/DNSCrypt.m",
    "content": "\n#import \"DNSCrypt.h\"\n\n@implementation DNSCrypt\n@synthesize tabView = _tabView;\n@synthesize aboutTabViewItem = _aboutTabViewItem;\n@synthesize releaseNotesTabViewItem = _releaseNotesTabViewItem;\n@synthesize releaseNotesWebView = _releaseNotesWebView;\n@synthesize aboutWebView = _aboutWebView;\n@synthesize staticResolversTextField = _staticResolversTextField;\n@synthesize blacklistIPsTextField = _blacklistIPsTextField;\n@synthesize blacklistDomainsTextField = _blacklistDomainsTextField;\n@synthesize helpWebView = _helpWebView;\n@synthesize viewLogButton = _viewLogButton;\n@synthesize queryLoggingButton = _queryLoggingButton;\n@synthesize exceptionsTextField = _exceptionsTextField;\n@synthesize dnscryptButton = _dnscryptButton;\n@synthesize fallbackButton = _fallbackButton;\n@synthesize statusImageView = _statusImageView;\n@synthesize statusText = _statusText;\n@synthesize currentResolverTextField = _currentResolverTextField;\n@synthesize resolverNamesButton = _resolverNamesButton;\n\nDNSConfigurationState currentState = kDNS_CONFIGURATION_UNKNOWN;\nNSArray *resolversList;\n\n- (void) setCheckBoxesEnabled: (BOOL) enabled\n{\n    [_dnscryptButton setEnabled: enabled];\n    [_fallbackButton setEnabled: enabled];\n}\n\n- (NSString *) fromCommand: (NSString *) launchPath withArguments: (NSArray *) arguments\n{\n    NSPipe *pipe = [[NSPipe alloc] init];\n    NSTask *task = [[NSTask alloc] init];\n    NSData *data;\n    NSString *result;\n    task.launchPath = launchPath;\n    task.arguments = arguments;\n    task.standardOutput = pipe;\n    [task launch];\n    data = [[pipe fileHandleForReading] readDataToEndOfFile];\n    [task waitUntilExit];\n    result = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];\n    if ([result hasSuffix: @\"\\n\"]) {\n        result = [result substringToIndex: result.length - 1];\n    }\n    return result;\n}\n\n- (void) initState\n{\n    NSString *res;\n\n    _dnscryptButton.state = 0;\n    _fallbackButton.state = 0;\n    \n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-dnscrypt-status.sh\", nil]];\n    if ([res isEqualToString: @\"yes\"]) {\n        [_dnscryptButton setState: 1];\n    }\n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-fallback-status.sh\", nil]];\n    if ([res isEqualToString: @\"yes\"]) {\n        [_fallbackButton setState: 1];\n    }\n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-static-resolvers.sh\", nil]];\n    [_staticResolversTextField setStringValue: res];\n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-query-logging-status.sh\", nil]];\n    if ([res isEqualToString: @\"yes\"]) {\n        [_queryLoggingButton setState: 1];\n    }\n    NSString *fileContent;\n    fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_BLACKLIST_IPS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];\n    if (fileContent != nil) {\n        [_blacklistIPsTextField setStringValue: fileContent];\n    }\n    fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];\n    if (fileContent != nil) {\n        [_blacklistDomainsTextField setStringValue: fileContent];\n    }\n    fileContent = [NSString stringWithContentsOfFile: kDNSCRYPT_EXCEPTIONS_TMP_FILE encoding:NSUTF8StringEncoding error: nil];\n    if (fileContent != nil) {\n        [_exceptionsTextField setStringValue: fileContent];\n    }\n    \n    [_resolverNamesButton removeAllItems];\n    \n    resolversList = [NSArray arrayWithContentsOfCSVFile: kRESOLVERS_LIST_FILE options:CHCSVParserOptionsSanitizesFields | CHCSVParserOptionsStripsLeadingAndTrailingWhitespace];\n    NSUInteger rows_count = [resolversList count];\n    NSUInteger i;\n    [_resolverNamesButton addItemWithTitle: NSLocalizedString(@\"Please select a resolver\", @\"A resolver hasn't been selected yet\")];\n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-dnscrypt-resolver-name.sh\", nil]];\n    for (i = 1U; i < rows_count; i++) {\n        NSArray *row = [resolversList objectAtIndex: i];\n        NSString *name;\n        if (row.count < 4) {\n            continue;\n        }\n        name = [row objectAtIndex: 1];\n        [_resolverNamesButton addItemWithTitle: name];\n        if ([[row objectAtIndex: 0] isEqualToString: res]) {\n            [_resolverNamesButton selectItemAtIndex: i];\n            [self updateResolverInfo: row];\n        }\n    }\n}\n\n- (void) updateLedStatus\n{\n    NSBundle *bundle = [NSBundle bundleWithIdentifier: @\"com.github.dnscrypt-osxclient.DNSCrypt\"];\n    switch (currentState) {\n        case kDNS_CONFIGURATION_UNKNOWN:\n            _statusText.stringValue = NSLocalizedString(@\"Standby\", @\"Status\");\n            _statusImageView.image = [[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @\"shield_red.png\"]];\n            break;\n        case kDNS_CONFIGURATION_VANILLA:\n            _statusText.stringValue = NSLocalizedString(@\"Not using DNSCrypt\", @\"Status\");\n            _statusImageView.image = [[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @\"shield_red.png\"]];\n            break;\n        case kDNS_CONFIGURATION_LOCALHOST:\n            _statusText.stringValue = NSLocalizedString(@\"Using DNSCrypt\", @\"Status\");\n            _statusImageView.image = [[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @\"shield_green.png\"]];\n            break;\n        default:\n            return;\n    }\n}\n\n- (BOOL) updateStatusWithCurrentConfig\n{\n    NSString *stateDescription = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./get-current-resolvers.sh | ./get-resolvers-description.sh\", nil]];\n    if ([stateDescription isEqualToString: @\"DNSCrypt\"]) {\n        currentState = kDNS_CONFIGURATION_LOCALHOST;\n    } else if ([stateDescription isEqualToString: @\"None\"]) {\n        currentState = kDNS_CONFIGURATION_UNKNOWN;\n    } else if ([stateDescription isEqualToString: @\"Updating\"]) {\n        currentState = kDNS_CONFIGURATION_UNKNOWN;\n    } else if (stateDescription.length > 0) {\n        currentState = kDNS_CONFIGURATION_VANILLA;\n    }\n    [self updateLedStatus];\n    \n    NSString *currentResolvers = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./get-current-resolvers.sh | ./get-upstream-resolvers.sh\", nil]];\n    _currentResolverTextField.stringValue = currentResolvers;\n    \n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./gui-pop-conf-change.sh prefpane\", nil]];\n    if ([res isEqualToString: @\"yes\"]) {\n        [self initState];\n    }\n    [self setCheckBoxesEnabled: TRUE];\n    \n    return TRUE;\n}\n\n- (void) periodicallyUpdateStatusWithCurrentConfig {\n    [self updateStatusWithCurrentConfig];\n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(periodicallyUpdateStatusWithCurrentConfig) object: nil];\n    [self performSelector: @selector(periodicallyUpdateStatusWithCurrentConfig) withObject:nil afterDelay: kREFRESH_DELAY];\n}\n\n- (void) showSpinners {\n    NSBundle *bundle = [NSBundle bundleWithIdentifier: kBUNDLE_IDENTIFIER];\n    \n    [self setCheckBoxesEnabled: FALSE];\n    _statusText.stringValue = NSLocalizedString(@\"Updating\", @\"Updating network configuraiton\");\n    _statusImageView.image = [[NSImage alloc] initWithContentsOfFile: [bundle pathForImageResource: @\"ajax-loader.gif\"]];\n    _currentResolverTextField.stringValue = @\"\";\n    \n    [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./gui-push-conf-change.sh menubar\", nil]];\n    \n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(periodicallyUpdateStatusWithCurrentConfig) object: nil];\n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(waitForUpdate) object: nil];\n    [self performSelector: @selector(waitForUpdate) withObject: self afterDelay:kREFRESH_DELAY];\n}\n\n- (BOOL) setDNSCryptOn {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-to-dnscrypt.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (BOOL) setDNSCryptOff {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-to-dhcp.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (BOOL) setFallbackOn {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-fallback-on.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (BOOL) setFallbackOff {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-fallback-off.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (IBAction)dnscryptButtonPressed:(NSButton *)sender\n{\n    if (sender.state != 0) {\n        [self setDNSCryptOn];\n    } else {\n        [self setDNSCryptOff];\n    }\n}\n\n- (IBAction)fallbackButtonPressed:(NSButton *)sender\n{\n    if (sender.state != 0) {\n        [self setFallbackOn];\n    } else {\n        [self setFallbackOff];\n    }\n}\n\n- (void) waitForUpdate {\n    NSString *res;\n    static unsigned int tries;\n    \n    res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./get-tickets-count.sh\", nil]];\n    if (res.length <= 0 || [res isEqualToString: @\"0\"] || tries > kMAX_TRIES_AFTER_CHANGE) {\n        tries = 0U;\n        [self periodicallyUpdateStatusWithCurrentConfig];\n        return;\n    }\n    tries++;\n    [NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector(waitForUpdate) object: nil];\n    [self performSelector: @selector(waitForUpdate) withObject: self afterDelay:kREFRESH_DELAY];\n}\n\n- (void) updateResolverInfo: (NSArray *) row {\n    NSString *location = [row objectAtIndex: 3];\n    _locationText.stringValue = location;\n    NSString *url = [row objectAtIndex: 5];\n    if (![url isEqualToString: @\"\"]) {\n        _providerLink.title = url;\n        _providerLink.hidden = false;\n    } else {\n        _providerLink.hidden = true;\n    }\n    NSString *description = [row objectAtIndex: 2];\n    _descriptionText.stringValue = description;\n}\n\n- (IBAction)resolversNamesPopupButtonPressed:(NSPopUpButton *)sender {\n    NSUInteger i = [sender indexOfSelectedItem];\n    if (i <= 0U || i >= resolversList.count) {\n        return;\n    }\n    NSArray *row = [resolversList objectAtIndex: i];\n    [self updateResolverInfo: row];\n    setenv(\"RESOLVER_NAME\", [[row objectAtIndex: 0] UTF8String], 1);\n    [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./set-dnscrypt-resolver-name.sh \\\"$RESOLVER_NAME\\\"\", nil]];\n}\n\n- (void) mainViewDidLoad\n{\n    currentState = kDNS_CONFIGURATION_UNKNOWN;\n    \n    [self initState];\n    [self periodicallyUpdateStatusWithCurrentConfig];\n\n    SInt32 OSXversionMajor, OSXversionMinor;\n    if (Gestalt(gestaltSystemVersionMajor, &OSXversionMajor) != noErr || Gestalt(gestaltSystemVersionMinor, &OSXversionMinor) != noErr || OSXversionMajor < 10 || OSXversionMinor < 6) {\n        return;\n    }\n    [_releaseNotesWebView setDrawsBackground:false];\n    [_releaseNotesWebView setShouldUpdateWhileOffscreen:true];\n    [_releaseNotesWebView setUIDelegate:self];\n    \n    NSURL *releaseNotesURL;\n    NSString *releaseNotesURLPath = [[NSBundle bundleForClass: [self class]] pathForResource: @\"releasenotes\" ofType: @\"html\" inDirectory: @\"html\"];\n    if (! releaseNotesURLPath || ! (releaseNotesURL = [NSURL fileURLWithPath:  releaseNotesURLPath])) {\n        [_tabView removeTabViewItem:_releaseNotesTabViewItem];\n    } else {\n        [[_releaseNotesWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: releaseNotesURL]];\n    }\n\n    [_aboutWebView setDrawsBackground:false];\n    [_aboutWebView setShouldUpdateWhileOffscreen:true];\n    [_aboutWebView setUIDelegate:self];\n    NSURL *aboutURL;\n    NSString *aboutURLPath = [[NSBundle bundleForClass: [self class]] pathForResource: @\"about\" ofType: @\"html\" inDirectory: @\"html\"];\n    if (! aboutURLPath || ! (aboutURL = [NSURL fileURLWithPath: aboutURLPath])) {\n        [_tabView removeTabViewItem: _aboutTabViewItem];\n    } else {\n        [[_aboutWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: aboutURL]];\n    }\n    \n    [_helpWebView setDrawsBackground:false];\n    [_helpWebView setShouldUpdateWhileOffscreen:false];\n    [_helpWebView setUIDelegate:self];\n    NSURL *helpURL;\n    NSString *helpURLPath = [[NSBundle bundleForClass: [self class]] pathForResource: @\"help\" ofType: @\"html\" inDirectory: @\"html\"];\n    if (! helpURLPath || ! (helpURL = [NSURL fileURLWithPath: helpURLPath])) {\n        assert(0);\n    } else {\n        [[_helpWebView mainFrame] loadRequest:[NSURLRequest requestWithURL: helpURL]];\n    }\n}\n\n- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element\n    defaultMenuItems:(NSArray *)defaultMenuItems\n{\n    return nil;\n}\n\n- (IBAction)providerLinkPushed:(NSButton *)sender\n{\n    (void) sender;\n    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString: sender.title]];\n}\n\n- (IBAction)uninstallPushed:(NSButton *)sender {\n    [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_BIN_BASE_DIR @\"' && /usr/bin/open ./Uninstall.app\", nil]];\n}\n\n- (IBAction)staticResolversTextFieldChanged:(NSTextField *)sender {\n    NSString *staticResolvers = sender.stringValue;\n    NSCharacterSet *charset = [[NSCharacterSet characterSetWithCharactersInString: @\"0123456789abcdefABCDEF:. \"] invertedSet];\n    staticResolvers = [[staticResolvers componentsSeparatedByCharactersInSet: charset] componentsJoinedByString: @\" \"];\n    sender.stringValue = staticResolvers;\n    setenv(\"STATIC_RESOLVERS\", [staticResolvers UTF8String], 1);\n    [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && exec ./set-static-resolvers.sh \\\"$STATIC_RESOLVERS\\\"\", nil]];\n}\n\n- (BOOL) setQueryLoggingOn {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-query-logging-on.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (BOOL) setQueryLoggingOff {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./switch-query-logging-off.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (IBAction)queryLoggingButtonPressed:(NSButtonCell *)sender {\n    if (sender.state != 0) {\n        [self setQueryLoggingOn];\n    } else {\n        [self setQueryLoggingOff];\n    }\n}\n\n- (IBAction)viewLogButtonPushed:(NSButton *)sender {\n    [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"open /Applications/Utilities/Console.app \" kDNSCRYPT_QUERY_LOG_FILE \" || open \" kDNSCRYPT_QUERY_LOG_FILE, nil]];\n}\n\n- (BOOL) updateBlacklistIPs {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./update-blacklist-ips.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (IBAction)blacklistIPsUpdated:(NSTextField *)sender {\n    NSString *content = sender.stringValue;\n    if ([content writeToFile: kDNSCRYPT_BLACKLIST_IPS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {\n        return;\n    }\n    [self updateBlacklistIPs];\n}\n\n- (BOOL) updateBlacklistDomains {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./update-blacklist-domains.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (IBAction)blacklistDomainsUpdated:(NSTextField *)sender {\n    NSString *content = sender.stringValue;\n    if ([content writeToFile: kDNSCRYPT_BLACKLIST_DOMAINS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {\n        return;\n    }\n    [self updateBlacklistDomains];\n}\n\n- (BOOL) updateExceptions {\n    [self showSpinners];\n    NSString *res = [self fromCommand: @\"/bin/csh\" withArguments: [NSArray arrayWithObjects: @\"-c\", @\"cd '\" kDNSCRIPT_SCRIPTS_BASE_DIR @\"' && ./create-ticket.sh && ./update-exceptions.sh\", nil]];\n    (void) res;\n    return TRUE;\n}\n\n- (IBAction)exceptionsUpdated:(NSTextField *)sender {\n    NSString *content = sender.stringValue;\n    if ([content writeToFile: kDNSCRYPT_EXCEPTIONS_TMP_FILE atomically: YES encoding: NSUTF8StringEncoding error: nil] != YES) {\n        return;\n    }\n    [self updateExceptions];\n}\n\n- (IBAction)helpButtonPressed:(NSButton *)sender {\n    if (_helpWebView.isHidden) {\n        [_helpWebView.window makeFirstResponder: nil];\n        [_helpWebView setHidden: NO];\n        [_helpWebView setAlphaValue: 0.0F];\n        [_helpWebView.animator setAlphaValue: 1.0F];\n        [_helpWebView setDrawsBackground: TRUE];\n        [_viewLogButton setHidden: YES];\n        [_queryLoggingButton setHidden: YES];\n    } else {\n        [_helpWebView.window makeFirstResponder: nil];\n        [_helpWebView setHidden: YES];\n        [_queryLoggingButton setHidden: NO];\n    }\n}\n\n@end\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/DNSCrypt.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"5056\" systemVersion=\"13D45a\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\">\n    <dependencies>\n        <deployment version=\"1070\" defaultVersion=\"1060\" identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"5056\"/>\n        <plugIn identifier=\"com.apple.WebKitIBPlugin\" version=\"5056\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"DNSCrypt\">\n            <connections>\n                <outlet property=\"_window\" destination=\"12\" id=\"26\"/>\n                <outlet property=\"aboutTabViewItem\" destination=\"356\" id=\"376\"/>\n                <outlet property=\"aboutWebView\" destination=\"358\" id=\"359\"/>\n                <outlet property=\"blacklistDomainsTextField\" destination=\"404\" id=\"446\"/>\n                <outlet property=\"blacklistIPsTextField\" destination=\"402\" id=\"444\"/>\n                <outlet property=\"currentResolverTextField\" destination=\"174\" id=\"296\"/>\n                <outlet property=\"descriptionText\" destination=\"2aF-7O-SkX\" id=\"nM9-H2-22g\"/>\n                <outlet property=\"dnscryptButton\" destination=\"179\" id=\"363\"/>\n                <outlet property=\"exceptionsTextField\" destination=\"406\" id=\"452\"/>\n                <outlet property=\"fallbackButton\" destination=\"281\" id=\"365\"/>\n                <outlet property=\"helpWebView\" destination=\"449\" id=\"450\"/>\n                <outlet property=\"locationText\" destination=\"e9H-pq-zb6\" id=\"Elc-qh-Z8b\"/>\n                <outlet property=\"providerLink\" destination=\"323\" id=\"Riq-Cc-CLa\"/>\n                <outlet property=\"queryLoggingButton\" destination=\"398\" id=\"458\"/>\n                <outlet property=\"releaseNotesTabViewItem\" destination=\"349\" id=\"383\"/>\n                <outlet property=\"releaseNotesWebView\" destination=\"354\" id=\"355\"/>\n                <outlet property=\"resolverNamesButton\" destination=\"yY6-5S-StG\" id=\"GXE-Nb-8GL\"/>\n                <outlet property=\"staticResolversTextField\" destination=\"393\" id=\"433\"/>\n                <outlet property=\"statusImageView\" destination=\"270\" id=\"303\"/>\n                <outlet property=\"statusText\" destination=\"274\" id=\"304\"/>\n                <outlet property=\"tabView\" destination=\"99\" id=\"384\"/>\n                <outlet property=\"viewLogButton\" destination=\"400\" id=\"457\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\"/>\n        <window title=\"&lt;&lt; do not localize >>\" allowsToolTipsWhenApplicationIsInactive=\"NO\" autorecalculatesKeyViewLoop=\"NO\" deferred=\"NO\" oneShot=\"NO\" releasedWhenClosed=\"NO\" visibleAtLaunch=\"NO\" animationBehavior=\"default\" id=\"12\" userLabel=\"PrefPane\">\n            <windowStyleMask key=\"styleMask\" titled=\"YES\" closable=\"YES\" miniaturizable=\"YES\"/>\n            <windowPositionMask key=\"initialPositionMask\" leftStrut=\"YES\" rightStrut=\"YES\" topStrut=\"YES\" bottomStrut=\"YES\"/>\n            <rect key=\"contentRect\" x=\"176\" y=\"715\" width=\"589\" height=\"375\"/>\n            <rect key=\"screenRect\" x=\"0.0\" y=\"0.0\" width=\"1366\" height=\"746\"/>\n            <value key=\"minSize\" type=\"size\" width=\"224.66399999999999\" height=\"10\"/>\n            <view key=\"contentView\" id=\"6\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"589\" height=\"375\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n                <subviews>\n                    <tabView initialItem=\"100\" id=\"99\">\n                        <rect key=\"frame\" x=\"13\" y=\"10\" width=\"563\" height=\"359\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <font key=\"font\" metaFont=\"system\"/>\n                        <tabViewItems>\n                            <tabViewItem label=\"General\" identifier=\"1\" id=\"100\">\n                                <view key=\"view\" id=\"103\">\n                                    <rect key=\"frame\" x=\"10\" y=\"33\" width=\"543\" height=\"313\"/>\n                                    <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                    <subviews>\n                                        <button toolTip=\"Use OpenDNS resolvers with the DNSCrypt protocol\" id=\"179\">\n                                            <rect key=\"frame\" x=\"15\" y=\"234\" width=\"204\" height=\"22\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <buttonCell key=\"cell\" type=\"check\" title=\"Enable DNSCrypt\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"180\">\n                                                <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"systemBold\" size=\"14\"/>\n                                            </buttonCell>\n                                            <accessibility description=\"Enable DNSCrypt\"/>\n                                            <connections>\n                                                <action selector=\"dnscryptButtonPressed:\" target=\"-2\" id=\"368\"/>\n                                            </connections>\n                                        </button>\n                                        <button id=\"281\">\n                                            <rect key=\"frame\" x=\"15\" y=\"126\" width=\"239\" height=\"54\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <string key=\"toolTip\">Only check this box if you often have to connect to public WiFi hotspots and you don't want to manually disable DNSCrypt in order to pass a captive portal.</string>\n                                            <buttonCell key=\"cell\" type=\"check\" title=\"Automatically disable if blocked\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" inset=\"2\" id=\"282\">\n                                                <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"system\" size=\"14\"/>\n                                            </buttonCell>\n                                            <accessibility description=\"Fallback to insecure DNS\"/>\n                                            <connections>\n                                                <action selector=\"fallbackButtonPressed:\" target=\"-2\" id=\"372\"/>\n                                            </connections>\n                                        </button>\n                                        <textField verticalHuggingPriority=\"750\" id=\"162\">\n                                            <rect key=\"frame\" x=\"14\" y=\"96\" width=\"173\" height=\"19\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"Current DNS settings:\" id=\"163\">\n                                                <font key=\"font\" metaFont=\"system\" size=\"16\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" id=\"Wkj-kT-maK\">\n                                            <rect key=\"frame\" x=\"278\" y=\"208\" width=\"173\" height=\"19\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"Location:\" id=\"GO7-P1-scE\">\n                                                <font key=\"font\" metaFont=\"system\" size=\"14\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" id=\"174\">\n                                            <rect key=\"frame\" x=\"14\" y=\"-3\" width=\"240\" height=\"83\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" alignment=\"left\" title=\"...\" placeholderString=\"\" id=\"175\">\n                                                <font key=\"font\" size=\"14\" name=\"Monaco\"/>\n                                                <color key=\"textColor\" white=\"0.2046370968\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" id=\"e9H-pq-zb6\">\n                                            <rect key=\"frame\" x=\"345\" y=\"200\" width=\"200\" height=\"27\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" alignment=\"left\" placeholderString=\"\" id=\"q83-P7-DNW\">\n                                                <font key=\"font\" size=\"14\" name=\"Monaco\"/>\n                                                <color key=\"textColor\" white=\"0.2046370968\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" id=\"rnd-WE-K61\">\n                                            <rect key=\"frame\" x=\"278\" y=\"46\" width=\"261\" height=\"150\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" alignment=\"left\" placeholderString=\"\" id=\"2aF-7O-SkX\">\n                                                <font key=\"font\" size=\"14\" name=\"Monaco\"/>\n                                                <color key=\"textColor\" white=\"0.2046370968\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" id=\"274\">\n                                            <rect key=\"frame\" x=\"55\" y=\"283\" width=\"219\" height=\"19\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" alignment=\"left\" title=\"...\" placeholderString=\"\" id=\"275\">\n                                                <font key=\"font\" size=\"16\" name=\"Monaco\"/>\n                                                <color key=\"textColor\" white=\"0.2046370968\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <imageView id=\"270\">\n                                            <rect key=\"frame\" x=\"17\" y=\"277\" width=\"32\" height=\"32\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <imageCell key=\"cell\" refusesFirstResponder=\"YES\" alignment=\"left\" animates=\"YES\" imageAlignment=\"topLeft\" imageScaling=\"proportionallyDown\" image=\"ajax-loader\" id=\"271\"/>\n                                        </imageView>\n                                        <box autoresizesSubviews=\"NO\" horizontalHuggingPriority=\"750\" title=\"Box\" boxType=\"separator\" titlePosition=\"noTitle\" id=\"276\">\n                                            <rect key=\"frame\" x=\"270\" y=\"2\" width=\"4\" height=\"300\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <color key=\"borderColor\" white=\"0.0\" alpha=\"0.41999999999999998\" colorSpace=\"calibratedWhite\"/>\n                                            <color key=\"fillColor\" white=\"0.0\" alpha=\"0.0\" colorSpace=\"calibratedWhite\"/>\n                                            <font key=\"titleFont\" metaFont=\"system\"/>\n                                        </box>\n                                        <button verticalHuggingPriority=\"750\" id=\"323\">\n                                            <rect key=\"frame\" x=\"274\" y=\"10\" width=\"269\" height=\"32\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <buttonCell key=\"cell\" type=\"push\" title=\"http://www.dnscrypt.org\" alternateTitle=\"Browse the OpenDNS web site\" bezelStyle=\"rounded\" alignment=\"center\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"324\">\n                                                <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"cellTitle\"/>\n                                            </buttonCell>\n                                            <connections>\n                                                <action selector=\"providerLinkPushed:\" target=\"-2\" id=\"HYc-qW-k00\"/>\n                                            </connections>\n                                        </button>\n                                        <box autoresizesSubviews=\"NO\" verticalHuggingPriority=\"750\" title=\"Box\" boxType=\"separator\" titlePosition=\"noTitle\" id=\"345\">\n                                            <rect key=\"frame\" x=\"17\" y=\"193\" width=\"240\" height=\"5\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <color key=\"borderColor\" white=\"0.0\" alpha=\"0.41999999999999998\" colorSpace=\"calibratedWhite\"/>\n                                            <color key=\"fillColor\" white=\"0.0\" alpha=\"0.0\" colorSpace=\"calibratedWhite\"/>\n                                            <font key=\"titleFont\" metaFont=\"system\"/>\n                                        </box>\n                                        <textField verticalHuggingPriority=\"750\" id=\"UQr-Gd-nzd\">\n                                            <rect key=\"frame\" x=\"324\" y=\"268\" width=\"183\" height=\"19\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"DNSCrypt name server:\" id=\"ctO-Mw-4JZ\">\n                                                <font key=\"font\" metaFont=\"system\" size=\"16\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <popUpButton toolTip=\"Select the resolver to use\" verticalHuggingPriority=\"750\" id=\"yY6-5S-StG\">\n                                            <rect key=\"frame\" x=\"286\" y=\"232\" width=\"260\" height=\"26\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <popUpButtonCell key=\"cell\" type=\"push\" title=\"None selected\" bezelStyle=\"rounded\" alignment=\"left\" lineBreakMode=\"truncatingTail\" state=\"on\" borderStyle=\"borderAndBezel\" imageScaling=\"proportionallyDown\" inset=\"2\" selectedItem=\"zMy-SG-d4L\" id=\"LPZ-wM-tAR\">\n                                                <behavior key=\"behavior\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"menu\"/>\n                                                <menu key=\"menu\" title=\"OtherViews\" id=\"rra-2Y-VDJ\">\n                                                    <items>\n                                                        <menuItem title=\"None selected\" state=\"on\" id=\"zMy-SG-d4L\"/>\n                                                        <menuItem title=\"Item 2\" id=\"R2V-Mc-s3u\"/>\n                                                        <menuItem title=\"Item 3\" id=\"WKe-3c-uyM\"/>\n                                                    </items>\n                                                </menu>\n                                            </popUpButtonCell>\n                                            <accessibility description=\"Resolver name selection\"/>\n                                            <connections>\n                                                <action selector=\"resolversNamesPopupButtonPressed:\" target=\"-2\" id=\"fEP-TP-PCO\"/>\n                                            </connections>\n                                        </popUpButton>\n                                    </subviews>\n                                </view>\n                            </tabViewItem>\n                            <tabViewItem label=\"Advanced\" identifier=\"2\" id=\"388\">\n                                <view key=\"view\" id=\"389\">\n                                    <rect key=\"frame\" x=\"10\" y=\"33\" width=\"543\" height=\"313\"/>\n                                    <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                    <subviews>\n                                        <textField verticalHuggingPriority=\"750\" id=\"390\">\n                                            <rect key=\"frame\" x=\"5\" y=\"236\" width=\"406\" height=\"17\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"When not using DNSCrypt, use the following static DNS servers:\" id=\"391\">\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" id=\"392\">\n                                            <rect key=\"frame\" x=\"8\" y=\"206\" width=\"526\" height=\"22\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" selectable=\"YES\" editable=\"YES\" sendsActionOnEndEditing=\"YES\" state=\"on\" borderStyle=\"bezel\" toolTip=\"Leave empty to use DHCP-provided servers\" placeholderString=\"Space-separated list of IP addresses or leave blank for DHCP\" drawsBackground=\"YES\" usesSingleLineMode=\"YES\" id=\"393\">\n                                                <font key=\"font\" size=\"13\" name=\"Courier\"/>\n                                                <color key=\"textColor\" name=\"textColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <allowedInputSourceLocales>\n                                                    <string>NSAllRomanInputSourcesLocaleIdentifier</string>\n                                                </allowedInputSourceLocales>\n                                                <accessibility description=\"Static DNS servers\"/>\n                                            </textFieldCell>\n                                            <connections>\n                                                <action selector=\"staticResolversTextFieldChanged:\" target=\"-2\" id=\"432\"/>\n                                            </connections>\n                                        </textField>\n                                        <button id=\"398\">\n                                            <rect key=\"frame\" x=\"7\" y=\"281\" width=\"126\" height=\"18\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <buttonCell key=\"cell\" type=\"check\" title=\"Log DNS queries\" bezelStyle=\"regularSquare\" imagePosition=\"left\" inset=\"2\" id=\"399\">\n                                                <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                                <connections>\n                                                    <action selector=\"queryLoggingButtonPressed:\" target=\"-2\" id=\"448\"/>\n                                                </connections>\n                                            </buttonCell>\n                                            <accessibility description=\"Log DNS queries\"/>\n                                        </button>\n                                        <button verticalHuggingPriority=\"750\" id=\"400\">\n                                            <rect key=\"frame\" x=\"161\" y=\"273\" width=\"94\" height=\"32\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <buttonCell key=\"cell\" type=\"push\" title=\"View log\" bezelStyle=\"rounded\" alignment=\"center\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"401\">\n                                                <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                            </buttonCell>\n                                            <accessibility description=\"View the DNS query log\"/>\n                                            <connections>\n                                                <action selector=\"viewLogButtonPushed:\" target=\"-2\" id=\"441\"/>\n                                            </connections>\n                                        </button>\n                                        <textField verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" id=\"402\">\n                                            <rect key=\"frame\" x=\"10\" y=\"7\" width=\"169\" height=\"141\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" selectable=\"YES\" editable=\"YES\" sendsActionOnEndEditing=\"YES\" state=\"on\" borderStyle=\"bezel\" drawsBackground=\"YES\" id=\"403\">\n                                                <font key=\"font\" size=\"11\" name=\"Courier\"/>\n                                                <string key=\"placeholderString\">IP addresses (IPv4/IPv6) to block.  208.67.0.255 192.0.43.10\n::1</string>\n                                                <color key=\"textColor\" name=\"textColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <allowedInputSourceLocales>\n                                                    <string>NSAllRomanInputSourcesLocaleIdentifier</string>\n                                                </allowedInputSourceLocales>\n                                            </textFieldCell>\n                                            <connections>\n                                                <action selector=\"blacklistIPsUpdated:\" target=\"-2\" id=\"445\"/>\n                                            </connections>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" id=\"404\">\n                                            <rect key=\"frame\" x=\"188\" y=\"7\" width=\"169\" height=\"141\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" selectable=\"YES\" editable=\"YES\" sendsActionOnEndEditing=\"YES\" state=\"on\" borderStyle=\"bezel\" drawsBackground=\"YES\" id=\"405\">\n                                                <font key=\"font\" size=\"11\" name=\"Courier\"/>\n                                                <string key=\"placeholderString\">Domain names to block.\n *sex*\nads.*\n*.example.com suspicious.example.net</string>\n                                                <color key=\"textColor\" name=\"textColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <allowedInputSourceLocales>\n                                                    <string>NSAllRomanInputSourcesLocaleIdentifier</string>\n                                                </allowedInputSourceLocales>\n                                            </textFieldCell>\n                                            <connections>\n                                                <action selector=\"blacklistDomainsUpdated:\" target=\"-2\" id=\"447\"/>\n                                            </connections>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" id=\"406\">\n                                            <rect key=\"frame\" x=\"366\" y=\"7\" width=\"169\" height=\"141\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" selectable=\"YES\" editable=\"YES\" sendsActionOnEndEditing=\"YES\" state=\"on\" borderStyle=\"bezel\" placeholderString=\"Domain names to resolve through the default resolvers instead of DNSCrypt.  localdomain mycompany.example.net\" drawsBackground=\"YES\" id=\"407\">\n                                                <font key=\"font\" size=\"11\" name=\"Courier\"/>\n                                                <color key=\"textColor\" name=\"textColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <allowedInputSourceLocales>\n                                                    <string>NSAllRomanInputSourcesLocaleIdentifier</string>\n                                                </allowedInputSourceLocales>\n                                            </textFieldCell>\n                                            <connections>\n                                                <action selector=\"exceptionsUpdated:\" target=\"-2\" id=\"453\"/>\n                                            </connections>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" setsMaxLayoutWidthAtFirstLayout=\"YES\" id=\"408\">\n                                            <rect key=\"frame\" x=\"7\" y=\"156\" width=\"175\" height=\"34\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" title=\"Block replies containing any of these IP addresses:\" id=\"409\">\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" setsMaxLayoutWidthAtFirstLayout=\"YES\" id=\"410\">\n                                            <rect key=\"frame\" x=\"186\" y=\"156\" width=\"175\" height=\"34\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" title=\"Block queries for the following domain names:\" id=\"411\">\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <textField verticalHuggingPriority=\"750\" horizontalCompressionResistancePriority=\"250\" setsMaxLayoutWidthAtFirstLayout=\"YES\" id=\"412\">\n                                            <rect key=\"frame\" x=\"363\" y=\"156\" width=\"175\" height=\"34\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" sendsActionOnEndEditing=\"YES\" title=\"Bypass DNSCrypt to resolve these domains:\" id=\"413\">\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <button horizontalHuggingPriority=\"750\" verticalHuggingPriority=\"750\" id=\"416\">\n                                            <rect key=\"frame\" x=\"503\" y=\"277\" width=\"25\" height=\"25\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <buttonCell key=\"cell\" type=\"help\" bezelStyle=\"helpButton\" alignment=\"center\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"417\">\n                                                <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                            </buttonCell>\n                                            <connections>\n                                                <action selector=\"helpButtonPressed:\" target=\"-2\" id=\"451\"/>\n                                            </connections>\n                                        </button>\n                                        <textField verticalHuggingPriority=\"750\" id=\"423\">\n                                            <rect key=\"frame\" x=\"467\" y=\"284\" width=\"33\" height=\"17\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"Help\" id=\"424\">\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                                <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                                <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                                            </textFieldCell>\n                                        </textField>\n                                        <box autoresizesSubviews=\"NO\" verticalHuggingPriority=\"750\" title=\"Box\" boxType=\"separator\" titlePosition=\"noTitle\" id=\"425\">\n                                            <rect key=\"frame\" x=\"9\" y=\"265\" width=\"526\" height=\"5\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <color key=\"borderColor\" white=\"0.0\" alpha=\"0.41999999999999998\" colorSpace=\"calibratedWhite\"/>\n                                            <color key=\"fillColor\" white=\"0.0\" alpha=\"0.0\" colorSpace=\"calibratedWhite\"/>\n                                            <font key=\"titleFont\" metaFont=\"system\"/>\n                                        </box>\n                                        <webView hidden=\"YES\" maintainsBackForwardList=\"NO\" id=\"449\">\n                                            <rect key=\"frame\" x=\"3\" y=\"-3\" width=\"536\" height=\"278\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <webPreferences key=\"preferences\" identifier=\"helpWebView\" defaultFontSize=\"12\" defaultFixedFontSize=\"12\" minimumFontSize=\"2\" plugInsEnabled=\"NO\" javaEnabled=\"NO\" javaScriptEnabled=\"NO\" javaScriptCanOpenWindowsAutomatically=\"NO\" loadsImagesAutomatically=\"NO\" allowsAnimatedImages=\"NO\" allowsAnimatedImageLooping=\"NO\"/>\n                                            <accessibility description=\"Static DNS resolvers\"/>\n                                        </webView>\n                                    </subviews>\n                                </view>\n                            </tabViewItem>\n                            <tabViewItem label=\"About\" identifier=\"3\" id=\"356\">\n                                <view key=\"view\" id=\"357\">\n                                    <rect key=\"frame\" x=\"10\" y=\"33\" width=\"543\" height=\"313\"/>\n                                    <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                    <subviews>\n                                        <webView maintainsBackForwardList=\"NO\" id=\"358\">\n                                            <rect key=\"frame\" x=\"17\" y=\"31\" width=\"509\" height=\"279\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <webPreferences key=\"preferences\" defaultFontSize=\"12\" defaultFixedFontSize=\"12\" plugInsEnabled=\"NO\" javaEnabled=\"NO\" javaScriptCanOpenWindowsAutomatically=\"NO\" loadsImagesAutomatically=\"NO\" allowsAnimatedImages=\"NO\" allowsAnimatedImageLooping=\"NO\">\n                                                <nil key=\"identifier\"/>\n                                            </webPreferences>\n                                        </webView>\n                                        <button verticalHuggingPriority=\"750\" id=\"385\">\n                                            <rect key=\"frame\" x=\"437\" y=\"-5\" width=\"95\" height=\"32\"/>\n                                            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                                            <buttonCell key=\"cell\" type=\"push\" title=\"Uninstall\" bezelStyle=\"rounded\" alignment=\"center\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"386\">\n                                                <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                                                <font key=\"font\" metaFont=\"system\"/>\n                                            </buttonCell>\n                                            <connections>\n                                                <action selector=\"uninstallPushed:\" target=\"-2\" id=\"387\"/>\n                                            </connections>\n                                        </button>\n                                    </subviews>\n                                </view>\n                            </tabViewItem>\n                            <tabViewItem label=\"Release Notes\" identifier=\"4\" id=\"349\">\n                                <view key=\"view\" id=\"350\">\n                                    <rect key=\"frame\" x=\"10\" y=\"33\" width=\"543\" height=\"313\"/>\n                                    <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                                    <subviews>\n                                        <webView maintainsBackForwardList=\"NO\" id=\"354\">\n                                            <rect key=\"frame\" x=\"17\" y=\"17\" width=\"509\" height=\"293\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <webPreferences key=\"preferences\" defaultFontSize=\"12\" defaultFixedFontSize=\"12\" plugInsEnabled=\"NO\" javaEnabled=\"NO\" javaScriptCanOpenWindowsAutomatically=\"NO\" loadsImagesAutomatically=\"NO\" allowsAnimatedImages=\"NO\" allowsAnimatedImageLooping=\"NO\">\n                                                <nil key=\"identifier\"/>\n                                            </webPreferences>\n                                        </webView>\n                                    </subviews>\n                                </view>\n                            </tabViewItem>\n                        </tabViewItems>\n                    </tabView>\n                </subviews>\n            </view>\n        </window>\n        <customObject id=\"263\"/>\n    </objects>\n    <resources>\n        <image name=\"ajax-loader\" width=\"35\" height=\"35\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/en.lproj/InfoPlist.strings",
    "content": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/html/about.haml",
    "content": "!!! 5\n%html{lang: \"en\"}\n  %head\n    %meta{charset: \"utf-8\"}\n    %title About DNSCrypt-OSXClient\n    %style{type: \"text/css\"}\n      :sass\n        body\n          font:\n            family: arial, helvetica, sans-serif\n          margin: 0\n        h1\n          margin: 0\n  %body\n    %h1 About DNSCrypt-OSXClient\n    %p\n      This software encrypts and authenticates DNS packets between your computer\n      and a DNS resolver using DNSCrypt.\n    %p\n      Tips:\n      %ul\n        %li\n          If you have a firewall, open TCP and UDP ports 53, 54, 443\n          and 1053. These are the most common ports used for DNSCrypt.\n        %li\n          The \"Automatically disable if blocked\" feature automatically disables\n          DNSCrypt when DNS queries are not able to reach the DNSCrypt\n          resolver. This can\n          happen on public WiFi networks that require going through a captive\n          portal before you can access external networks.\n          This function is only provided for conveniency.\n          When enabled, the protocol can be easily downgraded by\n          third-parties. In other words, when the \"Automatically\n          disable if blocked\" feature is enabled, this software doesn't\n          provide any security at all against active attackers, but it can\n          still be useful against passive attackers and in order to bypass\n          DNS censorship. Don't enable it unless you are frequently\n          roaming and you don't want to manually disable/enable DNSCrypt.\n        %li\n          Using Little Snitch? There are 4 rules you need to establish,\n          which Little Snitch should prompt for when trying to\n          activate this application:\n          %ol\n            %li Allow any outgoing connection for system processes (dnscrypt-proxy)\n            %li Allow any incoming connection for system process (dnscrypt-proxy)\n            %li Allow any outgoing connection for system processes (dig)\n            %li Allow outgoing TCP connections on port 80( http) of www.apple.com for system process (curl)\n          (Thanks to @cavemandaveman)\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/html/about.html",
    "content": "<!DOCTYPE html>\n<html lang='en'>\n  <head>\n    <meta charset='utf-8'>\n    <title>About DNSCrypt-OSXClient</title>\n    <style type='text/css'>\n      <style>\n        body {\n          font-family: arial, helvetica, sans-serif;\n          margin: 0; }\n        \n        h1 {\n          margin: 0; }\n      </style>\n    </style>\n  </head>\n  <body>\n    <h1>About DNSCrypt-OSXClient</h1>\n    <p>\n      This software encrypts and authenticates DNS packets between your computer\n      and a DNS resolver using DNSCrypt.\n    </p>\n    <p>\n      Tips:\n      <ul>\n        <li>\n          If you have a firewall, open TCP and UDP ports 53, 54, 443\n          and 1053. These are the most common ports used for DNSCrypt.\n        </li>\n        <li>\n          The \"Automatically disable if blocked\" feature automatically disables\n          DNSCrypt when DNS queries are not able to reach the DNSCrypt\n          resolver. This can\n          happen on public WiFi networks that require going through a captive\n          portal before you can access external networks.\n          This function is only provided for conveniency.\n          When enabled, the protocol can be easily downgraded by\n          third-parties. In other words, when the \"Automatically\n          disable if blocked\" feature is enabled, this software doesn't\n          provide any security at all against active attackers, but it can\n          still be useful against passive attackers and in order to bypass\n          DNS censorship. Don't enable it unless you are frequently\n          roaming and you don't want to manually disable/enable DNSCrypt.\n        </li>\n        <li>\n          Using Little Snitch? There are 4 rules you need to establish,\n          which Little Snitch should prompt for when trying to\n          activate this application:\n          <ol>\n            <li>Allow any outgoing connection for system processes (dnscrypt-proxy)</li>\n            <li>Allow any incoming connection for system process (dnscrypt-proxy)</li>\n            <li>Allow any outgoing connection for system processes (dig)</li>\n            <li>Allow outgoing TCP connections on port 80( http) of www.apple.com for system process (curl)</li>\n          </ol>\n          (Thanks to @cavemandaveman)\n        </li>\n      </ul>\n    </p>\n  </body>\n</html>\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/html/help.haml",
    "content": "!!! 5\n%html{lang: \"en\"}\n  %head\n    %meta{charset: \"utf-8\"}\n    %title Help (advanced settings)\n    %style{type: \"text/css\"}\n      :sass\n        html\n          background: #e4e4e4\n        body\n          font:\n            family: arial, helvetica, sans-serif\n          margin: 1em\n        h1\n          margin: 0\n  %body\n    %h1 Help (advanced settings)\n    %section\n      %h2 Static DNS servers\n      %p\n        If you are not using DHCP and want a statically configured set\n        of default DNS resolvers, enter their IP addresses in this box.\n      %p\n        Separate them with spaces.\n    %section\n      %h2 Log DNS queries\n      %p      \n        As a tool designed to protect your privacy, the DNSCrypt proxy does\n        not log anything about your DNS queries. Nothing about them will be\n        saved to disk ever, and log messages are intentionally kept as generic\n        as possible.        \n      %p\n        However, you still may want to look at the DNS queries sent by\n        your system. This can be useful in order to spot suspicious\n        activity and to refine your domain blacklists and whitelists.\n      %p\n        Checking the \"Log DNS queries\" box dumps all DNS queries sent\n        by your computer to a file named /var/log/dnscrypt-query.log\n      %p\n        The \"View log\" button opens it with the log viewer application\n        so that you can watch it in real time.\n    %section\n      %h2 IP addresses blocking\n      %p\n        A response to a query containing at least one IP address\n        listed here will be blocked.\n      %p\n        This make it easy to block spam sources, hosting services and content\n        providers using a lot of different domain names for a single service.\n      %p\n        This can also be useful in order to block DNS rebinding\n        attacks, even for non-private network spaces.\n      %p\n        IP addresses can be IPv4 and IPv6 addresses, and must be\n        separated with spaces.\n    %section\n      %h2 Names blocking\n      %p\n        This is a list of domain names to be blocked.\n      %p\n        \"example.com\" will only match this specific name, not\n        \"www.example.com\".\n      %p\n        But wildcards are also supported. \"*.example.com\" will match\n        any name ending with \".example.com\" whereas \"ads.*\" will match\n        any name beginning with \"ads.\"\n      %p\n        Wildcards can also perform substring matching. \"*xxx*\" will\n        match any name containing the string \"xxx\".\n      %p\n        Patterns to be blocked should be separated with spaces, and\n        the blocking takes effect immediately after you hit the Return\n        key. Flushing your DNS cache is not required.\n      %p\n        This feature is only enabled when using DNSCrypt.\n    %section\n      %h2 Exceptions - bypassing DNSCrypt for some specific names\n      %p\n        Some domain names should not be resolved by a third-party DNS\n        resolver, that may not know about them.\n      %p\n        This includes local domain names provided by home routers\n        (like \"routerlogin.net\"), local domain names provided by\n        operating systems and applications (like \".local\" or \".lan\"),\n        local domain names served by appliances like st-top boxes, and\n        internal domains used in corporate networks.\n      %p\n        Domains listed here will bypass DNSCrypt in order to be sent\n        to the default resolvers.\n      %p\n        Do\n        %strong not\n        use a tool like hostip(8), drill(1), unbound-host(1), dig(1) or host(1)\n        in order to check that an exception rule works.\n      %p\n        These tools use their own resolution mechanisms that have nothing\n        to do with how others apps on your system are resolving names.\n      %p\n        They don't use the OSX-specific stub resolver, they don't use\n        the system-wide DNS cache, they have bugs and limitations that the OS\n        doesn't have (and the opposite is also true), and they don't know a\n        thing about specific resolvers that have to be used for specific\n        domains.\n      %p\n        Use actual apps, or even a command like ping(8).\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/html/help.html",
    "content": "<!DOCTYPE html>\n<html lang='en'>\n  <head>\n    <meta charset='utf-8'>\n    <title>Help (advanced settings)</title>\n    <style type='text/css'>\n      <style>\n        html {\n          background: #e4e4e4; }\n        \n        body {\n          font-family: arial, helvetica, sans-serif;\n          margin: 1em; }\n        \n        h1 {\n          margin: 0; }\n      </style>\n    </style>\n  </head>\n  <body>\n    <h1>Help (advanced settings)</h1>\n    <section>\n      <h2>Static DNS servers</h2>\n      <p>\n        If you are not using DHCP and want a statically configured set\n        of default DNS resolvers, enter their IP addresses in this box.\n      </p>\n      <p>\n        Separate them with spaces.\n      </p>\n    </section>\n    <section>\n      <h2>Log DNS queries</h2>\n      <p>\n        As a tool designed to protect your privacy, the DNSCrypt proxy does\n        not log anything about your DNS queries. Nothing about them will be\n        saved to disk ever, and log messages are intentionally kept as generic\n        as possible.\n      </p>\n      <p>\n        However, you still may want to look at the DNS queries sent by\n        your system. This can be useful in order to spot suspicious\n        activity and to refine your domain blacklists and whitelists.\n      </p>\n      <p>\n        Checking the \"Log DNS queries\" box dumps all DNS queries sent\n        by your computer to a file named /var/log/dnscrypt-query.log\n      </p>\n      <p>\n        The \"View log\" button opens it with the log viewer application\n        so that you can watch it in real time.\n      </p>\n    </section>\n    <section>\n      <h2>IP addresses blocking</h2>\n      <p>\n        A response to a query containing at least one IP address\n        listed here will be blocked.\n      </p>\n      <p>\n        This make it easy to block spam sources, hosting services and content\n        providers using a lot of different domain names for a single service.\n      </p>\n      <p>\n        This can also be useful in order to block DNS rebinding\n        attacks, even for non-private network spaces.\n      </p>\n      <p>\n        IP addresses can be IPv4 and IPv6 addresses, and must be\n        separated with spaces.\n      </p>\n    </section>\n    <section>\n      <h2>Names blocking</h2>\n      <p>\n        This is a list of domain names to be blocked.\n      </p>\n      <p>\n        \"example.com\" will only match this specific name, not\n        \"www.example.com\".\n      </p>\n      <p>\n        But wildcards are also supported. \"*.example.com\" will match\n        any name ending with \".example.com\" whereas \"ads.*\" will match\n        any name beginning with \"ads.\"\n      </p>\n      <p>\n        Wildcards can also perform substring matching. \"*xxx*\" will\n        match any name containing the string \"xxx\".\n      </p>\n      <p>\n        Patterns to be blocked should be separated with spaces, and\n        the blocking takes effect immediately after you hit the Return\n        key. Flushing your DNS cache is not required.\n      </p>\n      <p>\n        This feature is only enabled when using DNSCrypt.\n      </p>\n    </section>\n    <section>\n      <h2>Exceptions - bypassing DNSCrypt for some specific names</h2>\n      <p>\n        Some domain names should not be resolved by a third-party DNS\n        resolver, that may not know about them.\n      </p>\n      <p>\n        This includes local domain names provided by home routers\n        (like \"routerlogin.net\"), local domain names provided by\n        operating systems and applications (like \".local\" or \".lan\"),\n        local domain names served by appliances like st-top boxes, and\n        internal domains used in corporate networks.\n      </p>\n      <p>\n        Domains listed here will bypass DNSCrypt in order to be sent\n        to the default resolvers.\n      </p>\n      <p>\n        Do\n        <strong>not</strong>\n        use a tool like hostip(8), drill(1), unbound-host(1), dig(1) or host(1)\n        in order to check that an exception rule works.\n      </p>\n      <p>\n        These tools use their own resolution mechanisms that have nothing\n        to do with how others apps on your system are resolving names.\n      </p>\n      <p>\n        They don't use the OSX-specific stub resolver, they don't use\n        the system-wide DNS cache, they have bugs and limitations that the OS\n        doesn't have (and the opposite is also true), and they don't know a\n        thing about specific resolvers that have to be used for specific\n        domains.\n      </p>\n      <p>\n        Use actual apps, or even a command like ping(8).\n      </p>\n    </section>\n  </body>\n</html>\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/html/releasenotes.haml",
    "content": "!!! 5\n%html{lang: \"en\"}\n  %head\n    %meta{charset: \"utf-8\"}\n    %title Release notes for DNSCrypt-OSXClient by AlterStep\n    %style{type: \"text/css\"}\n      :sass\n        body\n          font:\n            family: arial, helvetica, sans-serif\n          margin: 0\n        h1, h2\n          margin: 0\n        h1\n          border-bottom: 1px solid grey\n        article\n          padding-left: 1em\n        time\n          font:\n            style: italic\n  %body\n    %h1 Release Notes for DNSCrypt-OSXclient by AlterStep\n\n    %article\n      %h2 Version 1.0.4 by AlterStep\n      %time Thu, 19 Sep 2014\n      %p\n        Updated DNSCrypt proxy to version 1.4.1\n      %p\n        Updated libsodium to 0.7.0-minimal\n\n    %article\n      %h2 Version 1.0.3 by AlterStep\n      %time Thu, 18 Jun 2014\n      %p\n        Runs on OSX 10.8 (Snow Leopard), 10.9 (Mavericks) and 10.10 (Yosemite)\n      %p\n        New set of icons, contributed by Aaron VonderHaar\n\n    %article\n      %h2 Version 1.0.2 by AlterStep\n      %time Thu, 05 Jun 2014\n      %p\n        Improved installation scripts\n      %p\n        LDNS has been downgraded in order to work on systems without\n        Homebrew.\n\n    %article\n      %h2 Version 1.0.1 by AlterStep\n      %time Mon, 28 Apr 2014\n      %p\n        Include the release version of dnscrypt-proxy 1.4, with a new\n        OpenNIC resolver.\n      %p\n        Wait after dnscrypt-proxy has been turned on before sending a\n        query. This actually makes state changes faster.\n      %p\n        Debug log, turned off by default and deleted after every\n        reboot. In order to enable it, create an empty file named\n        %code debug.enabled\n        in\n        %code /Library/Application Support/DNSCrypt/control\n        and the debug log file itself is\n        %code /var/log/dnscrypt-osxclient-debug.log\n      %p\n        Thanks a lot for your feedback on the first version!\n\n    %article\n      %h2 Version 1.0.0 by AlterStep\n      %time Thu, 21 Apr 2014\n      %p\n        This is my first release, based on the source code of the beta\n        version written by OpenDNS.\n      %p\n        It has only been tested on OSX 10.9.\n      %p\n        It includes dnscrypt-proxy 1.4.0, libsodium 0.4.5, libldns 1.6.17.\n      %p\n        Contact me on Github: https://github.com/alterstep/dnscrypt-osx-client\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/html/releasenotes.html",
    "content": "<!DOCTYPE html>\n<html lang='en'>\n  <head>\n    <meta charset='utf-8'>\n    <title>Release notes for DNSCrypt-OSXClient by AlterStep</title>\n    <style type='text/css'>\n      <style>\n        body {\n          font-family: arial, helvetica, sans-serif;\n          margin: 0; }\n        \n        h1, h2 {\n          margin: 0; }\n        \n        h1 {\n          border-bottom: 1px solid grey; }\n        \n        article {\n          padding-left: 1em; }\n        \n        time {\n          font-style: italic; }\n      </style>\n    </style>\n  </head>\n  <body>\n    <h1>Release Notes for DNSCrypt-OSXclient by AlterStep</h1>\n    <article>\n      <h2>Version 1.0.4 by AlterStep</h2>\n      <time>Thu, 19 Sep 2014</time>\n      <p>\n        Updated DNSCrypt proxy to version 1.4.1\n      </p>\n      <p>\n        Updated libsodium to 0.7.0-minimal\n      </p>\n    </article>\n    <article>\n      <h2>Version 1.0.3 by AlterStep</h2>\n      <time>Thu, 18 Jun 2014</time>\n      <p>\n        Runs on OSX 10.8 (Snow Leopard), 10.9 (Mavericks) and 10.10 (Yosemite)\n      </p>\n      <p>\n        New set of icons, contributed by Aaron VonderHaar\n      </p>\n    </article>\n    <article>\n      <h2>Version 1.0.2 by AlterStep</h2>\n      <time>Thu, 05 Jun 2014</time>\n      <p>\n        Improved installation scripts\n      </p>\n      <p>\n        LDNS has been downgraded in order to work on systems without\n        Homebrew.\n      </p>\n    </article>\n    <article>\n      <h2>Version 1.0.1 by AlterStep</h2>\n      <time>Mon, 28 Apr 2014</time>\n      <p>\n        Include the release version of dnscrypt-proxy 1.4, with a new\n        OpenNIC resolver.\n      </p>\n      <p>\n        Wait after dnscrypt-proxy has been turned on before sending a\n        query. This actually makes state changes faster.\n      </p>\n      <p>\n        Debug log, turned off by default and deleted after every\n        reboot. In order to enable it, create an empty file named\n        <code>debug.enabled</code>\n        in\n        <code>/Library/Application Support/DNSCrypt/control</code>\n        and the debug log file itself is\n        <code>/var/log/dnscrypt-osxclient-debug.log</code>\n      </p>\n      <p>\n        Thanks a lot for your feedback on the first version!\n      </p>\n    </article>\n    <article>\n      <h2>Version 1.0.0 by AlterStep</h2>\n      <time>Thu, 21 Apr 2014</time>\n      <p>\n        This is my first release, based on the source code of the beta\n        version written by OpenDNS.\n      </p>\n      <p>\n        It has only been tested on OSX 10.9.\n      </p>\n      <p>\n        It includes dnscrypt-proxy 1.4.0, libsodium 0.4.5, libldns 1.6.17.\n      </p>\n      <p>\n        Contact me on Github: https://github.com/alterstep/dnscrypt-osx-client\n      </p>\n    </article>\n  </body>\n</html>\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/bin/Uninstall.app/Contents/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleAllowMixedLocalizations</key>\n\t<true/>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>English</string>\n\t<key>CFBundleExecutable</key>\n\t<string>applet</string>\n\t<key>CFBundleIconFile</key>\n\t<string>applet</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.apple.ScriptEditor.id.Uninstall</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>Uninstall</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>aplt</string>\n\t<key>LSMinimumSystemVersionByArchitecture</key>\n\t<dict>\n\t\t<key>x86_64</key>\n\t\t<string>10.6</string>\n\t</dict>\n\t<key>LSRequiresCarbon</key>\n\t<true/>\n\t<key>WindowState</key>\n\t<dict>\n\t\t<key>dividerCollapsed</key>\n\t\t<false/>\n\t\t<key>eventLogLevel</key>\n\t\t<integer>-1</integer>\n\t\t<key>name</key>\n\t\t<string>ScriptWindowState</string>\n\t\t<key>positionOfDivider</key>\n\t\t<real>370</real>\n\t\t<key>savedFrame</key>\n\t\t<string>85 77 1202 655 0 0 1366 746 </string>\n\t\t<key>selectedTabView</key>\n\t\t<string>result</string>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/bin/Uninstall.app/Contents/PkgInfo",
    "content": "APPLaplt"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/bin/Uninstall.app/Contents/Resources/description.rtfd/TXT.rtf",
    "content": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf1265\\cocoasubrtf200\n{\\fonttbl}\n{\\colortbl;\\red255\\green255\\blue255;}\n}"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/afterboot.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nrm -f \"$QUERY_LOG_FILE\"\nrm -f \"$DEBUG_LOG_FILE\"\n\n./clear-fw.sh\n\nexec ./handle-control-change.sh --boot\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/check-hijacking.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\ntry_resolution() {\n  exec alarmer 5 dig +tries=2 +time=3 +short google-public-dns-a.google.com \\\n    | egrep '^8[.]8[.]8[.]8' > /dev/null 2>&1\n}\n\ntry_http_query() {\n  exec alarmer 5 curl -L --max-redirs 5 -4 -m 5 \\\n    http://www.apple.com 2>/dev/null | \\\n  fgrep -c Apple > /dev/null 2>&1\n}\n\ntry_everything() {\n  try_resolution &\n  resolution_pid=$!\n  try_http_query &\n  http_query_pid=$!\n  wait $resolution_pid\n  resolution_ret=$?\n  if [ $resolution_ret != 0 ]; then\n    return 1\n  fi\n  wait $http_query_pid\n  http_query_ret=$?\n  [ $resolution_ret = 0 -a $http_query_ret = 0 ]\n}\n\ntry_everything_with_retries() {\n  try_everything || try_everything\n}\n\ntry_everything_with_retries\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/check-local-dns.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\ntry_local_resolution() {\n  exec dig +tries=2 +time=3 +short google-public-dns-a.google.com @$INTERFACE_PROXY \\\n    | egrep '^8[.]8[.]8[.]8' > /dev/null 2>&1\n}\n\ntry_local_resolution\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/check-network-change.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nNETWORK_STATE_FILE=\"${STATES_DIR}/network-state\"\nDHCP_DNS_FILE=\"${STATES_DIR}/dhcp-dns\"\nAIRPORT_TOOL=\"/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport\"\n\nmkdir -p \"$STATES_DIR\" || exit 1\nips=$(./get-dhcp-resolvers.sh)\necho \"$ips\" > \"$DHCP_DNS_FILE\"\n\nssid=$(\"$AIRPORT_TOOL\" -I 2>&1 | fgrep '[^B]SSID: ')\nbssid=$(\"$AIRPORT_TOOL\" -I 2>&1 | fgrep 'BSSID: ')\nif [ -f \"$NETWORK_STATE_FILE\" ]; then\n  if echo \"$ifs $ips $ssid $bssid\" | \\\n    cmp -- \"$NETWORK_STATE_FILE\" - >/dev/null; then\n    exit 1\n  fi\nfi\necho \"$ifs $ips $ssid $bssid\" > \"$NETWORK_STATE_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/clear-fw.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nexec >/dev/null\nexec 2>&1\n\nSOCKETFILTERFW='/usr/libexec/ApplicationFirewall/socketfilterfw'\n[ -x \"$SOCKETFILTERFW\" ] || exit 0\n\n\"$SOCKETFILTERFW\" --add        /usr/local/sbin/dnscrypt-proxy\n\"$SOCKETFILTERFW\" --unblockapp /usr/local/sbin/dnscrypt-proxy\n\n\"$SOCKETFILTERFW\" --add        /usr/local/bin/hostip\n\"$SOCKETFILTERFW\" --unblockapp /usr/local/bin/hostip\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/common.inc",
    "content": "DNSCRYPT_USR_BASE_DIR='/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr'\nDNSCRYPT_VAR_BASE_DIR='/Library/Application Support/DNSCrypt'\nDNSCRYPT_LOG_BASE_DIR='/var/log'\nDNSCRYPT_VAR_RUN_BASE_DIR='/var/run'\n\ncd -- \"${DNSCRYPT_USR_BASE_DIR}/scripts\" || exit 1\n\nCONTROL_DIR=\"${DNSCRYPT_VAR_BASE_DIR}/control\"\nTICKETS_DIR=\"${DNSCRYPT_VAR_BASE_DIR}/tickets\"\nDNSCRYPT_PROXY_BASE_DIR=\"${DNSCRYPT_VAR_BASE_DIR}/dnscrypt-proxy\"\nPROXY_PID_FILE=\"${DNSCRYPT_VAR_RUN_BASE_DIR}/dnscrypt-proxy.pid\"\nSTATES_DIR=\"${DNSCRYPT_VAR_BASE_DIR}/states\"\n\nDNSCRYPT_RESOLVER_NAME_FILE=\"${CONTROL_DIR}/dnscrypt-resolver-name\"\nDNSCRYPT_FILE=\"${CONTROL_DIR}/dnscrypt\"\nFALLBACK_FILE=\"${CONTROL_DIR}/fallback\"\nHANDLERS_LOCK_FILE=\"${DNSCRYPT_VAR_RUN_BASE_DIR}/dnscrypt-handlers.lock\"\nDNSCRYPT_PROXY_PLUGINS_BASE_FILE=\"${CONTROL_DIR}/plugin\"\nSTATIC_RESOLVERS_FILE=\"${CONTROL_DIR}/static-resolvers\"\n\nDEBUG_ENABLED_FILE=\"${CONTROL_DIR}/debug.enabled\"\n\nPLUGINS_ENABLED_FILE=\"${CONTROL_DIR}/plugins.enabled\"\nQUERY_LOGGING_FILE=\"${CONTROL_DIR}/plugin-query-logging.enabled\"\nBLOCKING_FILE=\"${CONTROL_DIR}/plugin-blocking.enabled\"\n\nQUERY_LOG_FILE=\"${DNSCRYPT_LOG_BASE_DIR}/dnscrypt-query.log\"\nDEBUG_LOG_FILE=\"${DNSCRYPT_LOG_BASE_DIR}/dnscrypt-osxclient-debug.log\"\nDEBUG_LOG_FILE_LOCK=\"${DEBUG_LOG_FILE}.lock\"\n\nBLACKLIST_IPS_FILE=\"${CONTROL_DIR}/blacklist-ips\"\nBLACKLIST_IPS_TMP_FILE=\"${BLACKLIST_IPS_FILE}.tmp\"\nBLACKLIST_DOMAINS_FILE=\"${CONTROL_DIR}/blacklist-domains\"\nBLACKLIST_DOMAINS_TMP_FILE=\"${BLACKLIST_DOMAINS_FILE}.tmp\"\nEXCEPTIONS_FILE=\"${CONTROL_DIR}/exceptions\"\nEXCEPTIONS_TMP_FILE=\"${EXCEPTIONS_FILE}.tmp\"\n\nDEFAULT_RESOLVER_NAME='opendns'\n\nINTERFACE_UNBOUND=\"127.0.0.53\"\nINTERFACE_UNBOUND_MASK=\"24\"\nINTERFACE_PROXY=\"127.0.0.54\"\nINTERFACE_PROXY_MASK=\"24\"\nINTERFACE_PROBES=\"127.0.0.55\"\nINTERFACE_PROBES_MASK=\"24\"\n\nDOMAINS_EXCEPTIONS='\nfreebox.fr fritz.box intranet lan localdomain nowtv.com private routerlogin.net l\n'\n\nDISABLE_IPV6='no'\n\nexport PATH=\"${DNSCRYPT_USR_BASE_DIR}/bin:${DNSCRYPT_USR_BASE_DIR}/scripts:$PATH\"\n\ninit_interfaces() {\n  /sbin/ifconfig lo0 alias ${INTERFACE_UNBOUND}/${INTERFACE_UNBOUND_MASK}\n  /sbin/ifconfig lo0 alias ${INTERFACE_PROXY}/${INTERFACE_PROXY_MASK}\n  /sbin/ifconfig lo0 alias ${INTERFACE_PROBES}/${INTERFACE_PROBES_MASK}\n}\n\nlogger_debug() {\n  [ -f \"$DEBUG_ENABLED_FILE\" ] || return\n  lockfile -1 -r 1 \"$DEBUG_LOG_FILE_LOCK\" > /dev/null 2>&1\n  echo \"$(date) - $1\" >> \"$DEBUG_LOG_FILE\"\n  rm -f \"$DEBUG_LOG_FILE_LOCK\" 2> /dev/null\n}\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/create-ticket.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nticket_file=$(mktemp \"$TICKETS_DIR/ticket-XXXXXXXXXX\")\n[ -e \"$ticket_file\" ] || exit 1\nbasename \"$ticket_file\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-add.sh",
    "content": "#! /bin/sh\n\nRESOLVER_DIR='/etc/resolver'\n\n. ./common.inc\n\n[ -r \"$EXCEPTIONS_FILE\" ] &&\n  DOMAINS_EXCEPTIONS=\"$(cat \"$EXCEPTIONS_FILE\") $DOMAINS_EXCEPTIONS\"\n\nget_gw() {\n  route -n get default | while read line; do\n    case \"$line\" in\n      gateway:\\ *)\n        echo \"$line\" | sed 's/ *gateway: *//'\n        return\n      ;;\n    esac\n  done\n}\n\nget_dhcp_dns() {\n  cat \"${STATES_DIR}/dhcp-dns\" 2> /dev/null\n}\n\nremove_old_exceptions() {\n  local found\n\n  find -x \"$RESOLVER_DIR\" -type f -print | {\n    while read file; do\n      found='no'\n      for domain in $DOMAINS_EXCEPTIONS; do\n        [ \"$file\" = \"${RESOLVER_DIR}/${domain}\" ] && found='yes' && break\n      done\n      [ \"$found\" = 'no' ] || continue\n      fgrep -ci 'automatically generated by the dnscrypt user interface' \\\n        $file > /dev/null 2>&1 || continue\n      rm -f \"$file\"\n    done\n  }\n}\n\nname_servers=$(./get-static-resolvers.sh || get_dhcp_dns || get_gw)\n[ x\"$name_servers\" = 'x' ] && exit 0\n\ndefault_domain=$(./get-current-default-domain.sh)\n\nmkdir -p \"$RESOLVER_DIR\" || exit 1\n\nremove_old_exceptions\n\nname_server=\"$gw\"\nfor domain in $DOMAINS_EXCEPTIONS; do\n  if [ x\"$default_domain\" != 'x' ]; then\n    echo \"$domain\" | grep -c \".*${default_domain}\" > /dev/null\n    [ $? = 0 ] && continue\n  fi\n  echo '# automatically generated by the dnscrypt user interface' \\\n    > \"${RESOLVER_DIR}/${domain}\"\n  for name_server in $name_servers; do\n    echo \"nameserver ${name_server}\" >> \"${RESOLVER_DIR}/${domain}\"\n  done\ndone\nexit 0\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/exceptions-remove.sh",
    "content": "#! /bin/sh\n\nRESOLVER_DIR='/etc/resolver'\n\n. ./common.inc\n\n[ -r \"$EXCEPTIONS_FILE\" ] &&\n  DOMAINS_EXCEPTIONS=\"$(cat \"$EXCEPTIONS_FILE\") $DOMAINS_EXCEPTIONS\"\n\nfor domain in $DOMAINS_EXCEPTIONS; do\n  rm -f \"${RESOLVER_DIR}/${domain}\"\ndone\nexit 0\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-current-default-domain.sh",
    "content": "#! /bin/ksh\n\n. ./common.inc\n\n[ -r /etc/resolv.conf ] || exit 0\ndomain=\"\"\nwhile read line; do\n  case \"$line\" in\n    domain\\ *)\n      domain=$(echo \"$line\" | sed -e 's/domain *//' -e 's/ *//')\n      break\n    ;;\n  esac\ndone < /etc/resolv.conf\n\necho \"$domain\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-current-resolvers.sh",
    "content": "#! /bin/ksh\n\n. ./common.inc\n\n[ -r /etc/resolv.conf ] || exit 0\nips_i=\"\"\nwhile read line; do\n  case \"$line\" in\n    nameserver\\ *)\n      ip=$(echo \"$line\" | sed -e 's/nameserver *//' -e 's/ *//')\n      ips_i=\"$ips_i $ip\"\n    ;;\n  esac\ndone < /etc/resolv.conf\n\ntypeset -A found\nips=\"\"\nfor ip_i in $ips_i; do\n  if [ ! ${found[\"$ip_i\"]} ]; then\n    if [ \"$ips\" ]; then\n      ips=\"$ips \"\n    fi\n    ips=\"$ips$ip_i\"\n    found[\"$ip_i\"]=1\n  fi\ndone\n\necho \"$ips\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-dhcp-resolvers.sh",
    "content": "#! /bin/ksh\n\n. ./common.inc\n\nifs=$(ifconfig -a | \\\n  awk '/^[^ \t:]*:/ { sub(/:.*$/,empty); iface=$0 } /status: active/ { print iface }')\nifs=$(echo $ifs)\n\ntypeset -A found\nips=\"\"\nfor i in $ifs; do\n  ips_i=$(ipconfig getpacket \"$i\" 2> /dev/null | fgrep 'domain_name_server' | \\\n          sed -e 's/^.*{//' -e 's/,/ /g' -e 's/}//' )\n  for ip_i in $ips_i; do\n    if [ ! ${found[\"$ip_i\"]} ]; then\n      if [ \"$ips\" ]; then\n        ips=\"$ips \"\n      fi\n      ips=\"$ips$ip_i\"\n      found[\"$ip_i\"]=1\n    fi\n  done\ndone\n\necho \"$ips\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-dnscrypt-resolver-name.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\n[ -r \"$DNSCRYPT_RESOLVER_NAME_FILE\" ] && \\\n  sed 's/[^a-zA-Z0-9.-]/_/g' < \"$DNSCRYPT_RESOLVER_NAME_FILE\" && exit 0\necho \"$DEFAULT_RESOLVER_NAME\"\nexit 0\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-dnscrypt-status.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ -e \"$DNSCRYPT_FILE\" ]; then\n  echo 'yes'\nelse\n  echo 'no'\nfi\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-fallback-status.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ -e \"$FALLBACK_FILE\" ]; then\n  echo 'yes'\nelse\n  echo 'no'\nfi\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-query-logging-status.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ -e \"$QUERY_LOGGING_FILE\" ]; then\n  echo 'yes'\nelse\n  echo 'no'\nfi\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-resolvers-description.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ -e \"${STATES_DIR}/updating\" ]; then\n  echo 'Updating'\n  exit 0\nfi\nname='None'\nlevel=0\nwhile read resolver; do\n  case \"$resolver\" in\n    127.0.0.5*)\n      if [ $level -le 80 ]; then\n        name='DNSCrypt'\n        level=80\n      fi\n    ;;\n    127.0.0.1)\n      if [ $level -le 20 ]; then\n        name='Localhost'\n        level=20\n      fi\n    ;;\n    ::1)\n      if [ $level -le 30 ]; then\n        name='Localhost IPv6'\n        level=30\n      fi\n    ;;\n    *)\n      if [ $level -le 10 ]; then\n        name='Default'\n        level=10\n      fi\n    ;;\n  esac\ndone\necho \"$name\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-static-resolvers.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\n[ -r \"$STATIC_RESOLVERS_FILE\" ] && cat \"$STATIC_RESOLVERS_FILE\" && exit 0\nexit 1\n\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-tickets-count.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nexec find \"$TICKETS_DIR\" -type f -name 'ticket-*' | wc -l | sed 's/ *//g'\n\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/get-upstream-resolvers.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\ndnscrypt_proxy_used='no'\nupstream_resolvers=''\nwhile read resolver; do\n  case \"$resolver\" in\n    127.0.0.5*)\n      dnscrypt_proxy_used='yes'\n    ;;\n  esac\n  if [ x\"$upstream_resolvers\" = 'x' ]; then\n    upstream_resolvers=\"$resolver\"\n  else\n    upstream_resolvers=\"${upstream_resolvers} $resolver\"\n  fi\ndone\n\nif [ \"$dnscrypt_proxy_used\" = 'yes' \\\n     -a -r \"${STATES_DIR}/dnscrypt-proxy-description\" ]; then\n  cat \"${STATES_DIR}/dnscrypt-proxy-description\" && exit 0  \nfi\necho \"$upstream_resolvers\"\nexit 0\n\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/gui-pop-conf-change.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\n[ $# != 1 ] && exit 1\n\npname=\"$1\"\ncase \"$pname\" in\n  menubar) ;;\n  prefpane) ;;\n  *) exit 1;;\nesac\n\nchanged='no'\nif [ -e \"${TICKETS_DIR}/gui-change-${pname}\" ]; then\n  rm -f \"${TICKETS_DIR}/gui-change-${pname}\"\n  changed='yes'\nfi\n\necho \"$changed\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/gui-push-conf-change.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\n[ $# != 1 ] && exit 1\n\npname=\"$1\"\ncase \"$pname\" in\n  menubar) ;;\n  prefpane) ;;\n  *) exit 1;;\nesac\n\ntouch \"${TICKETS_DIR}/gui-change-${pname}\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/handle-console-change.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\neval $(stat -s '/dev/console') || exit 1\n\nlogger_debug \"OSX console ownership changed\"\n\nwanted_uid=\"$st_uid\"\nif [ ! -d \"$DNSCRYPT_VAR_BASE_DIR\" ]; then\n  mkdir -p \"$DNSCRYPT_VAR_BASE_DIR\" || exit 1\n  chown -R 0:0 \"$DNSCRYPT_VAR_BASE_DIR\"\n  chmod 755 \"$DNSCRYPT_VAR_BASE_DIR\"\nfi\nmkdir -m 755 -p \"$TICKETS_DIR\" || exit 1\nchown -R \"${wanted_uid}:0\" \"$TICKETS_DIR\"\n\neval $(stat -s \"$CONTROL_DIR\") || exit 1\nif [ $? != 0 ]; then\n  mkdir -m 755 -p \"$CONTROL_DIR\" || exit 1\n  current_uid='nonexistent'\nelse\n  current_uid=\"$st_uid\"\nfi\n\n[ x\"$current_uid\" != x\"$wanted_uid\" ] && \\\n  chown -R \"${wanted_uid}:0\" \"$CONTROL_DIR\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/handle-control-change.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nPROCESSED_TICKETS_FILE=\"${STATES_DIR}/processed-tickets\"\n\nupdate() {\n  lockfile -1 -r 30 \"$HANDLERS_LOCK_FILE\" || exit 1\n\n  if [ -e \"$DNSCRYPT_FILE\" ]; then\n    ./switch-to-dnscrypt-if-required.sh\n  else\n    ./stop-dnscrypt-proxy.sh\n    ./switch-to-dhcp-if-required.sh\n  fi\n\n  rm -f \"$HANDLERS_LOCK_FILE\"\n}\n\ntouch \"${STATES_DIR}/updating\"\n\nlogger_debug \"DNSCrypt-OSXClient configuration changed\"\n\nupdated='no'\nwhile :; do\n  find \"$TICKETS_DIR\" -type f -name 'ticket-*' > \"$PROCESSED_TICKETS_FILE\"\n  if [ ! -s \"$PROCESSED_TICKETS_FILE\" -a \"$updated\" = 'yes' ]; then\n    break\n  fi\n  update\n  updated='yes'\n  while read ticket_file; do\n    rm -f \"$ticket_file\"\n  done < \"$PROCESSED_TICKETS_FILE\"\ndone\n\nrm -f \"${STATES_DIR}/updating\"\nrm -f \"${STATES_DIR}/update-request\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/handle-network-change.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\ntickets_count=$(./get-tickets-count.sh)\n[ \"$tickets_count\" != '0' ] && exit 0\n\nif [ x\"$1\" != 'x--boot' ]; then\n  [ ! -e \"$FALLBACK_FILE\" ] && exit 0\n  ./check-network-change.sh || exit 0\nfi\n\nlogger_debug \"Network configuration changed\"\n\n\nlockfile -1 -r 30 \"$HANDLERS_LOCK_FILE\" || exit 1\n./set-dns-to-dhcp.sh\nif [ ! -e \"$DNSCRYPT_FILE\" ]; then\n  rm -f \"$HANDLERS_LOCK_FILE\"\n  exit 0\nfi\n./switch-to-dnscrypt-if-required.sh\nrm -f \"$HANDLERS_LOCK_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-dns-to-dhcp.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nservers='empty'\n\nlogger_debug \"Changing the DNS configuration to use the default DNS resolvers\"\n\nif [ -r \"$STATIC_RESOLVERS_FILE\" ]; then\n  servers=''\n  while read server; do\n    case \"$server\" in\n      [0-9a-fA-F:.]*) servers=\"${servers} ${server}\" ;;\n    esac\n  done < \"$STATIC_RESOLVERS_FILE\"\n  [ -z \"$servers\" ] && servers='empty'\n  logger_debug \"Static list of DNS resolvers: [$servers]\"\nfi\n\nexec networksetup -listallnetworkservices 2>/dev/null | \\\nfgrep -v '*' | while read x ; do\n  networksetup -setdnsservers \"$x\" $servers > /dev/null\ndone\n\nlogger_debug \"Flushing the local DNS cache\"\n\ndscacheutil -flushcache 2> /dev/null\nkillall -HUP mDNSResponder 2> /dev/null\nexit 0\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-dns.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nservers=\"$*\"\n\n[ $# -lt 1 ] && exit 1\n\nlogger_debug \"Setting DNS resolvers to [$servers]\"\n\nexec networksetup -listallnetworkservices 2>/dev/null | \\\nfgrep -v '*' | while read x ; do\n  networksetup -setdnsservers \"$x\" $servers\ndone\n\nlogger_debug \"Flushing local DNS cache\"\n\ndscacheutil -flushcache 2> /dev/null\nkillall -HUP mDNSResponder 2> /dev/null\nexit 0\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-dnscrypt-resolver-name.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\n[ $# -lt 1 ] && exit 1\n\nresolver_name=\"$1\"\n\nif [ \"$resolver_name\" = \"\" ]; then\n  rm -f \"$DNSCRYPT_RESOLVER_NAME_FILE\"\nelse\n  echo \"$resolver_name\" | sed 's/^ *//;s/ *$//' \\\n  > \"$DNSCRYPT_RESOLVER_NAME_FILE\"\nfi\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/set-static-resolvers.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nargs=\"$*\"\n\n[ $# -lt 1 ] && exit 1\n\nservers=''\nfor server in $args; do\n  servers=\"${servers} ${server}\"\ndone\nif [ \"$servers\" = \"\" ]; then\n  rm -f \"$STATIC_RESOLVERS_FILE\"\nelse\n  echo \"$servers\" | sed 's/^ *//;s/ *$//' > \"$STATIC_RESOLVERS_FILE\"\nfi\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/start-dnscrypt-proxy.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nDNSCRYPT_LIB_BASE_DIR=\"${DNSCRYPT_USR_BASE_DIR}/lib\"\nexport DYLD_LIBRARY_PATH=\"${DNSCRYPT_LIB_BASE_DIR}:${DYLD_LIBRARY_PATH}\"\n\ninit_interfaces\n\nmkdir -p -- \"$DNSCRYPT_VAR_BASE_DIR\" || exit 1\n\nPROBES_BASE_DIR=\"${DNSCRYPT_VAR_BASE_DIR}/probes\"\nrm -fr \"$PROBES_BASE_DIR\" || exit 1\nmkdir -p -- \"$PROBES_BASE_DIR\" || exit 1\n\nRES_DIR=\"${PROBES_BASE_DIR}/results\" || exit 1\nmkdir -p -- \"$RES_DIR\" || exit 1\n\nDESCRIPTIONS_DIR=\"${PROBES_BASE_DIR}/results-descriptions\" || exit 1\nmkdir -p -- \"$DESCRIPTIONS_DIR\" || exit 1\n\nPID_DIR=\"${PROBES_BASE_DIR}/pids\" || exit 1\nmkdir -p -- \"$PID_DIR\" || exit 1\n\nRESOLVER_NAME=$(./get-dnscrypt-resolver-name.sh) || exit 1\n\ntry_resolver() {\n  local priority=\"$1\"\n  shift\n  local description=\"$1\"\n  shift\n  local args=\"$*\"\n  local pid_file=\"${PID_DIR}/${priority}.pid\"\n\n  logger_debug \"Running a test dnscrypt proxy for [$description]\"\n  rm -f \"${RES_DIR}/${priority}\"\n  exec alarmer 3 dnscrypt-proxy --pid=\"$pid_file\" \\\n    --resolver-name=\"$RESOLVER_NAME\" \\\n    --local-address=\"${INTERFACE_PROBES}:${priority}\" $args 2>&1 | \\\n  while read line; do\n    case \"$line\" in\n      *Proxying\\ from\\ *)\n        logger_debug \"Proxy for [$description] is up\"\n        answers=$(exec dig +time=1 +short +tries=2 -p $priority \\\n          @\"$INTERFACE_PROBES\" www.apple.com. 2> /dev/null | \\\n          egrep -ic '^[0-9.:]+$')\n        [ -r \"$pid_file\" ] && kill $(cat -- \"$pid_file\")\n        if [ $answers -gt 0 ]; then\n          logger_debug \"Proxy for [$description] can be used\"\n          echo \"$args\" > \"${RES_DIR}/${priority}\"\n          echo \"$description\" > \"${DESCRIPTIONS_DIR}/${priority}\"\n        fi\n        ;;\n      *) ;;\n    esac\n  done\n}\n\nget_plugin_args() {\n  cat \"$DNSCRYPT_PROXY_PLUGINS_BASE_FILE\"[s-]*.enabled | { \\\n    local plugin_args=''\n    local quoted_line\n\n    while read line; do\n      case \"$line\" in\n        libdcplugin_*) plugin_args=\"${plugin_args} --plugin=${line}\" ;;\n      esac\n    done\n    logger_debug \"Plugins to be used: [$plugin_args]\"\n    echo \"$plugin_args\"\n  }\n}\n\nlogger_debug \"dnscrypt-proxy should be (re)started, stopping previous instance if needed\"\n./stop-dnscrypt-proxy.sh\n\nipv6_supported=\"no\"\nif [ x\"$DISABLE_IPV6\" = \"xno\" ]; then\n  logger_debug \"Testing IPv6 connectivity\"\n  ping6 -c 1 2620:0:ccc::2 > /dev/null 2>&1\n  if [ $? = 0 ]; then\n    ipv6_supported=\"yes\"\n    logger_debug \"IPv6 connectivity detected\"\n  else\n    logger_debug \"IPv6 connectivity is not available\"  \n  fi\nfi\n\nwait_pids=\"\"\n\ntry_resolver 5004 \"${RESOLVER_NAME} using DNSCrypt over UDP\" \\\n  \"--resolver-name=$RESOLVER_NAME\" &\nwait_pids=\"$wait_pids $!\"\n\ntry_resolver 5005 \"${RESOLVER_NAME} using DNSCrypt over TCP\" \\\n  \"--resolver-name=$RESOLVER_NAME --tcp-only\" &\nwait_pids=\"$wait_pids $!\"\n\nfor pid in $wait_pids; do\n  wait $pid\n  best_file=$(ls \"$RES_DIR\" | head -n 1)\n  [ x\"$best_file\" != \"x\" ] && break\ndone\n\nif [ x\"$best_file\" = \"x\" ]; then\n  logger_debug \"No usable proxy configuration has been found\"\n  exit 1\nfi\n\nplugins_args=''\nif [ -r \"${DNSCRYPT_PROXY_PLUGINS_BASE_FILE}s.enabled\" ]; then\n  plugin_args=$(get_plugin_args)\nfi\n[ \"$ipv6_supported\" = \"no\" ] && \\\n  plugin_args=\"${plugin_args} --plugin=libdcplugin_example_ldns_aaaa_blocking.la\"\n\nbest_args=$(cat \"${RES_DIR}/${best_file}\")\n\nlogger_debug \"Starting dnscrypt-proxy $best_args\"\neval dnscrypt-proxy $best_args --local-address=\"$INTERFACE_PROXY\" \\\n  --resolver-name=\"$RESOLVER_NAME\" \\\n  --pidfile=\"$PROXY_PID_FILE\" --user=daemon --daemonize $plugin_args\n\nif [ $? != 0 ]; then\n  [ -r \"$PROXY_PID_FILE\" ] && kill $(cat -- \"$PROXY_PID_FILE\")\n  logger_debug \"dnscrypt-proxy $best_args command failed, retrying\"\n  sleep 1\n  killall dnscrypt-proxy\n  sleep 1\n  rm -f \"$PROXY_PID_FILE\"\n  killall -9 dnscrypt-proxy\n  sleep 1\n  eval dnscrypt-proxy $best_args --local-address=\"$INTERFACE_PROXY\" \\\n    --resolver-name=\"$RESOLVER_NAME\" \\\n    --pidfile=\"$PROXY_PID_FILE\" --user=daemon --daemonize $plugin_args || \\\n    exit 1\n  logger_debug \"dnscrypt-proxy $best_args worked after a retry\"\nfi\n\nsleep 1\nlogger_debug \"Checking if the current configuration hijacks all DNS queries\"\ni=0\nwhile [ $i -lt 30 ]; do\n  ./check-local-dns.sh && break\n  sleep 0.1\n  i=$((i + 1))\ndone\n\nif [ $i -ge 30 ]; then\n  logger_debug \"Current configuration hijacks all DNS queries, disabling DNSCrypt\"\n  ./switch-to-dhcp.sh\n  exit 1\nfi\n\nlogger_debug \"Current configuration doesn't seem to hijack all DNS queries\"\n\nmv \"${DESCRIPTIONS_DIR}/${best_file}\" \\\n   \"${STATES_DIR}/dnscrypt-proxy-description\" 2>/dev/null || exit 0\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/stop-dnscrypt-proxy.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nlogger_debug \"Stopping dnscrypt-proxy\"\n\nif [ -x /usr/bin/pgrep ]; then\n  pgrep -x dnscrypt-proxy | egrep '[0-9]+' > /dev/null || exit 0\nfi\n\n[ ! -r \"$PROXY_PID_FILE\" ] && exit 0\npid=$(cat \"$PROXY_PID_FILE\")\n[ $pid -lt 2 ] && exit 0\n\nlogger_debug \"Trying to stop dnscrypt-proxy by killing pid [$pid]\"\nkill $pid\n\ni=0\nwhile [ $i -lt 30 ]; do\n  [ ! -r \"$PROXY_PID_FILE\" ] && exit 0\n  sleep 0.1\n  i=$((i + 1))\ndone\n\nrm -f \"$PROXY_PID_FILE\"\nkill -9 $pid\n\nlogger_debug \"Killed dnscrypt-proxy with kill -9 pid [$pid]\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-blacklists-off.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nexec rm -f \"$BLOCKING_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-blacklists-on.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nplugin_args=''\n\n[ -s \"$BLACKLIST_IPS_FILE\" ] && \\\n  plugin_args=\"${plugin_args},--ips='${BLACKLIST_IPS_FILE}'\"\n\n[ -s \"$BLACKLIST_DOMAINS_FILE\" ] && \\\n  plugin_args=\"${plugin_args},--domains='${BLACKLIST_DOMAINS_FILE}'\"\n\n[ -z \"$plugin_args\" ] && exec ./switch-blacklists-off.sh\n\necho \"libdcplugin_example_ldns_blocking.la${plugin_args}\" > \\\n  \"$BLOCKING_FILE\"\ntouch \"$PLUGINS_ENABLED_FILE\"  \n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-fallback-off.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nrm -f \"$FALLBACK_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-fallback-on.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\ntouch \"$FALLBACK_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-query-logging-off.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nrm -f \"$QUERY_LOGGING_FILE\"\n\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-query-logging-on.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\necho \"libdcplugin_example_logging.la,${QUERY_LOG_FILE}\" > \\\n  \"$QUERY_LOGGING_FILE\"\n\ntouch \"$PLUGINS_ENABLED_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-to-dhcp-if-required.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\n[ -e \"$DNSCRYPT_FILE\" ] && exit 0\n\n./exceptions-remove.sh\nexec ./set-dns-to-dhcp.sh\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-to-dhcp.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nrm -f \"$DNSCRYPT_FILE\"\n\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-to-dnscrypt-if-required.sh",
    "content": "#! /bin/ksh\n\n. ./common.inc\n\nPAUSE_MAX=10\nPAUSE_INCREMENT=0.1\n\n[ ! -e \"$DNSCRYPT_FILE\" ] && exit 0\n\nlogger_debug \"DNSCrypt has been requested\"\n\n./set-dns-to-dhcp.sh\n\npause=0\nwhile [ -e \"$DNSCRYPT_FILE\" ]; do\n  logger_debug \"Switching to dnscrypt if required (pause=$pause)\"\n  current_resolvers=$(./get-current-resolvers.sh)\n  if [ \"$current_resolvers\" = \"$INTERFACE_PROXY\" ]; then\n    if [ ! -e \"$PROXY_PID_FILE\" ]; then\n      logger_debug \"The proxy should be running but it isn't.\"\n      ./switch-to-dhcp.sh\n    fi\n  fi\n  if [ $pause -lt $PAUSE_MAX ]; then\n    pause=$((pause + $PAUSE_INCREMENT))\n  fi\n  sleep $pause\n  logger_debug \"Checking if the router hijacks HTTP queries\"\n  if ./check-hijacking.sh; then\n    logger_debug \"The router doesn't hijack HTTP queries\"\n  else\n    logger_debug \"The router hijacks HTTP queries - DNSCrypt is likely to be blocked\"\n    continue\n  fi\n  ./start-dnscrypt-proxy.sh\n  ./check-local-dns.sh || continue\n  ./set-dns.sh \"$INTERFACE_PROXY\"\n  if [ $? != 0 ]; then\n    logger_debug \"Setting the DNS to [$INTERFACE_PROXY] didn't work\"\n    ./set-dns-to-dhcp.sh\n    continue\n  fi\n  ./check-hijacking.sh\n  if [ $? != 0 ]; then\n    logger_debug \"Current configuration seems to be hijacking HTTP queries. Reverting to default resolvers.\"\n    ./set-dns-to-dhcp.sh\n    continue\n  fi\n  break\ndone\n\nif [ ! -e \"$DNSCRYPT_FILE\" ]; then\n  touch \"$CONTROL_DIR\"\nfi\n\nexec ./exceptions-add.sh\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/switch-to-dnscrypt.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\ntouch \"$DNSCRYPT_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/update-blacklist-domains.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ ! -s \"$BLACKLIST_DOMAINS_TMP_FILE\" ]; then\n  rm -f \"$BLACKLIST_DOMAINS_FILE\" \"$BLACKLIST_DOMAINS_TMP_FILE\"\n  exec ./switch-blacklists-on.sh\nfi\n\ntr -s '[:blank:]' '\\n' < \"$BLACKLIST_DOMAINS_TMP_FILE\" | \\\n  egrep -vi '^(apple[.]com|resolver1[.]opendns[.]com)$' > \\\n  \"${BLACKLIST_DOMAINS_TMP_FILE}~\" &&\nmv \"${BLACKLIST_DOMAINS_TMP_FILE}~\" \"$BLACKLIST_DOMAINS_FILE\"\n\nexec ./switch-blacklists-on.sh\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/update-blacklist-ips.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ ! -s \"$BLACKLIST_IPS_TMP_FILE\" ]; then\n  rm -f \"$BLACKLIST_IPS_FILE\" \"$BLACKLIST_IPS_TMP_FILE\"\n  exec ./switch-blacklists-on.sh\nfi\n\ntr -s '[:blank:]' '\\n' \\\n  < \"$BLACKLIST_IPS_TMP_FILE\" > \"${BLACKLIST_IPS_TMP_FILE}~\" &&\nmv \"${BLACKLIST_IPS_TMP_FILE}~\" \"$BLACKLIST_IPS_FILE\"\n\nexec ./switch-blacklists-on.sh\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt/extra/usr/scripts/update-exceptions.sh",
    "content": "#! /bin/sh\n\n. ./common.inc\n\nif [ ! -s \"$EXCEPTIONS_TMP_FILE\" ]; then\n  rm -f \"$EXCEPTIONS_FILE\" \"$EXCEPTIONS_TMP_FILE\"\n  exit 0\nfi\n\ntr -s '[:blank:]' '\\n' < \"$EXCEPTIONS_TMP_FILE\" | \\\n  egrep -i '^\\s*[0-9a-z_.-]+\\s*$' > \"${EXCEPTIONS_TMP_FILE}~\" &&\nmv \"${EXCEPTIONS_TMP_FILE}~\" \"$EXCEPTIONS_FILE\"\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t0946B0C613F47F53008277C6 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0946B0C513F47F53008277C6 /* Cocoa.framework */; };\n\t\t0946B0C813F47F53008277C6 /* PreferencePanes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0946B0C713F47F53008277C6 /* PreferencePanes.framework */; };\n\t\t0946B0D213F47F53008277C6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0946B0D013F47F53008277C6 /* InfoPlist.strings */; };\n\t\t0946B0D613F47F53008277C6 /* DNSCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 0946B0D513F47F53008277C6 /* DNSCrypt.m */; };\n\t\t0946B0D813F47F53008277C6 /* DNSCrypt.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 0946B0D713F47F53008277C6 /* DNSCrypt.tiff */; };\n\t\t0946B0DB13F47F53008277C6 /* DNSCrypt.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0946B0D913F47F53008277C6 /* DNSCrypt.xib */; };\n\t\t0946B0E413F48065008277C6 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0946B0E313F48065008277C6 /* Security.framework */; };\n\t\t09A13ABC145F2D8700B227A4 /* ajax-loader.gif in Resources */ = {isa = PBXBuildFile; fileRef = 09A13ABB145F2D8700B227A4 /* ajax-loader.gif */; };\n\t\t09AD01A015D2483500638DCE /* html in Resources */ = {isa = PBXBuildFile; fileRef = 09AD019F15D2483500638DCE /* html */; };\n\t\t09B168721906062E003FDBCC /* CHCSVParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 09B168701906062E003FDBCC /* CHCSVParser.h */; };\n\t\t09B168731906062E003FDBCC /* CHCSVParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 09B168711906062E003FDBCC /* CHCSVParser.m */; };\n\t\t09FB094415C9DE6400B8AAB6 /* usr in Resources */ = {isa = PBXBuildFile; fileRef = 09FB094315C9DE6400B8AAB6 /* usr */; };\n\t\t4B36C4651468B87A0085B07C /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B36C4641468B87A0085B07C /* WebKit.framework */; };\n\t\t4B89D983147CA39200872F60 /* dnscrypt_256.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B89D982147CA39200872F60 /* dnscrypt_256.png */; };\n\t\t4BABEA28144F5A7B006AEF34 /* led_green.png in Resources */ = {isa = PBXBuildFile; fileRef = 4BABEA1F144F5A7B006AEF34 /* led_green.png */; };\n\t\t4BABEA29144F5A7B006AEF34 /* led_yellow.png in Resources */ = {isa = PBXBuildFile; fileRef = 4BABEA20144F5A7B006AEF34 /* led_yellow.png */; };\n\t\t4BABEA2A144F5A7B006AEF34 /* led_red.png in Resources */ = {isa = PBXBuildFile; fileRef = 4BABEA21144F5A7B006AEF34 /* led_red.png */; };\n\t\t4BABEA2B144F5A7B006AEF34 /* shield_yellow.png in Resources */ = {isa = PBXBuildFile; fileRef = 4BABEA22144F5A7B006AEF34 /* shield_yellow.png */; };\n\t\t4BABEA2C144F5A7B006AEF34 /* shield_red.png in Resources */ = {isa = PBXBuildFile; fileRef = 4BABEA23144F5A7B006AEF34 /* shield_red.png */; };\n\t\t4BABEA2D144F5A7B006AEF34 /* shield_green.png in Resources */ = {isa = PBXBuildFile; fileRef = 4BABEA24144F5A7B006AEF34 /* shield_green.png */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\t0946B0C213F47F53008277C6 /* DNSCrypt.prefPane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DNSCrypt.prefPane; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t0946B0C513F47F53008277C6 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };\n\t\t0946B0C713F47F53008277C6 /* PreferencePanes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PreferencePanes.framework; path = System/Library/Frameworks/PreferencePanes.framework; sourceTree = SDKROOT; };\n\t\t0946B0CA13F47F53008277C6 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };\n\t\t0946B0CB13F47F53008277C6 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };\n\t\t0946B0CC13F47F53008277C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\t0946B0CF13F47F53008277C6 /* DNSCrypt-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"DNSCrypt-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t0946B0D113F47F53008277C6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = \"<group>\"; };\n\t\t0946B0D313F47F53008277C6 /* DNSCrypt-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"DNSCrypt-Prefix.pch\"; sourceTree = \"<group>\"; };\n\t\t0946B0D413F47F53008277C6 /* DNSCrypt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DNSCrypt.h; sourceTree = \"<group>\"; };\n\t\t0946B0D513F47F53008277C6 /* DNSCrypt.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DNSCrypt.m; sourceTree = \"<group>\"; };\n\t\t0946B0D713F47F53008277C6 /* DNSCrypt.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = DNSCrypt.tiff; sourceTree = \"<group>\"; };\n\t\t0946B0DA13F47F53008277C6 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DNSCrypt.xib; sourceTree = \"<group>\"; };\n\t\t0946B0E113F48056008277C6 /* SecurityFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityFoundation.framework; path = System/Library/Frameworks/SecurityFoundation.framework; sourceTree = SDKROOT; };\n\t\t0946B0E313F48065008277C6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };\n\t\t09A13ABB145F2D8700B227A4 /* ajax-loader.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = \"ajax-loader.gif\"; sourceTree = \"<group>\"; };\n\t\t09AD019F15D2483500638DCE /* html */ = {isa = PBXFileReference; lastKnownFileType = folder; name = html; path = extra/html; sourceTree = \"<group>\"; };\n\t\t09B168701906062E003FDBCC /* CHCSVParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHCSVParser.h; sourceTree = \"<group>\"; };\n\t\t09B168711906062E003FDBCC /* CHCSVParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHCSVParser.m; sourceTree = \"<group>\"; };\n\t\t09FB094315C9DE6400B8AAB6 /* usr */ = {isa = PBXFileReference; lastKnownFileType = folder; name = usr; path = extra/usr; sourceTree = \"<group>\"; };\n\t\t4B36C4641468B87A0085B07C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };\n\t\t4B89D982147CA39200872F60 /* dnscrypt_256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = dnscrypt_256.png; sourceTree = \"<group>\"; };\n\t\t4BABEA1F144F5A7B006AEF34 /* led_green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = led_green.png; sourceTree = \"<group>\"; };\n\t\t4BABEA20144F5A7B006AEF34 /* led_yellow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = led_yellow.png; sourceTree = \"<group>\"; };\n\t\t4BABEA21144F5A7B006AEF34 /* led_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = led_red.png; sourceTree = \"<group>\"; };\n\t\t4BABEA22144F5A7B006AEF34 /* shield_yellow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = shield_yellow.png; sourceTree = \"<group>\"; };\n\t\t4BABEA23144F5A7B006AEF34 /* shield_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = shield_red.png; sourceTree = \"<group>\"; };\n\t\t4BABEA24144F5A7B006AEF34 /* shield_green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = shield_green.png; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t0946B0BD13F47F53008277C6 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t4B36C4651468B87A0085B07C /* WebKit.framework in Frameworks */,\n\t\t\t\t0946B0E413F48065008277C6 /* Security.framework in Frameworks */,\n\t\t\t\t0946B0C613F47F53008277C6 /* Cocoa.framework in Frameworks */,\n\t\t\t\t0946B0C813F47F53008277C6 /* PreferencePanes.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t0946B0B513F47F52008277C6 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0CD13F47F53008277C6 /* DNSCrypt */,\n\t\t\t\t0946B0C413F47F53008277C6 /* Frameworks */,\n\t\t\t\t0946B0C313F47F53008277C6 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0946B0C313F47F53008277C6 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0C213F47F53008277C6 /* DNSCrypt.prefPane */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0946B0C413F47F53008277C6 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0C513F47F53008277C6 /* Cocoa.framework */,\n\t\t\t\t0946B0C913F47F53008277C6 /* Other Frameworks */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0946B0C913F47F53008277C6 /* Other Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0CA13F47F53008277C6 /* AppKit.framework */,\n\t\t\t\t0946B0CB13F47F53008277C6 /* CoreData.framework */,\n\t\t\t\t0946B0CC13F47F53008277C6 /* Foundation.framework */,\n\t\t\t\t0946B0C713F47F53008277C6 /* PreferencePanes.framework */,\n\t\t\t\t0946B0E313F48065008277C6 /* Security.framework */,\n\t\t\t\t0946B0E113F48056008277C6 /* SecurityFoundation.framework */,\n\t\t\t\t4B36C4641468B87A0085B07C /* WebKit.framework */,\n\t\t\t);\n\t\t\tname = \"Other Frameworks\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0946B0CD13F47F53008277C6 /* DNSCrypt */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0D413F47F53008277C6 /* DNSCrypt.h */,\n\t\t\t\t0946B0D513F47F53008277C6 /* DNSCrypt.m */,\n\t\t\t\t0946B0D913F47F53008277C6 /* DNSCrypt.xib */,\n\t\t\t\t0946B0D713F47F53008277C6 /* DNSCrypt.tiff */,\n\t\t\t\t4B89D982147CA39200872F60 /* dnscrypt_256.png */,\n\t\t\t\t09B1686F1906062E003FDBCC /* CHCSVParser */,\n\t\t\t\t09AD019F15D2483500638DCE /* html */,\n\t\t\t\t09FB094315C9DE6400B8AAB6 /* usr */,\n\t\t\t\t0946B0CE13F47F53008277C6 /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = DNSCrypt;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0946B0CE13F47F53008277C6 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4BABEA1E144F5A67006AEF34 /* Status */,\n\t\t\t\t0946B0CF13F47F53008277C6 /* DNSCrypt-Info.plist */,\n\t\t\t\t0946B0D013F47F53008277C6 /* InfoPlist.strings */,\n\t\t\t\t0946B0D313F47F53008277C6 /* DNSCrypt-Prefix.pch */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t09B1686F1906062E003FDBCC /* CHCSVParser */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09B168701906062E003FDBCC /* CHCSVParser.h */,\n\t\t\t\t09B168711906062E003FDBCC /* CHCSVParser.m */,\n\t\t\t);\n\t\t\tpath = CHCSVParser;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4BABEA1E144F5A67006AEF34 /* Status */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09A13ABB145F2D8700B227A4 /* ajax-loader.gif */,\n\t\t\t\t4BABEA1F144F5A7B006AEF34 /* led_green.png */,\n\t\t\t\t4BABEA20144F5A7B006AEF34 /* led_yellow.png */,\n\t\t\t\t4BABEA21144F5A7B006AEF34 /* led_red.png */,\n\t\t\t\t4BABEA22144F5A7B006AEF34 /* shield_yellow.png */,\n\t\t\t\t4BABEA23144F5A7B006AEF34 /* shield_red.png */,\n\t\t\t\t4BABEA24144F5A7B006AEF34 /* shield_green.png */,\n\t\t\t);\n\t\t\tname = Status;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t0946B0BE13F47F53008277C6 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t09B168721906062E003FDBCC /* CHCSVParser.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t0946B0C113F47F53008277C6 /* DNSCrypt */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 0946B0DE13F47F53008277C6 /* Build configuration list for PBXNativeTarget \"DNSCrypt\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t0946B0BC13F47F53008277C6 /* Sources */,\n\t\t\t\t0946B0BD13F47F53008277C6 /* Frameworks */,\n\t\t\t\t0946B0BE13F47F53008277C6 /* Headers */,\n\t\t\t\t0946B0BF13F47F53008277C6 /* Resources */,\n\t\t\t\t0946B0C013F47F53008277C6 /* Rez */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = DNSCrypt;\n\t\t\tproductName = DNSCrypt;\n\t\t\tproductReference = 0946B0C213F47F53008277C6 /* DNSCrypt.prefPane */;\n\t\t\tproductType = \"com.apple.product-type.bundle\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t0946B0B713F47F52008277C6 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0510;\n\t\t\t};\n\t\t\tbuildConfigurationList = 0946B0BA13F47F52008277C6 /* Build configuration list for PBXProject \"DNSCrypt\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = 0946B0B513F47F52008277C6;\n\t\t\tproductRefGroup = 0946B0C313F47F53008277C6 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t0946B0C113F47F53008277C6 /* DNSCrypt */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t0946B0BF13F47F53008277C6 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t0946B0D213F47F53008277C6 /* InfoPlist.strings in Resources */,\n\t\t\t\t0946B0D813F47F53008277C6 /* DNSCrypt.tiff in Resources */,\n\t\t\t\t0946B0DB13F47F53008277C6 /* DNSCrypt.xib in Resources */,\n\t\t\t\t4BABEA28144F5A7B006AEF34 /* led_green.png in Resources */,\n\t\t\t\t4BABEA29144F5A7B006AEF34 /* led_yellow.png in Resources */,\n\t\t\t\t4BABEA2A144F5A7B006AEF34 /* led_red.png in Resources */,\n\t\t\t\t4BABEA2B144F5A7B006AEF34 /* shield_yellow.png in Resources */,\n\t\t\t\t4BABEA2C144F5A7B006AEF34 /* shield_red.png in Resources */,\n\t\t\t\t4BABEA2D144F5A7B006AEF34 /* shield_green.png in Resources */,\n\t\t\t\t09A13ABC145F2D8700B227A4 /* ajax-loader.gif in Resources */,\n\t\t\t\t4B89D983147CA39200872F60 /* dnscrypt_256.png in Resources */,\n\t\t\t\t09FB094415C9DE6400B8AAB6 /* usr in Resources */,\n\t\t\t\t09AD01A015D2483500638DCE /* html in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXRezBuildPhase section */\n\t\t0946B0C013F47F53008277C6 /* Rez */ = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXRezBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t0946B0BC13F47F53008277C6 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t09B168731906062E003FDBCC /* CHCSVParser.m in Sources */,\n\t\t\t\t0946B0D613F47F53008277C6 /* DNSCrypt.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t0946B0D013F47F53008277C6 /* InfoPlist.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0D113F47F53008277C6 /* en */,\n\t\t\t);\n\t\t\tname = InfoPlist.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0946B0D913F47F53008277C6 /* DNSCrypt.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t0946B0DA13F47F53008277C6 /* en */,\n\t\t\t);\n\t\t\tname = DNSCrypt.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t0946B0DC13F47F53008277C6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = NO;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_ENABLE_OBJC_GC = supported;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvmgcc42;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.6;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t0946B0DD13F47F53008277C6 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = NO;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_ENABLE_OBJC_GC = supported;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvmgcc42;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.6;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t0946B0DF13F47F53008277C6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"\\\"$(SRCROOT)\\\"\",\n\t\t\t\t);\n\t\t\t\tGCC_ENABLE_OBJC_GC = no;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"DNSCrypt/DNSCrypt-Prefix.pch\";\n\t\t\t\tGCC_VERSION = \"\";\n\t\t\t\tINFOPLIST_FILE = \"DNSCrypt/DNSCrypt-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(HOME)/Library/PreferencePanes\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = prefPane;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t0946B0E013F47F53008277C6 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"\\\"$(SRCROOT)\\\"\",\n\t\t\t\t);\n\t\t\t\tGCC_ENABLE_OBJC_GC = no;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"DNSCrypt/DNSCrypt-Prefix.pch\";\n\t\t\t\tGCC_VERSION = \"\";\n\t\t\t\tINFOPLIST_FILE = \"DNSCrypt/DNSCrypt-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(HOME)/Library/PreferencePanes\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = prefPane;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t0946B0BA13F47F52008277C6 /* Build configuration list for PBXProject \"DNSCrypt\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t0946B0DC13F47F53008277C6 /* Debug */,\n\t\t\t\t0946B0DD13F47F53008277C6 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t0946B0DE13F47F53008277C6 /* Build configuration list for PBXNativeTarget \"DNSCrypt\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t0946B0DF13F47F53008277C6 /* Debug */,\n\t\t\t\t0946B0E013F47F53008277C6 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 0946B0B713F47F52008277C6 /* Project object */;\n}\n"
  },
  {
    "path": "DNSCrypt-Preference-Pane/DNSCrypt.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:DNSCrypt.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Pages/feedback.haml",
    "content": "!!! 5\n%html{lang: \"en\"}\n  %head\n    %meta{charset: \"utf-8\"}\n    %title DNSCrypt feedback form\n    %style{type: \"text/css\"}\n      :sass\n        body\n          font:\n            family: arial, helvetica, sans-serif\n          margin: 0\n        h1\n          margin: 0\n        form\n          margin: 0 auto\n          width: 500px\n          p\n            margin: 0.25em 0\n          .error\n            background: #fbb\n            color: #000\n        fieldset\n          border: none\n          padding: 0\n        label\n          float: left\n          width: 100px\n          text-align: right\n          padding-right: 1em\n        input\n          width: 200px\n        input[type=submit]\n          width: auto\n        textarea\n          width: 300px\n          height: 170px\n        #submit\n          text-align: center\n  %body\n    %form{action: \"feedback.php\", method: \"post\", action: \"{{form_url}}\"}\n      %h1 Feedback\n      %fieldset\n        %p\n          %label{for: \"name\"} Name:\n          %input{type: \"text\", name: \"name\", autofocus: true,\n                 required: true, value: \"{{name}}\", class: \"{{class_name}}\"}\n        %p\n          %label{for: \"email\"} Email:\n          %input{type: \"email\", name: \"email\",\n                 placeholder: \"email@example.com\", required: true,\n                 value: \"{{email}}\", class: \"{{class_email}}\"}\n        %p\n          %label{for: \"feedback\"} Feedback:\n          %textarea{name: \"feedback\", class: \"{{class_feedback}}\"} {{feedback}}\n      %fieldset#submit\n        %input{type: \"submit\"}\n"
  },
  {
    "path": "Pages/feedback.php",
    "content": "<?php\n\nerror_reporting(E_ALL);\n\ndefine('FEEDBACK_RECIPIENT', 'DNSCrypt Feedback <dnscrypt@example.com>');\ndefine('FEEDBACK_SUBJECT', 'DNSCrypt Feedback');\n\nfunction strip_slashes_from_user_data(&$array) {\n    foreach($array as $k => $v) {\n        if (is_array($v)) {\n            strip_slashes_from_user_data($array[$k]);\n            continue;\n        }\n        $array[$k] = stripslashes($v);\n    }\n}\n\nfunction disable_magic_quotes() {\n    if (get_magic_quotes_gpc()) {\n        strip_slashes_from_user_data($_GET);\n        strip_slashes_from_user_data($_POST);\n        strip_slashes_from_user_data($_COOKIE);\n    }\n}\n\nfunction render_headers() {\n    header('X-Frame-Options: sameorigin');\n    header('X-XSS-Protection: 1; mode=block');\n    header('X-Content-Security-Policy: allow \\'self\\'');\n    header('Cache-Control: private, max-age=3600');\n    header('Expires: ' . date('r', time() + 3600));\n}\n\nfunction render_tpl($template, $vars) {\n    $tpl = @file_get_contents($template);\n    if (empty($tpl)) {\n        throw new Exception('template');\n    }\n    foreach ($vars as $key => $value) {\n        foreach (array_keys($vars) as $key_) {\n            if (strstr($value, '{{' . $key . '}}') !== FALSE) {\n                $value = '';\n            }\n        }\n        $tpl = str_replace('{{' . $key . '}}', htmlspecialchars($value), $tpl);\n    }\n    echo $tpl;\n}\n\nfunction redirect_to_sent_page($uri) {\n    header('HTTP/1.1 303 See other');\n    header('Location: ' . $uri);\n    exit;\n}\n\nfunction _send_email($name, $email, $feedback) {\n    $from = mb_encode_mimeheader($name, 'UTF-8') . '<' . $email . '>';\n    $to = FEEDBACK_RECIPIENT;\n    $subject = mb_encode_mimeheader(FEEDBACK_SUBJECT, 'UTF-8');\n    $body = addslashes($feedback);\n\n    return send_email($from, $to, $subject, $body);\n}\n\nfunction send_form($name, $email, $feedback) {\n    if (_send_email($name, $email, $feedback) !== TRUE) {\n        redirect_to_sent_page($_SERVER['SCRIPT_NAME']);\n    }\n    redirect_to_sent_page('sent.html');\n}\n\nfunction process_feedback(&$errors, &$name, &$email, &$feedback) {\n    $name = trim(isset($_POST['name']) ? (string) $_POST['name'] : '');\n    $email = trim(isset($_POST['email']) ? (string) $_POST['email'] : '');\n    $feedback = trim(isset($_POST['feedback']) ?\n                     (string) $_POST['feedback'] : '');\n    if (empty($name)) {\n        array_push($errors, 'name');\n    }\n    if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {\n        array_push($errors, 'email');\n    }\n    if (empty($feedback)) {\n        array_push($errors, 'feedback');\n    }\n    if (! empty($errors)) {\n        return;\n    }\n    session_start();\n    if (empty($_SESSION['authenticity_token']) ||\n        $_GET['authenticity_token'] !== $_SESSION['authenticity_token']) {\n        return;\n    }\n    send_form($name, $email, $feedback);\n    unset($_SESSION['authenticity_token']);\n}\n\ndisable_magic_quotes();\n\nrender_headers();\n\n$errors = array();\n$name = $email = $feedback = '';\n\nif ($_SERVER['REQUEST_METHOD'] === 'POST' &&\n    !empty($_GET['authenticity_token'])) {\n    process_feedback($errors, $name, $email, $feedback);\n}\n\nif (session_id() === '') {\n    session_start();\n}\n$authenticity_token = md5(uniqid(__FILE__, TRUE));\n$_SESSION['authenticity_token'] = $authenticity_token;\n\n$form_url = $_SERVER['SCRIPT_NAME'] . '?' .\n  http_build_query(array('authenticity_token' => $authenticity_token));\n\n$vars = array('name' => $name,\n              'email' => $email,\n              'feedback' => $feedback,\n              'form_url' => $form_url);\n\nforeach ($errors as $error) {\n    $vars['class_' . $error] = 'error';\n}\n\nrender_tpl('feedback.tpl', $vars + $errors);\n"
  },
  {
    "path": "Pages/feedback.tpl",
    "content": "<!DOCTYPE html>\n<html lang='en'>\n  <head>\n    <meta charset='utf-8' />\n    <title>DNSCrypt feedback form</title>\n    <style type='text/css'>\n      body {\n        font-family: arial, helvetica, sans-serif;\n        margin: 0; }\n\n      h1 {\n        margin: 0; }\n\n      form {\n        margin: 0 auto;\n        width: 500px; }\n        form p {\n          margin: 0.25em 0; }\n        form .error {\n          background: #ffbbbb;\n          color: black; }\n\n      fieldset {\n        border: none;\n        padding: 0; }\n\n      label {\n        float: left;\n        width: 100px;\n        text-align: right;\n        padding-right: 1em; }\n\n      input {\n        width: 200px; }\n\n      input[type=submit] {\n        width: auto; }\n\n      textarea {\n        width: 300px;\n        height: 170px; }\n\n      #submit {\n        text-align: center; }\n    </style>\n  </head>\n  <body>\n    <form action='{{form_url}}' method='post'>\n      <h1>Feedback</h1>\n      <fieldset>\n        <p>\n          <label for='name'>Name:</label>\n          <input autofocus='autofocus' class='{{class_name}}' name='name' required='required' type='text' value='{{name}}' />\n        </p>\n        <p>\n          <label for='email'>Email:</label>\n          <input class='{{class_email}}' name='email' placeholder='email@example.com' required='required' type='email' value='{{email}}' />\n        </p>\n        <p>\n          <label for='feedback'>Feedback:</label>\n          <textarea class='{{class_feedback}}' name='feedback'>{{feedback}}</textarea>\n        </p>\n      </fieldset>\n      <fieldset id='submit'>\n        <input type='submit' />\n      </fieldset>\n    </form>\n  </body>\n</html>\n"
  },
  {
    "path": "Pages/sent.haml",
    "content": "!!! 5\n%html{lang: \"en\"}\n  %head\n    %meta{charset: \"utf-8\"}\n    %meta{\"http-equiv\" => \"refresh\", content: \"5; url=feedback.php\"}\n    %title DNSCrypt feedback sent\n    %style{type: \"text/css\"}\n      :sass\n        body\n          font:\n            family: arial, helvetica, sans-serif\n  %body\n    %h1 Feedback sent!\n"
  },
  {
    "path": "README.markdown",
    "content": "OSX client for managing the DNSCrypt Proxy\n==========================================\n\nThe purpose of this application is to allow the user to have a better\nexperience controlling the DNSCrypt Proxy on OSX.\n\n[Download dnscrypt-osxclient-1.0.4.dmg](https://github.com/alterstep/dnscrypt-osxclient/releases/download/1.0.4/dnscrypt-osxclient-1.0.4.dmg)\nfor OSX 10.8 (Snow Leopard), OSX 10.9 (Mavericks) and OSX 10.10 (Yosemite).\n\nCompatible with:\n* CloudNS\n* d0wn\n* DNSCrypt.eu\n* okTurtles\n* OpenDNS\n* OpenNIC\n* Soltysiak\n"
  }
]