├── .gitattributes ├── .gitignore ├── .gitmodules ├── Cartfile ├── Cartfile.resolved ├── Carthage └── Checkouts │ └── YAML.framework │ ├── .gitignore │ ├── English.lproj │ └── InfoPlist.strings │ ├── Info.plist │ ├── Readme.md │ ├── YAML iOS-Info.plist │ ├── YAML.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── YAML iOS.xcscheme │ │ └── YAML.xcscheme │ ├── YAMLSerialization.h │ ├── YAMLSerialization.m │ ├── YAMLUnitTests │ ├── YAMLUnitTests-Info.plist │ ├── YAMLUnitTests-Prefix.pch │ ├── YAMLUnitTests.h │ ├── YAMLUnitTests.m │ └── en.lproj │ │ └── InfoPlist.strings │ ├── YAML_Prefix.pch │ ├── module.modulemap │ ├── test │ ├── bigboy.rb │ ├── events.c │ ├── fetch.rb │ ├── spec12examples.m │ ├── test.m │ └── yaml │ │ ├── basic.yaml │ │ ├── items.yaml │ │ ├── map-in-seq.yaml │ │ ├── map.yaml │ │ ├── mapping.yaml │ │ ├── simple.yaml │ │ ├── spec12-example-10-1-map-examples.yaml │ │ ├── spec12-example-10-2-seq-examples.yaml │ │ ├── spec12-example-10-3-str-examples.yaml │ │ ├── spec12-example-10-4-null-examples.yaml │ │ ├── spec12-example-10-5-bool-examples.yaml │ │ ├── spec12-example-10-6-int-examples.yaml │ │ ├── spec12-example-10-7-float-examples.yaml │ │ ├── spec12-example-10-8-json-tag-resolution.yaml │ │ ├── spec12-example-10-9-core-tag-resolution.yaml │ │ ├── spec12-example-2-1-sequence-of-scalars-ball-players.yaml │ │ ├── spec12-example-2-10-node-for-sammy-sosa-appears-twice-in-this-document.yaml │ │ ├── spec12-example-2-11-mapping-between-sequences.yaml │ │ ├── spec12-example-2-12-compact-nested-mapping.yaml │ │ ├── spec12-example-2-13-in-literals-newlines-are-preserved.yaml │ │ ├── spec12-example-2-14-in-the-folded-scalars-newlines-become-spaces.yaml │ │ ├── spec12-example-2-15-folded-newlines-are-preserved-for-more-indented-and-blank-lines.yaml │ │ ├── spec12-example-2-16-indentation-determines-scope.yaml │ │ ├── spec12-example-2-17-quoted-scalars.yaml │ │ ├── spec12-example-2-18-multi-line-flow-scalars.yaml │ │ ├── spec12-example-2-19-integers.yaml │ │ ├── spec12-example-2-2-mapping-scalars-to-scalars-player-statistics.yaml │ │ ├── spec12-example-2-20-floating-point.yaml │ │ ├── spec12-example-2-21-miscellaneous.yaml │ │ ├── spec12-example-2-22-timestamps.yaml │ │ ├── spec12-example-2-23-various-explicit-tags.yaml │ │ ├── spec12-example-2-24-global-tags.yaml │ │ ├── spec12-example-2-25-unordered-sets.yaml │ │ ├── spec12-example-2-26-ordered-mappings.yaml │ │ ├── spec12-example-2-27-invoice.yaml │ │ ├── spec12-example-2-28-log-file.yaml │ │ ├── spec12-example-2-3-mapping-scalars-to-sequences-ball-clubs-in-each-league.yaml │ │ ├── spec12-example-2-4-sequence-of-mappings-players-statistics.yaml │ │ ├── spec12-example-2-5-sequence-of-sequences.yaml │ │ ├── spec12-example-2-6-mapping-of-mappings.yaml │ │ ├── spec12-example-2-7-two-documents-in-a-stream-each-with-a-leading-comment.yaml │ │ ├── spec12-example-2-8-play-by-play-feed-from-a-game.yaml │ │ ├── spec12-example-2-9-single-document-with-two-comments.yaml │ │ ├── spec12-example-5-1-byte-order-mark.yaml │ │ ├── spec12-example-5-10-invalid-use-of-reserved-indicators.yaml │ │ ├── spec12-example-5-11-line-break-characters.yaml │ │ ├── spec12-example-5-12-tabs-and-spaces.yaml │ │ ├── spec12-example-5-13-escaped-characters.yaml │ │ ├── spec12-example-5-14-invalid-escaped-characters.yaml │ │ ├── spec12-example-5-2-invalid-byte-order-mark.yaml │ │ ├── spec12-example-5-3-block-structure-indicators.yaml │ │ ├── spec12-example-5-4-flow-collection-indicators.yaml │ │ ├── spec12-example-5-5-comment-indicator.yaml │ │ ├── spec12-example-5-6-node-property-indicators.yaml │ │ ├── spec12-example-5-7-block-scalar-indicators.yaml │ │ ├── spec12-example-5-8-quoted-scalar-indicators.yaml │ │ ├── spec12-example-5-9-directive-indicator.yaml │ │ ├── spec12-example-6-1-indentation-spaces.yaml │ │ ├── spec12-example-6-10-comment-lines.yaml │ │ ├── spec12-example-6-11-multi-line-comments.yaml │ │ ├── spec12-example-6-12-separation-spaces.yaml │ │ ├── spec12-example-6-13-reserved-directives.yaml │ │ ├── spec12-example-6-14-yaml-directive.yaml │ │ ├── spec12-example-6-15-invalid-repeated-yaml-directive.yaml │ │ ├── spec12-example-6-16-tag-directive.yaml │ │ ├── spec12-example-6-17-invalid-repeated-tag-directive.yaml │ │ ├── spec12-example-6-18-primary-tag-handle.yaml │ │ ├── spec12-example-6-19-secondary-tag-handle.yaml │ │ ├── spec12-example-6-2-indentation-indicators.yaml │ │ ├── spec12-example-6-20-tag-handles.yaml │ │ ├── spec12-example-6-21-local-tag-prefix.yaml │ │ ├── spec12-example-6-22-global-tag-prefix.yaml │ │ ├── spec12-example-6-23-node-properties.yaml │ │ ├── spec12-example-6-24-verbatim-tags.yaml │ │ ├── spec12-example-6-25-invalid-verbatim-tags.yaml │ │ ├── spec12-example-6-26-tag-shorthands.yaml │ │ ├── spec12-example-6-27-invalid-tag-shorthands.yaml │ │ ├── spec12-example-6-28-non-specific-tags.yaml │ │ ├── spec12-example-6-29-node-anchors.yaml │ │ ├── spec12-example-6-3-separation-spaces.yaml │ │ ├── spec12-example-6-4-line-prefixes.yaml │ │ ├── spec12-example-6-5-empty-lines.yaml │ │ ├── spec12-example-6-6-line-folding.yaml │ │ ├── spec12-example-6-7-block-folding.yaml │ │ ├── spec12-example-6-8-flow-folding.yaml │ │ ├── spec12-example-6-9-separated-comment.yaml │ │ ├── spec12-example-7-1-alias-nodes.yaml │ │ ├── spec12-example-7-10-plain-characters.yaml │ │ ├── spec12-example-7-11-plain-implicit-keys.yaml │ │ ├── spec12-example-7-12-plain-lines.yaml │ │ ├── spec12-example-7-13-flow-sequence.yaml │ │ ├── spec12-example-7-14-flow-sequence-entries.yaml │ │ ├── spec12-example-7-15-flow-mappings.yaml │ │ ├── spec12-example-7-16-flow-mapping-entries.yaml │ │ ├── spec12-example-7-17-flow-mapping-separate-values.yaml │ │ ├── spec12-example-7-18-flow-mapping-adjacent-values.yaml │ │ ├── spec12-example-7-19-single-pair-flow-mappings.yaml │ │ ├── spec12-example-7-2-empty-content.yaml │ │ ├── spec12-example-7-20-single-pair-explicit-entry.yaml │ │ ├── spec12-example-7-21-single-pair-implicit-entries.yaml │ │ ├── spec12-example-7-22-invalid-implicit-keys.yaml │ │ ├── spec12-example-7-23-flow-content.yaml │ │ ├── spec12-example-7-24-flow-nodes.yaml │ │ ├── spec12-example-7-3-completely-empty-flow-nodes.yaml │ │ ├── spec12-example-7-4-double-quoted-implicit-keys.yaml │ │ ├── spec12-example-7-5-double-quoted-line-breaks.yaml │ │ ├── spec12-example-7-6-double-quoted-lines.yaml │ │ ├── spec12-example-7-7-single-quoted-characters.yaml │ │ ├── spec12-example-7-8-single-quoted-implicit-keys.yaml │ │ ├── spec12-example-7-9-single-quoted-lines.yaml │ │ ├── spec12-example-8-1-block-scalar-header.yaml │ │ ├── spec12-example-8-10-folded-lines.yaml │ │ ├── spec12-example-8-11-more-indented-lines.yaml │ │ ├── spec12-example-8-12-empty-separation-lines.yaml │ │ ├── spec12-example-8-13-final-empty-lines.yaml │ │ ├── spec12-example-8-14-block-sequence.yaml │ │ ├── spec12-example-8-15-block-sequence-entry-types.yaml │ │ ├── spec12-example-8-16-block-mappings.yaml │ │ ├── spec12-example-8-17-explicit-block-mapping-entries.yaml │ │ ├── spec12-example-8-18-implicit-block-mapping-entries.yaml │ │ ├── spec12-example-8-19-compact-block-mappings.yaml │ │ ├── spec12-example-8-2-block-indentation-indicator.yaml │ │ ├── spec12-example-8-20-block-node-types.yaml │ │ ├── spec12-example-8-21-block-scalar-nodes.yaml │ │ ├── spec12-example-8-22-block-collection-nodes.yaml │ │ ├── spec12-example-8-3-invalid-block-scalar-indentation-indicators.yaml │ │ ├── spec12-example-8-4-chomping-final-line-break.yaml │ │ ├── spec12-example-8-5-chomping-trailing-lines.yaml │ │ ├── spec12-example-8-6-empty-scalar-chomping.yaml │ │ ├── spec12-example-8-7-literal-scalar.yaml │ │ ├── spec12-example-8-8-literal-content.yaml │ │ ├── spec12-example-8-9-folded-scalar.yaml │ │ ├── spec12-example-9-1-document-prefix.yaml │ │ ├── spec12-example-9-2-document-markers.yaml │ │ ├── spec12-example-9-3-bare-documents.yaml │ │ ├── spec12-example-9-4-explicit-documents.yaml │ │ ├── spec12-example-9-5-directives-documents.yaml │ │ ├── spec12-example-9-6-stream.yaml │ │ └── strange-keys.yaml │ └── yaml-0.1.4 │ ├── LICENSE │ ├── Makefile.am │ ├── Makefile.in │ ├── README │ ├── aclocal.m4 │ ├── config.h │ ├── config.h.in │ ├── config │ ├── config.guess │ ├── config.sub │ ├── depcomp │ ├── install-sh │ ├── ltmain.sh │ └── missing │ ├── configure │ ├── configure.ac │ ├── doc │ ├── doxygen.cfg │ └── html │ │ ├── annotated.html │ │ ├── bc_s.png │ │ ├── classes.html │ │ ├── closed.png │ │ ├── doxygen.css │ │ ├── doxygen.png │ │ ├── files.html │ │ ├── functions.html │ │ ├── functions_0x62.html │ │ ├── functions_0x63.html │ │ ├── functions_0x64.html │ │ ├── functions_0x65.html │ │ ├── functions_0x66.html │ │ ├── functions_0x68.html │ │ ├── functions_0x69.html │ │ ├── functions_0x6b.html │ │ ├── functions_0x6c.html │ │ ├── functions_0x6d.html │ │ ├── functions_0x6e.html │ │ ├── functions_0x6f.html │ │ ├── functions_0x70.html │ │ ├── functions_0x71.html │ │ ├── functions_0x72.html │ │ ├── functions_0x73.html │ │ ├── functions_0x74.html │ │ ├── functions_0x75.html │ │ ├── functions_0x76.html │ │ ├── functions_0x77.html │ │ ├── functions_vars.html │ │ ├── functions_vars_0x62.html │ │ ├── functions_vars_0x63.html │ │ ├── functions_vars_0x64.html │ │ ├── functions_vars_0x65.html │ │ ├── functions_vars_0x66.html │ │ ├── functions_vars_0x68.html │ │ ├── functions_vars_0x69.html │ │ ├── functions_vars_0x6b.html │ │ ├── functions_vars_0x6c.html │ │ ├── functions_vars_0x6d.html │ │ ├── functions_vars_0x6e.html │ │ ├── functions_vars_0x6f.html │ │ ├── functions_vars_0x70.html │ │ ├── functions_vars_0x71.html │ │ ├── functions_vars_0x72.html │ │ ├── functions_vars_0x73.html │ │ ├── functions_vars_0x74.html │ │ ├── functions_vars_0x75.html │ │ ├── functions_vars_0x76.html │ │ ├── functions_vars_0x77.html │ │ ├── globals.html │ │ ├── globals_defs.html │ │ ├── globals_enum.html │ │ ├── globals_eval.html │ │ ├── globals_func.html │ │ ├── globals_type.html │ │ ├── group__basic.html │ │ ├── group__emitter.html │ │ ├── group__events.html │ │ ├── group__export.html │ │ ├── group__nodes.html │ │ ├── group__parser.html │ │ ├── group__styles.html │ │ ├── group__tokens.html │ │ ├── group__version.html │ │ ├── index.html │ │ ├── modules.html │ │ ├── nav_f.png │ │ ├── nav_h.png │ │ ├── open.png │ │ ├── structyaml__alias__data__s.html │ │ ├── structyaml__document__s.html │ │ ├── structyaml__emitter__s.html │ │ ├── structyaml__event__s.html │ │ ├── structyaml__mark__s.html │ │ ├── structyaml__node__pair__s.html │ │ ├── structyaml__node__s.html │ │ ├── structyaml__parser__s.html │ │ ├── structyaml__simple__key__s.html │ │ ├── structyaml__tag__directive__s.html │ │ ├── structyaml__token__s.html │ │ ├── structyaml__version__directive__s.html │ │ ├── tab_a.png │ │ ├── tab_b.png │ │ ├── tab_h.png │ │ ├── tab_s.png │ │ ├── tabs.css │ │ └── yaml_8h.html │ ├── include │ ├── Makefile.am │ ├── Makefile.in │ └── yaml.h │ ├── src │ ├── Makefile.am │ ├── Makefile.in │ ├── api.c │ ├── dumper.c │ ├── emitter.c │ ├── loader.c │ ├── parser.c │ ├── reader.c │ ├── scanner.c │ ├── writer.c │ └── yaml_private.h │ ├── tests │ ├── Makefile.am │ ├── Makefile.in │ ├── example-deconstructor-alt.c │ ├── example-deconstructor.c │ ├── example-reformatter-alt.c │ ├── example-reformatter.c │ ├── run-dumper.c │ ├── run-emitter.c │ ├── run-loader.c │ ├── run-parser.c │ ├── run-scanner.c │ ├── test-reader.c │ └── test-version.c │ ├── win32 │ ├── Makefile.am │ ├── Makefile.in │ ├── config.h │ ├── vc6 │ │ ├── example_deconstructor.dsp │ │ ├── example_deconstructor_alt.dsp │ │ ├── example_reformatter.dsp │ │ ├── example_reformatter_alt.dsp │ │ ├── libyaml.dsw │ │ ├── run_dumper.dsp │ │ ├── run_emitter.dsp │ │ ├── run_loader.dsp │ │ ├── run_parser.dsp │ │ ├── run_scanner.dsp │ │ ├── test_reader.dsp │ │ ├── test_version.dsp │ │ ├── yaml.dsp │ │ └── yamldll.dsp │ ├── vs2003 │ │ ├── example_deconstructor.vcproj │ │ ├── example_deconstructor_alt.vcproj │ │ ├── example_reformatter.vcproj │ │ ├── example_reformatter_alt.vcproj │ │ ├── libyaml.sln │ │ ├── run_dumper.vcproj │ │ ├── run_emitter.vcproj │ │ ├── run_loader.vcproj │ │ ├── run_parser.vcproj │ │ ├── run_scanner.vcproj │ │ ├── test_reader.vcproj │ │ ├── test_version.vcproj │ │ ├── yaml.vcproj │ │ └── yamldll.vcproj │ └── vs2008 │ │ ├── example_deconstructor.vcproj │ │ ├── example_deconstructor_alt.vcproj │ │ ├── example_reformatter.vcproj │ │ ├── example_reformatter_alt.vcproj │ │ ├── libyaml.sln │ │ ├── run_dumper.vcproj │ │ ├── run_emitter.vcproj │ │ ├── run_loader.vcproj │ │ ├── run_parser.vcproj │ │ ├── run_scanner.vcproj │ │ ├── test_reader.vcproj │ │ ├── test_version.vcproj │ │ ├── yaml.vcproj │ │ └── yamldll.vcproj │ └── yaml-0.1.pc.in ├── Download.svg ├── Gemfile ├── LICENSE ├── Library ├── Aspects │ ├── Aspects.podspec │ ├── Aspects.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── Aspects │ │ ├── Info.plist │ │ └── Source │ │ │ └── Aspects.swift │ └── AspectsTests │ │ ├── AspectsTests.swift │ │ └── Info.plist ├── ICSMainFramework │ ├── ICSMainFramework.podspec │ ├── ICSMainFramework.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── ICSMainFramework.xcscheme │ ├── ICSMainFramework │ │ ├── AppConfiguration.swift │ │ ├── AppDelegate.swift │ │ ├── AppEnvironment.swift │ │ ├── AppLifeCycle.swift │ │ ├── ICSMainFramework.h │ │ ├── Info.plist │ │ ├── OBJCObjectFactory.h │ │ └── OBJCObjectFactory.m │ └── ICSMainFrameworkTests │ │ ├── ICSMainFrameworkTests.swift │ │ └── Info.plist ├── ShadowPath │ ├── ShadowPath.podspec │ ├── ShadowPath.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── ShadowPath.xcscmblueprint │ ├── ShadowPath │ │ ├── Antinat │ │ │ ├── an_config.h │ │ │ ├── client │ │ │ │ ├── an_core.h │ │ │ │ ├── an_core.m │ │ │ │ ├── an_direct.m │ │ │ │ ├── an_internals.h │ │ │ │ ├── an_proxy.m │ │ │ │ ├── an_socks4.m │ │ │ │ ├── an_socks5.m │ │ │ │ ├── an_ssl.m │ │ │ │ ├── antinat.h │ │ │ │ ├── iscmd5.h │ │ │ │ └── iscmd5.m │ │ │ ├── expat-lib │ │ │ │ ├── include │ │ │ │ │ └── expat │ │ │ │ │ │ ├── expat.h │ │ │ │ │ │ └── expat_external.h │ │ │ │ └── lib │ │ │ │ │ └── libexpat.a │ │ │ ├── fmemopen.c │ │ │ ├── fmemopen.h │ │ │ └── server │ │ │ │ ├── AntinatServer.h │ │ │ │ ├── AntinatServer.m │ │ │ │ ├── addrinfo.m │ │ │ │ ├── an_main.h │ │ │ │ ├── an_main.m │ │ │ │ ├── an_serv.h │ │ │ │ ├── auth.m │ │ │ │ ├── config.m │ │ │ │ ├── conn.m │ │ │ │ ├── libds.m │ │ │ │ ├── loggers.m │ │ │ │ ├── os_unix.m │ │ │ │ ├── socks4.m │ │ │ │ └── socks5.m │ │ ├── Info.plist │ │ ├── Privoxy │ │ │ ├── actionlist.h │ │ │ ├── actions.h │ │ │ ├── actions.m │ │ │ ├── cgi.c │ │ │ ├── cgi.h │ │ │ ├── cgiedit.c │ │ │ ├── cgiedit.h │ │ │ ├── cgisimple.c │ │ │ ├── cgisimple.h │ │ │ ├── deanimate.c │ │ │ ├── deanimate.h │ │ │ ├── encode.c │ │ │ ├── encode.h │ │ │ ├── errlog.h │ │ │ ├── errlog.m │ │ │ ├── filters.c │ │ │ ├── filters.h │ │ │ ├── gateway.c │ │ │ ├── gateway.h │ │ │ ├── jbsockets.c │ │ │ ├── jbsockets.h │ │ │ ├── jcc.h │ │ │ ├── jcc.m │ │ │ ├── list.c │ │ │ ├── list.h │ │ │ ├── loadcfg.c │ │ │ ├── loadcfg.h │ │ │ ├── loaders.c │ │ │ ├── loaders.h │ │ │ ├── miscutil.c │ │ │ ├── miscutil.h │ │ │ ├── parsers.c │ │ │ ├── parsers.h │ │ │ ├── pcre │ │ │ │ ├── chartables.c │ │ │ │ ├── get.c │ │ │ │ ├── internal.h │ │ │ │ ├── pcre.c │ │ │ │ ├── pcre.h │ │ │ │ ├── pcreposix.c │ │ │ │ ├── pcreposix.h │ │ │ │ └── study.c │ │ │ ├── pcrs.c │ │ │ ├── pcrs.h │ │ │ ├── project.h │ │ │ ├── radix.c │ │ │ ├── radix.h │ │ │ ├── sp_config.h │ │ │ ├── ssplit.c │ │ │ ├── ssplit.h │ │ │ ├── urlmatch.c │ │ │ └── urlmatch.h │ │ └── ShadowPath.h │ └── ShadowPathDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── Supporting Files │ │ └── main.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── config └── tun2socks-iOS │ ├── socksclient │ ├── BSocksClient.h │ └── BSocksClient.m │ ├── tun2socks │ ├── SocksUdpGwClient.c │ ├── SocksUdpGwClient.h │ ├── tun2socks.c │ └── tun2socks.h │ ├── tuntap │ ├── BTap.h │ └── BTap.m │ └── udpgw_client │ ├── UdpGwClient.c │ └── UdpGwClient.h ├── PacketProcessor ├── Info.plist ├── PacketProcessor.h ├── TunnelInterface.h ├── TunnelInterface.m └── tun2socks-iOS │ ├── base │ ├── BLog.h │ ├── BLog.m │ ├── BLog_syslog.c │ ├── BLog_syslog.h │ ├── BMutex.h │ ├── BPending.c │ ├── BPending.h │ ├── BPending_list.h │ ├── DebugObject.c │ └── DebugObject.h │ ├── flow │ ├── BufferWriter.c │ ├── BufferWriter.h │ ├── PacketBuffer.c │ ├── PacketBuffer.h │ ├── PacketPassConnector.c │ ├── PacketPassConnector.h │ ├── PacketPassFairQueue.c │ ├── PacketPassFairQueue.h │ ├── PacketPassFairQueue_tree.h │ ├── PacketPassInterface.c │ ├── PacketPassInterface.h │ ├── PacketProtoDecoder.c │ ├── PacketProtoDecoder.h │ ├── PacketProtoEncoder.c │ ├── PacketProtoEncoder.h │ ├── PacketProtoFlow.c │ ├── PacketProtoFlow.h │ ├── PacketRecvInterface.c │ ├── PacketRecvInterface.h │ ├── PacketStreamSender.c │ ├── PacketStreamSender.h │ ├── SinglePacketBuffer.c │ ├── SinglePacketBuffer.h │ ├── StreamPassInterface.c │ ├── StreamPassInterface.h │ ├── StreamRecvInterface.c │ └── StreamRecvInterface.h │ ├── flowextra │ ├── PacketPassInactivityMonitor.c │ └── PacketPassInactivityMonitor.h │ ├── generated │ ├── blog_channel_BArpProbe.h │ ├── blog_channel_BConnection.h │ ├── blog_channel_BDHCPClient.h │ ├── blog_channel_BDHCPClientCore.h │ ├── blog_channel_BDatagram.h │ ├── blog_channel_BEncryption.h │ ├── blog_channel_BInputProcess.h │ ├── blog_channel_BLockReactor.h │ ├── blog_channel_BNetwork.h │ ├── blog_channel_BPredicate.h │ ├── blog_channel_BProcess.h │ ├── blog_channel_BReactor.h │ ├── blog_channel_BSSLConnection.h │ ├── blog_channel_BSignal.h │ ├── blog_channel_BSocksClient.h │ ├── blog_channel_BTap.h │ ├── blog_channel_BThreadSignal.h │ ├── blog_channel_BThreadWork.h │ ├── blog_channel_BTime.h │ ├── blog_channel_BUnixSignal.h │ ├── blog_channel_DPReceive.h │ ├── blog_channel_DPRelay.h │ ├── blog_channel_DataProto.h │ ├── blog_channel_DatagramPeerIO.h │ ├── blog_channel_FragmentProtoAssembler.h │ ├── blog_channel_FrameDecider.h │ ├── blog_channel_LineBuffer.h │ ├── blog_channel_Listener.h │ ├── blog_channel_NCDBuildProgram.h │ ├── blog_channel_NCDConfigParser.h │ ├── blog_channel_NCDConfigTokenizer.h │ ├── blog_channel_NCDIfConfig.h │ ├── blog_channel_NCDInterfaceMonitor.h │ ├── blog_channel_NCDModuleIndex.h │ ├── blog_channel_NCDModuleProcess.h │ ├── blog_channel_NCDPlaceholderDb.h │ ├── blog_channel_NCDRequest.h │ ├── blog_channel_NCDRequestClient.h │ ├── blog_channel_NCDRfkillMonitor.h │ ├── blog_channel_NCDUdevCache.h │ ├── blog_channel_NCDUdevManager.h │ ├── blog_channel_NCDUdevMonitor.h │ ├── blog_channel_NCDUdevMonitorParser.h │ ├── blog_channel_NCDVal.h │ ├── blog_channel_NCDValGenerator.h │ ├── blog_channel_NCDValParser.h │ ├── blog_channel_PRStreamSink.h │ ├── blog_channel_PRStreamSource.h │ ├── blog_channel_PacketProtoDecoder.h │ ├── blog_channel_PasswordListener.h │ ├── blog_channel_PeerChat.h │ ├── blog_channel_SPProtoDecoder.h │ ├── blog_channel_ServerConnection.h │ ├── blog_channel_SocksUdpGwClient.h │ ├── blog_channel_StreamPeerIO.h │ ├── blog_channel_UdpGwClient.h │ ├── blog_channel_addr.h │ ├── blog_channel_client.h │ ├── blog_channel_dostest_attacker.h │ ├── blog_channel_dostest_server.h │ ├── blog_channel_flooder.h │ ├── blog_channel_lwip.h │ ├── blog_channel_ncd.h │ ├── blog_channel_ncd_alias.h │ ├── blog_channel_ncd_arithmetic.h │ ├── blog_channel_ncd_assert.h │ ├── blog_channel_ncd_backtrack.h │ ├── blog_channel_ncd_basic_functions.h │ ├── blog_channel_ncd_blocker.h │ ├── blog_channel_ncd_buffer.h │ ├── blog_channel_ncd_call2.h │ ├── blog_channel_ncd_choose.h │ ├── blog_channel_ncd_concat.h │ ├── blog_channel_ncd_daemon.h │ ├── blog_channel_ncd_depend.h │ ├── blog_channel_ncd_depend_scope.h │ ├── blog_channel_ncd_dynamic_depend.h │ ├── blog_channel_ncd_exit.h │ ├── blog_channel_ncd_explode.h │ ├── blog_channel_ncd_file.h │ ├── blog_channel_ncd_file_open.h │ ├── blog_channel_ncd_foreach.h │ ├── blog_channel_ncd_from_string.h │ ├── blog_channel_ncd_getargs.h │ ├── blog_channel_ncd_getenv.h │ ├── blog_channel_ncd_if.h │ ├── blog_channel_ncd_imperative.h │ ├── blog_channel_ncd_implode.h │ ├── blog_channel_ncd_index.h │ ├── blog_channel_ncd_list.h │ ├── blog_channel_ncd_load_module.h │ ├── blog_channel_ncd_log.h │ ├── blog_channel_ncd_log_msg.h │ ├── blog_channel_ncd_logical.h │ ├── blog_channel_ncd_multidepend.h │ ├── blog_channel_ncd_net_backend_badvpn.h │ ├── blog_channel_ncd_net_backend_rfkill.h │ ├── blog_channel_ncd_net_backend_waitdevice.h │ ├── blog_channel_ncd_net_backend_waitlink.h │ ├── blog_channel_ncd_net_backend_wpa_supplicant.h │ ├── blog_channel_ncd_net_dns.h │ ├── blog_channel_ncd_net_iptables.h │ ├── blog_channel_ncd_net_ipv4_addr.h │ ├── blog_channel_ncd_net_ipv4_addr_in_network.h │ ├── blog_channel_ncd_net_ipv4_arp_probe.h │ ├── blog_channel_ncd_net_ipv4_dhcp.h │ ├── blog_channel_ncd_net_ipv4_route.h │ ├── blog_channel_ncd_net_ipv6_addr.h │ ├── blog_channel_ncd_net_ipv6_addr_in_network.h │ ├── blog_channel_ncd_net_ipv6_route.h │ ├── blog_channel_ncd_net_ipv6_wait_dynamic_addr.h │ ├── blog_channel_ncd_net_up.h │ ├── blog_channel_ncd_net_watch_interfaces.h │ ├── blog_channel_ncd_netmask.h │ ├── blog_channel_ncd_objref.h │ ├── blog_channel_ncd_ondemand.h │ ├── blog_channel_ncd_parse.h │ ├── blog_channel_ncd_print.h │ ├── blog_channel_ncd_process_manager.h │ ├── blog_channel_ncd_reboot.h │ ├── blog_channel_ncd_ref.h │ ├── blog_channel_ncd_regex_match.h │ ├── blog_channel_ncd_request.h │ ├── blog_channel_ncd_run.h │ ├── blog_channel_ncd_runonce.h │ ├── blog_channel_ncd_sleep.h │ ├── blog_channel_ncd_socket.h │ ├── blog_channel_ncd_spawn.h │ ├── blog_channel_ncd_strcmp.h │ ├── blog_channel_ncd_substr.h │ ├── blog_channel_ncd_sys_evdev.h │ ├── blog_channel_ncd_sys_request_client.h │ ├── blog_channel_ncd_sys_request_server.h │ ├── blog_channel_ncd_sys_start_process.h │ ├── blog_channel_ncd_sys_watch_directory.h │ ├── blog_channel_ncd_sys_watch_input.h │ ├── blog_channel_ncd_sys_watch_usb.h │ ├── blog_channel_ncd_timer.h │ ├── blog_channel_ncd_to_string.h │ ├── blog_channel_ncd_try.h │ ├── blog_channel_ncd_value.h │ ├── blog_channel_ncd_valuemetic.h │ ├── blog_channel_ncd_var.h │ ├── blog_channel_nsskey.h │ ├── blog_channel_server.h │ ├── blog_channel_tun2socks.h │ ├── blog_channel_udpgw.h │ ├── blog_channels_defines.h │ ├── blog_channels_list.h │ ├── bproto_addr.h │ ├── bproto_bproto_test.h │ └── bproto_msgproto.h │ ├── lwip │ ├── custom │ │ ├── arch │ │ │ ├── cc.h │ │ │ └── perf.h │ │ ├── lwipopts.h │ │ └── sys.c │ └── src │ │ ├── core │ │ ├── def.c │ │ ├── inet_chksum.c │ │ ├── init.c │ │ ├── ipv4 │ │ │ ├── icmp.c │ │ │ ├── ip4.c │ │ │ ├── ip4_addr.c │ │ │ └── ip_frag.c │ │ ├── ipv6 │ │ │ ├── icmp6.c │ │ │ ├── ip6.c │ │ │ ├── ip6_addr.c │ │ │ ├── ip6_frag.c │ │ │ └── nd6.c │ │ ├── mem.c │ │ ├── memp.c │ │ ├── netif.c │ │ ├── pbuf.c │ │ ├── stats.c │ │ ├── tcp.c │ │ ├── tcp_in.c │ │ ├── tcp_out.c │ │ ├── timers.c │ │ └── udp.c │ │ └── include │ │ ├── ipv4 │ │ └── lwip │ │ │ ├── autoip.h │ │ │ ├── icmp.h │ │ │ ├── igmp.h │ │ │ ├── inet.h │ │ │ ├── ip4.h │ │ │ ├── ip4_addr.h │ │ │ └── ip_frag.h │ │ ├── ipv6 │ │ └── lwip │ │ │ ├── dhcp6.h │ │ │ ├── ethip6.h │ │ │ ├── icmp6.h │ │ │ ├── inet6.h │ │ │ ├── ip6.h │ │ │ ├── ip6_addr.h │ │ │ ├── ip6_frag.h │ │ │ ├── mld6.h │ │ │ └── nd6.h │ │ ├── lwip │ │ ├── api.h │ │ ├── api_msg.h │ │ ├── arch.h │ │ ├── debug.h │ │ ├── def.h │ │ ├── dhcp.h │ │ ├── dns.h │ │ ├── err.h │ │ ├── inet_chksum.h │ │ ├── init.h │ │ ├── ip.h │ │ ├── ip_addr.h │ │ ├── mem.h │ │ ├── memp.h │ │ ├── memp_std.h │ │ ├── netbuf.h │ │ ├── netdb.h │ │ ├── netif.h │ │ ├── netifapi.h │ │ ├── opt.h │ │ ├── pbuf.h │ │ ├── raw.h │ │ ├── sio.h │ │ ├── snmp.h │ │ ├── snmp_asn1.h │ │ ├── snmp_msg.h │ │ ├── snmp_structs.h │ │ ├── sockets.h │ │ ├── stats.h │ │ ├── sys.h │ │ ├── tcp.h │ │ ├── tcp_impl.h │ │ ├── tcpip.h │ │ ├── timers.h │ │ └── udp.h │ │ ├── netif │ │ ├── etharp.h │ │ ├── ppp_oe.h │ │ └── slipif.h │ │ └── posix │ │ ├── netdb.h │ │ └── sys │ │ └── socket.h │ ├── misc │ ├── BRefTarget.h │ ├── Utf16Decoder.h │ ├── Utf16Encoder.h │ ├── Utf8Decoder.h │ ├── Utf8Encoder.h │ ├── arp_proto.h │ ├── array_length.h │ ├── ascii_utils.h │ ├── balign.h │ ├── balloc.h │ ├── blimits.h │ ├── bsize.h │ ├── bsort.h │ ├── bstring.h │ ├── byteorder.h │ ├── cmdline.h │ ├── compare.h │ ├── concat_strings.h │ ├── dead.h │ ├── debug.h │ ├── debugcounter.h │ ├── debugerror.h │ ├── dhcp_proto.h │ ├── ethernet_proto.h │ ├── exparray.h │ ├── expstring.h │ ├── find_char.h │ ├── find_program.h │ ├── get_iface_info.h │ ├── grow_array.h │ ├── hashfun.h │ ├── igmp_proto.h │ ├── ipaddr.h │ ├── ipaddr6.h │ ├── ipv4_proto.h │ ├── ipv6_proto.h │ ├── loggers_string.h │ ├── loglevel.h │ ├── maxalign.h │ ├── memref.h │ ├── merge.h │ ├── minmax.h │ ├── modadd.h │ ├── mswsock.h │ ├── nonblocking.h │ ├── nsskey.h │ ├── offset.h │ ├── open_standard_streams.h │ ├── overflow.h │ ├── packed.h │ ├── parse_number.h │ ├── print_macros.h │ ├── read_file.h │ ├── read_write_int.h │ ├── socks_proto.h │ ├── sslsocket.h │ ├── stdbuf_cmdline.h │ ├── strdup.h │ ├── string_begins_with.h │ ├── substring.h │ ├── udp_proto.h │ ├── unicode_funcs.h │ ├── version.h │ └── write_file.h │ ├── protocol │ ├── addr.bproto │ ├── addr.h │ ├── dataproto.h │ ├── fragmentproto.h │ ├── msgproto.bproto │ ├── msgproto.h │ ├── packetproto.h │ ├── requestproto.h │ ├── scproto.h │ ├── spproto.h │ └── udpgw_proto.h │ ├── socksclient │ ├── BSocksClient.c │ └── BSocksClient.h │ ├── structure │ ├── BAVL.h │ ├── CAvl.h │ ├── CAvl_decl.h │ ├── CAvl_footer.h │ ├── CAvl_header.h │ ├── CAvl_impl.h │ ├── CHash.h │ ├── CHash_decl.h │ ├── CHash_footer.h │ ├── CHash_header.h │ ├── CHash_impl.h │ ├── ChunkBuffer2.h │ ├── IndexedList.h │ ├── IndexedList_tree.h │ ├── LinkedList0.h │ ├── LinkedList1.h │ ├── LinkedList3.h │ ├── SAvl.h │ ├── SAvl_decl.h │ ├── SAvl_footer.h │ ├── SAvl_header.h │ ├── SAvl_impl.h │ ├── SAvl_tree.h │ ├── SLinkedList.h │ ├── SLinkedList_decl.h │ ├── SLinkedList_footer.h │ ├── SLinkedList_header.h │ ├── SLinkedList_impl.h │ ├── Vector.h │ ├── Vector_decl.h │ ├── Vector_footer.h │ ├── Vector_header.h │ └── Vector_impl.h │ ├── system │ ├── BAddr.h │ ├── BConnection.h │ ├── BConnection_common.c │ ├── BConnection_unix.c │ ├── BConnection_unix.h │ ├── BDatagram.h │ ├── BDatagram_unix.c │ ├── BDatagram_unix.h │ ├── BNetwork.c │ ├── BNetwork.h │ ├── BReactor.h │ ├── BReactor_badvpn.c │ ├── BReactor_badvpn.h │ ├── BReactor_badvpn_timerstree.h │ ├── BSignal.c │ ├── BSignal.h │ ├── BTime.c │ ├── BTime.h │ ├── BUnixSignal.c │ └── BUnixSignal.h │ ├── tun2socks │ ├── SocksUdpGwClient.c │ ├── SocksUdpGwClient.h │ ├── tun2socks.c │ └── tun2socks.h │ ├── tuntap │ ├── BTap.h │ └── BTap.m │ ├── udpgw │ ├── udpgw.c │ └── udpgw.h │ └── udpgw_client │ ├── UdpGwClient.c │ └── UdpGwClient.h ├── PacketTunnel ├── Info.plist ├── PacketTunnelProvider.h ├── PacketTunnelProvider.m ├── ProxyManager.h ├── ProxyManager.m ├── Supporting Files │ └── PacketTunnel.entitlements ├── dns.h └── dns.m ├── Podfile ├── Potatso.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── Potatso.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── Potatso.xcscmblueprint ├── Potatso ├── Advance │ ├── ProxyConfigurationViewController.swift │ ├── ProxySelectionViewController.swift │ ├── RuleConfigurationViewController.swift │ ├── RuleSetConfigurationViewController.swift │ └── RuleSetsSelectionViewController.swift ├── AppDelegate.swift ├── AppInitializer.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-60@2x.png │ │ ├── Icon-60@3x.png │ │ ├── Icon-76.png │ │ ├── Icon-76@2x.png │ │ ├── Icon-83.5@2x.png │ │ ├── Icon-Small.png │ │ ├── Icon-Small@2x-1.png │ │ ├── Icon-Small@2x.png │ │ ├── Icon-Small@3x.png │ │ ├── Icon-Spotlight-40.png │ │ ├── Icon-Spotlight-40@2x-1.png │ │ ├── Icon-Spotlight-40@2x.png │ │ └── Icon-Spotlight-40@3x.png │ ├── Back.imageset │ │ ├── Back@2x.png │ │ ├── Back@3x.png │ │ └── Contents.json │ ├── Config Selected.imageset │ │ ├── Config Selected@2x.png │ │ ├── Config Selected@3x.png │ │ └── Contents.json │ ├── Config.imageset │ │ ├── Config@2x.png │ │ ├── Config@3x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Dashboard Selected.imageset │ │ ├── Contents.json │ │ ├── Dashboard Selected@2x.png │ │ └── Dashboard Selected@3x.png │ ├── Dashboard.imageset │ │ ├── Contents.json │ │ ├── Dashboard@2x.png │ │ └── Dashboard@3x.png │ ├── Direct.imageset │ │ ├── Contents.json │ │ ├── Direct@2x.png │ │ └── Direct@3x.png │ ├── Home Selected.imageset │ │ ├── Contents.json │ │ ├── Home Selected@2x.png │ │ └── Home Selected@3x.png │ ├── Home.imageset │ │ ├── Contents.json │ │ ├── Home@2x.png │ │ └── Home@3x.png │ ├── List.imageset │ │ ├── Contents.json │ │ ├── List@2x.png │ │ └── List@3x.png │ ├── Log.imageset │ │ ├── Config@2x.png │ │ ├── Config@3x.png │ │ └── Contents.json │ ├── More Selected.imageset │ │ ├── Contents.json │ │ ├── More Selected@2x.png │ │ └── More Selected@3x.png │ ├── More.imageset │ │ ├── Contents.json │ │ ├── More@2x.png │ │ └── More@3x.png │ ├── Proxy.imageset │ │ ├── Contents.json │ │ ├── Proxy@2x.png │ │ └── Proxy@3x.png │ ├── Reject.imageset │ │ ├── Contents.json │ │ ├── Reject@2x.png │ │ └── Reject@3x.png │ ├── Settings.imageset │ │ ├── Contents.json │ │ ├── Settings@2x.png │ │ └── Settings@3x.png │ ├── Shadowsocks.imageset │ │ ├── Contents.json │ │ ├── Shadowsocks@2x.png │ │ └── Shadowsocks@3x.png │ └── User.imageset │ │ ├── Contents.json │ │ ├── User@2x.png │ │ └── User@3x.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Localizable.strings ├── Base │ ├── BaseButtonRow.swift │ ├── BaseEmptyView.swift │ ├── BaseSafariViewController.swift │ └── QRCode │ │ ├── HMScanner.bundle │ │ ├── QRCodeScanLine@2x.png │ │ ├── ScanQR1@2x.png │ │ ├── ScanQR2@2x.png │ │ ├── ScanQR3@2x.png │ │ └── ScanQR4@2x.png │ │ ├── HMScanner.h │ │ ├── HMScanner.m │ │ ├── HMScannerBorder.h │ │ ├── HMScannerBorder.m │ │ ├── HMScannerMaskView.h │ │ ├── HMScannerMaskView.m │ │ ├── HMScannerViewController.h │ │ └── HMScannerViewController.m ├── CloudDetailViewController.swift ├── CloudViewController.swift ├── CollectionViewController.swift ├── ConfigGroupCell.swift ├── ConfigGroupChooseVC.swift ├── Core │ ├── API.swift │ ├── Importer.swift │ └── VPN.swift ├── DataInitializer.swift ├── DetailRawTextCell.swift ├── FlatButton.swift ├── HomePresenter.swift ├── HomeVC.swift ├── Info.plist ├── LogDetailViewController.swift ├── More │ └── SettingsViewController.swift ├── Potatso-Bridge-Header.h ├── Potatso.entitlements ├── Potatso.xcdatamodeld │ ├── .xccurrentversion │ ├── Potatso 2.xcdatamodel │ │ └── contents │ ├── Potatso 3.xcdatamodel │ │ └── contents │ └── Potatso.xcdatamodel │ │ └── contents ├── Proxy.xcdatamodeld │ └── Proxy.xcdatamodel │ │ └── contents ├── ProxyListViewController.swift ├── ProxyRow.swift ├── RecentRequestsCell.swift ├── RecentRequestsViewController.swift ├── RequestDetailViewController.swift ├── RequestModel.swift ├── RuleCell.swift ├── RuleSetCell.swift ├── RuleSetListViewController.swift ├── UIManager.swift ├── UIViewControllerExtensions.swift ├── UrlHandler.swift ├── Utils │ ├── AlertUtils.swift │ ├── Color.swift │ ├── Error.swift │ ├── Event.swift │ ├── HUDUtils.swift │ ├── LoggerUtils.swift │ ├── Receipt.h │ ├── Receipt.m │ ├── Receipt.swift │ └── RegexUtils.swift ├── ad.block ├── config.plist ├── data │ ├── AppleIncRootCertificate.cer │ ├── geoip-CN.data │ └── gfwlist.data ├── template.bundle │ ├── blocked │ ├── cgi-error-404 │ ├── cgi-error-bad-param │ ├── cgi-error-disabled │ ├── cgi-error-file │ ├── cgi-error-file-read-only │ ├── cgi-error-modified │ ├── cgi-error-parse │ ├── cgi-style.css │ ├── connect-failed │ ├── connection-timeout │ ├── default │ ├── edit-actions-add-url-form │ ├── edit-actions-for-url │ ├── edit-actions-for-url-filter │ ├── edit-actions-list │ ├── edit-actions-list-button │ ├── edit-actions-list-section │ ├── edit-actions-list-url │ ├── edit-actions-remove-url-form │ ├── edit-actions-url-form │ ├── forwarding-failed │ ├── mod-local-help │ ├── mod-support-and-service │ ├── mod-title │ ├── mod-unstable-warning │ ├── no-server-data │ ├── no-such-domain │ ├── show-request │ ├── show-status │ ├── show-status-file │ ├── show-url-info │ ├── show-version │ ├── toggle │ ├── toggle-mini │ ├── untrusted │ └── url-info-osd.xml └── zh-Hans.lproj │ └── Localizable.strings ├── PotatsoBase ├── Info.plist ├── JSONUtils.h ├── JSONUtils.m ├── NSError+Helper.h ├── NSError+Helper.m ├── Potatso.h ├── Potatso.m └── PotatsoBase.h ├── PotatsoLibrary ├── Config.swift ├── Image.swift ├── Info.plist ├── Localized.swift ├── Logging.swift ├── Manager.swift ├── Pollution.swift └── PotatsoLibrary.h ├── PotatsoLibraryTests ├── Info.plist └── PotatsoLibraryTests.swift ├── PotatsoModel ├── BaseModel.swift ├── ConfigurationGroup.swift ├── Info.plist ├── PotatsoModel.h ├── Proxy.swift ├── Rule.swift └── RuleSet.swift ├── PotatsoTests ├── Info.plist └── PotatsoTests.swift ├── README.md ├── TodayWidget ├── Base.lproj │ ├── Localizable.strings │ └── MainInterface.storyboard ├── CurrentGroupCell.swift ├── Info.plist ├── TodayViewController.swift ├── TodayWidget.entitlements └── zh-Hans.lproj │ └── Localizable.strings └── genstrings.swift /.gitattributes: -------------------------------------------------------------------------------- 1 | /Library/* linguist-vendored=true 2 | /PacketProcessor/tun2socks-iOS/* linguist-vendored=true 3 | /Carthage/* linguist-vendored=true 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | # C extensions 4 | *.so 5 | 6 | # Unit test / coverage reports 7 | htmlcov/ 8 | .tox/ 9 | .coverage 10 | .coverage.* 11 | .cache 12 | nosetests.xml 13 | coverage.xml 14 | *,cover 15 | .idea/ 16 | 17 | 18 | # iOS 19 | # Xcode 20 | # 21 | build/ 22 | *.pbxuser 23 | !default.pbxuser 24 | *.mode1v3 25 | !default.mode1v3 26 | *.mode2v3 27 | !default.mode2v3 28 | *.perspectivev3 29 | !default.perspectivev3 30 | xcuserdata 31 | *.xccheckout 32 | *.moved-aside 33 | DerivedData 34 | *.hmap 35 | *.ipa 36 | *.xcuserstate 37 | 38 | # CocoaPods 39 | # 40 | # We recommend against adding the Pods directory to your .gitignore. However 41 | # you should judge for yourself, the pros and cons are mentioned at: 42 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 43 | # 44 | Pods/ 45 | Podfile.lock 46 | 47 | # Carthage 48 | Carthage/Build 49 | 50 | # fastlane 51 | fastlane 52 | 53 | Gemfile.lock 54 | 55 | Confidential/ 56 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Library/ShadowPath/ShadowPath/shadowsocks-libev"] 2 | path = Library/ShadowPath/ShadowPath/shadowsocks-libev 3 | url = https://github.com/jefby/shadowsocks-libev 4 | -------------------------------------------------------------------------------- /Cartfile: -------------------------------------------------------------------------------- 1 | github "mirek/YAML.framework" "master" -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "mirek/YAML.framework" "c099c4b9756d116f5fb08bc588d49a43a6c6176c" 2 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | build 3 | *.mode1v3 4 | *.pbxuser 5 | xcuserdata 6 | test/yaml/bigboy.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSPrincipalClass 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAML iOS-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSPrincipalClass 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAML.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAMLUnitTests/YAMLUnitTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAMLUnitTests/YAMLUnitTests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'YAMLUnitTests' target in the 'YAMLUnitTests' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAMLUnitTests/YAMLUnitTests.h: -------------------------------------------------------------------------------- 1 | // 2 | // YAMLUnitTests.h 3 | // YAMLUnitTests 4 | // 5 | // Created by Carl Brown on 7/31/11. 6 | // Copyright 2011 PDAgent, LLC. Released under MIT License. 7 | // 8 | 9 | #import 10 | 11 | @interface YAMLUnitTests : XCTestCase 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAMLUnitTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/YAML_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'YAML' target in the 'YAML' project. 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module YAML { 2 | umbrella header "YAMLSerialization.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/bigboy.rb: -------------------------------------------------------------------------------- 1 | # Generate large YAML file 2 | # 3 | # Usage: 4 | # 5 | # ruby bigboy.rb > yaml/bigboy.yaml 6 | # 7 | 8 | lorem = "lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod " \ 9 | "tempor incididunt ut labore et dolore magna aliqua ut enim minim veniam " \ 10 | "quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo " \ 11 | "consequat duis aute irure dolor in reprehenderit in voluptate velit esse " \ 12 | "cillum dolore eu fugiat nulla pariatur excepteur sint occaecat cupidatat " \ 13 | "non proident sunte culpa qui officia deserunt".split 14 | 15 | # 2000 ~ 10MB 16 | (3 * 2000).times do |i| 17 | puts "- foo: bar" 18 | puts "- #{lorem.shuffle.first}: #{lorem.shuffle.join(' ')}" 19 | lorem.shuffle[0..10].each do |k| 20 | puts " #{k}: #{lorem.shuffle.join(' ')}" 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/fetch.rb: -------------------------------------------------------------------------------- 1 | # Dump example files from http://www.yaml.org/spec/1.2/spec.html 2 | require 'rubygems' 3 | require 'open-uri' 4 | require 'hpricot' 5 | 6 | doc = open("http://www.yaml.org/spec/1.2/spec.html") { |f| Hpricot(f) } 7 | 8 | doc.search("//div[@class='example']").each do |example| 9 | title = example.at("//p[@class='title']/b").to_plain_text 10 | yaml = example.at("//*[@class='database']").to_plain_text.to_s.gsub(/\267/, ' ').gsub(/↓/, '') 11 | filename = "spec12-#{title.downcase.gsub(/[^a-zA-Z0-9]/, '-').gsub(/-+/, '-').gsub(/-+$/, '')}.yaml" 12 | puts filename 13 | f = open("yaml/#{filename}", 'w') 14 | f.write(yaml) 15 | f.close 16 | end 17 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/spec12examples.m: -------------------------------------------------------------------------------- 1 | // 2 | // spec12examples.m 3 | // Load all examples from http://www.yaml.org/spec/1.2/spec.html 4 | // 5 | // Copyright 2010 Mirek Rusin, Released under MIT License 6 | // 7 | 8 | #import 9 | #import "YAMLSerialization.h" 10 | 11 | int main() { 12 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 13 | 14 | NSString *prefix = @"spec12-example"; 15 | for (NSString *path in [[NSFileManager defaultManager] contentsOfDirectoryAtPath: @"yaml" error: nil]) { 16 | if ([path compare: prefix options: NSCaseInsensitiveSearch range: NSMakeRange(0, prefix.length)] == NSOrderedSame) { 17 | 18 | NSInputStream *stream = [[NSInputStream alloc] initWithFileAtPath: [@"yaml" stringByAppendingPathComponent: path]]; 19 | NSMutableArray *yaml = [YAMLSerialization YAMLWithStream: stream 20 | options: kYAMLReadOptionStringScalars 21 | error: nil]; 22 | 23 | // NSStringFromClass([[yaml objectAtIndex: 0] class]).UTF8String 24 | printf("Found %i docs in %s\n", (int)yaml.count, path.UTF8String); 25 | } 26 | } 27 | 28 | [pool drain]; 29 | 30 | return 0; 31 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/items.yaml: -------------------------------------------------------------------------------- 1 | items: 2 | - name: Foo 3 | - name: Bar 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/map-in-seq.yaml: -------------------------------------------------------------------------------- 1 | # http://yaml.kwiki.org/index.cgi?YtsMapInSeq 2 | 3 | --- 4 | type: meta 5 | description: | 6 | Test the shorthand mapping-in-sequence syntax. 7 | default-type: load-expect 8 | perl: fail 9 | ruby: 0.40 10 | python: skip 11 | 12 | # The tests themselves come below. One per YAML document. 13 | --- 14 | name: Single key 15 | type: load-expect 16 | brief: | 17 | Test maps with just one key. 18 | yaml: | 19 | --- 20 | - foo: bar 21 | - baz: bug 22 | perl: | 23 | [ {foo => 'bar'}, {baz => 'bug'} ] 24 | ruby: | 25 | [ {'foo', 'bar'}, {'baz', 'bug'} ] 26 | 27 | --- 28 | name: Multiple keys 29 | brief: | 30 | Test a map with multiple keys. 31 | yaml: | 32 | --- 33 | - foo: bar 34 | baz: bug 35 | perl: | 36 | [ {foo => 'bar', baz => 'bug'} ] 37 | ruby: | 38 | [ {'foo', 'bar', 'baz', 'bug'} ] 39 | 40 | --- 41 | name: Strange keys 42 | brief: | 43 | Test a map with "line noise" keys. 44 | yaml: | 45 | --- 46 | - "!@#$" : foo 47 | -+!@ : bar 48 | perl: | 49 | [ {'!@#$' => 'foo', '-+!@' => 'bar'} ] 50 | ruby: | 51 | [ {'!@#$', 'foo', '-+!@', 'bar'} ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/map.yaml: -------------------------------------------------------------------------------- 1 | foo: bar 2 | bar: foo 3 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/simple.yaml: -------------------------------------------------------------------------------- 1 | map_key_1: map_value_1 2 | map_key_2: 3 | - sequence item 1 4 | - sequence item 2 5 | - sequence item 3 6 | map_key_3: 7 | map_key_3_1: map_value_3_1 8 | map_key_4: |- 9 | block value 10 | multiline 11 | 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-1-map-examples.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-1-map-examples.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-2-seq-examples.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-2-seq-examples.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-3-str-examples.yaml: -------------------------------------------------------------------------------- 1 | Block style: !!str |- 2 | String: just a theory. 3 | 4 | Flow style: !!str "String: just a theory." -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-4-null-examples.yaml: -------------------------------------------------------------------------------- 1 | !!null null: value for null key 2 | key with null value: !!null null -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-5-bool-examples.yaml: -------------------------------------------------------------------------------- 1 | YAML is a superset of JSON: !!bool true 2 | Pluto is a planet: !!bool false -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-6-int-examples.yaml: -------------------------------------------------------------------------------- 1 | negative: !!int -12 2 | zero: !!int 0 3 | positive: !!int 34 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-7-float-examples.yaml: -------------------------------------------------------------------------------- 1 | negative: !!float -1 2 | zero: !!float 0 3 | positive: !!float 2.3e4 4 | infinity: !!float .inf 5 | not a number: !!float .nan -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-8-json-tag-resolution.yaml: -------------------------------------------------------------------------------- 1 | A null: null 2 | Booleans: [ true, false ] 3 | Integers: [ 0, -0, 3, -19 ] 4 | Floats: [ 0., -0.0, 12e03, -2E+05 ] 5 | Invalid: [ True, Null, 0o7, 0x3A, +12.3 ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-10-9-core-tag-resolution.yaml: -------------------------------------------------------------------------------- 1 | A null: null 2 | Also a null: # Empty 3 | Not a null: "" 4 | Booleans: [ true, True, false, FALSE ] 5 | Integers: [ 0, 0o7, 0x3A, -19 ] 6 | Floats: [ 0., -0.0, .5, +12e03, -2E+05 ] 7 | Also floats: [ .inf, -.Inf, +.INF, .NAN ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-1-sequence-of-scalars-ball-players.yaml: -------------------------------------------------------------------------------- 1 | - Mark McGwire 2 | - Sammy Sosa 3 | - Ken Griffey -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-10-node-for-sammy-sosa-appears-twice-in-this-document.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | hr: 3 | - Mark McGwire 4 | # Following node labeled SS 5 | - &SS Sammy Sosa 6 | rbi: 7 | - *SS # Subsequent occurrence 8 | - Ken Griffey -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-11-mapping-between-sequences.yaml: -------------------------------------------------------------------------------- 1 | ? - Detroit Tigers 2 | - Chicago cubs 3 | : 4 | - 2001-07-23 5 | 6 | ? [ New York Yankees, 7 | Atlanta Braves ] 8 | : [ 2001-07-02, 2001-08-12, 9 | 2001-08-14 ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-12-compact-nested-mapping.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Products purchased 3 | - item : Super Hoop 4 | quantity: 1 5 | - item : Basketball 6 | quantity: 4 7 | - item : Big Shoes 8 | quantity: 1 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-13-in-literals-newlines-are-preserved.yaml: -------------------------------------------------------------------------------- 1 | # ASCII Art 2 | --- | 3 | \//||\/|| 4 | // || ||__ -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-14-in-the-folded-scalars-newlines-become-spaces.yaml: -------------------------------------------------------------------------------- 1 | --- > 2 | Mark McGwire's 3 | year was crippled 4 | by a knee injury. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-15-folded-newlines-are-preserved-for-more-indented-and-blank-lines.yaml: -------------------------------------------------------------------------------- 1 | > 2 | Sammy Sosa completed another 3 | fine season with great stats. 4 | 5 | 63 Home Runs 6 | 0.288 Batting Average 7 | 8 | What a year! -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-16-indentation-determines-scope.yaml: -------------------------------------------------------------------------------- 1 | name: Mark McGwire 2 | accomplishment: > 3 | Mark set a major league 4 | home run record in 1998. 5 | stats: | 6 | 65 Home Runs 7 | 0.278 Batting Average -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-17-quoted-scalars.yaml: -------------------------------------------------------------------------------- 1 | unicode: "Sosa did fine.\u263A" 2 | control: "\b1998\t1999\t2000\n" 3 | hex esc: "\x0d\x0a is \r\n" 4 | 5 | single: '"Howdy!" he cried.' 6 | quoted: ' # Not a ''comment''.' 7 | tie-fighter: '|\-*-/|' -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-18-multi-line-flow-scalars.yaml: -------------------------------------------------------------------------------- 1 | plain: 2 | This unquoted scalar 3 | spans many lines. 4 | 5 | quoted: "So does this 6 | quoted scalar.\n" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-19-integers.yaml: -------------------------------------------------------------------------------- 1 | canonical: 12345 2 | decimal: +12345 3 | octal: 0o14 4 | hexadecimal: 0xC -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-2-mapping-scalars-to-scalars-player-statistics.yaml: -------------------------------------------------------------------------------- 1 | hr: 65 # Home runs 2 | avg: 0.278 # Batting average 3 | rbi: 147 # Runs Batted In -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-20-floating-point.yaml: -------------------------------------------------------------------------------- 1 | canonical: 1.23015e+3 2 | exponential: 12.3015e+02 3 | fixed: 1230.15 4 | negative infinity: -.inf 5 | not a number: .NaN -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-21-miscellaneous.yaml: -------------------------------------------------------------------------------- 1 | null: 2 | booleans: [ true, false ] 3 | string: '012345' -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-22-timestamps.yaml: -------------------------------------------------------------------------------- 1 | canonical: 2001-12-15T02:59:43.1Z 2 | iso8601: 2001-12-14t21:59:43.10-05:00 3 | spaced: 2001-12-14 21:59:43.10 -5 4 | date: 2002-12-14 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-23-various-explicit-tags.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | not-date: !!str 2002-04-28 3 | 4 | picture: !!binary | 5 | R0lGODlhDAAMAIQAAP//9/X 6 | 17unp5WZmZgAAAOfn515eXv 7 | Pz7Y6OjuDg4J+fn5OTk6enp 8 | 56enmleECcgggoBADs= 9 | 10 | application specific tag: !something | 11 | The semantics of the tag 12 | above may be different for 13 | different documents. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-24-global-tags.yaml: -------------------------------------------------------------------------------- 1 | %TAG ! tag:clarkevans.com,2002: 2 | --- !shape 3 | # Use the ! handle for presenting 4 | # tag:clarkevans.com,2002:circle 5 | - !circle 6 | center: &ORIGIN {x: 73, y: 129} 7 | radius: 7 8 | - !line 9 | start: *ORIGIN 10 | finish: { x: 89, y: 102 } 11 | - !label 12 | start: *ORIGIN 13 | color: 0xFFEEBB 14 | text: Pretty vector drawing. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-25-unordered-sets.yaml: -------------------------------------------------------------------------------- 1 | # Sets are represented as a 2 | # Mapping where each key is 3 | # associated with a null value 4 | --- !!set 5 | ? Mark McGwire 6 | ? Sammy Sosa 7 | ? Ken Griff -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-26-ordered-mappings.yaml: -------------------------------------------------------------------------------- 1 | # Ordered maps are represented as 2 | # A sequence of mappings, with 3 | # each mapping having one key 4 | --- !!omap 5 | - Mark McGwire: 65 6 | - Sammy Sosa: 63 7 | - Ken Griffy: 58 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-27-invoice.yaml: -------------------------------------------------------------------------------- 1 | --- ! 2 | invoice: 34843 3 | date : 2001-01-23 4 | bill-to: &id001 5 | given : Chris 6 | family : Dumars 7 | address: 8 | lines: | 9 | 458 Walkman Dr. 10 | Suite #292 11 | city : Royal Oak 12 | state : MI 13 | postal : 48046 14 | ship-to: *id001 15 | product: 16 | - sku : BL394D 17 | quantity : 4 18 | description : Basketball 19 | price : 450.00 20 | - sku : BL4438H 21 | quantity : 1 22 | description : Super Hoop 23 | price : 2392.00 24 | tax : 251.42 25 | total: 4443.52 26 | comments: 27 | Late afternoon is best. 28 | Backup contact is Nancy 29 | Billsmer @ 338-4338. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-28-log-file.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | Time: 2001-11-23 15:01:42 -5 3 | User: ed 4 | Warning: 5 | This is an error message 6 | for the log file 7 | --- 8 | Time: 2001-11-23 15:02:31 -5 9 | User: ed 10 | Warning: 11 | A slightly different error 12 | message. 13 | --- 14 | Date: 2001-11-23 15:03:17 -5 15 | User: ed 16 | Fatal: 17 | Unknown variable "bar" 18 | Stack: 19 | - file: TopClass.py 20 | line: 23 21 | code: | 22 | x = MoreObject("345\n") 23 | - file: MoreClass.py 24 | line: 58 25 | code: |- 26 | foo = bar -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-3-mapping-scalars-to-sequences-ball-clubs-in-each-league.yaml: -------------------------------------------------------------------------------- 1 | american: 2 | - Boston Red Sox 3 | - Detroit Tigers 4 | - New York Yankees 5 | national: 6 | - New York Mets 7 | - Chicago Cubs 8 | - Atlanta Braves -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-4-sequence-of-mappings-players-statistics.yaml: -------------------------------------------------------------------------------- 1 | - 2 | name: Mark McGwire 3 | hr: 65 4 | avg: 0.278 5 | - 6 | name: Sammy Sosa 7 | hr: 63 8 | avg: 0.288 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-5-sequence-of-sequences.yaml: -------------------------------------------------------------------------------- 1 | - [name , hr, avg ] 2 | - [Mark McGwire, 65, 0.278] 3 | - [Sammy Sosa , 63, 0.288] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-6-mapping-of-mappings.yaml: -------------------------------------------------------------------------------- 1 | Mark McGwire: {hr: 65, avg: 0.278} 2 | Sammy Sosa: { 3 | hr: 63, 4 | avg: 0.288 5 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-7-two-documents-in-a-stream-each-with-a-leading-comment.yaml: -------------------------------------------------------------------------------- 1 | # Ranking of 1998 home runs 2 | --- 3 | - Mark McGwire 4 | - Sammy Sosa 5 | - Ken Griffey 6 | 7 | # Team ranking 8 | --- 9 | - Chicago Cubs 10 | - St Louis Cardinals -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-8-play-by-play-feed-from-a-game.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | time: 20:03:20 3 | player: Sammy Sosa 4 | action: strike (miss) 5 | ... 6 | --- 7 | time: 20:03:47 8 | player: Sammy Sosa 9 | action: grand slam 10 | ... -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-2-9-single-document-with-two-comments.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | hr: # 1998 hr ranking 3 | - Mark McGwire 4 | - Sammy Sosa 5 | rbi: 6 | # 1998 rbi ranking 7 | - Sammy Sosa 8 | - Ken Griffey -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-1-byte-order-mark.yaml: -------------------------------------------------------------------------------- 1 | ⇔# Comment only. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-10-invalid-use-of-reserved-indicators.yaml: -------------------------------------------------------------------------------- 1 | commercial-at: @text 2 | grave-accent: `text -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-11-line-break-characters.yaml: -------------------------------------------------------------------------------- 1 | | 2 | Line break (no glyph) 3 | Line break (glyphed) -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-12-tabs-and-spaces.yaml: -------------------------------------------------------------------------------- 1 | # Tabs and spaces 2 | quoted: "Quoted →" 3 | block:→| 4 | void main() { 5 | →printf("Hello, world!\n"); 6 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-13-escaped-characters.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-13-escaped-characters.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-14-invalid-escaped-characters.yaml: -------------------------------------------------------------------------------- 1 | Bad escapes: 2 | "\c 3 | \xq-" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-2-invalid-byte-order-mark.yaml: -------------------------------------------------------------------------------- 1 | - Invalid use of BOM 2 | ⇔ 3 | - Inside a document. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-3-block-structure-indicators.yaml: -------------------------------------------------------------------------------- 1 | sequence: 2 | - one 3 | - two 4 | mapping: 5 | ? sky 6 | : blue 7 | sea : green -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-4-flow-collection-indicators.yaml: -------------------------------------------------------------------------------- 1 | sequence: [ one, two, ] 2 | mapping: { sky: blue, sea: green } -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-5-comment-indicator.yaml: -------------------------------------------------------------------------------- 1 | # Comment only. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-6-node-property-indicators.yaml: -------------------------------------------------------------------------------- 1 | anchored: !local &anchor value 2 | alias: *anchor -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-7-block-scalar-indicators.yaml: -------------------------------------------------------------------------------- 1 | literal: | 2 | some 3 | text 4 | folded: > 5 | some 6 | text -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-8-quoted-scalar-indicators.yaml: -------------------------------------------------------------------------------- 1 | single: 'text' 2 | double: "text" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-5-9-directive-indicator.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- text -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-1-indentation-spaces.yaml: -------------------------------------------------------------------------------- 1 | # Leading comment line spaces are 2 | # neither content nor indentation. 3 | 4 | Not indented: 5 | By one space: | 6 | By four 7 | spaces 8 | Flow style: [ # Leading spaces 9 | By two, # in flow style 10 | Also by two, # are neither 11 | →Still by two # content nor 12 | ] # indentation. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-10-comment-lines.yaml: -------------------------------------------------------------------------------- 1 | # Comment 2 | 3 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-11-multi-line-comments.yaml: -------------------------------------------------------------------------------- 1 | key: # Comment 2 | # lines 3 | value 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-12-separation-spaces.yaml: -------------------------------------------------------------------------------- 1 | { first: Sammy, last: Sosa }: 2 | # Statistics: 3 | hr: # Home runs 4 | 65 5 | avg: # Average 6 | 0.278 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-13-reserved-directives.yaml: -------------------------------------------------------------------------------- 1 | %FOO bar baz # Should be ignored 2 | # with a warning. 3 | --- "foo" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-14-yaml-directive.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.3 # Attempt parsing 2 | # with a warning 3 | --- 4 | "foo" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-15-invalid-repeated-yaml-directive.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | %YAML 1.1 3 | foo -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-16-tag-directive.yaml: -------------------------------------------------------------------------------- 1 | %TAG !yaml! tag:yaml.org,2002: 2 | --- 3 | !yaml!str "foo" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-17-invalid-repeated-tag-directive.yaml: -------------------------------------------------------------------------------- 1 | %TAG ! !foo 2 | %TAG ! !foo 3 | bar -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-18-primary-tag-handle.yaml: -------------------------------------------------------------------------------- 1 | # Private 2 | !foo "bar" 3 | ... 4 | # Global 5 | %TAG ! tag:example.com,2000:app/ 6 | --- 7 | !foo "bar" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-19-secondary-tag-handle.yaml: -------------------------------------------------------------------------------- 1 | %TAG !! tag:example.com,2000:app/ 2 | --- 3 | !!int 1 - 3 # Interval, not integer -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-2-indentation-indicators.yaml: -------------------------------------------------------------------------------- 1 | ? a 2 | : -→b 3 | - -→c 4 | - d -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-20-tag-handles.yaml: -------------------------------------------------------------------------------- 1 | %TAG !e! tag:example.com,2000:app/ 2 | --- 3 | !e!foo "bar" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-21-local-tag-prefix.yaml: -------------------------------------------------------------------------------- 1 | %TAG !m! !my- 2 | --- # Bulb here 3 | !m!light fluorescent 4 | ... 5 | %TAG !m! !my- 6 | --- # Color here 7 | !m!light green -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-22-global-tag-prefix.yaml: -------------------------------------------------------------------------------- 1 | %TAG !e! tag:example.com,2000:app/ 2 | --- 3 | - !e!foo "bar" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-23-node-properties.yaml: -------------------------------------------------------------------------------- 1 | !!str &a1 "foo": 2 | !!str bar 3 | &a2 baz : *a1 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-24-verbatim-tags.yaml: -------------------------------------------------------------------------------- 1 | ! foo : 2 | ! baz -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-25-invalid-verbatim-tags.yaml: -------------------------------------------------------------------------------- 1 | - ! foo 2 | - !<$:?> bar -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-26-tag-shorthands.yaml: -------------------------------------------------------------------------------- 1 | %TAG !e! tag:example.com,2000:app/ 2 | --- 3 | - !local foo 4 | - !!str bar 5 | - !e!tag%21 baz -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-27-invalid-tag-shorthands.yaml: -------------------------------------------------------------------------------- 1 | %TAG !e! tag:example,2000:app/ 2 | --- 3 | - !e! foo 4 | - !h!bar baz -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-28-non-specific-tags.yaml: -------------------------------------------------------------------------------- 1 | # Assuming conventional resolution: 2 | - "12" 3 | - 12 4 | - ! 12 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-29-node-anchors.yaml: -------------------------------------------------------------------------------- 1 | First occurrence: &anchor Value 2 | Second occurrence: *anchor -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-3-separation-spaces.yaml: -------------------------------------------------------------------------------- 1 | - foo:→ bar 2 | - - baz 3 | -→baz -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-4-line-prefixes.yaml: -------------------------------------------------------------------------------- 1 | plain: text 2 | lines 3 | quoted: "text 4 | →lines" 5 | block: | 6 | text 7 | →lines -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-5-empty-lines.yaml: -------------------------------------------------------------------------------- 1 | Folding: 2 | "Empty line 3 | → 4 | as a line feed" 5 | Chomping: | 6 | Clipped empty lines 7 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-6-line-folding.yaml: -------------------------------------------------------------------------------- 1 | >- 2 | trimmed 3 | 4 | 5 | 6 | as 7 | space -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-7-block-folding.yaml: -------------------------------------------------------------------------------- 1 | > 2 | foo 3 | 4 | → bar 5 | 6 | baz -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-8-flow-folding.yaml: -------------------------------------------------------------------------------- 1 | " 2 | foo 3 | 4 | → bar 5 | 6 | baz" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-6-9-separated-comment.yaml: -------------------------------------------------------------------------------- 1 | key: # Comment 2 | valueeof -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-1-alias-nodes.yaml: -------------------------------------------------------------------------------- 1 | First occurrence: &anchor Foo 2 | Second occurrence: *anchor 3 | Override anchor: &anchor Bar 4 | Reuse anchor: *anchor -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-10-plain-characters.yaml: -------------------------------------------------------------------------------- 1 | # Outside flow collection: 2 | - ::vector 3 | - ": - ()" 4 | - Up, up, and away! 5 | - -123 6 | - http://example.com/foo#bar 7 | # Inside flow collection: 8 | - [ ::vector, 9 | ": - ()", 10 | "Up, up and away!", 11 | -123, 12 | http://example.com/foo#bar ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-11-plain-implicit-keys.yaml: -------------------------------------------------------------------------------- 1 | implicit block key : [ 2 | implicit flow key : value, 3 | ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-12-plain-lines.yaml: -------------------------------------------------------------------------------- 1 | 1st non-empty 2 | 3 | 2nd non-empty 4 | →3rd non-empty -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-13-flow-sequence.yaml: -------------------------------------------------------------------------------- 1 | - [ one, two, ] 2 | - [three ,four] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-14-flow-sequence-entries.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | "double 3 | quoted", 'single 4 | quoted', 5 | plain 6 | text, [ nested ], 7 | single: pair, 8 | ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-15-flow-mappings.yaml: -------------------------------------------------------------------------------- 1 | - { one : two , three: four , } 2 | - {five: six,seven : eight} -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-16-flow-mapping-entries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-16-flow-mapping-entries.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-17-flow-mapping-separate-values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-17-flow-mapping-separate-values.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-18-flow-mapping-adjacent-values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-18-flow-mapping-adjacent-values.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-19-single-pair-flow-mappings.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | foo: bar 3 | ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-2-empty-content.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-2-empty-content.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-20-single-pair-explicit-entry.yaml: -------------------------------------------------------------------------------- 1 | [ 2 | ? foo 3 | bar : baz 4 | ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-21-single-pair-implicit-entries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-21-single-pair-implicit-entries.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-22-invalid-implicit-keys.yaml: -------------------------------------------------------------------------------- 1 | [ foo 2 | bar: invalid, 3 | "foo...>1K characters...bar": invalid ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-23-flow-content.yaml: -------------------------------------------------------------------------------- 1 | - [ a, b ] 2 | - { a: b } 3 | - "a" 4 | - 'b' 5 | - c -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-24-flow-nodes.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-24-flow-nodes.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-3-completely-empty-flow-nodes.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-3-completely-empty-flow-nodes.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-4-double-quoted-implicit-keys.yaml: -------------------------------------------------------------------------------- 1 | "implicit block key" : [ 2 | "implicit flow key" : value, 3 | ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-5-double-quoted-line-breaks.yaml: -------------------------------------------------------------------------------- 1 | "folded 2 | to a space,→ 3 | 4 | to a line feed, or →\ 5 | \ →non-content" -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-6-double-quoted-lines.yaml: -------------------------------------------------------------------------------- 1 | " 1st non-empty 2 | 3 | 2nd non-empty 4 | →3rd non-empty " -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-7-single-quoted-characters.yaml: -------------------------------------------------------------------------------- 1 | 'here''s to "quotes"' -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-8-single-quoted-implicit-keys.yaml: -------------------------------------------------------------------------------- 1 | 'implicit block key' : [ 2 | 'implicit flow key' : value, 3 | ] -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-7-9-single-quoted-lines.yaml: -------------------------------------------------------------------------------- 1 | ' 1st non-empty 2 | 3 | 2nd non-empty 4 | →3rd non-empty ' -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-1-block-scalar-header.yaml: -------------------------------------------------------------------------------- 1 | - |# Empty header 2 | literal 3 | - >1 # Indentation indicator 4 | folded 5 | - |+ # Chomping indicator 6 | keep 7 | 8 | - >1- # Both indicators 9 | strip -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-10-folded-lines.yaml: -------------------------------------------------------------------------------- 1 | > 2 | 3 | folded 4 | line 5 | 6 | next 7 | line 8 | * bullet 9 | 10 | * list 11 | * lines 12 | 13 | last 14 | line 15 | 16 | # Comment -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-11-more-indented-lines.yaml: -------------------------------------------------------------------------------- 1 | > 2 | 3 | folded 4 | line 5 | 6 | next 7 | line 8 | * bullet 9 | 10 | * list 11 | * lines 12 | 13 | last 14 | line 15 | 16 | # Comment -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-12-empty-separation-lines.yaml: -------------------------------------------------------------------------------- 1 | > 2 | 3 | folded 4 | line 5 | 6 | next 7 | line 8 | * bullet 9 | 10 | * list 11 | * line 12 | 13 | last 14 | line 15 | 16 | # Comment -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-13-final-empty-lines.yaml: -------------------------------------------------------------------------------- 1 | > 2 | folded 3 | line 4 | 5 | next 6 | line 7 | * bullet 8 | 9 | * list 10 | * line 11 | 12 | last 13 | line 14 | 15 | # Comment -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-14-block-sequence.yaml: -------------------------------------------------------------------------------- 1 | block sequence: 2 | - one 3 | - two : three -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-15-block-sequence-entry-types.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-15-block-sequence-entry-types.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-16-block-mappings.yaml: -------------------------------------------------------------------------------- 1 | block mapping: 2 | key: value -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-17-explicit-block-mapping-entries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-17-explicit-block-mapping-entries.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-18-implicit-block-mapping-entries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-18-implicit-block-mapping-entries.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-19-compact-block-mappings.yaml: -------------------------------------------------------------------------------- 1 | - sun: yellow 2 | - ? earth: blue 3 | : moon: white -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-2-block-indentation-indicator.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-2-block-indentation-indicator.yaml -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-20-block-node-types.yaml: -------------------------------------------------------------------------------- 1 | - 2 | "flow in block" 3 | - > 4 | Block scalar 5 | - !!map # Block collection 6 | foo : bar -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-21-block-scalar-nodes.yaml: -------------------------------------------------------------------------------- 1 | literal: |2 2 | value 3 | folded: 4 | !foo 5 | >1 6 | value -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-22-block-collection-nodes.yaml: -------------------------------------------------------------------------------- 1 | sequence:!!seq 2 | - entry 3 | - !!seq 4 | - nested 5 | mapping:!!map 6 | foo: bar -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-3-invalid-block-scalar-indentation-indicators.yaml: -------------------------------------------------------------------------------- 1 | - | 2 | 3 | text 4 | - > 5 | text 6 | text 7 | - |2 8 | text -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-4-chomping-final-line-break.yaml: -------------------------------------------------------------------------------- 1 | strip: |- 2 | text 3 | clip: | 4 | text 5 | keep: |+ 6 | text -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-5-chomping-trailing-lines.yaml: -------------------------------------------------------------------------------- 1 | # Strip 2 | # Comments: 3 | strip: |- 4 | # text 5 | ⇓ 6 | # Clip 7 | # comments: 8 | 9 | clip: | 10 | # text 11 | 12 | # Keep 13 | # comments: 14 | 15 | keep: |+ 16 | # text 17 | 18 | # Trail 19 | # comments. -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-6-empty-scalar-chomping.yaml: -------------------------------------------------------------------------------- 1 | strip: >- 2 | 3 | clip: > 4 | 5 | keep: |+ 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-7-literal-scalar.yaml: -------------------------------------------------------------------------------- 1 | | 2 | literal 3 | →text 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-8-literal-content.yaml: -------------------------------------------------------------------------------- 1 | | 2 | 3 | 4 | literal 5 | 6 | 7 | text 8 | 9 | # Comment -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-8-9-folded-scalar.yaml: -------------------------------------------------------------------------------- 1 | > 2 | folded 3 | text 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-9-1-document-prefix.yaml: -------------------------------------------------------------------------------- 1 | ⇔# Comment 2 | # lines 3 | Document -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-9-2-document-markers.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | Document 4 | ... # Suffix -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-9-3-bare-documents.yaml: -------------------------------------------------------------------------------- 1 | Bare 2 | document 3 | ... 4 | # No document 5 | ... 6 | | 7 | %!PS-Adobe-2.0 # Not the first line -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-9-4-explicit-documents.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | { matches 3 | % : 20 } 4 | ... 5 | --- 6 | # Empty 7 | ... -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-9-5-directives-documents.yaml: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- | 3 | %!PS-Adobe-2.0 4 | ... 5 | %YAML1.2 6 | --- 7 | # Empty 8 | ... -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/spec12-example-9-6-stream.yaml: -------------------------------------------------------------------------------- 1 | Document 2 | --- 3 | # Empty 4 | ... 5 | %YAML 1.2 6 | --- 7 | matches %: 20 -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/test/yaml/strange-keys.yaml: -------------------------------------------------------------------------------- 1 | # http://yaml.kwiki.org/index.cgi?YtsStrangeKeys 2 | 3 | --- 4 | type: meta 5 | description: | 6 | Test parsing of "not nice" mapping keys. 7 | default-type: load-expect 8 | perl: fail 9 | ruby: 0.40 10 | python: skip 11 | 12 | # The tests themselves come below. One per YAML document. 13 | --- 14 | name: Quoted line noise key 15 | type: load-expect 16 | brief: | 17 | Check that quoted line noise parses as key. 18 | yaml: | 19 | --- 20 | "!@#%" : bar baz 21 | perl: | 22 | {'!@#%' => 'bar baz'} 23 | ruby: | 24 | {'!@#%', 'bar baz'} 25 | 26 | --- 27 | name: Unquoted line noise key 28 | brief: | 29 | Check that unquoted line noise parses as key. 30 | This requires the line noise be tame enough 31 | to pass as an implicit plain key. 32 | yaml: | 33 | --- 34 | -+!@#% : bar baz 35 | perl: | 36 | {'-+!@#%' => 'bar baz'} 37 | ruby: | 38 | {'-+!@#%', 'bar baz'} -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006 Kirill Simonov 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Run `./bootstrap` to generate the "Makefile.in" files in this directory and 2 | ## the "$SUBDIRS" subdirectories. 3 | 4 | SUBDIRS = include src . tests win32 5 | 6 | EXTRA_DIST = README LICENSE doc/doxygen.cfg 7 | 8 | pkgconfigdir = $(libdir)/pkgconfig 9 | pkgconfig_DATA = yaml-0.1.pc 10 | 11 | maintainer-clean-local: 12 | -rm -f aclocal.m4 config.h.in configure config/* 13 | -find ${builddir} -name Makefile.in -exec rm -f '{}' ';' 14 | 15 | .PHONY: bootstrap 16 | bootstrap: maintainer-clean 17 | ./bootstrap 18 | 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/README: -------------------------------------------------------------------------------- 1 | LibYAML - A C library for parsing and emitting YAML. 2 | 3 | To build and install the library, run: 4 | $ ./configure 5 | $ make 6 | # make install 7 | 8 | If you checked the source code from the Subversion repository, run 9 | $ ./bootstrap 10 | $ ./configure 11 | $ make 12 | # make install 13 | 14 | For more information, check the LibYAML homepage: 15 | 'http://pyyaml.org/wiki/LibYAML'. 16 | 17 | Post your questions and opinions to the YAML-Core mailing list: 18 | 'http://lists.sourceforge.net/lists/listinfo/yaml-core'. 19 | 20 | Submit bug reports and feature requests to the LibYAML bug tracker: 21 | 'http://pyyaml.org/newticket?component=libyaml'. 22 | 23 | LibYAML is written by Kirill Simonov . It is released 24 | under the MIT license. See the file LICENSE for more details. 25 | 26 | This project is developed for Python Software Foundation as a part of 27 | Google Summer of Code under the mentorship of Clark Evans. 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/bc_s.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/closed.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/doxygen.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/nav_f.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/nav_h.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/open.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_a.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_b.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_h.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tab_s.png -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | } 7 | 8 | .tabs2 { 9 | font-size: 10px; 10 | } 11 | .tabs3 { 12 | font-size: 9px; 13 | } 14 | 15 | .tablist { 16 | margin: 0; 17 | padding: 0; 18 | display: table; 19 | } 20 | 21 | .tablist li { 22 | float: left; 23 | display: table-cell; 24 | background-image: url('tab_b.png'); 25 | line-height: 36px; 26 | list-style: none; 27 | } 28 | 29 | .tablist a { 30 | display: block; 31 | padding: 0 20px; 32 | font-weight: bold; 33 | background-image:url('tab_s.png'); 34 | background-repeat:no-repeat; 35 | background-position:right; 36 | color: #283A5D; 37 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 38 | text-decoration: none; 39 | outline: none; 40 | } 41 | 42 | .tabs3 .tablist a { 43 | padding: 0 10px; 44 | } 45 | 46 | .tablist a:hover { 47 | background-image: url('tab_h.png'); 48 | background-repeat:repeat-x; 49 | color: #fff; 50 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 51 | text-decoration: none; 52 | } 53 | 54 | .tablist li.current a { 55 | background-image: url('tab_a.png'); 56 | background-repeat:repeat-x; 57 | color: #fff; 58 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 59 | } 60 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/include/Makefile.am: -------------------------------------------------------------------------------- 1 | INCLUDES = yaml.h 2 | DOXYGEN_CFG = $(top_srcdir)/doc/doxygen.cfg 3 | 4 | nobase_include_HEADERS = $(INCLUDES) 5 | 6 | if DOXYGEN 7 | 8 | html: $(INCLUDES) $(DOXYGEN_CFG) 9 | PACKAGE=$(PACKAGE) VERSION=$(VERSION) top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) doxygen $(DOXYGEN_CFG) 10 | 11 | endif 12 | 13 | maintainer-clean-local: 14 | -rm -rf $(top_builddir)/doc/html 15 | 16 | dist-hook: html 17 | cp -a $(top_builddir)/doc/html $(top_distdir)/doc 18 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/src/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | lib_LTLIBRARIES = libyaml.la 3 | libyaml_la_SOURCES = yaml_private.h api.c reader.c scanner.c parser.c loader.c writer.c emitter.c dumper.c 4 | libyaml_la_LDFLAGS = -release $(YAML_LT_RELEASE) -version-info $(YAML_LT_CURRENT):$(YAML_LT_REVISION):$(YAML_LT_AGE) 5 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/tests/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = -I$(top_srcdir)/include 2 | #AM_CFLAGS = -Wno-pointer-sign 3 | LDADD = $(top_builddir)/src/libyaml.la 4 | TESTS = test-version test-reader 5 | check_PROGRAMS = test-version test-reader 6 | noinst_PROGRAMS = run-scanner run-parser run-loader run-emitter run-dumper \ 7 | example-reformatter example-reformatter-alt \ 8 | example-deconstructor example-deconstructor-alt 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/tests/test-version.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | 6 | #ifdef NDEBUG 7 | #undef NDEBUG 8 | #endif 9 | #include 10 | 11 | int 12 | main(void) 13 | { 14 | int major = -1; 15 | int minor = -1; 16 | int patch = -1; 17 | char buf[64]; 18 | 19 | yaml_get_version(&major, &minor, &patch); 20 | sprintf(buf, "%d.%d.%d", major, minor, patch); 21 | assert(strcmp(buf, yaml_get_version_string()) == 0); 22 | 23 | /* Print structure sizes. */ 24 | printf("sizeof(token) = %d\n", sizeof(yaml_token_t)); 25 | printf("sizeof(event) = %d\n", sizeof(yaml_event_t)); 26 | printf("sizeof(parser) = %d\n", sizeof(yaml_parser_t)); 27 | 28 | return 0; 29 | } 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/win32/config.h: -------------------------------------------------------------------------------- 1 | #define YAML_VERSION_MAJOR 0 2 | #define YAML_VERSION_MINOR 1 3 | #define YAML_VERSION_PATCH 4 4 | #define YAML_VERSION_STRING "0.1.4" 5 | -------------------------------------------------------------------------------- /Carthage/Checkouts/YAML.framework/yaml-0.1.4/yaml-0.1.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | includedir=@includedir@ 4 | libdir=@libdir@ 5 | 6 | Name: LibYAML 7 | Description: Library to parse and emit YAML 8 | Version: @PACKAGE_VERSION@ 9 | Cflags: 10 | Libs: -L${libdir} -lyaml 11 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://ruby.taobao.org" 2 | 3 | gem 'cocoapods', '1.0.1' 4 | -------------------------------------------------------------------------------- /Library/Aspects/Aspects.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "Aspects" 3 | s.version = "0.0.1" 4 | s.summary = "Aspects" 5 | s.description = <<-DESC 6 | Aspects swift. 7 | DESC 8 | s.homepage = "http://icodesign.me" 9 | s.license = "MIT" 10 | s.author = { "iCodesign" => "leimagnet@gmail.com" } 11 | s.platform = :ios, "8.0" 12 | s.source = { :path => "." } 13 | s.source_files = "Aspects", "Aspects/**/*.{h,m,swift}" 14 | s.exclude_files = "Aspects/Exclude" 15 | end 16 | -------------------------------------------------------------------------------- /Library/Aspects/Aspects.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Library/Aspects/Aspects/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Library/Aspects/Aspects/Source/Aspects.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Aspects.swift 3 | // Aspects 4 | // 5 | // Created by LEI on 12/12/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct Aspect { 12 | 13 | 14 | 15 | } 16 | 17 | public enum AspectOptions { 18 | case Before 19 | case After 20 | case Instead 21 | } 22 | 23 | public extension NSObject { 24 | 25 | public class func aspectHook(originalSelector: Selector, swizzledSelector: Selector, options: AspectOptions = .Instead) { 26 | let originalMethod = class_getInstanceMethod(self, originalSelector) 27 | let swizzledMethod = class_getInstanceMethod(self, swizzledSelector) 28 | 29 | let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)) 30 | 31 | if didAddMethod { 32 | class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)) 33 | } else { 34 | method_exchangeImplementations(originalMethod, swizzledMethod); 35 | } 36 | } 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /Library/Aspects/AspectsTests/AspectsTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AspectsTests.swift 3 | // AspectsTests 4 | // 5 | // Created by LEI on 12/12/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import Aspects 11 | 12 | class AspectsTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Library/Aspects/AspectsTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "ICSMainFramework" 3 | s.version = "0.0.1" 4 | s.summary = "ICSMainFramework" 5 | s.description = <<-DESC 6 | ICSMainFramework. 7 | DESC 8 | s.homepage = "http://icodesign.me" 9 | s.license = "MIT" 10 | s.author = { "iCodesign" => "leimagnet@gmail.com" } 11 | s.platform = :ios, "8.0" 12 | s.source = { :path => "." } 13 | s.source_files = "ICSMainFramework", "ICSMainFramework/**/*.{h,m,swift}" 14 | s.exclude_files = "ICSMainFramework/Exclude" 15 | end 16 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework/AppEnvironment.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppConfig.swift 3 | // ICSMainFramework 4 | // 5 | // Created by LEI on 5/14/15. 6 | // Copyright (c) 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct AppEnv { 12 | // App Name 13 | // App Version 14 | // App Build 15 | public static var version: String { 16 | return NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String 17 | } 18 | 19 | public static var fullVersion: String { 20 | return "\(AppEnv.version) Build \(AppEnv.build)" 21 | } 22 | 23 | public static var build: String { 24 | return NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String 25 | } 26 | 27 | public static var countryCode: String { 28 | return NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as? String ?? "US" 29 | } 30 | 31 | public static var languageCode: String { 32 | return NSLocale.currentLocale().objectForKey(NSLocaleLanguageCode) as? String ?? "en" 33 | } 34 | 35 | public static var appName: String { 36 | return NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleDisplayName") as! String 37 | } 38 | 39 | 40 | } -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework/AppLifeCycle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppInitialize.swift 3 | // ICSMainFramework 4 | // 5 | // Created by LEI on 5/14/15. 6 | // Copyright (c) 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @objc public protocol AppLifeCycleProtocol: UIApplicationDelegate { 12 | 13 | } 14 | 15 | 16 | public struct AppLifeCycleItem { 17 | 18 | public var object: AppLifeCycleProtocol? 19 | 20 | init?(dictionary: [String: AnyObject]) { 21 | if let objectString = dictionary["object"] as? String { 22 | object = OBJCObjectFactory.create(objectString) as? AppLifeCycleProtocol 23 | } 24 | if object == nil { 25 | return nil 26 | } 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework/ICSMainFramework.h: -------------------------------------------------------------------------------- 1 | // 2 | // ICSMainFramework.h 3 | // ICSMainFramework 4 | // 5 | // Created by LEI on 3/1/15. 6 | // Copyright (c) 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for ICSMainFramework. 12 | FOUNDATION_EXPORT double ICSMainFrameworkVersionNumber; 13 | 14 | //! Project version string for ICSMainFramework. 15 | FOUNDATION_EXPORT const unsigned char ICSMainFrameworkVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | #import "OBJCObjectFactory.h" -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.touchingapp.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework/OBJCObjectFactory.h: -------------------------------------------------------------------------------- 1 | // 2 | // ObjectInitializeHelper.h 3 | // ICSMainFramework 4 | // 5 | // Created by LEI on 5/14/15. 6 | // Copyright (c) 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface OBJCObjectFactory : NSObject 12 | 13 | /** 14 | Instantiates the specified class, which must 15 | descend (dircectly or indirectly) from NSObject. 16 | Uses the class's parameterless initializer. 17 | */ 18 | + (id)create:(NSString *)className; 19 | 20 | /** 21 | Instantiates the specified class, which must 22 | descend (dircectly or indirectly) from NSObject. 23 | Uses the specified initializer, passing it the 24 | argument provided via the `argument` parameter. 25 | */ 26 | + (id)create:(NSString *)className 27 | initializer:(SEL)initializer 28 | argument:(id)argument; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFramework/OBJCObjectFactory.m: -------------------------------------------------------------------------------- 1 | // 2 | // ObjectInitializeHelper.m 3 | // ICSMainFramework 4 | // 5 | // Created by LEI on 5/14/15. 6 | // Copyright (c) 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import "OBJCObjectFactory.h" 10 | 11 | static id OBJCInitWithArg(id target, 12 | SEL initializer, 13 | id argument) 14 | { 15 | IMP imp = [target methodForSelector:initializer]; 16 | id (*initFunc)(id, SEL, id) = (void *)imp; 17 | return initFunc(target, initializer, argument); 18 | } 19 | 20 | @implementation OBJCObjectFactory 21 | 22 | + (id)create:(NSString *)className 23 | { 24 | return [NSClassFromString(className) new]; 25 | } 26 | 27 | + (id)create:(NSString *)className 28 | initializer:(SEL)init 29 | argument:(id)arg 30 | { 31 | Class class = NSClassFromString(className); 32 | return (class && init) 33 | ? OBJCInitWithArg([class alloc], init, arg) 34 | : nil; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFrameworkTests/ICSMainFrameworkTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ICSMainFrameworkTests.swift 3 | // ICSMainFrameworkTests 4 | // 5 | // Created by LEI on 3/1/15. 6 | // Copyright (c) 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import XCTest 11 | 12 | class ICSMainFrameworkTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | XCTAssert(true, "Pass") 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock() { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Library/ICSMainFramework/ICSMainFrameworkTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.touchingapp.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "ShadowPath" 3 | s.version = "0.1.0" 4 | s.summary = "Http and Socks proxy based on Privoxy and Antinat" 5 | s.description = <<-DESC 6 | Http and Socks proxy based on Privoxy and Antinat. 7 | DESC 8 | s.homepage = "http://icodesign.me" 9 | s.license = "GPLv2" 10 | s.author = { "iCodesign" => "leimagnet@gmail.com" } 11 | s.ios.deployment_target = '7.0' 12 | s.osx.deployment_target = '10.9' 13 | s.source_files = "ShadowPath", "ShadowPath/**/*.{c,h,m,swift}" 14 | s.libraries = "z" 15 | s.pod_target_xcconfig = { 16 | 'OTHER_CFLAGS' => '-DHAVE_CONFIG_H -DUSE_CRYPTO_OPENSSL -DLIB_ONLY -DUDPRELAY_LOCAL -DMODULE_LOCAL', 17 | # 'HEADER_SEARCH_PATHS' => '', 18 | } 19 | s.vendored_libraries = 'ShadowPath/Antinat/expat-lib/lib/libexpat.a', 'ShadowPath/shadowsocks-libev/libopenssl/lib/libcrypto.a', 'ShadowPath/shadowsocks-libev/libopenssl/lib/libssl.a', 'ShadowPath/shadowsocks-libev/libsodium-ios/lib/libsodium.a' 20 | end -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Antinat/client/an_core.h: -------------------------------------------------------------------------------- 1 | /* ANTINAT 2 | * ======= 3 | * This software is Copyright (c) 2003-05 Malcolm Smith. 4 | * No warranty is provided, including but not limited to 5 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6 | * This code is licenced subject to the GNU General 7 | * Public Licence (GPL). See the COPYING file for more. 8 | */ 9 | 10 | #include "antinat.h" 11 | #include "an_internals.h" 12 | 13 | int _an_generic_recv (ANCONN conn, void *buf, size_t len, int flags); 14 | int _an_generic_send (ANCONN conn, const void *buf, size_t len, int flags); 15 | int _an_generic_recv_all (ANCONN conn, void *buf, size_t len); 16 | int _an_generic_send_all (ANCONN conn, const void *buf, size_t len); 17 | 18 | int _an_generic_close (ANCONN conn); 19 | 20 | int _an_blocking_recv (ANCONN conn, void *buf, size_t len, int flags); 21 | int _an_blocking_send (ANCONN conn, const void *buf, size_t len, int flags); 22 | 23 | int _an_rawconnect (ANCONN conn); 24 | 25 | int _an_generic_getline (ANCONN conn, void *buf, size_t nbuf); 26 | int _an_getsockaddr (st_sock_info *info, SOCKADDR * sa, int sl); 27 | 28 | int _an_setsockaddr (st_sock_info *info, SOCKADDR * sa, int sl); 29 | int _an_setsockaddr_sock (st_sock_info *info, SOCKET s, int peer); 30 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Antinat/expat-lib/lib/libexpat.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Library/ShadowPath/ShadowPath/Antinat/expat-lib/lib/libexpat.a -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Antinat/server/AntinatServer.h: -------------------------------------------------------------------------------- 1 | // 2 | // AntinatServer.h 3 | // Potatso 4 | // 5 | // Created by LEI on 12/25/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AntinatServer : NSObject 12 | + (AntinatServer *)sharedServer; 13 | - (int)startWithConfig:(NSString *)config; 14 | - (void)stop; 15 | @end 16 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Antinat/server/AntinatServer.m: -------------------------------------------------------------------------------- 1 | // 2 | // AntinatServer.m 3 | // Potatso 4 | // 5 | // Created by LEI on 12/25/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import "AntinatServer.h" 10 | #import "an_main.h" 11 | #import "an_serv.h" 12 | 13 | @implementation AntinatServer 14 | 15 | + (AntinatServer *)sharedServer { 16 | static dispatch_once_t onceToken; 17 | static AntinatServer *server; 18 | dispatch_once(&onceToken, ^{ 19 | server = [AntinatServer new]; 20 | }); 21 | return server; 22 | } 23 | 24 | - (instancetype)init { 25 | self = [super init]; 26 | if (self){ 27 | conn_dict = [NSMutableDictionary dictionary]; 28 | } 29 | return self; 30 | } 31 | 32 | - (int)startWithConfig:(NSString *)config { 33 | int fd = an_setup([config UTF8String], (int)config.length); 34 | [NSThread detachNewThreadSelector:@selector(start) toTarget:self withObject:nil]; 35 | return fd; 36 | } 37 | 38 | - (void)start { 39 | an_main(); 40 | } 41 | 42 | - (void)stop { 43 | closeup(0); 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Antinat/server/an_main.h: -------------------------------------------------------------------------------- 1 | // 2 | // an_main.h 3 | // AntinatText 4 | // 5 | // Created by LEI on 12/20/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #ifndef an_main_h 10 | #define an_main_h 11 | 12 | int 13 | an_setup (const char *config_content, int config_content_size); 14 | 15 | int 16 | an_main (); 17 | 18 | void 19 | closeup (int x); 20 | 21 | #endif /* an_main_h */ 22 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/Privoxy/radix.h: -------------------------------------------------------------------------------- 1 | // 2 | // radix.h 3 | // ShadowPath 4 | // 5 | // Created by LEI on 5/22/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #ifndef radix_h 10 | #define radix_h 11 | 12 | #include 13 | #include 14 | 15 | #define RADIX_NO_VALUE (uint32_t)0 16 | 17 | typedef struct radix_node_st radix_node_t; 18 | 19 | struct radix_node_st { 20 | radix_node_t *right; 21 | radix_node_t *left; 22 | radix_node_t *parent; 23 | char value; 24 | }; 25 | 26 | typedef struct { 27 | radix_node_t *root; 28 | size_t size; 29 | } radix_tree_t; 30 | 31 | radix_tree_t *radix_tree_create(); 32 | 33 | int radix32tree_insert(radix_tree_t *tree, 34 | uint32_t key, uint32_t mask, char value); 35 | 36 | int radix32tree_delete(radix_tree_t *tree, 37 | uint32_t key, uint32_t mask); 38 | 39 | char radix32tree_find(radix_tree_t *tree, uint32_t key); 40 | void radix_tree_free(radix_tree_t *tree); 41 | 42 | #endif /* radix_h */ 43 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPath/ShadowPath.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShadowPath.h 3 | // ShadowPath 4 | // 5 | // Created by LEI on 5/16/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for ShadowPath. 12 | FOUNDATION_EXPORT double ShadowPathVersionNumber; 13 | 14 | //! Project version string for ShadowPath. 15 | FOUNDATION_EXPORT const unsigned char ShadowPathVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | #import "jcc.h" 20 | #import "project.h" 21 | #import "AntinatServer.h" 22 | #import "shadowsocks.h" 23 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPathDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ShadowPathDemo 4 | // 5 | // Created by LEI on 5/17/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPathDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPathDemo/Supporting Files/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ShadowPathDemo 4 | // 5 | // Created by LEI on 5/17/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPathDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // ShadowPathDemo 4 | // 5 | // Created by LEI on 5/17/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Library/ShadowPath/ShadowPathDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // ShadowPathDemo 4 | // 5 | // Created by LEI on 5/17/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "ShadowPath.h" 11 | 12 | @interface ViewController () 13 | 14 | @end 15 | 16 | @implementation ViewController 17 | 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | // Do any additional setup after loading the view, typically from a nib. 21 | // char *path = strdup([[[NSBundle mainBundle] pathForResource:@"config" ofType:@""] UTF8String]); 22 | // shadowpath_main(path); 23 | profile_t t; 24 | start_ss_local_server(t); 25 | } 26 | 27 | - (void)didReceiveMemoryWarning { 28 | [super didReceiveMemoryWarning]; 29 | // Dispose of any resources that can be recreated. 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /PacketProcessor/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 98 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /PacketProcessor/PacketProcessor.h: -------------------------------------------------------------------------------- 1 | // 2 | // PacketProcessor.h 3 | // PacketProcessor 4 | // 5 | // Created by LEI on 4/1/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for PacketProcessor. 12 | FOUNDATION_EXPORT double PacketProcessorVersionNumber; 13 | 14 | //! Project version string for PacketProcessor. 15 | FOUNDATION_EXPORT const unsigned char PacketProcessorVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | #import "TunnelInterface.h" -------------------------------------------------------------------------------- /PacketProcessor/TunnelInterface.h: -------------------------------------------------------------------------------- 1 | // 2 | // TunnelInterface.h 3 | // Potatso 4 | // 5 | // Created by LEI on 12/23/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @import NetworkExtension; 12 | 13 | #define TunnelMTU 1600 14 | #define kTun2SocksStoppedNotification @"kTun2SocksStoppedNotification" 15 | 16 | @interface TunnelInterface : NSObject 17 | + (TunnelInterface *)sharedInterface; 18 | + (NSError *)setupWithPacketTunnelFlow:(NEPacketTunnelFlow *)packetFlow; 19 | + (void)processPackets; 20 | + (void)writePacket: (NSData *)packet; 21 | + (void)startTun2Socks: (int)socksServerPort; 22 | + (void)stop; 23 | @end 24 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/base/BPending_list.h: -------------------------------------------------------------------------------- 1 | #define SLINKEDLIST_PARAM_NAME BPending__List 2 | #define SLINKEDLIST_PARAM_FEATURE_LAST 0 3 | #define SLINKEDLIST_PARAM_TYPE_ENTRY struct BSmallPending_s 4 | #define SLINKEDLIST_PARAM_MEMBER_NODE pending_node 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/flow/PacketPassFairQueue_tree.h: -------------------------------------------------------------------------------- 1 | #define SAVL_PARAM_NAME PacketPassFairQueue__Tree 2 | #define SAVL_PARAM_FEATURE_COUNTS 0 3 | #define SAVL_PARAM_FEATURE_NOKEYS 1 4 | #define SAVL_PARAM_TYPE_ENTRY struct PacketPassFairQueueFlow_s 5 | #define SAVL_PARAM_TYPE_ARG int 6 | #define SAVL_PARAM_FUN_COMPARE_ENTRIES(arg, entry1, entry2) compare_flows((entry1), (entry2)) 7 | #define SAVL_PARAM_MEMBER_NODE queued.tree_node 8 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BArpProbe.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BArpProbe 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BConnection.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BConnection 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BDHCPClient.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BDHCPClient 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BDHCPClientCore.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BDHCPClientCore 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BDatagram.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BDatagram 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BEncryption.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BEncryption 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BInputProcess.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BInputProcess 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BLockReactor.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BLockReactor 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BNetwork.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BNetwork 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BPredicate.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BPredicate 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BProcess.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BProcess 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BReactor.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BReactor 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BSSLConnection.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BSSLConnection 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BSignal.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BSignal 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BSocksClient.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BSocksClient 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BTap.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BTap 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BThreadSignal.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BThreadSignal 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BThreadWork.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BThreadWork 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BTime.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BTime 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_BUnixSignal.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_BUnixSignal 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_DPReceive.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_DPReceive 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_DPRelay.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_DPRelay 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_DataProto.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_DataProto 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_DatagramPeerIO.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_DatagramPeerIO 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_FragmentProtoAssembler.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_FragmentProtoAssembler 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_FrameDecider.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_FrameDecider 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_LineBuffer.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_LineBuffer 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_Listener.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_Listener 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDBuildProgram.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDBuildProgram 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDConfigParser.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDConfigParser 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDConfigTokenizer.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDConfigTokenizer 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDIfConfig.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDIfConfig 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDInterfaceMonitor.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDInterfaceMonitor 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDModuleIndex.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDModuleIndex 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDModuleProcess.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDModuleProcess 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDPlaceholderDb.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDPlaceholderDb 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDRequest.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDRequest 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDRequestClient.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDRequestClient 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDRfkillMonitor.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDRfkillMonitor 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDUdevCache.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDUdevCache 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDUdevManager.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDUdevManager 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDUdevMonitor.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDUdevMonitor 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDUdevMonitorParser.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDUdevMonitorParser 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDVal.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDVal 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDValGenerator.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDValGenerator 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_NCDValParser.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_NCDValParser 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_PRStreamSink.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_PRStreamSink 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_PRStreamSource.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_PRStreamSource 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_PacketProtoDecoder.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_PacketProtoDecoder 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_PasswordListener.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_PasswordListener 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_PeerChat.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_PeerChat 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_SPProtoDecoder.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_SPProtoDecoder 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ServerConnection.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ServerConnection 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_SocksUdpGwClient.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_SocksUdpGwClient 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_StreamPeerIO.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_StreamPeerIO 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_UdpGwClient.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_UdpGwClient 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_addr.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_addr 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_client.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_client 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_dostest_attacker.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_dostest_attacker 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_dostest_server.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_dostest_server 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_flooder.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_flooder 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_lwip.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_lwip 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_alias.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_alias 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_arithmetic.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_arithmetic 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_assert.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_assert 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_backtrack.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_backtrack 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_basic_functions.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_basic_functions 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_blocker.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_blocker 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_buffer.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_buffer 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_call2.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_call2 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_choose.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_choose 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_concat.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_concat 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_daemon.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_daemon 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_depend.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_depend 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_depend_scope.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_depend_scope 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_dynamic_depend.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_dynamic_depend 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_exit.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_exit 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_explode.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_explode 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_file.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_file 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_file_open.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_file_open 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_foreach.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_foreach 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_from_string.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_from_string 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_getargs.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_getargs 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_getenv.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_getenv 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_if.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_if 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_imperative.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_imperative 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_implode.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_implode 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_index.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_index 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_list.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_list 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_load_module.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_load_module 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_log.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_log 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_log_msg.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_log_msg 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_logical.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_logical 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_multidepend.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_multidepend 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_backend_badvpn.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_backend_badvpn 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_backend_rfkill.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_backend_rfkill 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_backend_waitdevice.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_backend_waitdevice 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_backend_waitlink.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_backend_waitlink 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_backend_wpa_supplicant.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_backend_wpa_supplicant 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_dns.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_dns 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_iptables.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_iptables 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv4_addr.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv4_addr 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv4_addr_in_network.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv4_addr_in_network 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv4_arp_probe.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv4_arp_probe 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv4_dhcp.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv4_dhcp 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv4_route.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv4_route 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv6_addr.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv6_addr 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv6_addr_in_network.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv6_addr_in_network 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv6_route.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv6_route 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_ipv6_wait_dynamic_addr.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_ipv6_wait_dynamic_addr 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_up.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_up 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_net_watch_interfaces.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_net_watch_interfaces 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_netmask.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_netmask 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_objref.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_objref 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_ondemand.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_ondemand 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_parse.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_parse 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_print.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_print 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_process_manager.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_process_manager 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_reboot.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_reboot 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_ref.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_ref 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_regex_match.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_regex_match 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_request.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_request 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_run.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_run 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_runonce.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_runonce 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sleep.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sleep 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_socket.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_socket 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_spawn.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_spawn 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_strcmp.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_strcmp 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_substr.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_substr 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_evdev.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_evdev 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_request_client.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_request_client 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_request_server.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_request_server 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_start_process.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_start_process 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_watch_directory.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_watch_directory 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_watch_input.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_watch_input 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_sys_watch_usb.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_sys_watch_usb 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_timer.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_timer 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_to_string.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_to_string 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_try.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_try 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_value.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_value 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_valuemetic.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_valuemetic 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_ncd_var.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_ncd_var 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_nsskey.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_nsskey 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_server.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_server 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_tun2socks.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_tun2socks 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/generated/blog_channel_udpgw.h: -------------------------------------------------------------------------------- 1 | #ifdef BLOG_CURRENT_CHANNEL 2 | #undef BLOG_CURRENT_CHANNEL 3 | #endif 4 | #define BLOG_CURRENT_CHANNEL BLOG_CHANNEL_udpgw 5 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/protocol/addr.bproto: -------------------------------------------------------------------------------- 1 | // message for an AddrProto address 2 | message addr { 3 | // address type. from addr.h 4 | required uint8 type = 1; 5 | // for IPv4 and IPv6 addresses, the port (network byte order) 6 | optional data("2") ip_port = 2; 7 | // for IPv4 addresses, the IP address 8 | optional data("4") ipv4_addr = 3; 9 | // for IPv6 addresses, the IP address 10 | optional data("16") ipv6_addr = 4; 11 | }; 12 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/structure/IndexedList_tree.h: -------------------------------------------------------------------------------- 1 | #define CAVL_PARAM_NAME IndexedList__Tree 2 | #define CAVL_PARAM_FEATURE_COUNTS 1 3 | #define CAVL_PARAM_FEATURE_KEYS_ARE_INDICES 1 4 | #define CAVL_PARAM_FEATURE_NOKEYS 0 5 | #define CAVL_PARAM_TYPE_ENTRY IndexedListNode 6 | #define CAVL_PARAM_TYPE_LINK IndexedList__tree_link 7 | #define CAVL_PARAM_TYPE_ARG int 8 | #define CAVL_PARAM_TYPE_COUNT uint64_t 9 | #define CAVL_PARAM_VALUE_COUNT_MAX UINT64_MAX 10 | #define CAVL_PARAM_VALUE_NULL ((IndexedList__tree_link)NULL) 11 | #define CAVL_PARAM_FUN_DEREF(arg, link) (link) 12 | #define CAVL_PARAM_MEMBER_CHILD tree_child 13 | #define CAVL_PARAM_MEMBER_BALANCE tree_balance 14 | #define CAVL_PARAM_MEMBER_PARENT tree_parent 15 | #define CAVL_PARAM_MEMBER_COUNT tree_count 16 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/structure/SAvl_tree.h: -------------------------------------------------------------------------------- 1 | #define CAVL_PARAM_NAME SAvl__Tree 2 | #define CAVL_PARAM_FEATURE_COUNTS SAVL_PARAM_FEATURE_COUNTS 3 | #define CAVL_PARAM_FEATURE_KEYS_ARE_INDICES 0 4 | #define CAVL_PARAM_FEATURE_NOKEYS SAVL_PARAM_FEATURE_NOKEYS 5 | #define CAVL_PARAM_TYPE_ENTRY SAvlEntry 6 | #define CAVL_PARAM_TYPE_LINK SAvl__TreeLink 7 | #define CAVL_PARAM_TYPE_KEY SAvlKey 8 | #define CAVL_PARAM_TYPE_ARG SAvlArg 9 | #define CAVL_PARAM_TYPE_COUNT SAvlCount 10 | #define CAVL_PARAM_VALUE_COUNT_MAX SAVL_PARAM_VALUE_COUNT_MAX 11 | #define CAVL_PARAM_VALUE_NULL ((SAvl__TreeLink)NULL) 12 | #define CAVL_PARAM_FUN_DEREF(arg, link) (link) 13 | #define CAVL_PARAM_FUN_COMPARE_ENTRIES(arg, entry1, entry2) SAVL_PARAM_FUN_COMPARE_ENTRIES((arg), (entry1).link, (entry2).link) 14 | #define CAVL_PARAM_FUN_COMPARE_KEY_ENTRY(arg, key1, entry2) SAVL_PARAM_FUN_COMPARE_KEY_ENTRY((arg), (key1), (entry2).link) 15 | #define CAVL_PARAM_MEMBER_CHILD SAVL_PARAM_MEMBER_NODE . child 16 | #define CAVL_PARAM_MEMBER_BALANCE SAVL_PARAM_MEMBER_NODE . balance 17 | #define CAVL_PARAM_MEMBER_PARENT SAVL_PARAM_MEMBER_NODE . parent 18 | #define CAVL_PARAM_MEMBER_COUNT SAVL_PARAM_MEMBER_NODE . count 19 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/system/BReactor.h: -------------------------------------------------------------------------------- 1 | #if defined(BADVPN_BREACTOR_BADVPN) + defined(BADVPN_BREACTOR_GLIB) + defined(BADVPN_BREACTOR_EMSCRIPTEN) != 1 2 | #error No reactor backend or too many reactor backens 3 | #endif 4 | 5 | #if defined(BADVPN_BREACTOR_BADVPN) 6 | #include "BReactor_badvpn.h" 7 | #elif defined(BADVPN_BREACTOR_GLIB) 8 | #include "BReactor_glib.h" 9 | #elif defined(BADVPN_BREACTOR_EMSCRIPTEN) 10 | #include "BReactor_emscripten.h" 11 | #endif 12 | -------------------------------------------------------------------------------- /PacketProcessor/tun2socks-iOS/system/BReactor_badvpn_timerstree.h: -------------------------------------------------------------------------------- 1 | #define CAVL_PARAM_NAME BReactor__TimersTree 2 | #define CAVL_PARAM_FEATURE_COUNTS 0 3 | #define CAVL_PARAM_FEATURE_KEYS_ARE_INDICES 0 4 | #define CAVL_PARAM_FEATURE_NOKEYS 1 5 | #define CAVL_PARAM_TYPE_ENTRY struct BSmallTimer_t 6 | #define CAVL_PARAM_TYPE_LINK BReactor_timerstree_link 7 | #define CAVL_PARAM_TYPE_ARG int 8 | #define CAVL_PARAM_VALUE_NULL ((BReactor_timerstree_link)NULL) 9 | #define CAVL_PARAM_FUN_DEREF(arg, link) (link) 10 | #define CAVL_PARAM_FUN_COMPARE_ENTRIES(arg, entry1, entry2) compare_timers((entry1).link, (entry2).link) 11 | #define CAVL_PARAM_MEMBER_CHILD u.tree_child 12 | #define CAVL_PARAM_MEMBER_BALANCE tree_balance 13 | #define CAVL_PARAM_MEMBER_PARENT tree_parent 14 | -------------------------------------------------------------------------------- /PacketTunnel/PacketTunnelProvider.h: -------------------------------------------------------------------------------- 1 | // 2 | // PacketTunnelProvider.h 3 | // PacketTunnel 4 | // 5 | // Created by LEI on 12/13/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | @import NetworkExtension; 10 | 11 | @interface PacketTunnelProvider : NEPacketTunnelProvider 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /PacketTunnel/ProxyManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // ProxyManager.h 3 | // Potatso 4 | // 5 | // Created by LEI on 2/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^SocksProxyCompletion)(int port, NSError *error); 12 | typedef void(^HttpProxyCompletion)(int port, NSError *error); 13 | typedef void(^ShadowsocksProxyCompletion)(int port, NSError *error); 14 | 15 | extern int sock_port (int fd); 16 | 17 | @interface ProxyManager : NSObject 18 | 19 | + (ProxyManager *)sharedManager; 20 | @property (nonatomic, readonly) BOOL socksProxyRunning; 21 | @property (nonatomic, readonly) int socksProxyPort; 22 | @property (nonatomic, readonly) BOOL httpProxyRunning; 23 | @property (nonatomic, readonly) int httpProxyPort; 24 | @property (nonatomic, readonly) BOOL shadowsocksProxyRunning; 25 | @property (nonatomic, readonly) int shadowsocksProxyPort; 26 | - (void)startSocksProxy: (SocksProxyCompletion)completion; 27 | - (void)stopSocksProxy; 28 | - (void)startHttpProxy: (HttpProxyCompletion)completion; 29 | - (void)stopHttpProxy; 30 | - (void)startShadowsocks: (ShadowsocksProxyCompletion)completion; 31 | - (void)stopShadowsocks; 32 | @end 33 | -------------------------------------------------------------------------------- /PacketTunnel/Supporting Files/PacketTunnel.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.networkextension 6 | 7 | packet-tunnel-provider 8 | app-proxy-provider 9 | content-filter-provider 10 | 11 | com.apple.security.application-groups 12 | 13 | group.com.touchingapp.potatso 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /PacketTunnel/dns.h: -------------------------------------------------------------------------------- 1 | // 2 | // dns.h 3 | // Potatso 4 | // 5 | // Created by LEI on 11/11/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #ifndef dns_h 10 | #define dns_h 11 | 12 | #include 13 | #include 14 | 15 | @interface DNSConfig : NSObject 16 | 17 | + (NSArray *) getSystemDnsServers; 18 | @end 19 | 20 | #endif /* dns_h */ 21 | -------------------------------------------------------------------------------- /PacketTunnel/dns.m: -------------------------------------------------------------------------------- 1 | // 2 | // dns.c 3 | // Potatso 4 | // 5 | // Created by LEI on 11/11/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #include "dns.h" 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | @implementation DNSConfig 17 | 18 | + (NSArray *)getSystemDnsServers { 19 | res_state res = malloc(sizeof(struct __res_state)); 20 | res_ninit(res); 21 | NSMutableArray *servers = [NSMutableArray array]; 22 | for (int i = 0; i < res->nscount; i++) { 23 | sa_family_t family = res->nsaddr_list[i].sin_family; 24 | char str[INET_ADDRSTRLEN + 1]; // String representation of address 25 | if (family == AF_INET) { // IPV4 address 26 | inet_ntop(AF_INET, & (res->nsaddr_list[i].sin_addr.s_addr), str, INET_ADDRSTRLEN); 27 | str[INET_ADDRSTRLEN] = '\0'; 28 | NSString *address = [[NSString alloc] initWithCString:str encoding:NSUTF8StringEncoding]; 29 | if (address.length) { 30 | [servers addObject:address]; 31 | } 32 | } 33 | } 34 | res_ndestroy(res); 35 | free(res); 36 | return servers; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Potatso.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Potatso.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Potatso/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 12/12/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import ICSMainFramework 11 | 12 | @UIApplicationMain 13 | private class AppDelegate: ICSMainFramework.AppDelegate { 14 | } 15 | 16 | -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Back.imageset/Back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Back.imageset/Back@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Back.imageset/Back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Back.imageset/Back@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Back@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Config Selected.imageset/Config Selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Config Selected.imageset/Config Selected@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Config Selected.imageset/Config Selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Config Selected.imageset/Config Selected@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Config Selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Config Selected@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Config Selected@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Config.imageset/Config@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Config.imageset/Config@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Config.imageset/Config@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Config.imageset/Config@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Config.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Config@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Config@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Dashboard Selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Dashboard Selected@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Dashboard Selected@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Dashboard Selected.imageset/Dashboard Selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Dashboard Selected.imageset/Dashboard Selected@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Dashboard Selected.imageset/Dashboard Selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Dashboard Selected.imageset/Dashboard Selected@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Dashboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Dashboard@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Dashboard@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Dashboard.imageset/Dashboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Dashboard.imageset/Dashboard@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Dashboard.imageset/Dashboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Dashboard.imageset/Dashboard@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Direct.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Direct@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Direct@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Direct.imageset/Direct@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Direct.imageset/Direct@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Direct.imageset/Direct@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Direct.imageset/Direct@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Home Selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Home Selected@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Home Selected@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Home Selected.imageset/Home Selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Home Selected.imageset/Home Selected@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Home Selected.imageset/Home Selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Home Selected.imageset/Home Selected@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Home.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Home@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Home@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Home.imageset/Home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Home.imageset/Home@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Home.imageset/Home@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Home.imageset/Home@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/List.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "List@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "List@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/List.imageset/List@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/List.imageset/List@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/List.imageset/List@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/List.imageset/List@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Log.imageset/Config@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Log.imageset/Config@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Log.imageset/Config@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Log.imageset/Config@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Log.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Config@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Config@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/More Selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "More Selected@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "More Selected@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/More Selected.imageset/More Selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/More Selected.imageset/More Selected@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/More Selected.imageset/More Selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/More Selected.imageset/More Selected@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/More.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "More@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "More@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/More.imageset/More@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/More.imageset/More@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/More.imageset/More@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/More.imageset/More@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Proxy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Proxy@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Proxy@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Proxy.imageset/Proxy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Proxy.imageset/Proxy@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Proxy.imageset/Proxy@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Proxy.imageset/Proxy@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Reject.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Reject@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Reject@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Reject.imageset/Reject@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Reject.imageset/Reject@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Reject.imageset/Reject@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Reject.imageset/Reject@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Settings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Settings@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Settings@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Settings.imageset/Settings@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Settings.imageset/Settings@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Settings.imageset/Settings@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Settings.imageset/Settings@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Shadowsocks.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Shadowsocks@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Shadowsocks@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Shadowsocks.imageset/Shadowsocks@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Shadowsocks.imageset/Shadowsocks@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/Shadowsocks.imageset/Shadowsocks@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/Shadowsocks.imageset/Shadowsocks@3x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/User.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "User@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "User@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/User.imageset/User@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/User.imageset/User@2x.png -------------------------------------------------------------------------------- /Potatso/Assets.xcassets/User.imageset/User@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Assets.xcassets/User.imageset/User@3x.png -------------------------------------------------------------------------------- /Potatso/Base/BaseButtonRow.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseButtonRow.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 6/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Eureka 11 | 12 | public final class _BaseButtonRow : _ButtonRowOf, RowType { 13 | 14 | public required init(tag: String?) { 15 | super.init(tag: tag) 16 | } 17 | 18 | public override func updateCell() { 19 | super.updateCell() 20 | let leftAligmnment = presentationMode != nil 21 | if (!leftAligmnment){ 22 | cell.textLabel?.textColor = Color.Action 23 | } 24 | } 25 | 26 | } 27 | 28 | public typealias BaseButtonRow = _BaseButtonRow 29 | -------------------------------------------------------------------------------- /Potatso/Base/BaseSafariViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseSafariViewController.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 12/30/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SafariServices 11 | 12 | class BaseSafariViewController: SFSafariViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | navigationItem.leftBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action:nil) 17 | } 18 | 19 | override func viewWillAppear(animated: Bool) { 20 | super.viewWillAppear(animated) 21 | navigationController?.navigationBar.barStyle = .Default 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScanner.bundle/QRCodeScanLine@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Base/QRCode/HMScanner.bundle/QRCodeScanLine@2x.png -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScanner.bundle/ScanQR1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Base/QRCode/HMScanner.bundle/ScanQR1@2x.png -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScanner.bundle/ScanQR2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Base/QRCode/HMScanner.bundle/ScanQR2@2x.png -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScanner.bundle/ScanQR3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Base/QRCode/HMScanner.bundle/ScanQR3@2x.png -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScanner.bundle/ScanQR4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/Base/QRCode/HMScanner.bundle/ScanQR4@2x.png -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScannerBorder.h: -------------------------------------------------------------------------------- 1 | // 2 | // HMScannerBorder.h 3 | // HMQRCodeScanner 4 | // 5 | // Created by 刘凡 on 16/1/2. 6 | // Copyright © 2016年 itheima. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /// 扫描框视图 12 | @interface HMScannerBorder : UIView 13 | 14 | /// 开始扫描动画 15 | - (void)startScannerAnimating; 16 | /// 停止扫描动画 17 | - (void)stopScannerAnimating; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScannerMaskView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HMScannerMaskView.h 3 | // HMQRCodeScanner 4 | // 5 | // Created by 刘凡 on 16/1/3. 6 | // Copyright © 2016年 itheima. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /// 扫描遮罩视图 12 | @interface HMScannerMaskView : UIView 13 | 14 | /// 使用裁切区域实例化遮罩视图 15 | /// 16 | /// @param frame 视图区域 17 | /// @param cropRect 裁切区域 18 | /// 19 | /// @return 遮罩视图 20 | + (instancetype)maskViewWithFrame:(CGRect)frame cropRect:(CGRect)cropRect; 21 | 22 | /// 裁切区域 23 | @property (nonatomic) CGRect cropRect; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScannerMaskView.m: -------------------------------------------------------------------------------- 1 | // 2 | // HMScannerMaskView.m 3 | // HMQRCodeScanner 4 | // 5 | // Created by 刘凡 on 16/1/3. 6 | // Copyright © 2016年 itheima. All rights reserved. 7 | // 8 | 9 | #import "HMScannerMaskView.h" 10 | 11 | @implementation HMScannerMaskView 12 | 13 | + (instancetype)maskViewWithFrame:(CGRect)frame cropRect:(CGRect)cropRect { 14 | 15 | HMScannerMaskView *maskView = [[self alloc] initWithFrame:frame]; 16 | 17 | maskView.backgroundColor = [UIColor clearColor]; 18 | maskView.cropRect = cropRect; 19 | 20 | return maskView; 21 | } 22 | 23 | - (void)setCropRect:(CGRect)cropRect { 24 | _cropRect = cropRect; 25 | 26 | [self setNeedsDisplay]; 27 | } 28 | 29 | - (void)drawRect:(CGRect)rect { 30 | 31 | CGContextRef ctx = UIGraphicsGetCurrentContext(); 32 | 33 | [[UIColor colorWithWhite:0.0 alpha:0.4] setFill]; 34 | CGContextFillRect(ctx, rect); 35 | 36 | CGContextClearRect(ctx, self.cropRect); 37 | 38 | [[UIColor colorWithWhite:0.95 alpha:1.0] setStroke]; 39 | CGContextStrokeRectWithWidth(ctx, CGRectInset(_cropRect, 1, 1), 1); 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Potatso/Base/QRCode/HMScannerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HMScannerViewController.h 3 | // HMQRCodeScanner 4 | // 5 | // Created by 刘凡 on 16/1/2. 6 | // Copyright © 2016年 itheima. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /// 扫描控制器 12 | @interface HMScannerViewController : UIViewController 13 | 14 | /// 实例化扫描控制器 15 | /// 16 | /// @param completion 完成回调 17 | /// 18 | /// @return 扫描控制器 19 | - (instancetype)initWithCompletion:(void (^)(NSString *))completion; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Potatso/Potatso-Bridge-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Potatso-Bridge-Header.h 3 | // Potatso 4 | // 5 | // Created by LEI on 12/30/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #ifndef Potatso_Bridge_Header_h 10 | #define Potatso_Bridge_Header_h 11 | 12 | #import 13 | #import "HMScannerViewController.h" 14 | #import "Receipt.h" 15 | @import CocoaLumberjack; 16 | @import PotatsoLibrary; 17 | @import PotatsoModel; 18 | @import Appirater; 19 | @import Crashlytics; 20 | 21 | #endif /* Potatso_Bridge_Header_h */ 22 | -------------------------------------------------------------------------------- /Potatso/Potatso.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.networkextension 6 | 7 | packet-tunnel-provider 8 | app-proxy-provider 9 | content-filter-provider 10 | 11 | com.apple.security.application-groups 12 | 13 | group.com.touchingapp.potatso 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Potatso/Potatso.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Potatso/Proxy.xcdatamodeld/Proxy.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Potatso/Utils/Color.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Colors.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 1/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftColor 11 | 12 | struct Color { 13 | 14 | static let Brand = "343434".color 15 | static let Action = "007AFF".color 16 | static let Black = "000000".color 17 | static let Gray = "8E8E93".color 18 | static let Separator = "E0E0E0".color 19 | static let Background = "F9F9F9".color 20 | static let NavigationBackground = "FFFFFF".color 21 | static let TabBackground = "FFFFFF".color 22 | 23 | // Tab Bar 24 | static let TabItemSelected = "000".color 25 | static let TabItemUnselected = "D7D7D7".color 26 | 27 | static let StatusOn = "FF5E3B".color 28 | static let StatusOff = "1E96E2".color 29 | static let StatusConnecting = "F5A623".color 30 | 31 | static let TextMost = UIColor.blackColor() 32 | static let TextPrimary = "404040".color 33 | static let TextSecond = "555555".color 34 | static let TextHint = "C8C8C8".color 35 | 36 | } -------------------------------------------------------------------------------- /Potatso/Utils/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 4/10/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String: ErrorType { 12 | 13 | } -------------------------------------------------------------------------------- /Potatso/Utils/Event.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Event.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 7/5/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Event: String { 12 | 13 | case ReceiptValidation = "ReceiptValidation" 14 | case ReceiptValidationResult = "ReceiptValidationResult" 15 | case ReceiptValidationBuy = "ReceiptValidationBuy" 16 | case ReceiptValidationCancel = "ReceiptValidationCancel" 17 | 18 | } 19 | 20 | func logEvent(event: Event, attributes: [String: AnyObject]?) { 21 | Answers.logCustomEventWithName(event.rawValue, customAttributes: attributes) 22 | } -------------------------------------------------------------------------------- /Potatso/Utils/HUDUtils.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HUDUtils.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 3/25/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MBProgressHUD 11 | import Async 12 | 13 | private var hudKey = "hud" 14 | 15 | extension UIViewController { 16 | 17 | func showProgreeHUD(text: String? = nil) { 18 | hideHUD() 19 | let hud = MBProgressHUD.showHUDAddedTo(view, animated: true) 20 | hud.mode = .Indeterminate 21 | hud.labelText = text 22 | } 23 | 24 | func showTextHUD(text: String?, dismissAfterDelay: NSTimeInterval) { 25 | hideHUD() 26 | let hud = MBProgressHUD.showHUDAddedTo(view, animated: true) 27 | hud.mode = .Text 28 | hud.detailsLabelText = text 29 | hideHUD(dismissAfterDelay) 30 | } 31 | 32 | func hideHUD() { 33 | MBProgressHUD.hideHUDForView(view, animated: true) 34 | } 35 | 36 | func hideHUD(afterDelay: NSTimeInterval) { 37 | Async.main(after: afterDelay) { 38 | self.hideHUD() 39 | } 40 | } 41 | 42 | } 43 | 44 | -------------------------------------------------------------------------------- /Potatso/Utils/LoggerUtils.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoggerUtils.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 6/21/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension ErrorType { 12 | 13 | func log(message: String?) { 14 | let errorDesc = (self as NSError).localizedDescription 15 | if let message = message { 16 | DDLogError("\(message): \(errorDesc)") 17 | }else { 18 | DDLogError("\(errorDesc)") 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Potatso/Utils/Receipt.h: -------------------------------------------------------------------------------- 1 | // 2 | // Receipt.h 3 | // Potatso 4 | // 5 | // Created by LEI on 7/4/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ReceiptUtils : NSObject 12 | + (BOOL)verifyReceiptAtPath: (NSString *)receiptPath; 13 | @end 14 | -------------------------------------------------------------------------------- /Potatso/Utils/RegexUtils.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RegexUtils.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 6/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Regex { 12 | 13 | let internalExpression: NSRegularExpression 14 | let pattern: String 15 | 16 | init(_ pattern: String) throws { 17 | self.pattern = pattern 18 | self.internalExpression = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive) 19 | } 20 | 21 | func test(input: String) -> Bool { 22 | let matches = self.internalExpression.matchesInString(input, options: NSMatchingOptions.ReportCompletion, range:NSMakeRange(0, input.characters.count)) 23 | return matches.count > 0 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Potatso/ad.block: -------------------------------------------------------------------------------- 1 | ## 视频网站 2 | # 优酷土豆 3 | ad\.api\.3g\.youku\.com 4 | atm\.youku\.com 5 | ad\.api\.3g\.tudou\.com 6 | 7 | # 腾讯视频 8 | lives\.l\.qq\.com 9 | 10 | # 乐视 11 | ark\.letv\.com 12 | 13 | # PPTV 14 | asimgs\.pplive\.cn 15 | 16 | # 搜狐视频 17 | agn\.aty\.sohu\.com 18 | 19 | # 芒果 tv 20 | x\.da\.hunantv\.com 21 | 22 | ## App 内广告 23 | 24 | # 网易 25 | ^(https?:\/\/)?([^/:]*\.)?163\.com\/madr 26 | 27 | # 下厨房 28 | ^(https?:\/\/)?api\.xiachufang\.com\/v\d\/ad\/show\.json 29 | 30 | # 微博 31 | ^(https?:\/\/)?(.*)[weibo|sina](.*)\/interface\/(.*)\/(.*)ad.php 32 | 33 | # 联通 DNS 34 | 124.160.194.11:8080 35 | 36 | ## 广告联盟 37 | 38 | # 秒针 39 | miaozhen\.com 40 | 41 | # 百度 42 | ^(https?:\/\/)?(.*)?ads(.*)?\.baidu\.com 43 | 44 | # Google(AdMob) 45 | ^(https?:\/\/)?(.*)ads\.g\.doubleclick\.net 46 | 47 | # Inmobi 48 | ^(https?:\/\/)?([^/:]*\.)?inmob\.com 49 | 50 | # 易传媒(AdChina) 51 | ^(https?:\/\/)?amob\.acs86\.com 52 | 53 | # 多盟 54 | ^(https?:\/\/)?([^/:]*\.)?domob(cdn)?\.[cn|com] 55 | ^(https?:\/\/)?([^/:]*\.)?duomeng\.[net|cn|org] 56 | 57 | # MoPub 58 | ^(https?:\/\/)?([^/:]*\.)?ads\.mopub\.[com|cn] 59 | 60 | # Unity 61 | ^(https?:\/\/)?impact\.applifier\.com 62 | 63 | # 腾讯 广点通 64 | ^(https?:\/\/)?(.*)?gdt\.qq\.com 65 | 66 | # 忘了 67 | ^(https?:\/\/)?(.*)?litchix\.com 68 | -------------------------------------------------------------------------------- /Potatso/data/AppleIncRootCertificate.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jefby/Potatso-iOS/9004cd40434852a47d880d2a2ff4e90d042f0041/Potatso/data/AppleIncRootCertificate.cer -------------------------------------------------------------------------------- /Potatso/template.bundle/mod-local-help: -------------------------------------------------------------------------------- 1 |

