// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		08FCA0FF1E24BE1A0070984F /* example-gui-config.json in Resources */ = {isa = PBXBuildFile; fileRef = 08FCA0FE1E24BE1A0070984F /* example-gui-config.json */; };
		258E511BA910B0521B24DAB8 /* Pods_ShadowsocksX_NG.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 283ED1A8E9B711AC65670031 /* Pods_ShadowsocksX_NG.framework */; };
		9B07EFA71D048BBB0052D9DF /* ss-local in Resources */ = {isa = PBXBuildFile; fileRef = 9B07EFA61D048BBB0052D9DF /* ss-local */; };
		9B07EFAC1D048E880052D9DF /* menu_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B07EFA81D048E880052D9DF /* menu_icon@2x.png */; };
		9B07EFAD1D048E880052D9DF /* menu_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B07EFA91D048E880052D9DF /* menu_icon.png */; };
		9B07EFAE1D048E880052D9DF /* menu_icon_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B07EFAA1D048E880052D9DF /* menu_icon_disabled.png */; };
		9B07EFAF1D048E880052D9DF /* menu_icon_disabled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B07EFAB1D048E880052D9DF /* menu_icon_disabled@2x.png */; };
		9B0BFFE91D0460A70040E62B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B0BFFE81D0460A70040E62B /* AppDelegate.swift */; };
		9B0BFFEB1D0460A70040E62B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9B0BFFEA1D0460A70040E62B /* Assets.xcassets */; };
		9B0BFFEE1D0460A70040E62B /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9B0BFFEC1D0460A70040E62B /* MainMenu.xib */; };
		9B0BFFF91D0460A70040E62B /* ShadowsocksX_NGTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B0BFFF81D0460A70040E62B /* ShadowsocksX_NGTests.swift */; };
		9B2491B41D0ACC3A003BBECC /* PreferencesWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9B2491B61D0ACC3A003BBECC /* PreferencesWindowController.xib */; };
		9B3546721E802B1200B510B4 /* ToastWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3546701E802B1200B510B4 /* ToastWindowController.swift */; };
		9B3546731E802B1200B510B4 /* ToastWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9B3546711E802B1200B510B4 /* ToastWindowController.xib */; };
		9B3F7BFF1E82BF5B00C68B75 /* libev.4.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 9B3F7BF71E82BF2D00C68B75 /* libev.4.dylib */; };
		9B3F7C001E82BF5B00C68B75 /* libmbedcrypto.2.4.2.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 9B3F7BF81E82BF2D00C68B75 /* libmbedcrypto.2.4.2.dylib */; };
		9B3F7C011E82BF5B00C68B75 /* libsodium.18.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 9B3F7BF91E82BF2E00C68B75 /* libsodium.18.dylib */; };
		9B3F7C021E82BF5B00C68B75 /* libudns.0.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 9B3F7BFA1E82BF2E00C68B75 /* libudns.0.dylib */; };
		9B3FFF0D1D05FEB30019A709 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF0C1D05FEB30019A709 /* Utils.swift */; };
		9B3FFF141D0705810019A709 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF131D0705810019A709 /* Notifications.swift */; };
		9B3FFF171D072FDE0019A709 /* LaunchAtLoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF161D072FDE0019A709 /* LaunchAtLoginController.m */; };
		9B3FFF1E1D0732660019A709 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF1D1D0732660019A709 /* Utils.m */; };
		9B3FFF211D08826E0019A709 /* PACUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF201D08826E0019A709 /* PACUtils.swift */; };
		9B3FFF231D088E8D0019A709 /* abp.js in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF221D088E8D0019A709 /* abp.js */; };
		9B3FFF271D0898EB0019A709 /* gfwlist.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF261D0898EB0019A709 /* gfwlist.txt */; };
		9B3FFF291D08A1DF0019A709 /* user-rule.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF281D08A1DF0019A709 /* user-rule.txt */; };
		9B3FFF321D08CEE40019A709 /* SWBQRCodeWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF311D08CEE40019A709 /* SWBQRCodeWindowController.m */; };
		9B3FFF341D08CEF70019A709 /* SWBQRCodeWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF331D08CEF70019A709 /* SWBQRCodeWindowController.xib */; };
		9B3FFF3E1D08D9910019A709 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B3FFF3D1D08D9910019A709 /* SystemConfiguration.framework */; };
		9B3FFF471D09CD3B0019A709 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF461D09CD3B0019A709 /* main.m */; };
		9B3FFF4C1D09D8F70019A709 /* install_helper.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF4B1D09D8F70019A709 /* install_helper.sh */; };
		9B3FFF4F1D09D9D50019A709 /* ProxyConfHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF4E1D09D9D50019A709 /* ProxyConfHelper.m */; };
		9B3FFF541D09E2D10019A709 /* proxy_conf_helper in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF441D09CD3B0019A709 /* proxy_conf_helper */; };
		9B5831F61E7302F8009D5B7D /* ShortcutsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5831F51E7302F8009D5B7D /* ShortcutsController.m */; };
		9B5831FF1E741969009D5B7D /* PreferencesWinController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B5831FD1E741969009D5B7D /* PreferencesWinController.swift */; };
		9B5832031E741F8D009D5B7D /* command-512.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B5832021E741F8D009D5B7D /* command-512.png */; };
		9B5832071E7421B2009D5B7D /* virtual-server-icon-3.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B5832061E7421B2009D5B7D /* virtual-server-icon-3.png */; };
		9B58320B1E7422DB009D5B7D /* http.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B58320A1E7422DB009D5B7D /* http.png */; };
		9B5832111E742632009D5B7D /* kcptun_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B5832101E742632009D5B7D /* kcptun_1.png */; };
		9B6BF9541E27B2570061B9A7 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B6BF9531E27B2570061B9A7 /* ServiceManagement.framework */; };
		9B86459D1E7C2CAD00A84029 /* ProxyInterfacesViewCtrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B86459C1E7C2CAD00A84029 /* ProxyInterfacesViewCtrl.swift */; };
		9B938D991E864B38005F5636 /* menu_g_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B938D931E864B38005F5636 /* menu_g_icon.png */; };
		9B938D9A1E864B38005F5636 /* menu_g_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B938D941E864B38005F5636 /* menu_g_icon@2x.png */; };
		9B938D9B1E864B38005F5636 /* menu_m_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B938D951E864B38005F5636 /* menu_m_icon.png */; };
		9B938D9C1E864B38005F5636 /* menu_m_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B938D961E864B38005F5636 /* menu_m_icon@2x.png */; };
		9B938D9D1E864B38005F5636 /* menu_p_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B938D971E864B38005F5636 /* menu_p_icon.png */; };
		9B938D9E1E864B38005F5636 /* menu_p_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B938D981E864B38005F5636 /* menu_p_icon@2x.png */; };
		9B9CBCA61E25E1DB00FC61AA /* KcptunProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B9CBCA51E25E1DB00FC61AA /* KcptunProfile.swift */; };
		9B9CBCA81E26312E00FC61AA /* install_kcptun.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCA71E26310E00FC61AA /* install_kcptun.sh */; };
		9B9CBCAA1E2633CB00FC61AA /* kcptun_client in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCA91E2633CB00FC61AA /* kcptun_client */; };
		9B9CBCAF1E263B1600FC61AA /* libpcre.1.dylib in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCAD1E263A6600FC61AA /* libpcre.1.dylib */; };
		9B9CBCB41E26453C00FC61AA /* start_kcptun.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCB01E2644DC00FC61AA /* start_kcptun.sh */; };
		9B9CBCB51E26453C00FC61AA /* stop_kcptun.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCB11E26450D00FC61AA /* stop_kcptun.sh */; };
		9B9F13A71E8A28B300DE4794 /* LaunchHelper.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B9F13A61E8A282D00DE4794 /* LaunchHelper.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
		9BA04B231D23D5A5005AAD7F /* ProxyConfTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA04B221D23D5A5005AAD7F /* ProxyConfTool.m */; };
		9BAFE2E21E83ED7F00F71CCE /* PreferencesWinController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9BAFE2E41E83ED7F00F71CCE /* PreferencesWinController.xib */; };
		9BB706A71D1B982300551F0E /* SWBApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB706A51D1B982300551F0E /* SWBApplication.m */; };
		9BC70EDC1D2E3E3100EDA4CA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B172A6C1D0ADDDD00B87B9A /* Localizable.strings */; };
		9BEEF0691D04D4D500FC52B3 /* install_ss_local.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9BEEF0651D04CB8500FC52B3 /* install_ss_local.sh */; };
		9BEEF06A1D04D4D500FC52B3 /* start_ss_local.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9BEEF0661D04CE8D00FC52B3 /* start_ss_local.sh */; };
		9BEEF06B1D04D4D500FC52B3 /* stop_ss_local.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9BEEF0671D04CE9A00FC52B3 /* stop_ss_local.sh */; };
		9BEEF06E1D04DCE400FC52B3 /* ServerProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BEEF06D1D04DCE400FC52B3 /* ServerProfile.swift */; };
		9BEEF0701D04DDB100FC52B3 /* ServerProfileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BEEF06F1D04DDB100FC52B3 /* ServerProfileManager.swift */; };
		9BEEF0751D04EF3E00FC52B3 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BEEF0731D04EF3E00FC52B3 /* PreferencesWindowController.swift */; };
		9BEEF0781D04FE8A00FC52B3 /* LaunchAgentUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BEEF0771D04FE8A00FC52B3 /* LaunchAgentUtils.swift */; };
		C6D429931DA75988002A5711 /* install_privoxy.sh in Resources */ = {isa = PBXBuildFile; fileRef = C6D4298E1DA75988002A5711 /* install_privoxy.sh */; };
		C6D429941DA75988002A5711 /* privoxy in Resources */ = {isa = PBXBuildFile; fileRef = C6D4298F1DA75988002A5711 /* privoxy */; };
		C6D429961DA75988002A5711 /* start_privoxy.sh in Resources */ = {isa = PBXBuildFile; fileRef = C6D429911DA75988002A5711 /* start_privoxy.sh */; };
		C6D429971DA75988002A5711 /* stop_privoxy.sh in Resources */ = {isa = PBXBuildFile; fileRef = C6D429921DA75988002A5711 /* stop_privoxy.sh */; };
		C6D429991DA76FBC002A5711 /* privoxy.config.example in Resources */ = {isa = PBXBuildFile; fileRef = C6D429981DA76FBC002A5711 /* privoxy.config.example */; };
		C8E42A6C1D4F270A0074C7EA /* UserRulesController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8E42A6A1D4F270A0074C7EA /* UserRulesController.swift */; };
		C8E42A6E1D4F2CAF0074C7EA /* UserRulesController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8E42A701D4F2CAF0074C7EA /* UserRulesController.xib */; };
		D8E3630B1E2072980027449B /* ServerProfileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8E3630A1E2072980027449B /* ServerProfileTests.swift */; };
		E0E57CCA7EB34B90F9D340F2 /* Pods_ShadowsocksX_NGTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 388120F062D7EB7DD0D8DDCA /* Pods_ShadowsocksX_NGTests.framework */; };
		F0809FF1595BE2966343D3C7 /* libPods-proxy_conf_helper.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7783AEDB4A3BDDC9FF16AC /* libPods-proxy_conf_helper.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		9B0BFFF51D0460A70040E62B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 9B0BFFDD1D0460A70040E62B /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 9B0BFFE41D0460A70040E62B;
			remoteInfo = "ShadowsocksX-NG";
		};
		9B3FFF521D09E2B30019A709 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 9B0BFFDD1D0460A70040E62B /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 9B3FFF431D09CD3B0019A709;
			remoteInfo = proxy_conf_helper;
		};
		9B9F13A51E8A282D00DE4794 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 9B9F13A11E8A282C00DE4794 /* LaunchHelper.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 9B9F138D1E8A282C00DE4794;
			remoteInfo = LaunchHelper;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		9B3FFF421D09CD3B0019A709 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
		9B6BF9511E27B2250061B9A7 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = Contents/Library/LoginItems;
			dstSubfolderSpec = 1;
			files = (
				9B9F13A71E8A28B300DE4794 /* LaunchHelper.app in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		08FCA0FE1E24BE1A0070984F /* example-gui-config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "example-gui-config.json"; sourceTree = "<group>"; };
		19083CFCED87354F006967FF /* Pods_ShadowsocksX_NGUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ShadowsocksX_NGUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		1E7783AEDB4A3BDDC9FF16AC /* libPods-proxy_conf_helper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-proxy_conf_helper.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		283ED1A8E9B711AC65670031 /* Pods_ShadowsocksX_NG.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ShadowsocksX_NG.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		297AF069022A197FD8E9D226 /* Pods-proxy_conf_helper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-proxy_conf_helper.release.xcconfig"; path = "Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.release.xcconfig"; sourceTree = "<group>"; };
		388120F062D7EB7DD0D8DDCA /* Pods_ShadowsocksX_NGTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ShadowsocksX_NGTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		3AC7CD9886196A997D6FC78D /* Pods-ShadowsocksX-NGTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShadowsocksX-NGTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.release.xcconfig"; sourceTree = "<group>"; };
		50D54926AA21B0D4D8DD9C4F /* Pods-ShadowsocksX-NGUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShadowsocksX-NGUITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ShadowsocksX-NGUITests/Pods-ShadowsocksX-NGUITests.release.xcconfig"; sourceTree = "<group>"; };
		58907E7F50405104B42CB189 /* Pods-ShadowsocksX-NGUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShadowsocksX-NGUITests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ShadowsocksX-NGUITests/Pods-ShadowsocksX-NGUITests.debug.xcconfig"; sourceTree = "<group>"; };
		5B6203C1228FCD3D365814AC /* Pods-ShadowsocksX-NGTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShadowsocksX-NGTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.debug.xcconfig"; sourceTree = "<group>"; };
		9B07EFA61D048BBB0052D9DF /* ss-local */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = "ss-local"; sourceTree = "<group>"; };
		9B07EFA81D048E880052D9DF /* menu_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menu_icon@2x.png"; sourceTree = "<group>"; };
		9B07EFA91D048E880052D9DF /* menu_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_icon.png; sourceTree = "<group>"; };
		9B07EFAA1D048E880052D9DF /* menu_icon_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_icon_disabled.png; sourceTree = "<group>"; };
		9B07EFAB1D048E880052D9DF /* menu_icon_disabled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menu_icon_disabled@2x.png"; sourceTree = "<group>"; };
		9B0BFFE51D0460A70040E62B /* ShadowsocksX-NG.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ShadowsocksX-NG.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		9B0BFFE81D0460A70040E62B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		9B0BFFEA1D0460A70040E62B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		9B0BFFED1D0460A70040E62B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
		9B0BFFEF1D0460A70040E62B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		9B0BFFF41D0460A70040E62B /* ShadowsocksX-NGTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ShadowsocksX-NGTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
		9B0BFFF81D0460A70040E62B /* ShadowsocksX_NGTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksX_NGTests.swift; sourceTree = "<group>"; };
		9B0BFFFA1D0460A70040E62B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		9B172A601D0ADA5B00B87B9A /* genstrings.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = genstrings.py; sourceTree = "<group>"; };
		9B172A6B1D0ADDDD00B87B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
		9B172A6D1D0ADDE800B87B9A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
		9B2491B51D0ACC3A003BBECC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PreferencesWindowController.xib; sourceTree = "<group>"; };
		9B3546701E802B1200B510B4 /* ToastWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToastWindowController.swift; sourceTree = "<group>"; };
		9B3546711E802B1200B510B4 /* ToastWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ToastWindowController.xib; sourceTree = "<group>"; };
		9B3F7BF71E82BF2D00C68B75 /* libev.4.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libev.4.dylib; sourceTree = "<group>"; };
		9B3F7BF81E82BF2D00C68B75 /* libmbedcrypto.2.4.2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmbedcrypto.2.4.2.dylib; sourceTree = "<group>"; };
		9B3F7BF91E82BF2E00C68B75 /* libsodium.18.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libsodium.18.dylib; sourceTree = "<group>"; };
		9B3F7BFA1E82BF2E00C68B75 /* libudns.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libudns.0.dylib; sourceTree = "<group>"; };
		9B3FFF0C1D05FEB30019A709 /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = "<group>"; };
		9B3FFF131D0705810019A709 /* Notifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notifications.swift; sourceTree = "<group>"; };
		9B3FFF151D072FDE0019A709 /* LaunchAtLoginController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchAtLoginController.h; sourceTree = "<group>"; };
		9B3FFF161D072FDE0019A709 /* LaunchAtLoginController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchAtLoginController.m; sourceTree = "<group>"; };
		9B3FFF1D1D0732660019A709 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utils.m; sourceTree = "<group>"; };
		9B3FFF1F1D0734060019A709 /* Utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = "<group>"; };
		9B3FFF201D08826E0019A709 /* PACUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PACUtils.swift; sourceTree = "<group>"; };
		9B3FFF221D088E8D0019A709 /* abp.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = abp.js; sourceTree = "<group>"; };
		9B3FFF261D0898EB0019A709 /* gfwlist.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = gfwlist.txt; sourceTree = "<group>"; };
		9B3FFF281D08A1DF0019A709 /* user-rule.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "user-rule.txt"; sourceTree = "<group>"; };
		9B3FFF301D08CEE40019A709 /* SWBQRCodeWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWBQRCodeWindowController.h; sourceTree = "<group>"; };
		9B3FFF311D08CEE40019A709 /* SWBQRCodeWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SWBQRCodeWindowController.m; sourceTree = "<group>"; };
		9B3FFF331D08CEF70019A709 /* SWBQRCodeWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SWBQRCodeWindowController.xib; sourceTree = "<group>"; };
		9B3FFF3B1D08D93B0019A709 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
		9B3FFF3D1D08D9910019A709 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
		9B3FFF441D09CD3B0019A709 /* proxy_conf_helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = proxy_conf_helper; sourceTree = BUILT_PRODUCTS_DIR; };
		9B3FFF461D09CD3B0019A709 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		9B3FFF4B1D09D8F70019A709 /* install_helper.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_helper.sh; sourceTree = "<group>"; };
		9B3FFF4D1D09D9D50019A709 /* ProxyConfHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyConfHelper.h; sourceTree = "<group>"; };
		9B3FFF4E1D09D9D50019A709 /* ProxyConfHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProxyConfHelper.m; sourceTree = "<group>"; };
		9B3FFF501D09DAEA0019A709 /* proxy_conf_helper_version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = proxy_conf_helper_version.h; sourceTree = "<group>"; };
		9B3FFF511D09DBA20019A709 /* ShadowsocksX-NG-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ShadowsocksX-NG-Bridging-Header.h"; sourceTree = "<group>"; };
		9B5831F41E7302F8009D5B7D /* ShortcutsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShortcutsController.h; sourceTree = "<group>"; };
		9B5831F51E7302F8009D5B7D /* ShortcutsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShortcutsController.m; sourceTree = "<group>"; };
		9B5831FA1E73098F009D5B7D /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		9B5831FD1E741969009D5B7D /* PreferencesWinController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesWinController.swift; sourceTree = "<group>"; };
		9B5832021E741F8D009D5B7D /* command-512.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "command-512.png"; sourceTree = "<group>"; };
		9B5832061E7421B2009D5B7D /* virtual-server-icon-3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "virtual-server-icon-3.png"; sourceTree = "<group>"; };
		9B58320A1E7422DB009D5B7D /* http.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = http.png; sourceTree = "<group>"; };
		9B5832101E742632009D5B7D /* kcptun_1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = kcptun_1.png; sourceTree = "<group>"; };
		9B6BF9531E27B2570061B9A7 /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; };
		9B86459C1E7C2CAD00A84029 /* ProxyInterfacesViewCtrl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProxyInterfacesViewCtrl.swift; sourceTree = "<group>"; };
		9B938D931E864B38005F5636 /* menu_g_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_g_icon.png; sourceTree = "<group>"; };
		9B938D941E864B38005F5636 /* menu_g_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menu_g_icon@2x.png"; sourceTree = "<group>"; };
		9B938D951E864B38005F5636 /* menu_m_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_m_icon.png; sourceTree = "<group>"; };
		9B938D961E864B38005F5636 /* menu_m_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menu_m_icon@2x.png"; sourceTree = "<group>"; };
		9B938D971E864B38005F5636 /* menu_p_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_p_icon.png; sourceTree = "<group>"; };
		9B938D981E864B38005F5636 /* menu_p_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "menu_p_icon@2x.png"; sourceTree = "<group>"; };
		9B9CBCA51E25E1DB00FC61AA /* KcptunProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KcptunProfile.swift; sourceTree = "<group>"; };
		9B9CBCA71E26310E00FC61AA /* install_kcptun.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = install_kcptun.sh; sourceTree = "<group>"; };
		9B9CBCA91E2633CB00FC61AA /* kcptun_client */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = kcptun_client; sourceTree = "<group>"; };
		9B9CBCAD1E263A6600FC61AA /* libpcre.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libpcre.1.dylib; sourceTree = "<group>"; };
		9B9CBCB01E2644DC00FC61AA /* start_kcptun.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = start_kcptun.sh; sourceTree = "<group>"; };
		9B9CBCB11E26450D00FC61AA /* stop_kcptun.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = stop_kcptun.sh; sourceTree = "<group>"; };
		9B9F13A11E8A282C00DE4794 /* LaunchHelper.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = LaunchHelper.xcodeproj; path = LaunchHelper/LaunchHelper.xcodeproj; sourceTree = "<group>"; };
		9BA04B211D23D5A5005AAD7F /* ProxyConfTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyConfTool.h; sourceTree = "<group>"; };
		9BA04B221D23D5A5005AAD7F /* ProxyConfTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProxyConfTool.m; sourceTree = "<group>"; };
		9BAFE2E31E83ED7F00F71CCE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PreferencesWinController.xib; sourceTree = "<group>"; };
		9BAFE2E91E83EDDF00F71CCE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PreferencesWinController.strings"; sourceTree = "<group>"; };
		9BAFE2EB1E83F91D00F71CCE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = "<group>"; };
		9BB706A51D1B982300551F0E /* SWBApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SWBApplication.m; sourceTree = "<group>"; };
		9BB706A61D1B982300551F0E /* SWBApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWBApplication.h; sourceTree = "<group>"; };
		9BE8FBC11D0B71CF00CAFD01 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PreferencesWindowController.strings"; sourceTree = "<group>"; };
		9BEEF0651D04CB8500FC52B3 /* install_ss_local.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = install_ss_local.sh; sourceTree = "<group>"; };
		9BEEF0661D04CE8D00FC52B3 /* start_ss_local.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = start_ss_local.sh; sourceTree = "<group>"; };
		9BEEF0671D04CE9A00FC52B3 /* stop_ss_local.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = stop_ss_local.sh; sourceTree = "<group>"; };
		9BEEF06D1D04DCE400FC52B3 /* ServerProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerProfile.swift; sourceTree = "<group>"; };
		9BEEF06F1D04DDB100FC52B3 /* ServerProfileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerProfileManager.swift; sourceTree = "<group>"; };
		9BEEF0731D04EF3E00FC52B3 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = "<group>"; };
		9BEEF0771D04FE8A00FC52B3 /* LaunchAgentUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LaunchAgentUtils.swift; sourceTree = "<group>"; };
		B4E6A97CA843F3943524B686 /* Pods-proxy_conf_helper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-proxy_conf_helper.debug.xcconfig"; path = "Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.debug.xcconfig"; sourceTree = "<group>"; };
		C6D4298E1DA75988002A5711 /* install_privoxy.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_privoxy.sh; sourceTree = "<group>"; };
		C6D4298F1DA75988002A5711 /* privoxy */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = privoxy; sourceTree = "<group>"; };
		C6D429911DA75988002A5711 /* start_privoxy.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = start_privoxy.sh; sourceTree = "<group>"; };
		C6D429921DA75988002A5711 /* stop_privoxy.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = stop_privoxy.sh; sourceTree = "<group>"; };
		C6D429981DA76FBC002A5711 /* privoxy.config.example */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = privoxy.config.example; sourceTree = "<group>"; };
		C8E42A6A1D4F270A0074C7EA /* UserRulesController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserRulesController.swift; sourceTree = "<group>"; };
		C8E42A6F1D4F2CAF0074C7EA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UserRulesController.xib; sourceTree = "<group>"; };
		C8E42A721D4F2CB10074C7EA /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/UserRulesController.strings"; sourceTree = "<group>"; };
		D8E3630A1E2072980027449B /* ServerProfileTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerProfileTests.swift; sourceTree = "<group>"; };
		E9E9FB3855DA55D0710EE7BD /* Pods-ShadowsocksX-NG.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShadowsocksX-NG.release.xcconfig"; path = "Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.release.xcconfig"; sourceTree = "<group>"; };
		FE3237E9FB24D9B924A0E630 /* Pods-ShadowsocksX-NG.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShadowsocksX-NG.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		9B0BFFE21D0460A70040E62B /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9B6BF9541E27B2570061B9A7 /* ServiceManagement.framework in Frameworks */,
				9B3FFF3E1D08D9910019A709 /* SystemConfiguration.framework in Frameworks */,
				258E511BA910B0521B24DAB8 /* Pods_ShadowsocksX_NG.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9B0BFFF11D0460A70040E62B /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				E0E57CCA7EB34B90F9D340F2 /* Pods_ShadowsocksX_NGTests.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9B3FFF411D09CD3B0019A709 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				F0809FF1595BE2966343D3C7 /* libPods-proxy_conf_helper.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		33F4F299F89330966F4526E4 /* Pods */ = {
			isa = PBXGroup;
			children = (
				FE3237E9FB24D9B924A0E630 /* Pods-ShadowsocksX-NG.debug.xcconfig */,
				E9E9FB3855DA55D0710EE7BD /* Pods-ShadowsocksX-NG.release.xcconfig */,
				5B6203C1228FCD3D365814AC /* Pods-ShadowsocksX-NGTests.debug.xcconfig */,
				3AC7CD9886196A997D6FC78D /* Pods-ShadowsocksX-NGTests.release.xcconfig */,
				58907E7F50405104B42CB189 /* Pods-ShadowsocksX-NGUITests.debug.xcconfig */,
				50D54926AA21B0D4D8DD9C4F /* Pods-ShadowsocksX-NGUITests.release.xcconfig */,
				B4E6A97CA843F3943524B686 /* Pods-proxy_conf_helper.debug.xcconfig */,
				297AF069022A197FD8E9D226 /* Pods-proxy_conf_helper.release.xcconfig */,
			);
			name = Pods;
			sourceTree = "<group>";
		};
		9B07EFB01D048E900052D9DF /* Support Files */ = {
			isa = PBXGroup;
			children = (
				9B938D931E864B38005F5636 /* menu_g_icon.png */,
				9B938D941E864B38005F5636 /* menu_g_icon@2x.png */,
				9B938D951E864B38005F5636 /* menu_m_icon.png */,
				9B938D961E864B38005F5636 /* menu_m_icon@2x.png */,
				9B938D971E864B38005F5636 /* menu_p_icon.png */,
				9B938D981E864B38005F5636 /* menu_p_icon@2x.png */,
				9B3F7BF71E82BF2D00C68B75 /* libev.4.dylib */,
				9B3F7BF81E82BF2D00C68B75 /* libmbedcrypto.2.4.2.dylib */,
				9B3F7BF91E82BF2E00C68B75 /* libsodium.18.dylib */,
				9B3F7BFA1E82BF2E00C68B75 /* libudns.0.dylib */,
				9B5832101E742632009D5B7D /* kcptun_1.png */,
				9B58320A1E7422DB009D5B7D /* http.png */,
				9B5832061E7421B2009D5B7D /* virtual-server-icon-3.png */,
				9B5832021E741F8D009D5B7D /* command-512.png */,
				9B9CBCAD1E263A6600FC61AA /* libpcre.1.dylib */,
				9B9CBCA91E2633CB00FC61AA /* kcptun_client */,
				08FCA0FE1E24BE1A0070984F /* example-gui-config.json */,
				C6D4298E1DA75988002A5711 /* install_privoxy.sh */,
				C6D4298F1DA75988002A5711 /* privoxy */,
				C6D429911DA75988002A5711 /* start_privoxy.sh */,
				C6D429921DA75988002A5711 /* stop_privoxy.sh */,
				9B172A6C1D0ADDDD00B87B9A /* Localizable.strings */,
				9B3FFF4B1D09D8F70019A709 /* install_helper.sh */,
				9B3FFF281D08A1DF0019A709 /* user-rule.txt */,
				9B3FFF261D0898EB0019A709 /* gfwlist.txt */,
				9B3FFF221D088E8D0019A709 /* abp.js */,
				9B07EFA61D048BBB0052D9DF /* ss-local */,
				9B07EFA81D048E880052D9DF /* menu_icon@2x.png */,
				9B07EFA91D048E880052D9DF /* menu_icon.png */,
				9B07EFAA1D048E880052D9DF /* menu_icon_disabled.png */,
				9B07EFAB1D048E880052D9DF /* menu_icon_disabled@2x.png */,
				9BEEF0651D04CB8500FC52B3 /* install_ss_local.sh */,
				9B9CBCA71E26310E00FC61AA /* install_kcptun.sh */,
				9BEEF0661D04CE8D00FC52B3 /* start_ss_local.sh */,
				9BEEF0671D04CE9A00FC52B3 /* stop_ss_local.sh */,
				C6D429981DA76FBC002A5711 /* privoxy.config.example */,
				9B9CBCB01E2644DC00FC61AA /* start_kcptun.sh */,
				9B9CBCB11E26450D00FC61AA /* stop_kcptun.sh */,
			);
			name = "Support Files";
			sourceTree = "<group>";
		};
		9B0BFFDC1D0460A70040E62B = {
			isa = PBXGroup;
			children = (
				9B5831FA1E73098F009D5B7D /* README.md */,
				9B172A601D0ADA5B00B87B9A /* genstrings.py */,
				9B9F13A11E8A282C00DE4794 /* LaunchHelper.xcodeproj */,
				9B0BFFE71D0460A70040E62B /* ShadowsocksX-NG */,
				9B0BFFF71D0460A70040E62B /* ShadowsocksX-NGTests */,
				9B3FFF451D09CD3B0019A709 /* proxy_conf_helper */,
				9B0BFFE61D0460A70040E62B /* Products */,
				33F4F299F89330966F4526E4 /* Pods */,
				D3CE66CC039F651F28057DDB /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		9B0BFFE61D0460A70040E62B /* Products */ = {
			isa = PBXGroup;
			children = (
				9B0BFFE51D0460A70040E62B /* ShadowsocksX-NG.app */,
				9B0BFFF41D0460A70040E62B /* ShadowsocksX-NGTests.xctest */,
				9B3FFF441D09CD3B0019A709 /* proxy_conf_helper */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		9B0BFFE71D0460A70040E62B /* ShadowsocksX-NG */ = {
			isa = PBXGroup;
			children = (
				9BB706A51D1B982300551F0E /* SWBApplication.m */,
				9BB706A61D1B982300551F0E /* SWBApplication.h */,
				9B3FFF511D09DBA20019A709 /* ShadowsocksX-NG-Bridging-Header.h */,
				9B3FFF151D072FDE0019A709 /* LaunchAtLoginController.h */,
				9B3FFF161D072FDE0019A709 /* LaunchAtLoginController.m */,
				9B3FFF0B1D05D8B80019A709 /* UI */,
				9B07EFB01D048E900052D9DF /* Support Files */,
				9B0BFFE81D0460A70040E62B /* AppDelegate.swift */,
				9B0BFFEA1D0460A70040E62B /* Assets.xcassets */,
				9B0BFFEC1D0460A70040E62B /* MainMenu.xib */,
				9B0BFFEF1D0460A70040E62B /* Info.plist */,
				9BEEF06D1D04DCE400FC52B3 /* ServerProfile.swift */,
				9B9CBCA51E25E1DB00FC61AA /* KcptunProfile.swift */,
				9BEEF06F1D04DDB100FC52B3 /* ServerProfileManager.swift */,
				9BEEF0771D04FE8A00FC52B3 /* LaunchAgentUtils.swift */,
				9B3FFF0C1D05FEB30019A709 /* Utils.swift */,
				9B3FFF201D08826E0019A709 /* PACUtils.swift */,
				9B3FFF131D0705810019A709 /* Notifications.swift */,
				9B3FFF1D1D0732660019A709 /* Utils.m */,
				9B3FFF1F1D0734060019A709 /* Utils.h */,
				9B3FFF4D1D09D9D50019A709 /* ProxyConfHelper.h */,
				9B3FFF4E1D09D9D50019A709 /* ProxyConfHelper.m */,
				9B3FFF501D09DAEA0019A709 /* proxy_conf_helper_version.h */,
				9BA04B211D23D5A5005AAD7F /* ProxyConfTool.h */,
				9BA04B221D23D5A5005AAD7F /* ProxyConfTool.m */,
				9B5831F41E7302F8009D5B7D /* ShortcutsController.h */,
				9B5831F51E7302F8009D5B7D /* ShortcutsController.m */,
			);
			path = "ShadowsocksX-NG";
			sourceTree = "<group>";
		};
		9B0BFFF71D0460A70040E62B /* ShadowsocksX-NGTests */ = {
			isa = PBXGroup;
			children = (
				D8E3630A1E2072980027449B /* ServerProfileTests.swift */,
				9B0BFFF81D0460A70040E62B /* ShadowsocksX_NGTests.swift */,
				9B0BFFFA1D0460A70040E62B /* Info.plist */,
			);
			path = "ShadowsocksX-NGTests";
			sourceTree = "<group>";
		};
		9B3FFF0B1D05D8B80019A709 /* UI */ = {
			isa = PBXGroup;
			children = (
				9B3FFF331D08CEF70019A709 /* SWBQRCodeWindowController.xib */,
				9B3FFF301D08CEE40019A709 /* SWBQRCodeWindowController.h */,
				9B3FFF311D08CEE40019A709 /* SWBQRCodeWindowController.m */,
				9BEEF0731D04EF3E00FC52B3 /* PreferencesWindowController.swift */,
				9B2491B61D0ACC3A003BBECC /* PreferencesWindowController.xib */,
				C8E42A6A1D4F270A0074C7EA /* UserRulesController.swift */,
				C8E42A701D4F2CAF0074C7EA /* UserRulesController.xib */,
				9B5831FD1E741969009D5B7D /* PreferencesWinController.swift */,
				9BAFE2E41E83ED7F00F71CCE /* PreferencesWinController.xib */,
				9B86459C1E7C2CAD00A84029 /* ProxyInterfacesViewCtrl.swift */,
				9B3546701E802B1200B510B4 /* ToastWindowController.swift */,
				9B3546711E802B1200B510B4 /* ToastWindowController.xib */,
			);
			name = UI;
			sourceTree = "<group>";
		};
		9B3FFF451D09CD3B0019A709 /* proxy_conf_helper */ = {
			isa = PBXGroup;
			children = (
				9B3FFF461D09CD3B0019A709 /* main.m */,
			);
			path = proxy_conf_helper;
			sourceTree = "<group>";
		};
		9B9F13A21E8A282C00DE4794 /* Products */ = {
			isa = PBXGroup;
			children = (
				9B9F13A61E8A282D00DE4794 /* LaunchHelper.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		D3CE66CC039F651F28057DDB /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				9B6BF9531E27B2570061B9A7 /* ServiceManagement.framework */,
				9B3FFF3D1D08D9910019A709 /* SystemConfiguration.framework */,
				9B3FFF3B1D08D93B0019A709 /* WebKit.framework */,
				283ED1A8E9B711AC65670031 /* Pods_ShadowsocksX_NG.framework */,
				388120F062D7EB7DD0D8DDCA /* Pods_ShadowsocksX_NGTests.framework */,
				19083CFCED87354F006967FF /* Pods_ShadowsocksX_NGUITests.framework */,
				1E7783AEDB4A3BDDC9FF16AC /* libPods-proxy_conf_helper.a */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		9B0BFFE41D0460A70040E62B /* ShadowsocksX-NG */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9B0B00081D0460A70040E62B /* Build configuration list for PBXNativeTarget "ShadowsocksX-NG" */;
			buildPhases = (
				A3C8167BB5EB01FBDE2A08BC /* [CP] Check Pods Manifest.lock */,
				9B0BFFE11D0460A70040E62B /* Sources */,
				9B0BFFE21D0460A70040E62B /* Frameworks */,
				9B0BFFE31D0460A70040E62B /* Resources */,
				5E160625E3EC80E27DA7EF05 /* [CP] Embed Pods Frameworks */,
				3E819BD46B855EDB116A3C70 /* [CP] Copy Pods Resources */,
				9B6BF9511E27B2250061B9A7 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
				9B3FFF531D09E2B30019A709 /* PBXTargetDependency */,
			);
			name = "ShadowsocksX-NG";
			productName = "ShadowsocksX-NG";
			productReference = 9B0BFFE51D0460A70040E62B /* ShadowsocksX-NG.app */;
			productType = "com.apple.product-type.application";
		};
		9B0BFFF31D0460A70040E62B /* ShadowsocksX-NGTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9B0B000B1D0460A70040E62B /* Build configuration list for PBXNativeTarget "ShadowsocksX-NGTests" */;
			buildPhases = (
				22E2FC257F00091B923B1A15 /* [CP] Check Pods Manifest.lock */,
				9B0BFFF01D0460A70040E62B /* Sources */,
				9B0BFFF11D0460A70040E62B /* Frameworks */,
				9B0BFFF21D0460A70040E62B /* Resources */,
				8A094D4241AB0C72A177FDC3 /* [CP] Embed Pods Frameworks */,
				D8C2D6AF002916F4095E15E3 /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				9B0BFFF61D0460A70040E62B /* PBXTargetDependency */,
			);
			name = "ShadowsocksX-NGTests";
			productName = "ShadowsocksX-NGTests";
			productReference = 9B0BFFF41D0460A70040E62B /* ShadowsocksX-NGTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		9B3FFF431D09CD3B0019A709 /* proxy_conf_helper */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9B3FFF481D09CD3B0019A709 /* Build configuration list for PBXNativeTarget "proxy_conf_helper" */;
			buildPhases = (
				3545247EFCD033C3FA63EA6C /* [CP] Check Pods Manifest.lock */,
				9B3FFF401D09CD3B0019A709 /* Sources */,
				9B3FFF411D09CD3B0019A709 /* Frameworks */,
				9B3FFF421D09CD3B0019A709 /* CopyFiles */,
				0BD38C8FA95AA74C8D7003EC /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = proxy_conf_helper;
			productName = proxy_conf_helper;
			productReference = 9B3FFF441D09CD3B0019A709 /* proxy_conf_helper */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		9B0BFFDD1D0460A70040E62B /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0810;
				ORGANIZATIONNAME = qiuyuzhou;
				TargetAttributes = {
					9B0BFFE41D0460A70040E62B = {
						CreatedOnToolsVersion = 7.3.1;
						LastSwiftMigration = 0800;
					};
					9B0BFFF31D0460A70040E62B = {
						CreatedOnToolsVersion = 7.3.1;
						LastSwiftMigration = 0800;
						TestTargetID = 9B0BFFE41D0460A70040E62B;
					};
					9B3FFF431D09CD3B0019A709 = {
						CreatedOnToolsVersion = 7.3.1;
					};
				};
			};
			buildConfigurationList = 9B0BFFE01D0460A70040E62B /* Build configuration list for PBXProject "ShadowsocksX-NG" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
				"zh-Hans",
			);
			mainGroup = 9B0BFFDC1D0460A70040E62B;
			productRefGroup = 9B0BFFE61D0460A70040E62B /* Products */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = 9B9F13A21E8A282C00DE4794 /* Products */;
					ProjectRef = 9B9F13A11E8A282C00DE4794 /* LaunchHelper.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				9B0BFFE41D0460A70040E62B /* ShadowsocksX-NG */,
				9B0BFFF31D0460A70040E62B /* ShadowsocksX-NGTests */,
				9B3FFF431D09CD3B0019A709 /* proxy_conf_helper */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		9B9F13A61E8A282D00DE4794 /* LaunchHelper.app */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.application;
			path = LaunchHelper.app;
			remoteRef = 9B9F13A51E8A282D00DE4794 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		9B0BFFE31D0460A70040E62B /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9B3F7BFF1E82BF5B00C68B75 /* libev.4.dylib in Resources */,
				9B3F7C001E82BF5B00C68B75 /* libmbedcrypto.2.4.2.dylib in Resources */,
				9B3F7C011E82BF5B00C68B75 /* libsodium.18.dylib in Resources */,
				9B3F7C021E82BF5B00C68B75 /* libudns.0.dylib in Resources */,
				9B9CBCB41E26453C00FC61AA /* start_kcptun.sh in Resources */,
				9B9CBCB51E26453C00FC61AA /* stop_kcptun.sh in Resources */,
				9B938D9A1E864B38005F5636 /* menu_g_icon@2x.png in Resources */,
				9B938D9E1E864B38005F5636 /* menu_p_icon@2x.png in Resources */,
				9B9CBCAF1E263B1600FC61AA /* libpcre.1.dylib in Resources */,
				9B9CBCA81E26312E00FC61AA /* install_kcptun.sh in Resources */,
				9B5832031E741F8D009D5B7D /* command-512.png in Resources */,
				9B9CBCAA1E2633CB00FC61AA /* kcptun_client in Resources */,
				9B3FFF541D09E2D10019A709 /* proxy_conf_helper in Resources */,
				9B5832071E7421B2009D5B7D /* virtual-server-icon-3.png in Resources */,
				9BEEF0691D04D4D500FC52B3 /* install_ss_local.sh in Resources */,
				9B2491B41D0ACC3A003BBECC /* PreferencesWindowController.xib in Resources */,
				9B3FFF291D08A1DF0019A709 /* user-rule.txt in Resources */,
				C6D429971DA75988002A5711 /* stop_privoxy.sh in Resources */,
				C8E42A6E1D4F2CAF0074C7EA /* UserRulesController.xib in Resources */,
				9BEEF06A1D04D4D500FC52B3 /* start_ss_local.sh in Resources */,
				9B5832111E742632009D5B7D /* kcptun_1.png in Resources */,
				9B938D9C1E864B38005F5636 /* menu_m_icon@2x.png in Resources */,
				9B3546731E802B1200B510B4 /* ToastWindowController.xib in Resources */,
				C6D429941DA75988002A5711 /* privoxy in Resources */,
				C6D429991DA76FBC002A5711 /* privoxy.config.example in Resources */,
				9BEEF06B1D04D4D500FC52B3 /* stop_ss_local.sh in Resources */,
				9B3FFF341D08CEF70019A709 /* SWBQRCodeWindowController.xib in Resources */,
				9B3FFF231D088E8D0019A709 /* abp.js in Resources */,
				9B07EFAD1D048E880052D9DF /* menu_icon.png in Resources */,
				9BAFE2E21E83ED7F00F71CCE /* PreferencesWinController.xib in Resources */,
				9B0BFFEB1D0460A70040E62B /* Assets.xcassets in Resources */,
				08FCA0FF1E24BE1A0070984F /* example-gui-config.json in Resources */,
				9B938D9D1E864B38005F5636 /* menu_p_icon.png in Resources */,
				9B938D9B1E864B38005F5636 /* menu_m_icon.png in Resources */,
				9B3FFF271D0898EB0019A709 /* gfwlist.txt in Resources */,
				C6D429931DA75988002A5711 /* install_privoxy.sh in Resources */,
				9B58320B1E7422DB009D5B7D /* http.png in Resources */,
				9BC70EDC1D2E3E3100EDA4CA /* Localizable.strings in Resources */,
				9B0BFFEE1D0460A70040E62B /* MainMenu.xib in Resources */,
				9B3FFF4C1D09D8F70019A709 /* install_helper.sh in Resources */,
				C6D429961DA75988002A5711 /* start_privoxy.sh in Resources */,
				9B07EFAC1D048E880052D9DF /* menu_icon@2x.png in Resources */,
				9B07EFA71D048BBB0052D9DF /* ss-local in Resources */,
				9B07EFAF1D048E880052D9DF /* menu_icon_disabled@2x.png in Resources */,
				9B07EFAE1D048E880052D9DF /* menu_icon_disabled.png in Resources */,
				9B938D991E864B38005F5636 /* menu_g_icon.png in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9B0BFFF21D0460A70040E62B /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		0BD38C8FA95AA74C8D7003EC /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		22E2FC257F00091B923B1A15 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Check Pods Manifest.lock";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n";
			showEnvVarsInLog = 0;
		};
		3545247EFCD033C3FA63EA6C /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Check Pods Manifest.lock";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n";
			showEnvVarsInLog = 0;
		};
		3E819BD46B855EDB116A3C70 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		5E160625E3EC80E27DA7EF05 /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		8A094D4241AB0C72A177FDC3 /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		A3C8167BB5EB01FBDE2A08BC /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Check Pods Manifest.lock";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n";
			showEnvVarsInLog = 0;
		};
		D8C2D6AF002916F4095E15E3 /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		9B0BFFE11D0460A70040E62B /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9B3FFF171D072FDE0019A709 /* LaunchAtLoginController.m in Sources */,
				9B86459D1E7C2CAD00A84029 /* ProxyInterfacesViewCtrl.swift in Sources */,
				9B3FFF4F1D09D9D50019A709 /* ProxyConfHelper.m in Sources */,
				9B5831F61E7302F8009D5B7D /* ShortcutsController.m in Sources */,
				9BB706A71D1B982300551F0E /* SWBApplication.m in Sources */,
				9B3FFF1E1D0732660019A709 /* Utils.m in Sources */,
				9B3FFF321D08CEE40019A709 /* SWBQRCodeWindowController.m in Sources */,
				9B3FFF211D08826E0019A709 /* PACUtils.swift in Sources */,
				9B3FFF141D0705810019A709 /* Notifications.swift in Sources */,
				9BEEF0701D04DDB100FC52B3 /* ServerProfileManager.swift in Sources */,
				9BEEF06E1D04DCE400FC52B3 /* ServerProfile.swift in Sources */,
				9B3FFF0D1D05FEB30019A709 /* Utils.swift in Sources */,
				9BEEF0751D04EF3E00FC52B3 /* PreferencesWindowController.swift in Sources */,
				9B0BFFE91D0460A70040E62B /* AppDelegate.swift in Sources */,
				9BA04B231D23D5A5005AAD7F /* ProxyConfTool.m in Sources */,
				9B5831FF1E741969009D5B7D /* PreferencesWinController.swift in Sources */,
				9BEEF0781D04FE8A00FC52B3 /* LaunchAgentUtils.swift in Sources */,
				9B3546721E802B1200B510B4 /* ToastWindowController.swift in Sources */,
				9B9CBCA61E25E1DB00FC61AA /* KcptunProfile.swift in Sources */,
				C8E42A6C1D4F270A0074C7EA /* UserRulesController.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9B0BFFF01D0460A70040E62B /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9B0BFFF91D0460A70040E62B /* ShadowsocksX_NGTests.swift in Sources */,
				D8E3630B1E2072980027449B /* ServerProfileTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9B3FFF401D09CD3B0019A709 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9B3FFF471D09CD3B0019A709 /* main.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		9B0BFFF61D0460A70040E62B /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 9B0BFFE41D0460A70040E62B /* ShadowsocksX-NG */;
			targetProxy = 9B0BFFF51D0460A70040E62B /* PBXContainerItemProxy */;
		};
		9B3FFF531D09E2B30019A709 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 9B3FFF431D09CD3B0019A709 /* proxy_conf_helper */;
			targetProxy = 9B3FFF521D09E2B30019A709 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		9B0BFFEC1D0460A70040E62B /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				9B0BFFED1D0460A70040E62B /* Base */,
				9BAFE2EB1E83F91D00F71CCE /* zh-Hans */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
		9B172A6C1D0ADDDD00B87B9A /* Localizable.strings */ = {
			isa = PBXVariantGroup;
			children = (
				9B172A6B1D0ADDDD00B87B9A /* Base */,
				9B172A6D1D0ADDE800B87B9A /* zh-Hans */,
			);
			name = Localizable.strings;
			sourceTree = "<group>";
		};
		9B2491B61D0ACC3A003BBECC /* PreferencesWindowController.xib */ = {
			isa = PBXVariantGroup;
			children = (
				9B2491B51D0ACC3A003BBECC /* Base */,
				9BE8FBC11D0B71CF00CAFD01 /* zh-Hans */,
			);
			name = PreferencesWindowController.xib;
			sourceTree = "<group>";
		};
		9BAFE2E41E83ED7F00F71CCE /* PreferencesWinController.xib */ = {
			isa = PBXVariantGroup;
			children = (
				9BAFE2E31E83ED7F00F71CCE /* Base */,
				9BAFE2E91E83EDDF00F71CCE /* zh-Hans */,
			);
			name = PreferencesWinController.xib;
			sourceTree = "<group>";
		};
		C8E42A701D4F2CAF0074C7EA /* UserRulesController.xib */ = {
			isa = PBXVariantGroup;
			children = (
				C8E42A6F1D4F2CAF0074C7EA /* Base */,
				C8E42A721D4F2CB10074C7EA /* zh-Hans */,
			);
			name = UserRulesController.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		9B0B00061D0460A70040E62B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "Mac Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		9B0B00071D0460A70040E62B /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "Mac Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
			};
			name = Release;
		};
		9B0B00091D0460A70040E62B /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = FE3237E9FB24D9B924A0E630 /* Pods-ShadowsocksX-NG.debug.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				COMBINE_HIDPI_IMAGES = YES;
				HEADER_SEARCH_PATHS = (
					"$(SRCROOT)/libcork/include/",
					"$(SRCROOT)/libipset/include/",
				);
				INFOPLIST_FILE = "ShadowsocksX-NG/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(SDKROOT)/usr/lib/system",
					"$(PROJECT_DIR)/ShadowsocksX-NG",
				);
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NG";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "ShadowsocksX-NG/ShadowsocksX-NG-Bridging-Header.h";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 3.0;
			};
			name = Debug;
		};
		9B0B000A1D0460A70040E62B /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = E9E9FB3855DA55D0710EE7BD /* Pods-ShadowsocksX-NG.release.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				COMBINE_HIDPI_IMAGES = YES;
				HEADER_SEARCH_PATHS = (
					"$(SRCROOT)/libcork/include/",
					"$(SRCROOT)/libipset/include/",
				);
				INFOPLIST_FILE = "ShadowsocksX-NG/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(SDKROOT)/usr/lib/system",
					"$(PROJECT_DIR)/ShadowsocksX-NG",
				);
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NG";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "ShadowsocksX-NG/ShadowsocksX-NG-Bridging-Header.h";
				SWIFT_VERSION = 3.0;
			};
			name = Release;
		};
		9B0B000C1D0460A70040E62B /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 5B6203C1228FCD3D365814AC /* Pods-ShadowsocksX-NGTests.debug.xcconfig */;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = "ShadowsocksX-NGTests/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NGTests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "ShadowsocksX-NG/ShadowsocksX-NG-Bridging-Header.h";
				SWIFT_VERSION = 3.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ShadowsocksX-NG.app/Contents/MacOS/ShadowsocksX-NG";
			};
			name = Debug;
		};
		9B0B000D1D0460A70040E62B /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 3AC7CD9886196A997D6FC78D /* Pods-ShadowsocksX-NGTests.release.xcconfig */;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = "ShadowsocksX-NGTests/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NGTests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OBJC_BRIDGING_HEADER = "ShadowsocksX-NG/ShadowsocksX-NG-Bridging-Header.h";
				SWIFT_VERSION = 3.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ShadowsocksX-NG.app/Contents/MacOS/ShadowsocksX-NG";
			};
			name = Release;
		};
		9B3FFF491D09CD3B0019A709 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = B4E6A97CA843F3943524B686 /* Pods-proxy_conf_helper.debug.xcconfig */;
			buildSettings = {
				CODE_SIGN_IDENTITY = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Debug;
		};
		9B3FFF4A1D09CD3B0019A709 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 297AF069022A197FD8E9D226 /* Pods-proxy_conf_helper.release.xcconfig */;
			buildSettings = {
				CODE_SIGN_IDENTITY = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		9B0B00081D0460A70040E62B /* Build configuration list for PBXNativeTarget "ShadowsocksX-NG" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9B0B00091D0460A70040E62B /* Debug */,
				9B0B000A1D0460A70040E62B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9B0B000B1D0460A70040E62B /* Build configuration list for PBXNativeTarget "ShadowsocksX-NGTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9B0B000C1D0460A70040E62B /* Debug */,
				9B0B000D1D0460A70040E62B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9B0BFFE01D0460A70040E62B /* Build configuration list for PBXProject "ShadowsocksX-NG" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9B0B00061D0460A70040E62B /* Debug */,
				9B0B00071D0460A70040E62B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9B3FFF481D09CD3B0019A709 /* Build configuration list for PBXNativeTarget "proxy_conf_helper" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9B3FFF491D09CD3B0019A709 /* Debug */,
				9B3FFF4A1D09CD3B0019A709 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 9B0BFFDD1D0460A70040E62B /* Project object */;
}