Local Privoxy support:

2 | 3 | 4 |

You can consult the online documentation for more information about this Privoxy installation.

5 | 6 | 7 | 8 |

Address e-mail questions about this Privoxy installation to 9 | @admin-address@, 10 | who will be glad to help you. 11 |

12 | 13 | -------------------------------------------------------------------------------- /Potatso/template.bundle/mod-title: -------------------------------------------------------------------------------- 1 |

2 | This is Privoxy @version@ on @my-hostname@ (@my-ip-address@), port @my-port@, 3 | @if-enabled-display-then@enabled@else-not-enabled-display@disabled@endif-enabled-display@ 4 |

5 | -------------------------------------------------------------------------------- /Potatso/template.bundle/mod-unstable-warning: -------------------------------------------------------------------------------- 1 |

Warning:

2 |

3 | This Privoxy version is based on @code-status@ code and 4 | not intended for production systems! 5 |
Use at your own risk. See the license for details.
7 |

8 | -------------------------------------------------------------------------------- /Potatso/template.bundle/url-info-osd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Privoxy URL Info 4 | 5 | Enter a URL to see which Privoxy actions apply. 6 | Only works while the browser is configured to use Privoxy. 7 | 8 | UTF-8 9 | UTF-8 10 | Privoxy Team 11 | ijbswa-developers@lists.sourceforge.net 12 | @default-cgi@favicon.ico 13 | 14 | 15 | -------------------------------------------------------------------------------- /PotatsoBase/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 98 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /PotatsoBase/JSONUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSONUtils.h 3 | // Potatso 4 | // 5 | // Created by LEI on 3/15/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (JSON) 12 | 13 | - (NSDictionary * _Nullable)jsonDictionary; 14 | 15 | - (NSArray * _Nullable)jsonArray; 16 | 17 | @end 18 | 19 | 20 | @interface NSDictionary (JSON) 21 | 22 | - (NSData * _Nullable)jsonData; 23 | 24 | - (NSString * _Nullable)jsonString; 25 | 26 | @end 27 | 28 | @interface NSArray (JSON) 29 | 30 | - (NSData * _Nullable)jsonData; 31 | 32 | - (NSString * _Nullable)jsonString; 33 | 34 | @end -------------------------------------------------------------------------------- /PotatsoBase/JSONUtils.m: -------------------------------------------------------------------------------- 1 | // 2 | // JSONUtils.m 3 | // Potatso 4 | // 5 | // Created by LEI on 3/15/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import "JSONUtils.h" 10 | 11 | @implementation NSString (JSON) 12 | 13 | - (NSDictionary *)jsonDictionary { 14 | return [NSJSONSerialization JSONObjectWithData:[self dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil]; 15 | } 16 | 17 | - (NSArray *)jsonArray { 18 | return [NSJSONSerialization JSONObjectWithData:[self dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil]; 19 | } 20 | 21 | @end 22 | 23 | @implementation NSDictionary (JSON) 24 | 25 | - (NSData *)jsonData { 26 | return [NSJSONSerialization dataWithJSONObject:self options:0 error:nil]; 27 | } 28 | 29 | - (NSString *)jsonString { 30 | return [[NSString alloc] initWithData:[self jsonData] encoding:NSUTF8StringEncoding]; 31 | } 32 | 33 | @end 34 | 35 | @implementation NSArray (JSON) 36 | 37 | - (NSData *)jsonData { 38 | return [NSJSONSerialization dataWithJSONObject:self options:0 error:nil]; 39 | } 40 | 41 | - (NSString *)jsonString { 42 | return [[NSString alloc] initWithData:[self jsonData] encoding:NSUTF8StringEncoding]; 43 | } 44 | 45 | @end -------------------------------------------------------------------------------- /PotatsoBase/NSError+Helper.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSError+Helper.h 3 | // Potatso 4 | // 5 | // Created by LEI on 3/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSError (Helper) 12 | 13 | + (NSError *)errorWithCode: (NSInteger)code description: (NSString *)description; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /PotatsoBase/NSError+Helper.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSError+Helper.m 3 | // Potatso 4 | // 5 | // Created by LEI on 3/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import "NSError+Helper.h" 10 | 11 | @implementation NSError (Helper) 12 | 13 | + (NSError *)errorWithCode: (NSInteger)code description: (NSString *)description { 14 | return [NSError errorWithDomain:@"com.touchingapp.potatso" code:code userInfo:@{NSLocalizedDescriptionKey: description}]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /PotatsoBase/Potatso.h: -------------------------------------------------------------------------------- 1 | // 2 | // PotatsoManager.h 3 | // Potatso 4 | // 5 | // Created by LEI on 4/4/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern NSString * _Nonnull sharedGroupIdentifier; 12 | 13 | @interface Potatso : NSObject 14 | + (NSURL * _Nonnull)sharedUrl; 15 | + (NSURL * _Nonnull)sharedDatabaseUrl; 16 | + (NSUserDefaults * _Nonnull)sharedUserDefaults; 17 | 18 | + (NSURL * _Nonnull)sharedGeneralConfUrl; 19 | + (NSURL * _Nonnull)sharedSocksConfUrl; 20 | + (NSURL * _Nonnull)sharedProxyConfUrl; 21 | + (NSURL * _Nonnull)sharedHttpProxyConfUrl; 22 | + (NSURL * _Nonnull)sharedLogUrl; 23 | @end 24 | -------------------------------------------------------------------------------- /PotatsoBase/PotatsoBase.h: -------------------------------------------------------------------------------- 1 | // 2 | // PotatsoBase.h 3 | // PotatsoBase 4 | // 5 | // Created by LEI on 4/4/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for PotatsoBase. 12 | FOUNDATION_EXPORT double PotatsoBaseVersionNumber; 13 | 14 | //! Project version string for PotatsoBase. 15 | FOUNDATION_EXPORT const unsigned char PotatsoBaseVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | #import "Potatso.h" 20 | #import "JSONUtils.h" 21 | #import "NSError+Helper.h" -------------------------------------------------------------------------------- /PotatsoLibrary/Image.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Images.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 1/23/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public extension String { 12 | 13 | public var image: UIImage? { 14 | return UIImage(named: self) 15 | } 16 | 17 | public var templateImage: UIImage? { 18 | return UIImage(named: self)?.imageWithRenderingMode(.AlwaysTemplate) 19 | } 20 | 21 | public var originalImage: UIImage? { 22 | return UIImage(named: self)?.imageWithRenderingMode(.AlwaysOriginal) 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /PotatsoLibrary/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 98 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /PotatsoLibrary/Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Logging.swift 3 | // Potatso 4 | // 5 | // Created by LEI on 4/22/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | private let kLoggingLevelIdentifier = "loggingLevel" 12 | 13 | public enum LoggingLevel: Int{ 14 | case OFF = 0 15 | case DEBUG = 1 16 | 17 | public static var currentLoggingLevel: LoggingLevel { 18 | get { 19 | if let saved = NSUserDefaults.standardUserDefaults().objectForKey(kLoggingLevelIdentifier) as? Int { 20 | return LoggingLevel(rawValue: saved) ?? .DEBUG 21 | }else{ 22 | return .DEBUG 23 | } 24 | } 25 | set(o) { 26 | NSUserDefaults.standardUserDefaults().setObject(o.rawValue, forKey: kLoggingLevelIdentifier) 27 | NSUserDefaults.standardUserDefaults().synchronize() 28 | } 29 | } 30 | 31 | } 32 | 33 | extension LoggingLevel: CustomStringConvertible { 34 | 35 | public var description: String { 36 | switch self { 37 | case .OFF: 38 | return "Off" 39 | case .DEBUG: 40 | return "Debug" 41 | } 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /PotatsoLibrary/PotatsoLibrary.h: -------------------------------------------------------------------------------- 1 | // 2 | // PotatsoLibrary.h 3 | // PotatsoLibrary 4 | // 5 | // Created by LEI on 12/16/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for PotatsoLibrary. 12 | FOUNDATION_EXPORT double PotatsoLibraryVersionNumber; 13 | 14 | //! Project version string for PotatsoLibrary. 15 | FOUNDATION_EXPORT const unsigned char PotatsoLibraryVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | -------------------------------------------------------------------------------- /PotatsoLibraryTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 98 23 | 24 | 25 | -------------------------------------------------------------------------------- /PotatsoModel/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 98 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /PotatsoModel/PotatsoModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // PotatsoModel.h 3 | // PotatsoModel 4 | // 5 | // Created by LEI on 4/4/16. 6 | // Copyright © 2016 TouchingApp. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for PotatsoModel. 12 | FOUNDATION_EXPORT double PotatsoModelVersionNumber; 13 | 14 | //! Project version string for PotatsoModel. 15 | FOUNDATION_EXPORT const unsigned char PotatsoModelVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import -------------------------------------------------------------------------------- /PotatsoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 98 23 | 24 | 25 | -------------------------------------------------------------------------------- /PotatsoTests/PotatsoTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PotatsoTests.swift 3 | // PotatsoTests 4 | // 5 | // Created by LEI on 12/12/15. 6 | // Copyright © 2015 TouchingApp. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import Potatso 11 | 12 | class PotatsoTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /TodayWidget/Base.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Potatso 4 | 5 | Created by LEI on 4/19/16. 6 | Copyright © 2016 TouchingApp. All rights reserved. 7 | */ 8 | 9 | "widget.none" = "None"; 10 | "widget.connect" = "Connect"; 11 | "widget.disconnect" = "Disconnect"; 12 | -------------------------------------------------------------------------------- /TodayWidget/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Potatso 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.4.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 98 25 | NSExtension 26 | 27 | NSExtensionPointIdentifier 28 | com.apple.widget-extension 29 | NSExtensionPrincipalClass 30 | TodayWidget.TodayViewController 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /TodayWidget/TodayWidget.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.networkextension 6 | 7 | packet-tunnel-provider 8 | app-proxy-provider 9 | content-filter-provider 10 | 11 | com.apple.security.application-groups 12 | 13 | group.com.touchingapp.potatso 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /TodayWidget/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Potatso 4 | 5 | Created by LEI on 4/19/16. 6 | Copyright © 2016 TouchingApp. All rights reserved. 7 | */ 8 | 9 | "widget.none" = "无"; 10 | "widget.connect" = "连接"; 11 | "widget.disconnect" = "关闭"; 12 | --------------------------------------------------------------------------------