[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [ooni-probe/master] Delete unneeded files and reorganise existing files



commit 5004d8ec41f3f5c13b8a29dfbe8170db6ac0f6af
Author: Arturo Filastò <art@xxxxxxxxx>
Date:   Fri Apr 3 15:25:46 2015 +0200

    Delete unneeded files and reorganise existing files
---
 .gitmodules                                      |    9 -
 README.rst                                       |    2 +-
 apt.key                                          |  Bin 6624 -> 0 bytes
 bin/ooniprobe-dev                                |    6 +
 debian/README                                    |    5 -
 debian/changelog                                 |   41 -
 debian/compat                                    |    1 -
 debian/control                                   |   53 --
 debian/copyright                                 |   51 --
 debian/rules                                     |    6 -
 debian/source/format                             |    1 -
 example_inputs/README                            |    2 -
 example_inputs/alexa-top-1k.txt                  | 1000 ----------------------
 example_inputs/daph3_yaml_file.txt               |    2 -
 example_inputs/dns_tamper_file.txt               |    3 -
 example_inputs/dns_tamper_test_resolvers.txt     |    2 -
 example_inputs/http_host_file.txt                |    2 -
 example_inputs/keyword_filtering_file.txt        |    2 -
 example_inputs/tcpconnect_host_file.txt          |    3 -
 example_inputs/url_lists_file.txt                |    2 -
 fabfile.py                                       |  100 ---
 ooniprobe-dev                                    |    6 -
 scripts/fabfile.py                               |  100 +++
 scripts/setup-dependencies.sh                    |  992 +++++++++++++++++++++
 setup-dependencies.sh                            |  992 ---------------------
 var/example_inputs/README                        |    2 +
 var/example_inputs/alexa-head.txt                |   10 +
 var/example_inputs/alexa-top-1k.txt              | 1000 ++++++++++++++++++++++
 var/example_inputs/bad_input.txt                 |    1 +
 var/example_inputs/bridges.txt                   |    4 +
 var/example_inputs/daph3_yaml_file.txt           |    2 +
 var/example_inputs/dns_tamper_file.txt           |    3 +
 var/example_inputs/dns_tamper_test_resolvers.txt |    2 +
 var/example_inputs/domains.txt                   |    3 +
 var/example_inputs/http_host_file.txt            |    2 +
 var/example_inputs/keyword_filtering_file.txt    |    2 +
 var/example_inputs/tcpconnect_host_file.txt      |    3 +
 var/example_inputs/url_lists_file.txt            |    2 +
 38 files changed, 2135 insertions(+), 2284 deletions(-)

diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index daddf8f..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,9 +0,0 @@
-[submodule "ooni/lib/txscapy"]
-	path = ooni/lib/txscapy
-	url = https://github.com/isislovecruft/txscapy.git
-[submodule "ooni/lib/txtraceroute"]
-	path = ooni/lib/txtraceroute
-	url = https://github.com/isislovecruft/txtraceroute.git
-[submodule "ooni/lib/txtorcon"]
-	path = ooni/lib/txtorcon
-	url = https://github.com/isislovecruft/txtorcon.git
diff --git a/README.rst b/README.rst
index f4ce39f..92cc532 100644
--- a/README.rst
+++ b/README.rst
@@ -126,7 +126,7 @@ without installing it is supported with the following commands::
 
     git clone https://git.torproject.org/ooni-probe.git
     cd ooni-probe
-    ./setup-dependencies.sh
+    ./scripts/setup-dependencies.sh
     python setup.py install
 
 OSX
diff --git a/apt.key b/apt.key
deleted file mode 100644
index 2ce2110..0000000
Binary files a/apt.key and /dev/null differ
diff --git a/bin/ooniprobe-dev b/bin/ooniprobe-dev
new file mode 100755
index 0000000..e0d5abb
--- /dev/null
+++ b/bin/ooniprobe-dev
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Developer script for running ooniprobe directly from the repository.
+# We don't automatically add "$PWD" to PYTHONPATH as that is a security risk
+# when run as /usr/bin/ooniprobe on an end user's computer.
+cd "$(realpath "$(dirname "$0")")"
+PYTHONPATH="$PWD" exec ./bin/ooniprobe
diff --git a/debian/README b/debian/README
deleted file mode 100644
index a816b35..0000000
--- a/debian/README
+++ /dev/null
@@ -1,5 +0,0 @@
-Debian package for ooni-probe
-=============================
-
-The Debian package is currently missing the graphical user interface as it
-needs several JavaScript libraries that are currently not available in Debian.
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index 45128cc..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,41 +0,0 @@
-ooniprobe (1.2.2-1) stable; urgency=low
-
-  * ooniprobe 1.2.2
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Fri, 17 Oct 2014 16:07:00 +0200
-
-ooniprobe (1.2.0-1) stable; urgency=low
-
-  * ooniprobe 1.2.0
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Wed, 1 Oct 2014 16:07:00 +0200
-
-ooniprobe (1.1.1-1) stable; urgency=low
-
-  * ooniprobe 1.1.1
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Sun, 24 Aug 2014 20:01:46 +0200
-
-ooniprobe (1.1.0-1) stable; urgency=low
-
-  * ooniprobe 1.1.0
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Tue, 19 Aug 2014 15:14:46 +0200
-
-ooniprobe (1.0.2-1) stable; urgency=low
-
-  * ooniprobe 1.0.2
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Fri, 9 May 2014 10:14:46 +0200
-
-ooniprobe (1.0.1-1) stable; urgency=low
-
-  * ooniprobe 1.0.1
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Fri, 14 Mar 2014 17:14:46 +0200
-
-ooniprobe (1.0.0-rc6-1) stable; urgency=low
-
-  * ooniprobe 1.0.0-rc6
-
- -- OONI Developers (signing key) <ooni-dev@xxxxxxxxxxxxxxxxxxxx>  Mon, 13 Jan 2014 14:14:46 +0200
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index 45a4fb7..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-8
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 9bdf641..0000000
--- a/debian/control
+++ /dev/null
@@ -1,53 +0,0 @@
-Source: ooniprobe
-Maintainer: Open Observatory of Network Interference <ooni-dev@xxxxxxxxxxxxxx>
-Section: net
-Priority: extra
-Build-Depends: debhelper (>= 8),
-               python-all (>= 2.6.6-3~),
-               python-dnspython,
-               python-dumbnet,
-               python-docutils (>= 0.9.1),
-               python-ipaddr (>= 2.1.10),
-               python-openssl,
-               python-pypcap,
-               python-scapy (>= 2.2),
-               python-setuptools,
-               python-twisted (>= 12.2.0),
-               python-txsocksx,
-               python-txtorcon (>= 0.7),
-               python-yaml (>= 3.10),
-               python-zope.interface (>= 3.6),
-Standards-Version: 3.9.4
-X-Python-Version: >= 2.7
-Vcs-Git: git://anonscm.debian.org/git/collab-maint/ooni-probe.git
-Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/ooni-probe.git
-Homepage: https://ooni.torproject.org/
-
-Package: ooniprobe
-Architecture: all
-Depends: ${misc:Depends}, ${python:Depends},
-               tcpdump,
-               tor,
-               python-all (>= 2.6.6-3~),
-               python-dumbnet,
-               python-geoip (>= 0.2.5),
-               python-ipaddr (>= 2.1.10),
-               python-openssl,
-               python-pypcap,
-               python-scapy (>= 2.2),
-               python-setuptools,
-               python-twisted (>= 12.2.0),
-               python-txsocksx,
-               python-txtorcon (>= 0.7),
-               python-yaml (>= 3.10),
-               python-zope.interface (>= 3.6),
-Suggests: obfsproxy
-Description: probe for the Open Observatory of Network Interference (OONI)
- OONI, the Open Observatory of Network Interference, is a global observation
- network which aims is to collect high quality data using open methodologies
- and free software to share observations and data about the various types,
- methods, and amounts of network tampering in the world.
- .
- ooniprobe is a program to probe a network and collect data for the OONI
- project. It will test the current network for signs of surveillance and
- censorship.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index cbe2380..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,51 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: ooniprobe
-Source: https://gitweb.torproject.org/ooni-probe.git
-
-Files: *
-Copyright: 2012-2013 Jacob Appelbaum, Arturo Filastò, Isis Lovecruft,
-                     Aaron Gibson
-License: BSD-2-clause
-
-Files: data/nettests/experimental/tls_handshake.py
-Copyright: 2013 Isis Lovecruft, The Tor Project Inc.
-License: BSD-2-clause
-
-Files: ooni/utils/onion.py
-Copyright: 2012 The Tor Project, Inc.
-License: BSD-2-clause
-
-Files: debian/*
-Copyright: 2013 Jerémy Bobbio <lunar@xxxxxxxxxx>
-License: permissive
- Copying and distribution of this package, with or without
- modification, are permitted in any medium without royalty
- provided the copyright notice and this notice are
- preserved.
-
-Files: data/Geo*.dat
-Copyright: 2013 MaxMind
-License: CC BY-SA
- This product includes GeoLite data created by MaxMind, available from
- <a href="http://www.maxmind.com";>http://www.maxmind.com</a>.
-
-License: BSD-2-clause
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- .
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index 9f48e79..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/make -f
-
-%:
-	dh $@ --buildsystem=python_distutils --with=python2
-override_dh_python2:
-		dh_python2 --no-guessing-deps
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/example_inputs/README b/example_inputs/README
deleted file mode 100644
index cbf0782..0000000
--- a/example_inputs/README
+++ /dev/null
@@ -1,2 +0,0 @@
-These inputs are here to assist the running of before_i_commit.sh that is used to verify proper functioning of ooniprobe.
-
diff --git a/example_inputs/alexa-top-1k.txt b/example_inputs/alexa-top-1k.txt
deleted file mode 100644
index d101505..0000000
--- a/example_inputs/alexa-top-1k.txt
+++ /dev/null
@@ -1,1000 +0,0 @@
-http://google.com/
-http://facebook.com/
-http://youtube.com/
-http://yahoo.com/
-http://baidu.com/
-http://wikipedia.org/
-http://live.com/
-http://twitter.com/
-http://qq.com/
-http://amazon.com/
-http://blogspot.com/
-http://linkedin.com/
-http://taobao.com/
-http://google.co.in/
-http://yahoo.co.jp/
-http://sina.com.cn/
-http://msn.com/
-http://google.com.hk/
-http://google.de/
-http://bing.com/
-http://yandex.ru/
-http://wordpress.com/
-http://ebay.com/
-http://babylon.com/
-http://google.co.jp/
-http://google.co.uk/
-http://google.fr/
-http://vk.com/
-http://apple.com/
-http://163.com/
-http://googleusercontent.com/
-http://soso.com/
-http://microsoft.com/
-http://mail.ru/
-http://weibo.com/
-http://google.com.br/
-http://tumblr.com/
-http://pinterest.com/
-http://google.es/
-http://paypal.com/
-http://craigslist.org/
-http://ask.com/
-http://google.it/
-http://google.ru/
-http://xhamster.com/
-http://blogger.com/
-http://sohu.com/
-http://go.com/
-http://bbc.co.uk/
-http://xvideos.com/
-http://avg.com/
-http://imdb.com/
-http://fc2.com/
-http://google.com.mx/
-http://youku.com/
-http://ifeng.com/
-http://flickr.com/
-http://google.ca/
-http://tudou.com/
-http://t.co/
-http://hao123.com/
-http://tmall.com/
-http://conduit.com/
-http://adobe.com/
-http://odnoklassniki.ru/
-http://aol.com/
-http://espn.go.com/
-http://pornhub.com/
-http://ebay.de/
-http://cnn.com/
-http://blogspot.in/
-http://google.co.id/
-http://mywebsearch.com/
-http://livejasmin.com/
-http://amazon.de/
-http://zedo.com/
-http://huffingtonpost.com/
-http://redtube.com/
-http://thepiratebay.se/
-http://google.com.tr/
-http://rakuten.co.jp/
-http://stackoverflow.com/
-http://sogou.com/
-http://google.com.au/
-http://alibaba.com/
-http://about.com/
-http://godaddy.com/
-http://ebay.co.uk/
-http://adf.ly/
-http://amazon.co.jp/
-http://wordpress.org/
-http://google.pl/
-http://uol.com.br/
-http://mediafire.com/
-http://imgur.com/
-http://dailymotion.com/
-http://instagram.com/
-http://amazon.co.uk/
-http://cnet.com/
-http://netflix.com/
-http://youporn.com/
-http://ameblo.jp/
-http://360buy.com/
-http://alipay.com/
-http://chinaz.com/
-http://globo.com/
-http://livedoor.com/
-http://bp.blogspot.com/
-http://360.cn/
-http://nytimes.com/
-http://4shared.com/
-http://doubleclick.com/
-http://xnxx.com/
-http://adcash.com/
-http://torrentz.eu/
-http://google.nl/
-http://incredibar.com/
-http://neobux.com/
-http://google.com.sa/
-http://searchnu.com/
-http://vimeo.com/
-http://ehow.com/
-http://livejournal.com/
-http://dropbox.com/
-http://google.com.ar/
-http://bankofamerica.com/
-http://dailymail.co.uk/
-http://douban.com/
-http://search-results.com/
-http://warriorforum.com/
-http://renren.com/
-http://reddit.com/
-http://weather.com/
-http://tube8.com/
-http://badoo.com/
-http://pconline.com.cn/
-http://chase.com/
-http://secureserver.net/
-http://wigetmedia.com/
-http://tianya.cn/
-http://deviantart.com/
-http://indiatimes.com/
-http://aweber.com/
-http://cnzz.com/
-http://google.com.pk/
-http://stumbleupon.com/
-http://kat.ph/
-http://google.cn/
-http://spiegel.de/
-http://google.com.eg/
-http://blogspot.com.br/
-http://blogfa.com/
-http://56.com/
-http://letv.com/
-http://mozilla.org/
-http://amazonaws.com/
-http://google.co.th/
-http://google.co.za/
-http://espncricinfo.com/
-http://answers.com/
-http://goo.ne.jp/
-http://sourceforge.net/
-http://foxnews.com/
-http://clicksor.com/
-http://softonic.com/
-http://addthis.com/
-http://walmart.com/
-http://etsy.com/
-http://wellsfargo.com/
-http://comcast.net/
-http://reference.com/
-http://wikimedia.org/
-http://slideshare.net/
-http://liveinternet.ru/
-http://salesforce.com/
-http://booking.com/
-http://squidoo.com/
-http://photobucket.com/
-http://google.co.ve/
-http://allegro.pl/
-http://fiverr.com/
-http://onet.pl/
-http://depositfiles.com/
-http://skype.com/
-http://wikia.com/
-http://themeforest.net/
-http://statcounter.com/
-http://myspace.com/
-http://hootsuite.com/
-http://funmoods.com/
-http://xinhuanet.com/
-http://fbcdn.net/
-http://google.com.my/
-http://bild.de/
-http://guardian.co.uk/
-http://ucoz.ru/
-http://outbrain.com/
-http://people.com.cn/
-http://nbcnews.com/
-http://scribd.com/
-http://google.com.co/
-http://pengyou.com/
-http://mgid.com/
-http://soundcloud.com/
-http://google.com.vn/
-http://free.fr/
-http://google.gr/
-http://optmd.com/
-http://nicovideo.jp/
-http://rediff.com/
-http://leboncoin.fr/
-http://it168.com/
-http://zol.com.cn/
-http://google.be/
-http://download.com/
-http://w3schools.com/
-http://china.com/
-http://adultfriendfinder.com/
-http://domaintools.com/
-http://xunlei.com/
-http://naver.com/
-http://archive.org/
-http://sweetim.com/
-http://rapidshare.com/
-http://youjizz.com/
-http://58.com/
-http://files.wordpress.com/
-http://nfl.com/
-http://wsj.com/
-http://yelp.com/
-http://profitclicking.com/
-http://iqiyi.com/
-http://blogspot.com.es/
-http://hostgator.com/
-http://orange.fr/
-http://google.com.tw/
-http://isohunt.com/
-http://hudong.com/
-http://google.com.ua/
-http://google.se/
-http://soku.com/
-http://tagged.com/
-http://google.at/
-http://jqw.com/
-http://reuters.com/
-http://telegraph.co.uk/
-http://indeed.com/
-http://4399.com/
-http://uploaded.net/
-http://filestube.com/
-http://ups.com/
-http://flipkart.com/
-http://wp.pl/
-http://kaixin001.com/
-http://tripadvisor.com/
-http://taringa.net/
-http://samsung.com/
-http://rutracker.org/
-http://google.ro/
-http://rambler.ru/
-http://libero.it/
-http://cam4.com/
-http://paipai.com/
-http://yieldmanager.com/
-http://web.de/
-http://google.com.ph/
-http://gmx.net/
-http://imageshack.us/
-http://xing.com/
-http://2345.com/
-http://dianxin.cn/
-http://php.net/
-http://hp.com/
-http://mashable.com/
-http://yesky.com/
-http://att.com/
-http://csdn.net/
-http://ikea.com/
-http://washingtonpost.com/
-http://ameba.jp/
-http://pandora.com/
-http://github.com/
-http://google.com.pe/
-http://forbes.com/
-http://hatena.ne.jp/
-http://wordreference.com/
-http://pof.com/
-http://google.com.ng/
-http://aliexpress.com/
-http://google.ch/
-http://hardsextube.com/
-http://thefreedictionary.com/
-http://clickbank.com/
-http://iminent.com/
-http://narod.ru/
-http://etao.com/
-http://bet365.com/
-http://google.cl/
-http://ilivid.com/
-http://google.com.sg/
-http://weebly.com/
-http://amazon.cn/
-http://ero-advertising.com/
-http://rapidgator.net/
-http://youdao.com/
-http://mercadolivre.com.br/
-http://yourlust.com/
-http://constantcontact.com/
-http://xcar.com.cn/
-http://groupon.com/
-http://target.com/
-http://hurriyet.com.tr/
-http://media.tumblr.com/
-http://businessinsider.com/
-http://5000pk.com/
-http://9gag.com/
-http://kakaku.com/
-http://akamaihd.net/
-http://putlocker.com/
-http://shutterstock.com/
-http://kaskus.co.id/
-http://ebay.it/
-http://bitauto.com/
-http://goal.com/
-http://usps.com/
-http://milliyet.com.tr/
-http://techcrunch.com/
-http://amazon.fr/
-http://ku6.com/
-http://typepad.com/
-http://dell.com/
-http://terra.com.br/
-http://huanqiu.com/
-http://digitalpoint.com/
-http://tlbb8.com/
-http://ebay.com.au/
-http://engadget.com/
-http://twimg.com/
-http://blogspot.de/
-http://soufun.com/
-http://t-online.de/
-http://hulu.com/
-http://popads.net/
-http://xe.com/
-http://cj.com/
-http://in.com/
-http://nih.gov/
-http://joomla.org/
-http://battle.net/
-http://americanexpress.com/
-http://kooora.com/
-http://drtuber.com/
-http://marca.com/
-http://gsmarena.com/
-http://movie2k.to/
-http://mlb.com/
-http://elpais.com/
-http://gazeta.pl/
-http://blogspot.jp/
-http://bestbuy.com/
-http://agoda.com/
-http://uimserv.net/
-http://ig.com.br/
-http://mailchimp.com/
-http://seznam.cz/
-http://siteadvisor.com/
-http://linkbucks.com/
-http://zimbio.com/
-http://match.com/
-http://extratorrent.com/
-http://tlbb2.com/
-http://google.pt/
-http://verizonwireless.com/
-http://fedex.com/
-http://angege.com/
-http://infusionsoft.com/
-http://peyvandha.ir/
-http://ezinearticles.com/
-http://zanox.com/
-http://elmundo.es/
-http://google.co.hu/
-http://bluehost.com/
-http://detik.com/
-http://adserverplus.com/
-http://4dsply.com/
-http://aili.com/
-http://istockphoto.com/
-http://leo.org/
-http://autohome.com.cn/
-http://hubpages.com/
-http://google.ie/
-http://gutefrage.net/
-http://usatoday.com/
-http://mycalendarbook.com/
-http://ebay.fr/
-http://51.com/
-http://freelancer.com/
-http://speedtest.net/
-http://google.cz/
-http://aizhan.com/
-http://drudgereport.com/
-http://webs.com/
-http://w3.org/
-http://seomoz.org/
-http://vnexpress.net/
-http://homeway.com.cn/
-http://google.dk/
-http://ganji.com/
-http://alimama.com/
-http://google.ae/
-http://twoo.com/
-http://mpnrs.com/
-http://naver.jp/
-http://mixi.jp/
-http://nifty.com/
-http://12306.cn/
-http://analyrics.com/
-http://adnxs.com/
-http://pcauto.com.cn/
-http://tlbbsifu.com/
-http://cntv.cn/
-http://yandex.ua/
-http://seesaa.net/
-http://2ch.net/
-http://cbssports.com/
-http://ask.fm/
-http://y8.com/
-http://bloomberg.com/
-http://360tl.com/
-http://pch.com/
-http://ebay.in/
-http://chip.de/
-http://abcnews.go.com/
-http://bannersbroker.com/
-http://dangdang.com/
-http://over-blog.com/
-http://naukri.com/
-http://varzesh3.com/
-http://turbobit.net/
-http://letitbit.net/
-http://jobrapido.com/
-http://ign.com/
-http://pchome.net/
-http://126.com/
-http://maktoob.com/
-http://lemonde.fr/
-http://hdfcbank.com/
-http://chinanews.com/
-http://dianping.com/
-http://meetup.com/
-http://abril.com.br/
-http://google.no/
-http://capitalone.com/
-http://tmz.com/
-http://wix.com/
-http://google.dz/
-http://goodreads.com/
-http://51.la/
-http://histats.com/
-http://surveymonkey.com/
-http://51job.com/
-http://repubblica.it/
-http://fotolia.com/
-http://vancl.com/
-http://imesh.com/
-http://ning.com/
-http://informer.com/
-http://java.com/
-http://buzzfeed.com/
-http://jimdo.com/
-http://beeg.com/
-http://gmw.cn/
-http://ndtv.com/
-http://1channel.ch/
-http://bravotube.net/
-http://expedia.com/
-http://pcgames.com.cn/
-http://admin5.com/
-http://monster.com/
-http://daum.net/
-http://mop.com/
-http://multiply.com/
-http://qunar.com/
-http://google.co.il/
-http://dmm.co.jp/
-http://latimes.com/
-http://avito.ru/
-http://rr.com/
-http://commentcamarche.net/
-http://sape.ru/
-http://clixsense.com/
-http://enet.com.cn/
-http://viadeo.com/
-http://mihanblog.com/
-http://bitly.com/
-http://lefigaro.fr/
-http://rbc.ru/
-http://adsupply.com/
-http://microsoftonline.com/
-http://drupal.org/
-http://mynet.com/
-http://twitpic.com/
-http://google.co.kr/
-http://adultadworld.com/
-http://newegg.com/
-http://google.fi/
-http://kijiji.ca/
-http://wikihow.com/
-http://10086.cn/
-http://zillow.com/
-http://livescore.com/
-http://blogspot.it/
-http://webmd.com/
-http://xda-developers.com/
-http://nokia.com/
-http://wretch.cc/
-http://odesk.com/
-http://kuxun.cn/
-http://bleacherreport.com/
-http://myfreecams.com/
-http://outlook.com/
-http://livedoor.biz/
-http://linkwithin.com/
-http://tradedoubler.com/
-http://empowernetwork.com/
-http://delicious.com/
-http://ovh.net/
-http://nikkei.com/
-http://gotomeeting.com/
-http://39.net/
-http://largeporntube.com/
-http://tinyurl.com/
-http://ya.ru/
-http://spankwire.com/
-http://website-unavailable.com/
-http://sahibinden.com/
-http://nuvid.com/
-http://zing.vn/
-http://123rf.com/
-http://blackhatworld.com/
-http://icicibank.com/
-http://irctc.co.in/
-http://warriorplus.com/
-http://mobile.de/
-http://189.cn/
-http://ibm.com/
-http://yomiuri.co.jp/
-http://tabelog.com/
-http://softpedia.com/
-http://retailmenot.com/
-http://virgilio.it/
-http://livestrong.com/
-http://mercadolibre.com.ar/
-http://webmoney.ru/
-http://elance.com/
-http://oracle.com/
-http://swagbucks.com/
-http://searchqu.com/
-http://jiayuan.com/
-http://itau.com.br/
-http://mapquest.com/
-http://sakura.ne.jp/
-http://youm7.com/
-http://digg.com/
-http://biglobe.ne.jp/
-http://news.com.au/
-http://taleo.net/
-http://backpage.com/
-http://keezmovies.com/
-http://lzjl.com/
-http://stackexchange.com/
-http://gi-akademie.com/
-http://thesun.co.uk/
-http://pornhublive.com/
-http://immobilienscout24.de/
-http://jquery.com/
-http://homedepot.com/
-http://alphaporno.com/
-http://pclady.com.cn/
-http://duowan.com/
-http://hi5.com/
-http://allrecipes.com/
-http://corriere.it/
-http://foxsports.com/
-http://china.com.cn/
-http://folha.uol.com.br/
-http://ultimatepowerprofits.com/
-http://altervista.org/
-http://cnblogs.com/
-http://olx.in/
-http://verizon.com/
-http://macys.com/
-http://heise.de/
-http://xyxy.net/
-http://mercadolibre.com.mx/
-http://habrahabr.ru/
-http://persianblog.ir/
-http://quora.com/
-http://exoclick.com/
-http://issuu.com/
-http://google.sk/
-http://tribalfusion.com/
-http://gc.ca/
-http://eastmoney.com/
-http://examiner.com/
-http://zynga.com/
-http://lenta.ru/
-http://21cn.com/
-http://livingsocial.com/
-http://codecanyon.net/
-http://accuweather.com/
-http://xtube.com/
-http://7k7k.com/
-http://force.com/
-http://sergey-mavrodi.com/
-http://people.com/
-http://google.co.ma/
-http://feedburner.com/
-http://114so.cn/
-http://moneycontrol.com/
-http://quikr.com/
-http://cbsnews.com/
-http://sapo.pt/
-http://adscale.de/
-http://excite.co.jp/
-http://yxlady.com/
-http://tabnak.ir/
-http://gi-backoffice.com/
-http://templatemonster.com/
-http://ancestry.com/
-http://careerbuilder.com/
-http://yellowpages.com/
-http://timeanddate.com/
-http://orkut.com/
-http://list-manage.com/
-http://oneindia.in/
-http://suning.com/
-http://pogo.com/
-http://nhk.or.jp/
-http://wiktionary.org/
-http://haberturk.com/
-http://msn.com.cn/
-http://kickstarter.com/
-http://inbox.com/
-http://mybrowserbar.com/
-http://porn.com/
-http://hidemyass.com/
-http://nikkeibp.co.jp/
-http://kohls.com/
-http://blog.163.com/
-http://dh818.com/
-http://kinopoisk.ru/
-http://zippyshare.com/
-http://netlog.com/
-http://pixnet.net/
-http://gap.com/
-http://custhelp.com/
-http://4tube.com/
-http://cheezburger.com/
-http://nu.nl/
-http://v9.com/
-http://interia.pl/
-http://so-net.ne.jp/
-http://blog.com/
-http://getresponse.com/
-http://alnaddy.com/
-http://impress.co.jp/
-http://justdial.com/
-http://gizmodo.com/
-http://time.com/
-http://hotfile.com/
-http://who.is/
-http://wunderground.com/
-http://kankan.com/
-http://miniclip.com/
-http://welt.de/
-http://zhaopin.com/
-http://filehippo.com/
-http://qidian.com/
-http://shopathome.com/
-http://lifehacker.com/
-http://klicktrek.com/
-http://wired.com/
-http://888.com/
-http://mp3skull.com/
-http://okcupid.com/
-http://namecheap.com/
-http://porntube.com/
-http://twcczhu.com/
-http://doorblog.jp/
-http://makeuseof.com/
-http://infolinks.com/
-http://ccb.com/
-http://blekko.com/
-http://google.az/
-http://userapi.com/
-http://cbslocal.com/
-http://hubspot.com/
-http://zendesk.com/
-http://lequipe.fr/
-http://tutsplus.com/
-http://exblog.jp/
-http://video-one.com/
-http://118114.cn/
-http://macrumors.com/
-http://ggmm777.com/
-http://bitshare.com/
-http://hupu.com/
-http://trulia.com/
-http://hotels.com/
-http://sulekha.com/
-http://1uuc.com/
-http://google.co.nz/
-http://acesse.com/
-http://citibank.com/
-http://imagevenue.com/
-http://roulettebotplus.com/
-http://coupons.com/
-http://politico.com/
-http://anonym.to/
-http://gawker.com/
-http://searchengines.ru/
-http://cnbc.com/
-http://as.com/
-http://icbc.com.cn/
-http://1und1.de/
-http://sears.com/
-http://adfoc.us/
-http://sj-tl.com/
-http://blogimg.jp/
-http://bodybuilding.com/
-http://tinypic.com/
-http://imagebam.com/
-http://manta.com/
-http://marketwatch.com/
-http://zwaar.net/
-http://kompas.com/
-http://mangareader.net/
-http://eventbrite.com/
-http://businessweek.com/
-http://pagesjaunes.fr/
-http://amung.us/
-http://sitesell.com/
-http://babycenter.com/
-http://ctrip.com/
-http://orkut.com.br/
-http://linksynergy.com/
-http://dict.cc/
-http://shareasale.com/
-http://wcarev.com/
-http://okwave.jp/
-http://ustream.tv/
-http://watchseries.eu/
-http://intuit.com/
-http://snapdeal.com/
-http://td.com/
-http://nasa.gov/
-http://slickdeals.net/
-http://dpreview.com/
-http://tom.com/
-http://usbank.com/
-http://nydailynews.com/
-http://sanjesh.org/
-http://51buy.com/
-http://xhamstercams.com/
-http://968tl.com/
-http://myegy.com/
-http://cocolog-nifty.com/
-http://whitepages.com/
-http://disney.go.com/
-http://howstuffworks.com/
-http://barnesandnoble.com/
-http://klikbca.com/
-http://metacafe.com/
-http://lenovo.com/
-http://yandex.kz/
-http://pornerbros.com/
-http://aftonbladet.se/
-http://52tlbb.com/
-http://smashingmagazine.com/
-http://europa.eu/
-http://google.lk/
-http://18andabused.com/
-http://fatakat.com/
-http://tnaflix.com/
-http://woot.com/
-http://dantri.com.vn/
-http://itmedia.co.jp/
-http://focus.de/
-http://rednet.cn/
-http://asahi.com/
-http://sfr.fr/
-http://ca.gov/
-http://ocn.ne.jp/
-http://idnes.cz/
-http://pixiv.net/
-http://24h.com.vn/
-http://priceline.com/
-http://urbandictionary.com/
-http://shaadi.com/
-http://blogspot.com.ar/
-http://6.cn/
-http://magentocommerce.com/
-http://cloob.com/
-http://52pk.net/
-http://realclearpolitics.com/
-http://alarabiya.net/
-http://hsbc.co.uk/
-http://discreethearts.com/
-http://ucoz.com/
-http://earthlink.net/
-http://novinky.cz/
-http://citrixonline.com/
-http://orf.at/
-http://masrawy.com/
-http://smh.com.au/
-http://way2sms.com/
-http://cmbchina.com/
-http://yihaodian.com/
-http://zappos.com/
-http://blackberry.com/
-http://fotostrana.ru/
-http://verycd.com/
-http://farsnews.com/
-http://gumtree.com/
-http://rightmove.co.uk/
-http://patch.com/
-http://ppstream.com/
-http://vente-privee.com/
-http://google.com.kw/
-http://nudevista.com/
-http://forgeofempires.com/
-http://hypergames.net/
-http://alot.com/
-http://softlayer.com/
-http://slutload.com/
-http://overstock.com/
-http://google.bg/
-http://geocities.jp/
-http://foursquare.com/
-http://bbc.com/
-http://statscrop.com/
-http://freakshare.com/
-http://lowes.com/
-http://h2porn.com/
-http://subito.it/
-http://japanpost.jp/
-http://quickmeme.com/
-http://npr.org/
-http://mercadolibre.com.ve/
-http://onlylady.com/
-http://ebay.ca/
-http://bahn.de/
-http://bartarinha.ir/
-http://xici.net/
-http://egotastic.com/
-http://yoka.com/
-http://google.com.ec/
-http://indianrail.gov.in/
-http://dmoz.org/
-http://gamespot.com/
-http://jabong.com/
-http://ci123.com/
-http://southwest.com/
-http://tenpay.com/
-http://baixing.com/
-http://scoop.it/
-http://telegraaf.nl/
-http://18schoolgirlz.com/
-http://adult-empire.com/
-http://eastday.com/
-http://tubegalore.com/
-http://posterous.com/
-http://cloudfront.net/
-http://rakuten.ne.jp/
-http://sky.com/
-http://linternaute.com/
-http://mysql.com/
-http://baomihua.com/
-http://goo.gl/
-http://perfectgirls.net/
-http://logmein.com/
-http://classmates.com/
-http://udn.com/
-http://akhbarak.net/
-http://115.com/
-http://allocine.fr/
-http://onlinesbi.com/
-http://payza.com/
-http://google.com.do/
-http://marktplaats.nl/
-http://pcmag.com/
-http://discuz.net/
-http://foodnetwork.com/
-http://www.net.cn/
-http://kdnet.net/
-http://rottentomatoes.com/
-http://cheshi.com.cn/
-http://zoho.com/
-http://skycn.com/
-http://subscene.com/
-http://google.com.qa/
-http://skyrock.com/
-http://easyhits4u.com/
-http://motherless.com/
-http://free-tv-video-online.me/
-http://steampowered.com/
-http://idealo.de/
-http://mail.com/
-http://friv.com/
-http://kayak.com/
-http://wetter.com/
-http://bankmellat.ir/
-http://zoosk.com/
-http://opensiteexplorer.org/
-http://streamate.com/
-http://dreamstime.com/
-http://logsoku.com/
-http://theblaze.com/
-http://filecrop.com/
-http://icontact.com/
-http://tjosurveys.com/
-http://weather.com.cn/
-http://grindtv.com/
-http://ahram.org.eg/
-http://crsky.com/
-http://meilishuo.com/
-http://legacy.com/
-http://lady8844.com/
-http://jeuxvideo.com/
-http://partypoker.com/
-http://sanook.com/
-http://nikkansports.com/
-http://semrush.com/
-http://babytree.com/
-http://cracked.com/
-http://m-w.com/
-http://bigpoint.com/
-http://asos.com/
-http://mediaset.it/
-http://hc360.com/
-http://cocoren.com/
-http://bhaskar.com/
-http://last.fm/
-http://88db.com/
-http://weblio.jp/
-http://onlinedown.net/
-http://sponichi.co.jp/
-http://realtor.com/
-http://ce.cn/
-http://sbrf.ru/
-http://meetcheap.com/
-http://hm.com/
-http://homeshop18.com/
-http://ticketmaster.com/
-http://slate.com/
-http://prestashop.com/
-http://boston.com/
-http://traidnt.net/
-http://grooveshark.com/
-http://justin.tv/
-http://biblegateway.com/
-http://speedbit.com/
-http://twitch.tv/
-http://clarin.com/
-http://brazzers.com/
-http://dhl.de/
-http://pornoxo.com/
-http://gismeteo.ru/
-http://accountonline.com/
-http://cnr.cn/
-http://yimg.com/
-http://r7.com/
-http://xgo.com.cn/
-http://qip.ru/
-http://19lou.com/
-http://subscribe.ru/
-http://meituan.com/
-http://esporte.uol.com.br/
-http://arpg2.com/
-http://jxliu.com/
-http://admagnet.net/
-http://freeones.com/
-http://lacaixa.es/
-http://mtime.com/
-http://shutterfly.com/
-http://piriform.com/
-http://flippa.com/
-http://rt.com/
-http://reverso.net/
-http://liveperson.net/
-http://eyny.com/
-http://eonline.com/
-http://beemp3.com/
-http://commbank.com.au/
-http://caixa.gov.br/
-http://android.com/
-http://sendspace.com/
-http://xbox.com/
-http://liveleak.com/
diff --git a/example_inputs/daph3_yaml_file.txt b/example_inputs/daph3_yaml_file.txt
deleted file mode 100644
index 2412a08..0000000
--- a/example_inputs/daph3_yaml_file.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-{client: antani, server: sblinda}
-
diff --git a/example_inputs/dns_tamper_file.txt b/example_inputs/dns_tamper_file.txt
deleted file mode 100644
index 25f365c..0000000
--- a/example_inputs/dns_tamper_file.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-torproject.org
-google.com
-measurementlab.net
diff --git a/example_inputs/dns_tamper_test_resolvers.txt b/example_inputs/dns_tamper_test_resolvers.txt
deleted file mode 100644
index 14c77e0..0000000
--- a/example_inputs/dns_tamper_test_resolvers.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-8.8.8.8
-8.8.4.4
diff --git a/example_inputs/http_host_file.txt b/example_inputs/http_host_file.txt
deleted file mode 100644
index 12afb18..0000000
--- a/example_inputs/http_host_file.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-torproject.org
-ooni.nu
diff --git a/example_inputs/keyword_filtering_file.txt b/example_inputs/keyword_filtering_file.txt
deleted file mode 100644
index 4583bae..0000000
--- a/example_inputs/keyword_filtering_file.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-antani
-sblinda
diff --git a/example_inputs/tcpconnect_host_file.txt b/example_inputs/tcpconnect_host_file.txt
deleted file mode 100644
index a1e876b..0000000
--- a/example_inputs/tcpconnect_host_file.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-86.59.30.40:80
-207.97.227.239:22
-173.194.35.160:443
diff --git a/example_inputs/url_lists_file.txt b/example_inputs/url_lists_file.txt
deleted file mode 100644
index 16a4f58..0000000
--- a/example_inputs/url_lists_file.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-http://ooni.nu/test
-http://torproject.org/
diff --git a/fabfile.py b/fabfile.py
deleted file mode 100644
index f97f6df..0000000
--- a/fabfile.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#-*- coding: utf-8 -*-
-#
-# :authors: Arturo Filastò, Isis Lovecruft
-# :license: see included LICENSE file
-import os
-import sys
-import yaml
-import xmlrpclib
-from StringIO import StringIO
-
-from fabric.operations import get
-from fabric.api import run, cd, sudo, env
-
-api_auth = {}
-# Set these values 
-api_auth['Username'] = "you@xxxxxxxxxxx"
-api_auth['AuthString'] = "your_password"
-slice_name = "your_slice_name"
-
-### Do not change this
-api_auth['AuthMethod'] = "password"
-
-env.user = 'root'
-def set_hosts(host_file):
-    with open(host_file) as f:
-        for host in f:
-            env.hosts.append(host)
-
-def search_node(nfilter="*.cert.org.cn"):
-    api_server = xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/')
-    if api_server.AuthCheck(api_auth):
-        print "We are authenticated"
-    else:
-        print "We are not authenticated"
-    node_filter = {'hostname': nfilter}
-    return_fields = ['hostname', 'site_id']
-    all_nodes = api_server.GetNodes(api_auth, node_filter, return_fields)
-    print all_nodes
-
-def add_node(nodeid):
-    node_id = int(nodeid)
-    api_server = xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/')
-    node_filter = {'node_id': node_id}
-    return_fields = ['hostname', 'site_id']
-    nodes = api_server.GetNodes(api_auth, node_filter, return_fields)
-    print 'Adding nodes %s' % nodes
-    api_server.AddNode(api_auth, node_id, slice_name)
-
-def deployooniprobe(distro="debian"):
-    """
-    This is used to deploy ooni-probe on debian based systems.
-    """
-    run("git clone https://git.torproject.org/ooni-probe.git ooni-probe")
-    cd("ooni-probe")
-    if distro == "debian":
-        sudo("apt-get install git-core python python-pip python-dev")
-    else:
-        print "The selected distro is not supported"
-        print "The following commands may fail"
-    run("virtualenv env")
-    run("source env/bin/activate")
-    run("pip install https://hg.secdev.org/scapy/archive/tip.zip";)
-    run("pip install -r requirements.txt")
-
-def generate_bouncer_file(install_directory='/data/oonib/', bouncer_file="bouncer.yaml"):
-    output = StringIO()
-    get(os.path.join(install_directory, 'oonib.conf'), output)
-    output.seek(0)
-    oonib_configuration = yaml.safe_load(output)
-    
-    output.truncate(0)
-    get(os.path.join(oonib_configuration['main']['tor_datadir'], 'collector', 'hostname'),
-        output)
-    output.seek(0)
-    collector_hidden_service = output.readlines()[0].strip()
-
-    address = env.host
-    test_helpers = {
-            'dns': address + ':' + str(oonib_configuration['helpers']['dns']['tcp_port']),
-            'ssl': 'https://' + address,
-            'traceroute': address,
-    }
-    if oonib_configuration['helpers']['tcp-echo']['port'] == 80:
-        test_helpers['tcp-echo'] = address
-    else:
-        test_helpers['http-return-json-headers'] = 'http://' + address
-
-    bouncer_data = {
-            'collector': 
-                {
-                    'httpo://'+collector_hidden_service: {'test-helper': test_helpers}
-                }
-    }
-    with open(bouncer_file) as f:
-        old_bouncer_data = yaml.safe_load(f)
-
-    with open(bouncer_file, 'w+') as f:
-        old_bouncer_data['collector']['httpo://'+collector_hidden_service] = {}
-        old_bouncer_data['collector']['httpo://'+collector_hidden_service]['test-helper'] = test_helpers
-        yaml.dump(old_bouncer_data, f)
diff --git a/ooniprobe-dev b/ooniprobe-dev
deleted file mode 100755
index e0d5abb..0000000
--- a/ooniprobe-dev
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Developer script for running ooniprobe directly from the repository.
-# We don't automatically add "$PWD" to PYTHONPATH as that is a security risk
-# when run as /usr/bin/ooniprobe on an end user's computer.
-cd "$(realpath "$(dirname "$0")")"
-PYTHONPATH="$PWD" exec ./bin/ooniprobe
diff --git a/scripts/fabfile.py b/scripts/fabfile.py
new file mode 100644
index 0000000..f97f6df
--- /dev/null
+++ b/scripts/fabfile.py
@@ -0,0 +1,100 @@
+#-*- coding: utf-8 -*-
+#
+# :authors: Arturo Filastò, Isis Lovecruft
+# :license: see included LICENSE file
+import os
+import sys
+import yaml
+import xmlrpclib
+from StringIO import StringIO
+
+from fabric.operations import get
+from fabric.api import run, cd, sudo, env
+
+api_auth = {}
+# Set these values 
+api_auth['Username'] = "you@xxxxxxxxxxx"
+api_auth['AuthString'] = "your_password"
+slice_name = "your_slice_name"
+
+### Do not change this
+api_auth['AuthMethod'] = "password"
+
+env.user = 'root'
+def set_hosts(host_file):
+    with open(host_file) as f:
+        for host in f:
+            env.hosts.append(host)
+
+def search_node(nfilter="*.cert.org.cn"):
+    api_server = xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/')
+    if api_server.AuthCheck(api_auth):
+        print "We are authenticated"
+    else:
+        print "We are not authenticated"
+    node_filter = {'hostname': nfilter}
+    return_fields = ['hostname', 'site_id']
+    all_nodes = api_server.GetNodes(api_auth, node_filter, return_fields)
+    print all_nodes
+
+def add_node(nodeid):
+    node_id = int(nodeid)
+    api_server = xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/')
+    node_filter = {'node_id': node_id}
+    return_fields = ['hostname', 'site_id']
+    nodes = api_server.GetNodes(api_auth, node_filter, return_fields)
+    print 'Adding nodes %s' % nodes
+    api_server.AddNode(api_auth, node_id, slice_name)
+
+def deployooniprobe(distro="debian"):
+    """
+    This is used to deploy ooni-probe on debian based systems.
+    """
+    run("git clone https://git.torproject.org/ooni-probe.git ooni-probe")
+    cd("ooni-probe")
+    if distro == "debian":
+        sudo("apt-get install git-core python python-pip python-dev")
+    else:
+        print "The selected distro is not supported"
+        print "The following commands may fail"
+    run("virtualenv env")
+    run("source env/bin/activate")
+    run("pip install https://hg.secdev.org/scapy/archive/tip.zip";)
+    run("pip install -r requirements.txt")
+
+def generate_bouncer_file(install_directory='/data/oonib/', bouncer_file="bouncer.yaml"):
+    output = StringIO()
+    get(os.path.join(install_directory, 'oonib.conf'), output)
+    output.seek(0)
+    oonib_configuration = yaml.safe_load(output)
+    
+    output.truncate(0)
+    get(os.path.join(oonib_configuration['main']['tor_datadir'], 'collector', 'hostname'),
+        output)
+    output.seek(0)
+    collector_hidden_service = output.readlines()[0].strip()
+
+    address = env.host
+    test_helpers = {
+            'dns': address + ':' + str(oonib_configuration['helpers']['dns']['tcp_port']),
+            'ssl': 'https://' + address,
+            'traceroute': address,
+    }
+    if oonib_configuration['helpers']['tcp-echo']['port'] == 80:
+        test_helpers['tcp-echo'] = address
+    else:
+        test_helpers['http-return-json-headers'] = 'http://' + address
+
+    bouncer_data = {
+            'collector': 
+                {
+                    'httpo://'+collector_hidden_service: {'test-helper': test_helpers}
+                }
+    }
+    with open(bouncer_file) as f:
+        old_bouncer_data = yaml.safe_load(f)
+
+    with open(bouncer_file, 'w+') as f:
+        old_bouncer_data['collector']['httpo://'+collector_hidden_service] = {}
+        old_bouncer_data['collector']['httpo://'+collector_hidden_service]['test-helper'] = test_helpers
+        yaml.dump(old_bouncer_data, f)
diff --git a/scripts/setup-dependencies.sh b/scripts/setup-dependencies.sh
new file mode 100755
index 0000000..d96f2cf
--- /dev/null
+++ b/scripts/setup-dependencies.sh
@@ -0,0 +1,992 @@
+#!/bin/bash
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+BUILD_DIR=/tmp/oonibuilding.$RANDOM
+BUILD_LOG=${BUILD_DIR}.log
+TMP_KEYRING=${BUILD_DIR}/tmpkeyring.gpg
+DISTRO='unknown'
+DISTRO_VERSION='unknown'
+REPO_ROOT="$(pwd)"
+MINT_RELEASE_VARS="/etc/os-release"
+
+# Discover our Distro release
+if [ -f /etc/redhat-release ]; then
+  DISTRO="fedora"
+# Debian/Ubuntu
+elif [ -r /lib/lsb/init-functions ]; then
+  DISTRO_VERSION="$( lsb_release -cs )"
+  if [ "$( lsb_release -is )" == "Ubuntu" ]; then
+    DISTRO="ubuntu"
+  elif [ "$( lsb_release -is )" == "LinuxMint" ]; then
+    source $MINT_RELEASE_VARS
+    DISTRO="$ID"
+    DISTRO_VERSION="$( echo $VERSION | cut -d' ' -f3 | tr [:upper:] [:lower:] )"
+  else
+    DISTRO="debian"
+  fi
+fi
+
+TOR_DEB_REPO="http://deb.torproject.org/torproject.org";;
+
+usage()
+{
+cat << EOF
+usage: ./${SCRIPTNAME} options
+
+OPTIONS:
+   -h      Show this message
+   -y      To assume yes to all queries
+ONE MODE SPECIFICATION REQUIRED:
+   -p      Privileged mode - install all dependencies system wide
+   -u      Unprivileged mode - install most dependencies in a virtualenv
+EOF
+}
+
+ASSUME_YES=0
+PRIV_MODE=3
+while getopts â??hypuâ?? OPTION
+do
+  case $OPTION in
+    h)
+      usage
+      exit 1
+      ;;
+    y)
+      ASSUME_YES=1
+      ;;
+    u)
+      PRIV_MODE=0
+      ;;
+    p)
+      PRIV_MODE=1
+      ;;
+    ?)
+      usage
+      exit
+      ;;
+    esac
+done
+
+# make sure a privilege mode was specified
+if [[ $PRIV_MODE -eq 3 ]]; then
+    usage
+    exit
+fi
+
+# make sure we are not root when in unprivileged mode
+if [[ $PRIV_MODE -eq 0 ]]; then
+    if [[ $EUID -eq 0 ]]; then
+	echo "operator error: non-privilege mode must be run as non-root user with sudo privileges"
+	exit
+    fi
+fi
+
+# make sure we are root when in privileged mode
+if [[ $PRIV_MODE -eq 1 ]]; then
+    if [[ $EUID -ne 0 ]]; then
+	echo "operator error: privileged-mode must be run as root"
+	exit
+    fi
+fi
+
+DO () {
+    if [ -z "$2" ]; then
+        RET=0
+    else
+        RET=$2
+    fi
+    if [ -z "$3" ]; then
+        CMD=$1
+    else
+        CMD=$3
+    fi
+    echo "Running: "
+    echo "        $CMD"
+    $1 &>${BUILD_LOG}
+    if [[ "$?" -eq "$2" ]]; then
+        echo "SUCCESS"
+    else
+        echo "FAIL"
+        echo "COMBINED STDOUT/STDERR OUTPUT OF FAILED COMMAND:"
+        cat ${BUILD_LOG}
+        exit 1
+    fi
+}
+
+vercomp () {
+    # Returnned values:
+    #   0: version are equals
+    #   1: $1 is bigger than $2
+    #   2: $2 is bigger than $1
+    if [[ $1 == $2 ]]
+    then
+        return 0
+    fi
+    local IFS=.
+    local i ver1=($1) ver2=($2)
+    # fill empty fields in ver1 with zeros
+    for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
+    do
+        ver1[i]=0
+    done
+    for ((i=0; i<${#ver1[@]}; i++))
+    do
+        if [[ -z ${ver2[i]} ]]
+        then
+            # fill empty fields in ver2 with zeros
+            ver2[i]=0
+        fi
+        if ((10#${ver1[i]} > 10#${ver2[i]}))
+        then
+            return 1
+        fi
+        if ((10#${ver1[i]} < 10#${ver2[i]}))
+        then
+            return 2
+        fi
+    done
+    return 0
+}
+
+install_pkg_from_pypi() {
+    local PKG_NAME=$1
+    local NEEDED_VERSION=$2
+    local KEY_FILE=$3
+
+    echo "install_pkg_from_pypi $1 $2 $3"
+
+    if which $PKG_NAME >/dev/null 2>&1; then
+	INSTALLED_PKG=$($PKG_NAME --version | cut -d" " -f2)
+	vercomp ${INSTALLED_PKG} ${NEEDED_VERSION}
+	if [ "$?" -ne "2" ]; then
+            echo "$PKG_NAME already installed"
+	    return
+	fi
+    fi
+
+    local PKG="${PKG_NAME}-${NEEDED_VERSION}.tar.gz"
+    local PKG_VERIFY=${BUILD_DIR}/${PKG}.asc
+    initial="$(echo $PKG_NAME | head -c 1)"
+    local PKG_URL="https://pypi.python.org/packages/source/${initial}/${PKG_NAME}/${PKG}";
+    local SIG_URL="${PKG_URL}.asc"
+
+    DO "curl -o ${BUILD_DIR}/${PKG} ${PKG_URL}" "0"
+    DO "curl -o ${BUILD_DIR}/${PKG}.asc ${SIG_URL}" "0"
+
+    echo "[+] Verifying PGP signature of $PKG_NAME"
+    DO "sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --import $KEY_FILE" "0"
+    DO "sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --verify $PKG_VERIFY" "0"
+
+    DO "tar xz --directory ${BUILD_DIR}/ -f ${BUILD_DIR}/${PKG}" "0"
+    DO "cd ${BUILD_DIR}/${PKG_NAME}-*" "0"
+
+    echo "[+] Installing the latest ${PKG_NAME}"
+    if [ "${ASSUME_YES}" -eq "0" ]; then
+	echo "WARNING this will overwrite the ${PKG_NAME} that you currently have installed."
+	ANSWER=''
+	until [[ $ANSWER = [yn] ]]; do
+	    read -r -p "Do you wish to continue? [y/n]" ANSWER
+	    echo
+	done
+	if [[ $ANSWER != 'y' ]]; then
+	    echo "Cannot proceed"
+	    exit
+	fi
+    fi
+    DO "sudo python setup.py install" "0"
+}
+
+DSTUFFT_PUB_KEY="
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+dCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABk
+ZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5
+NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGlu
+IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAA
+E6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dt
+ZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBj
+dXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQA
+WQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA
+0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkB
+YAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQC
+HQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwAD
+CwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAE
+LQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF
+hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcH
+GQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII
+5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK
+8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYN
+QA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MP
+zw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQS
+oxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsV
+vRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZ
+IBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMc
+zBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJgg
+xCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNol
+CSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWsp
+nSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwu
+gi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38z
+uDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5
+Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/
+IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF
+VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL
+4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxS
+x1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbha
+B1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9h
+omH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNp
+mmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx
+8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6
+pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eD
+uoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqN
+MY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+X
+Cpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNih
+R6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr
+6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm2
+8Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePC
+X8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXO
+Ns62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHa
+dtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn
+H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0
+NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////hAJhF
+eGlmAABNTQAqAAAACAAGAQYAAwAAAAEAAgAAARIAAwAAAAEAAQAAARoABQAAAAEA
+AABWARsABQAAAAEAAABeASgAAwAAAAEAAgAAh2kABAAAAAEAAABmAAAAAAAAAEgA
+AAABAAAASAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAyKADAAQAAAABAAAA
+zQAAAAD/2wBDAAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0L
+CQkMCggICw8LDA0ODg4OCQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4O
+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/
+wAARCADNAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI
+CQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEI
+I0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZ
+WmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2
+t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
+AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3
+AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRom
+JygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaH
+iImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna
+4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDyfw7Pqmo2kN15EQlt1Zo0
+jG3cCMZ2/pXqSXNxY+H7Ga1t7m8vpyTKkgCpGp6Aepyfp1NeQ+FNcK+IlQSRpbuC
+JzvyzL2AHqT0r1q11C+u7iazjtAkEWFQzchfc+v0oA3nXWbDWYptVtUWS7ttsWxt
+wQdwPQ16NaatF4avoU1TTTPApiEktvOBEFJHyMTj2BH4VheJtP1PUfCOlalZgXl1
+aoBKANuU29APXv8AhWKmtaDrPw3m0bxFNZWN+EW809bmQqCYnAO4dgTxz60Afelz
+4y+HOs/E74e+DPD9/NqHgmOQ/wBtrFIWt1upATChyckh8sQucELnivOPj/8AALw9
+4N8OzeKIdTvbSwijEccJKu99dyPhB1GDzzgehzXxVpXxO/sXVrLTW0u3tbFtWGo3
+EtpIA9wwK4jQ/wACADAPvmvqH4zfHvQ/Hmk3j6fApWSWA6W17JuFmIwA+wA/eZur
+HPANAHiujNqh0q40qyieOO4ulV0YANJIg4yc9Bz9OTXoug+Kbqz08Wl5cSieCCaO
+CwuXzGC68nHQ+ufpW18ItI8AeJtS1W48WateXOnqIvs0dm7K5nbBcZXnb2x3zX0N
+qHwb+FUH7TGj31td382jzRvFcQeaHt4R5ZAG49txzk/3QKAPl/w/8QddTw/e6DLc
+GLThlIIM5AkcgZx3fHAPYGvafgp498dQ/EiLQ9Jdb9rqbyZLeYbo1ABw2R0AznIr
+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
+=1NFB
+-----END PGP PUBLIC KEY BLOCK-----
+"
+  
+install_pip_securely() {
+  NEEDED_VERSION_PIP=1.5.2
+  install_pkg_from_pypi "pip" ${NEEDED_VERSION_PIP} ${DSTUFFT_KEY_FILE}
+}
+
+install_virtualenv_securely() {
+  NEEDED_VERSION_VIRTUALENV=1.11.2
+  install_pkg_from_pypi "virtualenv" ${NEEDED_VERSION_VIRTUALENV} ${DSTUFFT_KEY_FILE}
+}
+
+case $DISTRO_VERSION in
+  lucid|natty|jessie|wheezy|squeeze|precise|n/a|raring|saucy|trusty)
+
+  # Create the build directories
+  DO "mkdir -p ${BUILD_DIR}" "0"
+  DO "chmod 700 ${BUILD_DIR}" "0"
+
+  DSTUFFT_KEY_FILE=${BUILD_DIR}/dstufft-pub-key.gpg
+  echo "${DSTUFFT_PUB_KEY}" > ${DSTUFFT_KEY_FILE}
+
+  # Import the Tor public key
+  DO "sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0x886DDD89" "0"
+  sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
+    
+  HAVE_TOR_REPO="`grep deb.torproject.org/torproject.org /etc/apt/sources.list /etc/apt/sources.list.d/* 2>&1|grep torproject|head -n 1`";
+  if [ -z "$HAVE_TOR_REPO" ]; then
+    echo "[-] It appears that you do not have the torproject.org Debian repository installed; installing it...";
+    if which apt-add-repository >/dev/null 2>&1; then
+      sudo apt-add-repository "deb $TOR_DEB_REPO $DISTRO_VERSION main"
+    else
+      echo -e "deb $TOR_DEB_REPO $DISTRO_VERSION main\ndeb-src $TOR_DEB_REPO $DISTRO_VERSION main" | sudo tee -a /etc/apt/sources.list
+    fi
+  else
+    echo "[.] It appears that you have the torproject.org Debian repository installed!";
+  fi
+
+  if [[ $DISTRO_VERSION == "lucid" ]]; then
+    HAVE_UNIVERSE_REPO="`grep -x 'deb http://archive.ubuntu.com/ubuntu lucid universe' /etc/apt/sources.list /etc/apt/sources.list.d/ 2>&1|grep universe|head -n 1`";
+    if [ -z "$HAVE_UNIVERSE_REPO" ]; then
+      echo "[-] It appears that you do not have the Ubuntu universe repository; installing it...";
+      sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $DISTRO_VERSION universe"
+    else
+      echo "[.] It appears that you have the Ubuntu universe repository installed!";
+    fi
+  fi
+
+  # Install the basic packages to get pip ready to roll
+  echo "[+] Updating OS package list...";
+  sudo sudo apt-get update 2>&1 > /dev/null;
+  echo "[+] Installing packages for your system...";
+  DO "sudo apt-get -y install curl git-core python python-dev python-setuptools
+      build-essential libdumbnet1 python-dumbnet python-libpcap tor tor-geoipdb
+      libgeoip-dev libpcap0.8-dev libssl-dev libffi-dev libdumbnet-dev" "0"
+
+  if [ "$PRIV_MODE" -eq "0" ]; then
+    echo "[+] Using virtualenvironment..."
+
+    install_virtualenv_securely
+
+  if [[ $DISTRO_VERSION == "lucid" ]]; then
+    DO "sudo apt-get -y install python-virtualenv" "0"
+  else
+    DO "sudo apt-get -y install virtualenvwrapper" "0"
+  fi
+
+    if [ ! -f $HOME/.virtualenvs/ooniprobe/bin/activate ]; then
+      # Set up the virtual environment
+      DO "mkdir -p $HOME/.virtualenvs" "0"
+      DO "virtualenv $HOME/.virtualenvs/ooniprobe" "0"
+      source $HOME/.virtualenvs/ooniprobe/bin/activate
+    else
+      source $HOME/.virtualenvs/ooniprobe/bin/activate
+    fi
+    echo "[+] Installing all of the Python dependency requirements with pip in your virtualenv!";
+  fi
+
+  if [[ $PRIV_MODE -eq 1 ]]; then
+      echo "[+] Installing pip securely"
+      install_pip_securely
+
+      echo "[+] Installing all of the Python dependency requirements with pip system wide!";
+      # pip 1.5 needs this
+      DO "sudo pip install setuptools --no-use-wheel --upgrade"
+  fi
+  
+
+  # First install pyasn1 and pyasn1-modules to avoid bugs
+  DO "pip install -v --timeout 60 pyasn1 pyasn1-modules" "0"
+  # Install all of the out of package manager dependencies
+  DO "pip install -v --timeout 60 -r ${REPO_ROOT}/requirements.txt" "0"
+  
+  # Install lucid required pip dependencies
+  if [[ $DISTRO_VERSION == "lucid" ]]; then
+       DO "pip install -v --timeout 60 pygeoip service-identity" "0"
+  fi
+
+  if [ $? != 0 ]; then
+      echo "[+] It appears that pip is having issues installing our Python dependency requirements, we'll try again!";
+      DO "pip install -v --timeout 60 -r ${REPO_ROOT}/requirements.txt" "0"
+      if [ $? != 0 ]; then
+	  echo "[+] It appears that pip is unable to satisfy our requirements - please run the following command:";
+	  echo "   pip install -v --timeout 60 -r ${REPO_ROOT}/requirements.txt   ";
+	  exit 1;
+      fi
+  fi
+
+  echo ""
+  echo "You can now install ooniprobe with: "
+  echo ""
+
+  if [[ $PRIV_MODE -eq 0 ]]; then
+      echo "source $HOME/.virtualenvs/ooniprobe/bin/activate"
+  fi
+
+  echo "python setup.py install"
+
+  echo ""
+  echo "You should also be sure to edit your configuration appropriately by doing:"
+  echo ""
+  echo "cp ${DIR}/data/ooniprobe.conf.sample ~/.ooni/ooniprobe.conf"
+  echo ""
+  
+
+  ;;
+*)
+  echo "It appears that you are using an unsupported OS - please tell us";
+  echo "by filing a bug: https://trac.torproject.org/projects/tor/newticket";;
+  ;;
+esac
diff --git a/setup-dependencies.sh b/setup-dependencies.sh
deleted file mode 100755
index d96f2cf..0000000
--- a/setup-dependencies.sh
+++ /dev/null
@@ -1,992 +0,0 @@
-#!/bin/bash
-
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-BUILD_DIR=/tmp/oonibuilding.$RANDOM
-BUILD_LOG=${BUILD_DIR}.log
-TMP_KEYRING=${BUILD_DIR}/tmpkeyring.gpg
-DISTRO='unknown'
-DISTRO_VERSION='unknown'
-REPO_ROOT="$(pwd)"
-MINT_RELEASE_VARS="/etc/os-release"
-
-# Discover our Distro release
-if [ -f /etc/redhat-release ]; then
-  DISTRO="fedora"
-# Debian/Ubuntu
-elif [ -r /lib/lsb/init-functions ]; then
-  DISTRO_VERSION="$( lsb_release -cs )"
-  if [ "$( lsb_release -is )" == "Ubuntu" ]; then
-    DISTRO="ubuntu"
-  elif [ "$( lsb_release -is )" == "LinuxMint" ]; then
-    source $MINT_RELEASE_VARS
-    DISTRO="$ID"
-    DISTRO_VERSION="$( echo $VERSION | cut -d' ' -f3 | tr [:upper:] [:lower:] )"
-  else
-    DISTRO="debian"
-  fi
-fi
-
-TOR_DEB_REPO="http://deb.torproject.org/torproject.org";;
-
-usage()
-{
-cat << EOF
-usage: ./${SCRIPTNAME} options
-
-OPTIONS:
-   -h      Show this message
-   -y      To assume yes to all queries
-ONE MODE SPECIFICATION REQUIRED:
-   -p      Privileged mode - install all dependencies system wide
-   -u      Unprivileged mode - install most dependencies in a virtualenv
-EOF
-}
-
-ASSUME_YES=0
-PRIV_MODE=3
-while getopts â??hypuâ?? OPTION
-do
-  case $OPTION in
-    h)
-      usage
-      exit 1
-      ;;
-    y)
-      ASSUME_YES=1
-      ;;
-    u)
-      PRIV_MODE=0
-      ;;
-    p)
-      PRIV_MODE=1
-      ;;
-    ?)
-      usage
-      exit
-      ;;
-    esac
-done
-
-# make sure a privilege mode was specified
-if [[ $PRIV_MODE -eq 3 ]]; then
-    usage
-    exit
-fi
-
-# make sure we are not root when in unprivileged mode
-if [[ $PRIV_MODE -eq 0 ]]; then
-    if [[ $EUID -eq 0 ]]; then
-	echo "operator error: non-privilege mode must be run as non-root user with sudo privileges"
-	exit
-    fi
-fi
-
-# make sure we are root when in privileged mode
-if [[ $PRIV_MODE -eq 1 ]]; then
-    if [[ $EUID -ne 0 ]]; then
-	echo "operator error: privileged-mode must be run as root"
-	exit
-    fi
-fi
-
-DO () {
-    if [ -z "$2" ]; then
-        RET=0
-    else
-        RET=$2
-    fi
-    if [ -z "$3" ]; then
-        CMD=$1
-    else
-        CMD=$3
-    fi
-    echo "Running: "
-    echo "        $CMD"
-    $1 &>${BUILD_LOG}
-    if [[ "$?" -eq "$2" ]]; then
-        echo "SUCCESS"
-    else
-        echo "FAIL"
-        echo "COMBINED STDOUT/STDERR OUTPUT OF FAILED COMMAND:"
-        cat ${BUILD_LOG}
-        exit 1
-    fi
-}
-
-vercomp () {
-    # Returnned values:
-    #   0: version are equals
-    #   1: $1 is bigger than $2
-    #   2: $2 is bigger than $1
-    if [[ $1 == $2 ]]
-    then
-        return 0
-    fi
-    local IFS=.
-    local i ver1=($1) ver2=($2)
-    # fill empty fields in ver1 with zeros
-    for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
-    do
-        ver1[i]=0
-    done
-    for ((i=0; i<${#ver1[@]}; i++))
-    do
-        if [[ -z ${ver2[i]} ]]
-        then
-            # fill empty fields in ver2 with zeros
-            ver2[i]=0
-        fi
-        if ((10#${ver1[i]} > 10#${ver2[i]}))
-        then
-            return 1
-        fi
-        if ((10#${ver1[i]} < 10#${ver2[i]}))
-        then
-            return 2
-        fi
-    done
-    return 0
-}
-
-install_pkg_from_pypi() {
-    local PKG_NAME=$1
-    local NEEDED_VERSION=$2
-    local KEY_FILE=$3
-
-    echo "install_pkg_from_pypi $1 $2 $3"
-
-    if which $PKG_NAME >/dev/null 2>&1; then
-	INSTALLED_PKG=$($PKG_NAME --version | cut -d" " -f2)
-	vercomp ${INSTALLED_PKG} ${NEEDED_VERSION}
-	if [ "$?" -ne "2" ]; then
-            echo "$PKG_NAME already installed"
-	    return
-	fi
-    fi
-
-    local PKG="${PKG_NAME}-${NEEDED_VERSION}.tar.gz"
-    local PKG_VERIFY=${BUILD_DIR}/${PKG}.asc
-    initial="$(echo $PKG_NAME | head -c 1)"
-    local PKG_URL="https://pypi.python.org/packages/source/${initial}/${PKG_NAME}/${PKG}";
-    local SIG_URL="${PKG_URL}.asc"
-
-    DO "curl -o ${BUILD_DIR}/${PKG} ${PKG_URL}" "0"
-    DO "curl -o ${BUILD_DIR}/${PKG}.asc ${SIG_URL}" "0"
-
-    echo "[+] Verifying PGP signature of $PKG_NAME"
-    DO "sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --import $KEY_FILE" "0"
-    DO "sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --verify $PKG_VERIFY" "0"
-
-    DO "tar xz --directory ${BUILD_DIR}/ -f ${BUILD_DIR}/${PKG}" "0"
-    DO "cd ${BUILD_DIR}/${PKG_NAME}-*" "0"
-
-    echo "[+] Installing the latest ${PKG_NAME}"
-    if [ "${ASSUME_YES}" -eq "0" ]; then
-	echo "WARNING this will overwrite the ${PKG_NAME} that you currently have installed."
-	ANSWER=''
-	until [[ $ANSWER = [yn] ]]; do
-	    read -r -p "Do you wish to continue? [y/n]" ANSWER
-	    echo
-	done
-	if [[ $ANSWER != 'y' ]]; then
-	    echo "Cannot proceed"
-	    exit
-	fi
-    fi
-    DO "sudo python setup.py install" "0"
-}
-
-DSTUFFT_PUB_KEY="
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-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
-dCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABk
-ZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5
-NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGlu
-IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAA
-E6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dt
-ZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBj
-dXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQA
-WQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA
-0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkB
-YAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQC
-HQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwAD
-CwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAE
-LQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF
-hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcH
-GQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII
-5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK
-8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYN
-QA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MP
-zw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQS
-oxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsV
-vRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZ
-IBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMc
-zBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJgg
-xCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNol
-CSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWsp
-nSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwu
-gi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38z
-uDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5
-Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/
-IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF
-VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL
-4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxS
-x1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbha
-B1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9h
-omH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNp
-mmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx
-8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6
-pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eD
-uoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqN
-MY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+X
-Cpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNih
-R6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr
-6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm2
-8Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePC
-X8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXO
-Ns62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHa
-dtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn
-H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0
-NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////hAJhF
-eGlmAABNTQAqAAAACAAGAQYAAwAAAAEAAgAAARIAAwAAAAEAAQAAARoABQAAAAEA
-AABWARsABQAAAAEAAABeASgAAwAAAAEAAgAAh2kABAAAAAEAAABmAAAAAAAAAEgA
-AAABAAAASAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAyKADAAQAAAABAAAA
-zQAAAAD/2wBDAAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0L
-CQkMCggICw8LDA0ODg4OCQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4O
-Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/
-wAARCADNAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI
-CQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEI
-I0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZ
-WmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2
-t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
-AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3
-AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRom
-JygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaH
-iImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna
-4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDyfw7Pqmo2kN15EQlt1Zo0
-jG3cCMZ2/pXqSXNxY+H7Ga1t7m8vpyTKkgCpGp6Aepyfp1NeQ+FNcK+IlQSRpbuC
-JzvyzL2AHqT0r1q11C+u7iazjtAkEWFQzchfc+v0oA3nXWbDWYptVtUWS7ttsWxt
-wQdwPQ16NaatF4avoU1TTTPApiEktvOBEFJHyMTj2BH4VheJtP1PUfCOlalZgXl1
-aoBKANuU29APXv8AhWKmtaDrPw3m0bxFNZWN+EW809bmQqCYnAO4dgTxz60Afelz
-4y+HOs/E74e+DPD9/NqHgmOQ/wBtrFIWt1upATChyckh8sQucELnivOPj/8AALw9
-4N8OzeKIdTvbSwijEccJKu99dyPhB1GDzzgehzXxVpXxO/sXVrLTW0u3tbFtWGo3
-EtpIA9wwK4jQ/wACADAPvmvqH4zfHvQ/Hmk3j6fApWSWA6W17JuFmIwA+wA/eZur
-HPANAHiujNqh0q40qyieOO4ulV0YANJIg4yc9Bz9OTXoug+Kbqz08Wl5cSieCCaO
-CwuXzGC68nHQ+ufpW18ItI8AeJtS1W48WateXOnqIvs0dm7K5nbBcZXnb2x3zX0N
-qHwb+FUH7TGj31td382jzRvFcQeaHt4R5ZAG49txzk/3QKAPl/w/8QddTw/e6DLc
-GLThlIIM5AkcgZx3fHAPYGvafgp498dQ/EiLQ9Jdb9rqbyZLeYbo1ABw2R0AznIr
-Z8a/BPwPoXgS4TwzrVnqGt3d6q2s7SApZ2w5ZmAPL9QDxnNN+Fz6X8JfFkurS3km
-uXk1o1s8e0IMkhhhu3Tn1oA++bBrxtHtzqKRR32wCcRHK7u5HsetXK+U7j9ouea+
-Mdlo1qkSJ87PKXIbsO1Ubv8AaR1Bpxb2Wjacsq8PI0jOAfTjvQB9Q+INHg17wpd6
-ZM7QmRQ0MyfehkU7kkX3VgDVDwprNxq3h6SHUoxBrlhKbXUogMASqPvr/sOMMD6G
-vlSf49eI2uTOt5bIEIJjWEBPp71gXHx/1RNauNRS5WC7ZVWTykARwOgIPXvQB95U
-V8laL+0ohMP9rWUM8XSSSH5W+vpXqXhj40+GPEGoR2c5bT7mR9sbMcoxJ457UAex
-0VHHLFKm6KRJFzjKsCM1JQAUUUUAfNXxElGmfGK4tGeVhqVok0BbJ2uCVZQewwMg
-eua811S01ZNLu7nQNx1eAfaLQKu5iUIfAHcjbnHtXs3xe0l73WbG5tnEV4lpmFz0
-3K5I/wAPxrivDM7P4x0O6BMEglAljzzG3Rhj2yaAPpLRL++v/D+mT3Vusc0tnFLc
-uD8m9kBKr69eT0+tbefmx7V5d8MdI8SeF/DWuaF4lnW5trPUpH0u6MxcvbOdyg/3
-dvI29q9EgNzLqL3DFEszEBFGVIcnOSzeg6YH1oAvUUUUAfyWeEtQvre8sriKV7qW
-2l80y+ZhRgYya+nND8dW7alJbXT+eGYMki/wkr0J6GvmPwnq+kT313pC6fNJDcTk
-2rnCmOMDB3Y7k9B2Fet2tvo1j4h07TWlmR9SlENjGpPDkZLY7AAdaAO/8W/FLxJp
-PizzdAW8uNJsLTddx+UWt4hwPMdu2M8k+orMsfElpqVpFq4jsr3VRvktJZxuitnY
-EFyvO5wC21emSOOKd4n8J/EPQvF2tR+GdOTV7PVtJjsZdNjjUhAAQJySPnk++SWI
-GdnXArn/AIe+AfF+peBtY1YaDfWGh2XnQ2ilo1mnvIz/AKpEbqBgkt02gkGgDUtL
-nTbG/ttGmsftF/Mscflqu4ozDOzd3PIB7dfevXfCXwzbx3cWK+bdaVZwFlvBIMdD
-90frXF/DBdV8VeKJZbizgt7OBGa/1foIlxj92T1Y8gH619i+H7nTdMsY7PSlWKxh
-g3l5M/MD0Jbvn0oA7rRtO0TwnoC2Wj2cdrZwYIZQAXbGMnuxJrlvFfj9tMZ0e6KT
-bPkgQ8HPrjvXnHiz4hJYahDC17bROD/o8cjYLHHDEdh3z6V82eJvGra38STb6YGu
-7WCQIrrnfORgvJ9Cc49qAPqvQPHM+qeFtWvUOY7HHmTbdwP0Hdj0Fbjass/hiznu
-HuEZoxNcs0gJDk/d3dMgdhXlngcKngqW3iPkQtHI1yo5JkI4x9P51rajpl3faJ4f
-0ewjuLe2t4A0wHO45zknufWgDYuvGUYdLK3eJJJJc/KOTzjJ9TU41kIUnlmSK2ll
-2QxIMyXDdMnHQZ/xrU034Yu9tHc3J+bGdpXB/Oqmq6Tb6fq2ku8KqLIuF54Abvmg
-B88zNBNNJMk0aj5Y4hgDtyfY1lSW9tLpy3bblAz5YbOD6kn61WmuAk5toHhliktT
-tXOVV89D+HP41nNco2nwCZ8osihELE4HfjoaAOyt7hYQIZCT8gAZRyWx6dxRHqTx
-MtxaybHQYIDcEg9a5a2voTd3cxMrFm+TPQeoHtXRpqGnyQCOKKIM3OAeN1AH0F8J
-vizqdl4jgttRupXsmlw4kbpuxuPt0r7D0Px7pOveNLnSLIs3lpuSQ4w2Ov59vxr8
-wBqLS3qy2QRJduMAccdRntXsnwv8XtoHjg6tMonaOIoFLcFiO/0yfzoA/RWiuO8G
-eK/+Et0CW+Wze2jSUoGJypI6gHuR3+tdjQB5f8S0Cafp90eib1Y+i8E/yr508N+I
-9KuvEEmtadPJJYXV95XlsmNk6Hgj0DgdPUV9PfEOAS+DYpD91J+ffIIr5li8P6cu
-j3ulWttHAGuTIDGdhEmdwfjoQe9AHvGrfEvSNP8Ajra+F9V26fbx232iWeVvlbKb
-kc46IMMMnvis/wCFHjjxZ448WeLr2+isZPB9vdvDpN3BCUEhVsYUk5cbcEtjGTiv
-m/WNaXWPjZb654jCw2U4j0vU47Z9rpCFAZOeu7HPTIOBX3bpMltJoFsbRIY4AgCr
-EoVQMcYA6DGKANKiiigD+OzwpBqeo6XdXGixlTp9obieVjhFRCASxPU8gBRyecZ5
-r3P4a6JrWufEzQtT1VwlxYSHULm4uATDZwxoWaR/7q8AdhyO9Urv9mD9pLTviLc/
-D5Phz4js9YiijuruC2KzQywb8C4jdSFkjD7tu7axYfcGRn7R+EH7EHxF8QfsVeKb
-qDxJdDW/ETC2v4dVTyo7qyVsy27qRlPnDD/aAIbPFAHL/D7x/rHxw+DninSvCcGp
-2viy3LI+o2sBAjiWXBuQM/dI+6p7MNwyCKx9J+GHjy7u7jTtU8U6npWmQCeG2gUk
-ymKRgZC3VcuANx98Divc/hx4Q0v4KaN4o0vSdljfTslvJNG5LThSScg8hdxJpNY8
-Zta6VKJWWCMA5OBumPYH2FAGFrD2ugeFdN0SzgMFs3lQxW64VnQEDLD3649KS/8A
-F1tYadqF1FIGl3HbH/fYDao+grzG88S29xr41e9kbEMTMk0hJ5rw3xT4yaXQkstN
-ld5rligkU4MaE8ke7UAX/FHi9r/xFNa2h+0XTMfNkUbmbnJy3cewr1b4ZeHXjmtt
-UvLRmnKsh3jI5I6fQda4r4d+A5bhrO5uoXwArfMuCvfHvX2p4b8NRWtihG05HJxk
-LjrQBl6Zon2fV7yZAv2e4IwoHJGPTtXtPg3SII7VfPiQyE5XdwcdMVk2mlobyFI1
-3KmCR0AOfvV6Tptstu0bIEUqRg9aANxoFjtBGigYyckcV5N4t02CWJ5EUsyHJAHH
-XPNetyXCraNggjHJB4rzvXHfDyKoEfU47+1AHiF3ZWtu9x+68uSVN33eVb2Fci9m
-6WJMZkMhB4kzhQTXql1Et5udAFKfN06c54rKe0jM+UcHedpjfnP+etAHnsMdyuIk
-+WAJg5H61Nbh1voCmGVWHLE8Y649a6aSzaO1kCt92TaeM4A/+vWdPEsIUblXcRhR
-2Pr+VAHQxSeTcrJHJEiuu7y1HBHU89q3Yi1pqS3UDFUyGlQrnAPSuT0+VlKfaORu
-xllz9a76zhEsAjgcPtGDG/VloA+rvgV4wtGvhokqTGedMQuZMrGoydoX3JJLV9U1
-+Y+iO+i+KdLv4XZIoblTMqsQWwwO047HvX6W2F5DqGi2l9byLLBPCskbr0IIzkUA
-YPjKLzfAN2cf6tlf8mFfFdoLnw58RvFFxc38slpfXIeFGyxTjtntX3L4htlu/BOq
-W7AkNbNwPYZ/pXx1r9m17NJBG6o04Cu3l79oB5/GgDyzxo1xZfEafU44Rd6VqElo
-zbV4DAYD/mAPxr798EaXBpHgPS4bOea4s5rVJA0jbirEA4+nOPwr5T17TbSWfR45
-I0eCSDy3XtlGH5Gvpr4b6pDc/C6007k32lxiCaLGCQM7GHqGUdfUH0oA9FoqC2uI
-ruxiuYGDxSKGUiigD8T7T/gp1rXjX4bHQF0fw78M/io+oFf7Skd7zTYNNiQzTXJZ
-hGzE4EKwr85kYMBt+avofw3+2/YaL+ztCfEvhG6tblLQRwzx3SsrPK4jhEw+8ksj
-ElkAO3nk4Jr8yPGmpfAz4aftYpD8NLXRR4MfTYfDHie/WxFxK9pColu7nKgh728k
-CRSSbThEGCCM102h+IvBPijwxfeILOS0m02O8kla2mGRaOcsu4dN4B7dKAPfdWvW
-8Q6vLr1rd2r3VwGkkWGQtGrfX6/oK+fPFtxf22uI11db4lHzCMng+2eMV7hdy26/
-Cqy1nSIIY7G7t0MUkONvzYAAx37mvnbxBe6RBfW8d7fi4vJZ9q7nGGJ5x6E4HTsB
-mgDzLXvFF7fQ3Vl5DmSVQqRqcKAWwF9Tnue9eq+C/hg91e2V7qMe/bGu4Ed6870h
-dK8R/tKeH/D6RK88tzucNz8ifNzj6V+hNhocVraKwgVFVeoXAUY/LNADPDXh+K1t
-YS8Q2IQF4znivTrCBliaH7hIwADxWbY2rC3iCKDuACAnABIruLOyjWKNdgXHBbtn
-2oAdpsU1uAJwmeDnHX3rp4pGkcfxAkZxVZIYlIO8H/gOatAxqWxtC4zzxz70APmZ
-/JKbj5fIAzXJanbSPLKm9isg6cda6uRxszvGWH3CelZk0Xy+YqSOQDgY6n2NAHAv
-4XuNrSwzGNmGFQDrisW60K+ieO6jiIePnpgV6W+q2cKD7XNHZ5GDvcLj9aV9a0WO
-BnlvYGjC5BXLZ/IcmgDxyeRWEzxqockFefuN1/HvXO3aJNbxHykxt3Mc8Adwa67x
-FbpNqj3emQakbOQEgx2rKB6tzivOLm5vbZJkGm38rqMEvtVWYjjPPQ9KANW0kHlv
-5bLKgO5V/vL04rpNNvVt9VtlZ2TfgDDZ57DFfP8AaD4gnVpBb2MVlDIxKtPL9w+n
-0/wr2P4djUbS5uNQ8SSwXU9uxW0VFwFPcnPf0oA9/Hh7UrjQ5bg2shU/Mm1gr9Ou
-K+pPgX4wTWvh5/YM8m6+0wYXPVos459weK+AdS8d+Jp7nztNaSLTY3/1seSz4Pr2
-HpX0T8EPFtsPibp+qTz29oL1Gs9Q3cDzDgofYkjr0oA+4L5ZJNFu44gjSNCwUMcA
-kg9a+Sb+RNpZFwYjhj0xivr84K89K+QNTVU13UrfAKmeRFOMjqcHNAHn3jbUxYLo
-2sjU7PT7ZJmgJuD+7Z3wwHXg8V9FfCzV7rUvh7p2prZR3v2aZ4vtNhcq6Swv8xzn
-klTg7fyr4/8Ai5pupeIvg7p2g6Ho99rOpz38Rhgsk3yFhnJCj1HFfRn7O/wk8ZfD
-z4H3cHiLWbjRbnULwXraTZlJTapsC7GkIIDkDJCcA45NAH0To0lpb6nqWmW91HKE
-nMyxbvmh3/MyEdsE5x2DCishPC2k6Tbx6vpEN2txHePqV0UkZ5dQdotjbyTlmKgY
-B4BUcUUAfyQ6br+leO7/AMRDSdO+wtbTiaOFCY4Y4XOTgE5bnIGeSQW71m6l4s/4
-QXw5dW9vM8tpczm3uFjO1RLsLHOO+3mrXw48JQtYR6n4nsNXtbTUNklo0Euw3ATJ
-VVAPAGCSTz2HWvTtLtvCPiP4MePPBGp6PYjWL/UGvPDupX4VhayGPy1k56soyffO
-KAPEvD37UXjbTfgLcfDJZk/sddMWys75nKz2kan5pV4Pz4PHviuOuPi/f6t8UNKv
-7pBDp1g/+jQqeEGOSfc45Ne/aj+z74b8T+H/AA34T8C38Ub2sTzXV1I4+06nMykK
-gYjAJPOeQBjA9PjDxL4Q1vwd8StT8L65bx2erWc5inj80MPqp43DtuxjINAH3x+z
-hrFt4k/bH0PxAjq0AtrldgH3HGwAflmv1pQC4jjWMhVyDjHJ45z2r8MP2Tbm4039
-tXwRbiUm0uTcwTKWwoZo9yjGeT8hr93YLeNNAikSQI+Ac46nv+NAGxaRRRxmbqvH
-lg8YHvVa88RQwXn2eORVK8uxPyrXG+IvEa2K7ITsIGMDqox0r4y+KHxc1Ox1X7Ha
-bFi3YkctjI/rzQB9e+KPjNoPhWxle61KCScJ8saNlnJ6cV4bdftA63rV262QNnb9
-SHJLexAr4O1HxFqOseIZru4eVYzJvOW3sxz056V0lprbWQEkkyRq2MMZMY9qAPtS
-b4reNJ9e0u0tr63sLOQst1egeZKrY+UKp4X3J9a6O7+KyQWYi1TV9R1SaOPYrTzH
-PByRtGAK+DJfiXaWl6PKvPPli6bTkhh6V22l6hqfj3xBpc+k2E0kt1GVvG/hVhj5
-j6ZFAH2D4d8bxavfmWxjhyGxkpz9DXvWgw+ftuLkKwZc4bkLjvXi/wAOPhhcaZbR
-TXDuynDE4xj2r6Y0uxit7LyiI9gG1VHBoAvmSO90IiNllUqSGUYB/OvAtakI8SPE
-x8tUhf5ccgg8fWvoJ9sdiY1QLt4I6AV83+O5prXXbqWFFllJAdwfurjlh/hQBt6X
-odz4m0l5IJFNxABv5xk+tZ2teXpHh7Uo7iQ2Jit8ySMcAAnGfxz1rR+FuueV4uCu
-6GGchmyvVcYGO3PWvXfiR4b0PVPAd9ZXISCWe2cxzdMr1Kk+hoA8U8FeKvD7W/8A
-Z05W5tJgEJzyD0r03T7SLQLnUYbeQSWctuLm1lTrhTn86+dNB8BSzRmbRpLi5O4M
-FRScfl0r6Y01I0s9P055I5rmGykEu052hgOKAPs/4TfEODxZ4Ot7C/uoW1iGMAHp
-56Y4P+9jqK8K+LkWrad47caLeLZW9vqnm3UKxhvNiI+5/sjnrXmnw28Wx+FvjDpU
-16mbaOcxlBxtBGK9p+K8Iv8Ax095pxZo7iJJVYYw4K459qAM74Y+f/wuHR0E01u4
-d3jbqHBQ5U/7J6GvsOzuku7FZkV05KsjjDIwOCp9wa+L/CTT6f8AEjw/dzLsWK7j
-GEPHJ2/1r7IuJZRP5NnHHLIWHnnzNvlqR16fe9BQBla/qv8AYHgzUrmGS0FzBA01
-tHc7gkmDxHkckknaMZOSODRXLav4Z/4THWRo/iPwtNDo9jNFe2GsjWczi6iYFGRV
-5Ujnk8H0NFAH8etn4z8QaloSLDK8clpA/wAkrbRHGvBAB6AenWrOn2Gt3tlpuqXc
-skRWVJoJrhvkYD+8PQ+g61wFzr/hL7Cg0eLVYp5IgL157gs1zIFJZwrZ2l3OSPug
-DjBNXdY8Uzan4fs7WAyD7JDHuy5VI1J5PHJbHAoA+kvAfxJ157+9sP7Xspr6OWKW
-0YQ7TCN2W2gfl7Cuy+Lmlat8Q/hN4/12fwN4fSHS9K0+4k1xnKzT3lzO0NvDa7VJ
-ad2HKDgAqW+8K+NLe7+xaS90+pPp+4rJAbfIlcZx16gHp+de6eEfiVaCHTdE/s66
-1G2l1mPU1eORsTSxII1yB1wqhAewoA4z4V+D/G3hT4//AA58Q3WkyxQW3iqO2mJG
-NpJaMydeVIY89q/a/wAReJ5NK08xyt5UYPLEdK+F08Z+G72+sprmzN+Ir+C5kwFW
-FXVgQFHcKe/XisH9o3446lffESDRfDBeO3WNWZ4yORjkk9h7mgD6o1XxjaXGmXJ8
-6OS4KngNlv8A9dfGfj2W4uvF7S3CO8IXMZI4znJ/ICvNbD4rX2mSC91W48y1jw1x
-h8/L7/h6dhX2x8QvgJqt58J7DxXYTyreSWaXEUMwyXVl3Yx0XI7fnQB8D3mpPb3z
-SozSIp4VlwMe/rz3rK/tO41XW4YZ5jFIWwVAPyZ/+t3rfudI1GHxsthLbuzMx8yJ
-12sn+PtXeaJ8PLy+mWW1tY/JY/MzjqevWgDi/CfhR77xiPOd5YFl+ZjnpnIPv9K/
-S/4QeEotM0u3mlthZwM+/BjAZz7/AOFeU/Dz4YJaXlvdvALuaHkRqp2Kfc9OK+n7
-DT9Zjt0MjKic4QDvQB7PYanaiNIVcD2xzxWmNSj5O4KV5614413LY24WUhm4LMp4
-Jq9BrCgTmTiNcHKnI/P3oA9Dv9Va20+VmlLOqltzdx2r5v8AFuuJmeSWVGR22urN
-j5TxjP1ra8R+KBHZTM8paPyxtKPzXyp4i8VXdxqW2QrJbKZAF25MhPTPv9KAPoLw
-3rlvY6hH5Ug+zxzIIVRhn8O+OOlfZ15p/wDwmfwkhjjuFSd4hiQ88dxX5m/DoTal
-eWf2g/Jv81lY5KnOBn1xxX6K/C/Wre48HpYeavnB2UqT6HB/CgDa8PaC3h/Rjp6r
-GlqyESEcM5P8XHSpNI8J6dp93PNZXc12k7N5hlILIf7v05ryLxlqnjbR/iBeadAz
-TafJGbi1dM52A4Kn3BOB7V6t4Ea6l0KCS7ZjNINzjrQBwPi3RbvRtYi1CESMhlAk
-OM8dsfTivZfD+p3eqfDqxuZ2kmaOPCSOu3K9h/8AWqfU7S11PTLiwmVZNy44H3TT
-fD8P9mfCpLJoZTcwXLxSFjlSc8bfwIoAu2QlTUbOW4fG2VZCF6YDZx+Yr7B0K3mg
-8OwPdTC4vbj9/cSgYDO3PHsBhR7AV8ZLNcNehSqLGxKF1HTmvsLwlqCal8PdLuFY
-M6wiOQA52sowQfyoA6OiiigD+A5LplLHy0LH7px93nPFbVpqd7PfRRWluJJ2O3as
-ZdnOO4HJ9QBXN9G4P41uaBr154d1tr/T/KS6MEkSStGGeEOu1nQn7r4yA3bJoA61
-5Li38U6TZ2V9HqN9PhWwAfKycKvHGev0r2Xw1rWmaFqeh/b55A8OpwnU7OI+WHsk
-nQyxJNjKM8QcbxwCw7818+6LYvquo3X2aRbJba2NwZCT8oXAVARySxIAxzk16Tq9
-3aNY+GLa5WG0DqYxco2Qvlt87MB6HjtnpQB9beIvF3h/W/FHj7xZF4dXwtoN5qRv
-dK0bT7YRWdpCqxpDbp2CAIC5B+d2cjG7A8b1m7HifVLjWz5dvBdN5lwEXGOcANjt
-x0HArn9T8Q6/qnwQ+y77268LWV9BazzooQCZz5kQPfLcNjp0zWF4eup9N1KytLyV
-k025kjV548uBCZB5nHrs3YH97B9aAOq8K6KPGH7S/gP4f2ECXI1XxDZWlwrnIMRl
-EkuR3/do/wCdfvj8RyrwppVsirbQKIkUA4AUAflgV+Vn7J/wqi1r/gpl4V8baR9o
-h8H6Xa3Wu2SXEokm8ox+Rb+aMZDM0kjAcHgelfrLrq2000xmYPKWYEY7euaAPmPW
-vh/4a1kvPqOm2ruEyrqArKe/NV9E8D+CdNmJEbPsIJjklJX8s8103ijRtYurMxW1
-yFaVjz0P6dBXyn471bXvh/4kgea+keKWTDRJyig8dTQB9pQ6zpVjbLbWUCRxoOEQ
-ADHQVVm8Up5jYUgbuATkn8K+S9N+Iz35G1nRPLBLM4yT6AenvTrjx3Kt3cRtMu9l
-yF29fbPWgD6IuPF9sszozPGEy21wDkd8GsqTxVbpay3C3EYifl0B+U181XXjG9lZ
-pPldD/yzY8ge1ZEHipCktlLcOGflcjIPcCgD2vUdSluPD8l2swaYxtE6DoFJwBj3
-6188alqc7ayssUsW4B1dTzx/jWvqPiddPuJoxM7zqmQC5GM9BivJNU1NH1t5IJjG
-s7fNuGQGPBoA960DxadKs4ZLUiOWBfKkiPUk4ycdya+tvhD4zD/EW6tknzG6CTnu
-CMscdufzr85p717TUbaOOUyCcJiTnH3sZ/n+Ve8+ANbvdP8AF6yxb457hdhkc4VY
-l4JJoA/WyNdP1nTJHuI4nlNsRG5XJxjP5UlpHa6Zo8aswCpFksDj/IryPwl4qS9s
-VAmRZVgCrtbIIA61f8Rax9qt7LRrN3aa7m8p2Q8qmN0h/Lj8aAO+0zUxd2jXwZAJ
-H3KrHjGeCa69HWfQZpIzIXYhmUjGT6gV5kktvaWSOsLGGMH5I+rYH612Ol6sh0+F
-1HlbkD7ZBgqCM4PpQBXeYrqChZTIrkbgvC8dxX1h8OrhR8N9OuIlLQyyNFORjCOG
-OGP14B/Cvk3W1RY49Rtw6rngRjgNjhcentX0D8K9f0+L4KSW2r3sVlNJeCELzu8y
-YBVVR1J3elAHvdFZmn3kcumRrJdQzXEZMMzBurodrfqKKAP4Fu9XLWZILlZJIllj
-ycoT94elU80UAdRpMto3ieEyt9gtZMea442Ad1Pr71s6dpmg6h4vWHU767ttGR5N
-8kZBmMahmRUBBG9iV/2RkmuEV2eQbmJJ4ya9E8KRzPBf6gsGkNBZKZHN7NtJAXLb
-eDnAxx3LACgDrNE1i41Hw1N4dldbDw1LeC9lDzZ/0ncI4cH+NgNoP047VrXvhXxH
-ouqzadrAazS23SSGaNghUDJ2jryOB3GeawovEKeGfiJpGqWdjZzta3kF3HahMqZF
-fzFOOh+YKcf7PNfbXgXU/CGvfB74a6T8TfAOoXXiPx7res6/L4w1S8TdZ6cJDEkN
-vtYTJAX2tkgb22BMryoB6F+wT4i0jStK+Lfi68njt5PNtbZVlf50jSIPg9hguRx6
-V7R4s/af0HSjeGR0nl5MUIbk898dq/Pn4b65DdfGrxR8OPDd9b6Ja6hbStayEM7z
-SxOwRXJxg7FG5f4TlcnGa8/8X+DvGug+KrhtZ8i4O75ZYZSdwPsRx+ZoA+j/ABX+
-2ldW/id1s7CaVw2AsWGVBXm2rfFHVPibqVpaXNvIHlnWRsHO1Qckn+Q+tfMd7bDT
-9ZQyWslujtk+YNxOeSc9+a91+Gix295FcR25cgYLKpY5H8R9BQB7j9mS00PzFEi8
-5AH30Pt+FWdDurHU9TeGeXC5GHZyWrG8TeLYdP8ADafabm3gCx/MsjgEe/HNeB6b
-4+8RSa5c32n6TJeWELBluEQopA/hDY5470Afbd/4ZtvsEW+QzRFC6lV6DOOvYV4x
-4hdbO2eO2+RIskl+CT2/HivRPCnj5Na8GQw3EcyMw5WQjenHI96848ZqL2xuWXYo
-ZWUKGOCP73qDQByd5qMl/C0kreasy7GyfmJUZz/OuWtL6Rr0W0rSTWgkUYxyoPf/
-AD6VhHVZFmRZgkZLAyLv6EcZ+p61YRVubiOe2dwxJL4/SgD1m1Npc6YriQJJDOAy
-HJAAJ24z2rrfC3iua4sEiZhNcQO6S4J3EBuT+WOK8fXW/s8S3M1tF5cgAkRsjcV9
-vc1FYeL4INaNxYRQ280xCzqWxk5xlfc0Afoj4R8e2Wl6bB50pEQVlklTnb0OMdRx
-Xu/wv8Q23izxRqWsQXYks7NRbQr3LHksfqMV+V9vrOpvbx/ab59NspjtSNQfMIx1
-29j7mvQ9B+IEnhzw22kaTqt5FBPJvnMczBpGI4yw7UAfr6b2zsjvkuYYwBlg0orl
-YvF9nquvvbxaxpumaXC2Jru5mGS391F749TwK/LH/hY2pz27CXU7ojdkbpGYMO/P
-5VnTeORcXpFxeMAoyFZuFP09PagD9ln+LHww0bQTaXniezv8AFkRvNZu27jvmtzw
-f+038LfC739vNd3Vw115bxOLTeYtpIJx+PHvX4gzeLrh7ZYknG8AgBjt3d8/T2qu
-viu9Uq5uWTnkdCfx9KAP6B7X9rD4CJ4purqGfUGnuEAu7ltOJYuuAO/PHXHoKK/A
-ZfF9xNCSsq71G3yg2PTrRQB+X4Vj0BPOPxpSjh9rKynuCMV9FeB9V8AXVjHHqWiQ
-2+oRhhbSo3PszE9fxrg/EngnWHvtR1QXOnXHzNIY4X+7H/D7Zx29aAPPrawuri4g
-W3t5rmR9zLHHGXZwo3McAE4ABJ9gTV2zVbu7VY7N5boy7iIkLDBICqFA9T+taHhb
-U7q31u5t11lNEtb2wmtL27aMPtt2GZFUHu20KMc84qz4a1u50TxCNS0q3QamoCwh
-lyiDH3mHf1/AUAV5pdTikv8ARzZTpqb3Ad1KFZIsc/h2r74+BWm/CBv2OvEPiD42
-/FXVtC8ZWOp2kPhOxgmEl8IbeJXW1hRgS0LM6oUwEXc465avhx/Ed5Nr0kzTrLqd
-3JuuLlVyzueMf/WFdFdaSZ/BOoXt5mO8WFo7cMmXOMkjd1AJJ4zjk0APufiBqtt+
-1pD44nms/wC1I9VSSYWg/cIvCNEuAMoqfL7lWPevrPx3rFtr19pV7YPDc29wm+M5
-yCGPB+ma+HZPA+pTeHINS0qWLVSse68WFsG3OM4564HU16B8OvH4ijsdC1NIzBCy
-JbSZ5UD+dAHtGv8Aguxu7e1uPEt8LO1I5MOPMcDsvpn17CrfhDQte8aXRsfCLx+G
-vCVuTbvqOw4bbwY0b/lo/qemepzxVjxJ9i1T49fD6x1UxSeGLqVRcRhiEeKON5OW
-9CyjI7jjvV7xl8Xb/XvEH9ifD7To9N0WzbyxJFGFSIHjjHTOKAPXdL+CXgizuo21
-GS58SaogUvJez7+P9wcCvRv+EK8PfZUs49Ni+yD5mVE4A6YwOleNeCdQu7COBJ5p
-bi8cjzGJ3bz3PPT6V9I+GYZtRv4YXSSR+C/ylQO49vxoA8S8f6Lpmg6bHc2Ua2RY
-hcjI2469PyryG+1iV/DRklVHRgdkir1GO/pX0z8TrS2a4ksr5rZYWRiD1ZcdPxzX
-xRqOuW9pbXMNxIr2xlYRgtzjpQBzs9rBf2TTRjbIMna/G7Jxj3qXT2RI3tpQF2nP
-mFdxA/DpXHx+JI1nlhOBEFKgMTjPY4710YvbJbKB7nc5VDyhwxHofrQB0NtHeXt7
-KjkS6eBl3lfCAY+9UUGp6ZpabNKg+0zj/WX8qbsc9Ix2z69a4a98Qb547S43w2bO
-BDZQNtZ/cnsKj+2zTXMcCyG3duTGvyooz6/40Adtb6pd3N29y0rBWUgGQkkj1x71
-sDU5mjBikWPjkScFhjtnp3rzqXWbe12xRB7iVPuleUHHb9abb393etJLJh0Iy2M5
-Pvj0H+NAHoC6nKY8faicfNGVHBHfj36U43spbKSrGVPyhuSTXE+bIrBsFV3YD9Bt
-I/WrMdw0S5JK5bpnvjqfQYoA7R9RYIkjYmc9JEOMfh1q6b8ifcHOdxLMwyynHpXC
-pK8YAURzSbgN5bse2OuKkN2NrI6NFKRuG08sAeg9KAO6TWHSXazIxJBZsbR/+qiv
-PDf7dqQLvj6kSDJ//XRQB84RTGKFHDYZWG0evvXS3Ws37aCJre5Lxs2LkbuTxgBh
-6VyK5PuB15oJyxCk7T2oAcmMlgcMOQK1dCtrnUPFtnZWzsklxJ5ZKnHBBz+gNQWN
-8LIXgFnZ3ZntXgzcRB/K3dXT0cY4btk8V1HgfxHqPhbxH/aOlwWA1GRDHa3NzD5v
-kHqWVc43dBk9MCgCGXSFtvtGpWZuBZxXYhgfbgh15LHPTBHAPenXniXU4tdWaSf7
-VZMoH2Z/9WAB0x685zVhNaW60qy0jUDMsFnPLc3UqyF3ncklnYnq/br3PeuMuLoT
-RGNYwqCVnj9VB/h+lAH0R4K8SeF7qKbQrmCRLDV4vJnt1mxOoXkqp7BuffHvXkfj
-vR9P8PfFLUbbQnuDpayA2zsxbbwCyB/4tpOPXselcWkkiXCSxuySqwZXBwQR0INW
-Lm+urvd9omklLSF2yeCx6t9TQB9k/B7X7Lxx4e8P6RqSpLqui3W5gRkywscA/wBD
-XpHiHw5PF4umsPD2mpZxSXILQxJwecY4718G+DfFV94Q8fWWs2LuGiceYgbG9e4/
-w96/Y7wBaaJ4g8Iad8RIpLZ7W5tBNH8wPlsQAR9RQBxXg34baylzb3Wpf8fb/OUH
-O32/CvehLaeFdAkuLi8QyKuSrH7wHp65Nchq3xCstP0K8nMyxJDtEShunJ5P+eK+
-T/jB8XInzBA/lyINroDnBI7c96AJ/i/8RkbxOxlYsk8eAVI+uOO9fD2seJDPrs6t
-u8nziQFPb0zVzxZ4pfUQ0ImeWJxvVieQa4O0CyytNckm0jOZPVj2A9zQB12moqSH
-Ub0ssYY+Sh/iPrirV9rLQ4abM0rE+Tb9eexOOtc6L7zAt5JGoiQ7YYwevoKqC8Md
-19obabxm4yMiMdOPf+VAHQ200lrLLdXcvn304ILEAiL2Hv6ig6pdXDyDOVb5Tt4J
-x6n0rm5bktF8+Wcjue9XbW6y8axKERRguT0J4oA63T0cKsrmPysgc9R9K6Q3LuGi
-UrtPynB4X2rkrJDHeRbp4gC2SIzkH6mrABhnc7izFiWyMkk/zoA6UPIoDBjLg4Pt
-/hQbt/nZlXBHXqPrmsNbhViGXYuq/OAOntVUzTzTPMXTHIAY8Y9KAOp+1wRqrxyi
-Odukh5JPpVa6u5UZ5Wl+YcKzHJx/hWB56CVgzrk9Rxt68cHpSfaXMjglBnkBskED
-09qAN4amWw0wRlBHzDqOOP0orl5bne0pQKjAfMG/iooA85milhuGinRo5VxuVhgj
-jvXX+APC0Hi/4q+H9CvdWstCsL7U4LW51G7dVitY3YmSVixAwiK7Y7kAd65CaaW4
-u5Z5naSaRy7u3VmJySfxq3pk0dvrNrPPa/breKUSPblsLIF5Kng8Hv7UAb/jnTNA
-0b4oa7pvhjVJ9a0K31CaKwv5oBE91CrlUmKA/LvALBeMKV9a5ZGdZN43bgQcjtTp
-5xPqM1x5UUHmSM/lxLtRMnOFHYDoBXovhu18Pn4N+Ob++0S61PWY47WLTrpg4t9P
-8yUiSZyCAXYDYiscZBJoA5dbGPVb24ezuI4Ay5CSNy5GM5/Hk/WsCaGW2umimQxy
-ocFWHSu10bWtR8D/ABIe6udHVruNSPsd3EY9pdcpkMu4YBBwQMgj2NdF4xufD2sf
-2rqN1uj8RRxRr5NrxECR1we2TzQB5GCQD059qDyc09WHmLuXfGp+70z7V6/L4O8J
-601m1r4p0nQtTeBDdWBLTqjEcgNxyoBLc8UAePKcSA5wc9fSv05+D3xS02H9i7St
-ChMFpdW6Ou1fn2orYXJ7sep9zivh/wAWeCPDGkwaWvh/xDPql2bjyr77ZB5NvtID
-CVHwMR44OeeuOnOPZ3OraB4ea6sNY0y60+O6Mc1raXRMg5OJCMfc44P0oA+qfGfj
-a0k8N3UAuQ1/xLKHfIB54x/dHT65r5G8TeIrjV9TmlaRm3vuck5y2MflisK+1i8v
-Z2aSeQgjGC3bPf1rKJJ6nNAC5ZjgmrAbzJo40ACL0x39SardB71KpCR7jyT2oAty
-3ChBgHcOI/RR/jUVujuxdRlh/EfWocEne/c8KKlNw4UbcJgYAXjH/wBegC06r5oX
-zNzL94npj0pyTBQSS2AeqtgYqiJm2tuxtJyRTWlVkwEIPc5oA1/7QbcNvAB9MZ/w
-rSS+d0Uyux6f/Wx71y8Yywy2Ez8wq7G5DEqVT1B9O1AHSJfRqjFhI2D90ng1E14C
-hyfmAAUev4VjebgFfkd+zDoKhLsh3YwwyMqc0AbbXJmbdNsLFeFHGaEupPKZQdq9
-gevvWN5wXHTdjjcKmSTzQQwJIGfTFAGk0pjBeOUkHlwh6UVivNtbjA4wcUUAZVTC
-V/sphAzGW3MMdcDj8ufzqGrNpcvaXqzoFJXsy5B9qAJrZIf7OumltpppWCpAQDtU
-k8tx1PGAPc+ld7oXxGv9A8APoEdtbXFkNUhvjYXEO62uJYk2Brhc5lAAG1OFBG45
-Nc2/iq+N3bSW0dpZLbSiSCOKIbQQCBn16n862YYJfGsV0YrZpNYiJceSgAKAcD2H
-uaAOf8T+J9Y8YeP9U8S69eS3urX9wZ7mZupbAAAHYAAADsAB2otLszW0i3KT3Epk
-3lsj5hjGCfrWDJG8Vw8Ug2ujFWGehHWlWRwQAxAxjrxQBrSzRx29xbmNNhbIViMq
-fY16BZanCPCGh3A02ztZIgLUy+bl5gT8zMuPlHt0IGTXkxyX/vHNakF08sVvbAx2
-yoG3yjILA/3v5CgD2vSF0fxAup/2r4itNP075vPLxGSWcdlUg5xngcd6811/QIbG
-VZdP8/ybgnZHvzhcZI3d/es+z1JreyexsbVI57grGbjOWOSOP/1Vcvkkudft7LU9
-QihjtpCk3ltkRjGS2ehJ6Z/woAw9OOlvexRajDcLARh5oWyyns2O4Hp1qHULEWcq
-MkqywSgtEeQ23JALDHBPWtG4u7Cz1eEacGltlQCSRkAMhz2B6DtVfWNVGp3EbJD5
-KqOeclj/APWoAxu9PVc8npmmjrzQSfwoAlLsuQCM9CaiycUlFAC8k+tA6/SkooAn
-DANlmAHtQXQnJLn1qCigCx5iZ6uM9c0ea2Sd+eO9V6KALBcFfSlEjK4IJ9xnrVfJ
-Hel3ev6UAXvMWZDztYD5VPSiqXuDRQAgXIzkCk42jjmjqM0lAE8AgLOJyyrtO0qO
-c9q7zwH4sk8C+KpdZGntdiS32xI7bQ2T1ziuBhIFyrMquFy21uhwM4PtXpfj5tMi
-0/w3pem6LYaabLQrX7ZdRAmXUJ5QZWmkPTI+6BjgZ5OaAPPNRnN3rV3eeWkIuJ3l
-EanhdzE4HsM4qa3017nQdT1BJVEdmI96kcsXbAx9OappOVmR2SOXac4cZB9jXXx3
-MS/COe0W2VWnu/tM0gbk7TsRB6KMk98k0AcdHDJKx2I7FRuOFJwM4zx9akSINuBk
-VHHY96+lPhb4rn0z4VeJbO303SzHpaxzebJbhpp5JC2WL9QABgDt7169d6T4Z8bf
-BTTrvXdAjku1gN2s9vOYXMjAcsVALYBxigD4XD4sYkh3+fu3M/dcen+NUCDt3bsk
-nkE8133xD8JxeE/FiWtvey3cMqCRN8YVkzzgkHn64FcDt/eqD6UAWcqmngKCGYnc
-3X8KpVNMNm1RnGM1DQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf//ZiEYE
-ExECAAYFAlKiLiAACgkQA9fEp2eRsU8h8ACg3oxwTqXXqDA3tR3PjE8i4pwOzJ0A
-n2bmVySBihj7rePnHaPNVaj+00beiQEcBBIBAgAGBQJSkwu8AAoJEB111GTvaF1I
-eqMIAJLZm8XP0Fj3vZs2AB8Z6OqdgMZ5aG4PN7hz2maaUvLrTDQp0sbSnp28PpzX
-HDRTfM5jw/1hPH6RCOTFOd2+udbyVtpR+hU8uR8EAgcmyDmuP1VkAn7q5KrqTAM1
-KXVB0TbHKdBS8HvlZZYFUgQnjkpbC6hO0XJMZ+ypOl/dppCRD1/9vGFKwN600Ztc
-t1KnBzivk81YJ5gLTN5xMNjD1vISrgk689tc2M+RRmOraqLWck/I/6recbjlnhbC
-HiSOfcbfT0KNfZtMeNjotdSVnfXL4Ix75cNB4tRrMKxuIpBj6Q/VvnAj9hcxeNN9
-PjBbOe5acR5+HVFlFeD5KO95GQ2JAjkEEwECACMFAlE2FJsCGwMHCwkIBwMCAQYV
-CAIJCgsEFgIDAQIeAQIXgAAKCRBuPLzpM3Lc+rBsD/wKBXDVQd4AHPlCJfBcGfJj
-GpIjF8ow6+0Fj9SLxBHPdIKrQTVPUjJxo6iW0ViucVkUQAqCfkM2tq0HIpvywu5P
-SHvScpaGPYCbA/7FTW27n6sXS3yfBtAZU+jBYGWyc24EC3CLYov6aF+JDaII59Ht
-qcnZ1jlNasA6vpssdLssn7Hjq32Dj4AQ4kU7VJHNRQ2HJxRQunQw3JtWoMnhgY7c
-7CkuNbB2EiCmMt3ZbnXrGQEhkAYBL0Ncq32OL9peRBgA9Gd24wlwx6hPWPRhTh+l
-YO7VlDd5xyYWe1lNbpLGzUryAAPihGXtxvy5Lu9E17B6ljgAqh59hL/oVrVlu9Lg
-aeW0f3Ja9M/PKD+5RZB+Xi4ym8mXPF/c886+5GN9/qu/mYxjfLNUNCg0mFobqIeA
-JuLK0rSroxM+5OkI0VLCf22erQlmtHyEtIb9zj/wU3CzXW9ruty33YvJpDhwpL38
-pOdyqHxTEK27IG93c4q0703Ixs8lQAPfFjATOq+1av2CtAgxOVayb9lWddB8RvQn
-uqOutxzZAA8/TVdWxEWKgMtLmgM8/GD+TxSZlVATFuivusVAftENck789prXHHO3
-dFBOr/sLHAimQiXzkaNYNuU9+0mflkj9j19aJz4h+c9wqLJ6QV6yYQrHUsvQJTsO
-WH24OQZdygSMClXon0lbwrkCDQROhSR+ARAAwtRQ7897VJ+/xyrTbT8kOvXrot1Q
-ZMs4+KkYrAn3IvIBNNThQoOiKEtvDxPloMC/vcCeNfVgliqfkp7rAFF5eU0x4GNm
-UjDdlw35kBV/niSVLUIRmX81fEjlaY42xTiKdqGC9uu9kDaOXG1EWLpu+EKJXqan
-KzGB6lekjnSexAB/CcPbC9sZS1YBNocRS1OU1gQVOV3X2MdDNdqGgDq8ZKwOSy58
-hBfb4oXHTiBA3Ct7jQWn/xBN6a57WH5sor1dUQzbPNbz0gZxOiTse06IUUXOzhBS
-3wfL2HGkQQfdBnvR3D3y6viy8CVnasm3qE+1VTetQDvkZtE/OwdGAo+lCurroCIn
-hds0M/e5EsMXdIKSI7b+uwxfpDfkoHmLkddHe8uOjiViPxVFTORQ5+J2RLDt0G/x
-/U6wgyh2MopZKGBgbdGFLEchUcOFIuMkaYW+kkUoCJTe9iBjxWaBPM22AytWHfk0
-IlpdZzipH2VPSblZ/C4i8e2gnmEoozl4Z6VzQkKE7sYLe4r+WeW5mzz6oyaDZhud
-hEKVvbqQdbT7//BLoYHh4Kumjd3P6ih4MIt858RKBD6Qaksxds9Dv+2qvW6c/h+l
-hLmI/dXtkRIusOLFZ0zkP1KHHjXtMI72mM6SNxulHdpzB4msmJdtHTwyNECStLoi
-EFpv7ORaJ7lKdtsAEQEAAYkCHwQYAQIACQUCToUkfgIbDAAKCRBuPLzpM3Lc+vxm
-D/9+dGm2/UlePdEWACWN9/e5aDnzBfVAWD4TPwgpjnLyOQxqH7bifOa0ETekFTDE
-stMVpgAJnM27f5ivUubkAsjIt115MwAsNNQFNVyQXleGx7C79X8zsWZbrri0uI15
-3Z2FYZ638idnPsD0RuSeq74T/OiaP7azT7mOwvMnHqOvLBw9nzC705hlq5W1QSMI
-X4WnjkoHY7iLW4Fb7wyNVDpX1QE20rkjREt3SNKEsJx6Oef6mPEMVcpmYfFPRoT4
-CFYfegfPHm4VJozjxiz6pFsBWkDJHq3HN4PXnsTKZ5HS0ePNy54L0tgH82qUrrSo
-B061imjBCmTMrlWdlRB08fu2h23uX0WQt0nUGsVkMwnJSwc0SWT66YKIW1nwLw0q
-LxWZJt61sspkXFpOlem4/6RsLvAXw4BFJDprPT3R4kTEDfGzl8x3Kie7QCEpG40j
-X+wrljr+1p5v9jdiuf7jFrBQvhIJSIY/gRJjrml3bEdeL+QKV40lTX/X+lUwdKiy
-QMxkWSOOGaphcO8arNx7zInSOIGPN5fUnM7Bco9c8NYUUMpfjGndYSGpO5SQohnR
-pPOEHdbYFa0zU9RkvueQqdpKitirzaCUvysPylksdpQRWWP6DoPKfUhylzq6FMGD
-p50Ey4/FI/T4zjAVeqdBysR08T3mZv3SHOy0qOq/kDiK2Q==
-=1NFB
------END PGP PUBLIC KEY BLOCK-----
-"
-  
-install_pip_securely() {
-  NEEDED_VERSION_PIP=1.5.2
-  install_pkg_from_pypi "pip" ${NEEDED_VERSION_PIP} ${DSTUFFT_KEY_FILE}
-}
-
-install_virtualenv_securely() {
-  NEEDED_VERSION_VIRTUALENV=1.11.2
-  install_pkg_from_pypi "virtualenv" ${NEEDED_VERSION_VIRTUALENV} ${DSTUFFT_KEY_FILE}
-}
-
-case $DISTRO_VERSION in
-  lucid|natty|jessie|wheezy|squeeze|precise|n/a|raring|saucy|trusty)
-
-  # Create the build directories
-  DO "mkdir -p ${BUILD_DIR}" "0"
-  DO "chmod 700 ${BUILD_DIR}" "0"
-
-  DSTUFFT_KEY_FILE=${BUILD_DIR}/dstufft-pub-key.gpg
-  echo "${DSTUFFT_PUB_KEY}" > ${DSTUFFT_KEY_FILE}
-
-  # Import the Tor public key
-  DO "sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0x886DDD89" "0"
-  sudo gpg --homedir /root --no-default-keyring --keyring $TMP_KEYRING --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
-    
-  HAVE_TOR_REPO="`grep deb.torproject.org/torproject.org /etc/apt/sources.list /etc/apt/sources.list.d/* 2>&1|grep torproject|head -n 1`";
-  if [ -z "$HAVE_TOR_REPO" ]; then
-    echo "[-] It appears that you do not have the torproject.org Debian repository installed; installing it...";
-    if which apt-add-repository >/dev/null 2>&1; then
-      sudo apt-add-repository "deb $TOR_DEB_REPO $DISTRO_VERSION main"
-    else
-      echo -e "deb $TOR_DEB_REPO $DISTRO_VERSION main\ndeb-src $TOR_DEB_REPO $DISTRO_VERSION main" | sudo tee -a /etc/apt/sources.list
-    fi
-  else
-    echo "[.] It appears that you have the torproject.org Debian repository installed!";
-  fi
-
-  if [[ $DISTRO_VERSION == "lucid" ]]; then
-    HAVE_UNIVERSE_REPO="`grep -x 'deb http://archive.ubuntu.com/ubuntu lucid universe' /etc/apt/sources.list /etc/apt/sources.list.d/ 2>&1|grep universe|head -n 1`";
-    if [ -z "$HAVE_UNIVERSE_REPO" ]; then
-      echo "[-] It appears that you do not have the Ubuntu universe repository; installing it...";
-      sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $DISTRO_VERSION universe"
-    else
-      echo "[.] It appears that you have the Ubuntu universe repository installed!";
-    fi
-  fi
-
-  # Install the basic packages to get pip ready to roll
-  echo "[+] Updating OS package list...";
-  sudo sudo apt-get update 2>&1 > /dev/null;
-  echo "[+] Installing packages for your system...";
-  DO "sudo apt-get -y install curl git-core python python-dev python-setuptools
-      build-essential libdumbnet1 python-dumbnet python-libpcap tor tor-geoipdb
-      libgeoip-dev libpcap0.8-dev libssl-dev libffi-dev libdumbnet-dev" "0"
-
-  if [ "$PRIV_MODE" -eq "0" ]; then
-    echo "[+] Using virtualenvironment..."
-
-    install_virtualenv_securely
-
-  if [[ $DISTRO_VERSION == "lucid" ]]; then
-    DO "sudo apt-get -y install python-virtualenv" "0"
-  else
-    DO "sudo apt-get -y install virtualenvwrapper" "0"
-  fi
-
-    if [ ! -f $HOME/.virtualenvs/ooniprobe/bin/activate ]; then
-      # Set up the virtual environment
-      DO "mkdir -p $HOME/.virtualenvs" "0"
-      DO "virtualenv $HOME/.virtualenvs/ooniprobe" "0"
-      source $HOME/.virtualenvs/ooniprobe/bin/activate
-    else
-      source $HOME/.virtualenvs/ooniprobe/bin/activate
-    fi
-    echo "[+] Installing all of the Python dependency requirements with pip in your virtualenv!";
-  fi
-
-  if [[ $PRIV_MODE -eq 1 ]]; then
-      echo "[+] Installing pip securely"
-      install_pip_securely
-
-      echo "[+] Installing all of the Python dependency requirements with pip system wide!";
-      # pip 1.5 needs this
-      DO "sudo pip install setuptools --no-use-wheel --upgrade"
-  fi
-  
-
-  # First install pyasn1 and pyasn1-modules to avoid bugs
-  DO "pip install -v --timeout 60 pyasn1 pyasn1-modules" "0"
-  # Install all of the out of package manager dependencies
-  DO "pip install -v --timeout 60 -r ${REPO_ROOT}/requirements.txt" "0"
-  
-  # Install lucid required pip dependencies
-  if [[ $DISTRO_VERSION == "lucid" ]]; then
-       DO "pip install -v --timeout 60 pygeoip service-identity" "0"
-  fi
-
-  if [ $? != 0 ]; then
-      echo "[+] It appears that pip is having issues installing our Python dependency requirements, we'll try again!";
-      DO "pip install -v --timeout 60 -r ${REPO_ROOT}/requirements.txt" "0"
-      if [ $? != 0 ]; then
-	  echo "[+] It appears that pip is unable to satisfy our requirements - please run the following command:";
-	  echo "   pip install -v --timeout 60 -r ${REPO_ROOT}/requirements.txt   ";
-	  exit 1;
-      fi
-  fi
-
-  echo ""
-  echo "You can now install ooniprobe with: "
-  echo ""
-
-  if [[ $PRIV_MODE -eq 0 ]]; then
-      echo "source $HOME/.virtualenvs/ooniprobe/bin/activate"
-  fi
-
-  echo "python setup.py install"
-
-  echo ""
-  echo "You should also be sure to edit your configuration appropriately by doing:"
-  echo ""
-  echo "cp ${DIR}/data/ooniprobe.conf.sample ~/.ooni/ooniprobe.conf"
-  echo ""
-  
-
-  ;;
-*)
-  echo "It appears that you are using an unsupported OS - please tell us";
-  echo "by filing a bug: https://trac.torproject.org/projects/tor/newticket";;
-  ;;
-esac
diff --git a/var/example_inputs/README b/var/example_inputs/README
new file mode 100644
index 0000000..cbf0782
--- /dev/null
+++ b/var/example_inputs/README
@@ -0,0 +1,2 @@
+These inputs are here to assist the running of before_i_commit.sh that is used to verify proper functioning of ooniprobe.
+
diff --git a/var/example_inputs/alexa-head.txt b/var/example_inputs/alexa-head.txt
new file mode 100644
index 0000000..1ddf982
--- /dev/null
+++ b/var/example_inputs/alexa-head.txt
@@ -0,0 +1,10 @@
+http://google.com/
+http://facebook.com/
+http://youtube.com/
+http://yahoo.com/
+http://baidu.com/
+http://wikipedia.org/
+http://live.com/
+http://twitter.com/
+http://qq.com/
+http://amazon.com/
diff --git a/var/example_inputs/alexa-top-1k.txt b/var/example_inputs/alexa-top-1k.txt
new file mode 100644
index 0000000..d101505
--- /dev/null
+++ b/var/example_inputs/alexa-top-1k.txt
@@ -0,0 +1,1000 @@
+http://google.com/
+http://facebook.com/
+http://youtube.com/
+http://yahoo.com/
+http://baidu.com/
+http://wikipedia.org/
+http://live.com/
+http://twitter.com/
+http://qq.com/
+http://amazon.com/
+http://blogspot.com/
+http://linkedin.com/
+http://taobao.com/
+http://google.co.in/
+http://yahoo.co.jp/
+http://sina.com.cn/
+http://msn.com/
+http://google.com.hk/
+http://google.de/
+http://bing.com/
+http://yandex.ru/
+http://wordpress.com/
+http://ebay.com/
+http://babylon.com/
+http://google.co.jp/
+http://google.co.uk/
+http://google.fr/
+http://vk.com/
+http://apple.com/
+http://163.com/
+http://googleusercontent.com/
+http://soso.com/
+http://microsoft.com/
+http://mail.ru/
+http://weibo.com/
+http://google.com.br/
+http://tumblr.com/
+http://pinterest.com/
+http://google.es/
+http://paypal.com/
+http://craigslist.org/
+http://ask.com/
+http://google.it/
+http://google.ru/
+http://xhamster.com/
+http://blogger.com/
+http://sohu.com/
+http://go.com/
+http://bbc.co.uk/
+http://xvideos.com/
+http://avg.com/
+http://imdb.com/
+http://fc2.com/
+http://google.com.mx/
+http://youku.com/
+http://ifeng.com/
+http://flickr.com/
+http://google.ca/
+http://tudou.com/
+http://t.co/
+http://hao123.com/
+http://tmall.com/
+http://conduit.com/
+http://adobe.com/
+http://odnoklassniki.ru/
+http://aol.com/
+http://espn.go.com/
+http://pornhub.com/
+http://ebay.de/
+http://cnn.com/
+http://blogspot.in/
+http://google.co.id/
+http://mywebsearch.com/
+http://livejasmin.com/
+http://amazon.de/
+http://zedo.com/
+http://huffingtonpost.com/
+http://redtube.com/
+http://thepiratebay.se/
+http://google.com.tr/
+http://rakuten.co.jp/
+http://stackoverflow.com/
+http://sogou.com/
+http://google.com.au/
+http://alibaba.com/
+http://about.com/
+http://godaddy.com/
+http://ebay.co.uk/
+http://adf.ly/
+http://amazon.co.jp/
+http://wordpress.org/
+http://google.pl/
+http://uol.com.br/
+http://mediafire.com/
+http://imgur.com/
+http://dailymotion.com/
+http://instagram.com/
+http://amazon.co.uk/
+http://cnet.com/
+http://netflix.com/
+http://youporn.com/
+http://ameblo.jp/
+http://360buy.com/
+http://alipay.com/
+http://chinaz.com/
+http://globo.com/
+http://livedoor.com/
+http://bp.blogspot.com/
+http://360.cn/
+http://nytimes.com/
+http://4shared.com/
+http://doubleclick.com/
+http://xnxx.com/
+http://adcash.com/
+http://torrentz.eu/
+http://google.nl/
+http://incredibar.com/
+http://neobux.com/
+http://google.com.sa/
+http://searchnu.com/
+http://vimeo.com/
+http://ehow.com/
+http://livejournal.com/
+http://dropbox.com/
+http://google.com.ar/
+http://bankofamerica.com/
+http://dailymail.co.uk/
+http://douban.com/
+http://search-results.com/
+http://warriorforum.com/
+http://renren.com/
+http://reddit.com/
+http://weather.com/
+http://tube8.com/
+http://badoo.com/
+http://pconline.com.cn/
+http://chase.com/
+http://secureserver.net/
+http://wigetmedia.com/
+http://tianya.cn/
+http://deviantart.com/
+http://indiatimes.com/
+http://aweber.com/
+http://cnzz.com/
+http://google.com.pk/
+http://stumbleupon.com/
+http://kat.ph/
+http://google.cn/
+http://spiegel.de/
+http://google.com.eg/
+http://blogspot.com.br/
+http://blogfa.com/
+http://56.com/
+http://letv.com/
+http://mozilla.org/
+http://amazonaws.com/
+http://google.co.th/
+http://google.co.za/
+http://espncricinfo.com/
+http://answers.com/
+http://goo.ne.jp/
+http://sourceforge.net/
+http://foxnews.com/
+http://clicksor.com/
+http://softonic.com/
+http://addthis.com/
+http://walmart.com/
+http://etsy.com/
+http://wellsfargo.com/
+http://comcast.net/
+http://reference.com/
+http://wikimedia.org/
+http://slideshare.net/
+http://liveinternet.ru/
+http://salesforce.com/
+http://booking.com/
+http://squidoo.com/
+http://photobucket.com/
+http://google.co.ve/
+http://allegro.pl/
+http://fiverr.com/
+http://onet.pl/
+http://depositfiles.com/
+http://skype.com/
+http://wikia.com/
+http://themeforest.net/
+http://statcounter.com/
+http://myspace.com/
+http://hootsuite.com/
+http://funmoods.com/
+http://xinhuanet.com/
+http://fbcdn.net/
+http://google.com.my/
+http://bild.de/
+http://guardian.co.uk/
+http://ucoz.ru/
+http://outbrain.com/
+http://people.com.cn/
+http://nbcnews.com/
+http://scribd.com/
+http://google.com.co/
+http://pengyou.com/
+http://mgid.com/
+http://soundcloud.com/
+http://google.com.vn/
+http://free.fr/
+http://google.gr/
+http://optmd.com/
+http://nicovideo.jp/
+http://rediff.com/
+http://leboncoin.fr/
+http://it168.com/
+http://zol.com.cn/
+http://google.be/
+http://download.com/
+http://w3schools.com/
+http://china.com/
+http://adultfriendfinder.com/
+http://domaintools.com/
+http://xunlei.com/
+http://naver.com/
+http://archive.org/
+http://sweetim.com/
+http://rapidshare.com/
+http://youjizz.com/
+http://58.com/
+http://files.wordpress.com/
+http://nfl.com/
+http://wsj.com/
+http://yelp.com/
+http://profitclicking.com/
+http://iqiyi.com/
+http://blogspot.com.es/
+http://hostgator.com/
+http://orange.fr/
+http://google.com.tw/
+http://isohunt.com/
+http://hudong.com/
+http://google.com.ua/
+http://google.se/
+http://soku.com/
+http://tagged.com/
+http://google.at/
+http://jqw.com/
+http://reuters.com/
+http://telegraph.co.uk/
+http://indeed.com/
+http://4399.com/
+http://uploaded.net/
+http://filestube.com/
+http://ups.com/
+http://flipkart.com/
+http://wp.pl/
+http://kaixin001.com/
+http://tripadvisor.com/
+http://taringa.net/
+http://samsung.com/
+http://rutracker.org/
+http://google.ro/
+http://rambler.ru/
+http://libero.it/
+http://cam4.com/
+http://paipai.com/
+http://yieldmanager.com/
+http://web.de/
+http://google.com.ph/
+http://gmx.net/
+http://imageshack.us/
+http://xing.com/
+http://2345.com/
+http://dianxin.cn/
+http://php.net/
+http://hp.com/
+http://mashable.com/
+http://yesky.com/
+http://att.com/
+http://csdn.net/
+http://ikea.com/
+http://washingtonpost.com/
+http://ameba.jp/
+http://pandora.com/
+http://github.com/
+http://google.com.pe/
+http://forbes.com/
+http://hatena.ne.jp/
+http://wordreference.com/
+http://pof.com/
+http://google.com.ng/
+http://aliexpress.com/
+http://google.ch/
+http://hardsextube.com/
+http://thefreedictionary.com/
+http://clickbank.com/
+http://iminent.com/
+http://narod.ru/
+http://etao.com/
+http://bet365.com/
+http://google.cl/
+http://ilivid.com/
+http://google.com.sg/
+http://weebly.com/
+http://amazon.cn/
+http://ero-advertising.com/
+http://rapidgator.net/
+http://youdao.com/
+http://mercadolivre.com.br/
+http://yourlust.com/
+http://constantcontact.com/
+http://xcar.com.cn/
+http://groupon.com/
+http://target.com/
+http://hurriyet.com.tr/
+http://media.tumblr.com/
+http://businessinsider.com/
+http://5000pk.com/
+http://9gag.com/
+http://kakaku.com/
+http://akamaihd.net/
+http://putlocker.com/
+http://shutterstock.com/
+http://kaskus.co.id/
+http://ebay.it/
+http://bitauto.com/
+http://goal.com/
+http://usps.com/
+http://milliyet.com.tr/
+http://techcrunch.com/
+http://amazon.fr/
+http://ku6.com/
+http://typepad.com/
+http://dell.com/
+http://terra.com.br/
+http://huanqiu.com/
+http://digitalpoint.com/
+http://tlbb8.com/
+http://ebay.com.au/
+http://engadget.com/
+http://twimg.com/
+http://blogspot.de/
+http://soufun.com/
+http://t-online.de/
+http://hulu.com/
+http://popads.net/
+http://xe.com/
+http://cj.com/
+http://in.com/
+http://nih.gov/
+http://joomla.org/
+http://battle.net/
+http://americanexpress.com/
+http://kooora.com/
+http://drtuber.com/
+http://marca.com/
+http://gsmarena.com/
+http://movie2k.to/
+http://mlb.com/
+http://elpais.com/
+http://gazeta.pl/
+http://blogspot.jp/
+http://bestbuy.com/
+http://agoda.com/
+http://uimserv.net/
+http://ig.com.br/
+http://mailchimp.com/
+http://seznam.cz/
+http://siteadvisor.com/
+http://linkbucks.com/
+http://zimbio.com/
+http://match.com/
+http://extratorrent.com/
+http://tlbb2.com/
+http://google.pt/
+http://verizonwireless.com/
+http://fedex.com/
+http://angege.com/
+http://infusionsoft.com/
+http://peyvandha.ir/
+http://ezinearticles.com/
+http://zanox.com/
+http://elmundo.es/
+http://google.co.hu/
+http://bluehost.com/
+http://detik.com/
+http://adserverplus.com/
+http://4dsply.com/
+http://aili.com/
+http://istockphoto.com/
+http://leo.org/
+http://autohome.com.cn/
+http://hubpages.com/
+http://google.ie/
+http://gutefrage.net/
+http://usatoday.com/
+http://mycalendarbook.com/
+http://ebay.fr/
+http://51.com/
+http://freelancer.com/
+http://speedtest.net/
+http://google.cz/
+http://aizhan.com/
+http://drudgereport.com/
+http://webs.com/
+http://w3.org/
+http://seomoz.org/
+http://vnexpress.net/
+http://homeway.com.cn/
+http://google.dk/
+http://ganji.com/
+http://alimama.com/
+http://google.ae/
+http://twoo.com/
+http://mpnrs.com/
+http://naver.jp/
+http://mixi.jp/
+http://nifty.com/
+http://12306.cn/
+http://analyrics.com/
+http://adnxs.com/
+http://pcauto.com.cn/
+http://tlbbsifu.com/
+http://cntv.cn/
+http://yandex.ua/
+http://seesaa.net/
+http://2ch.net/
+http://cbssports.com/
+http://ask.fm/
+http://y8.com/
+http://bloomberg.com/
+http://360tl.com/
+http://pch.com/
+http://ebay.in/
+http://chip.de/
+http://abcnews.go.com/
+http://bannersbroker.com/
+http://dangdang.com/
+http://over-blog.com/
+http://naukri.com/
+http://varzesh3.com/
+http://turbobit.net/
+http://letitbit.net/
+http://jobrapido.com/
+http://ign.com/
+http://pchome.net/
+http://126.com/
+http://maktoob.com/
+http://lemonde.fr/
+http://hdfcbank.com/
+http://chinanews.com/
+http://dianping.com/
+http://meetup.com/
+http://abril.com.br/
+http://google.no/
+http://capitalone.com/
+http://tmz.com/
+http://wix.com/
+http://google.dz/
+http://goodreads.com/
+http://51.la/
+http://histats.com/
+http://surveymonkey.com/
+http://51job.com/
+http://repubblica.it/
+http://fotolia.com/
+http://vancl.com/
+http://imesh.com/
+http://ning.com/
+http://informer.com/
+http://java.com/
+http://buzzfeed.com/
+http://jimdo.com/
+http://beeg.com/
+http://gmw.cn/
+http://ndtv.com/
+http://1channel.ch/
+http://bravotube.net/
+http://expedia.com/
+http://pcgames.com.cn/
+http://admin5.com/
+http://monster.com/
+http://daum.net/
+http://mop.com/
+http://multiply.com/
+http://qunar.com/
+http://google.co.il/
+http://dmm.co.jp/
+http://latimes.com/
+http://avito.ru/
+http://rr.com/
+http://commentcamarche.net/
+http://sape.ru/
+http://clixsense.com/
+http://enet.com.cn/
+http://viadeo.com/
+http://mihanblog.com/
+http://bitly.com/
+http://lefigaro.fr/
+http://rbc.ru/
+http://adsupply.com/
+http://microsoftonline.com/
+http://drupal.org/
+http://mynet.com/
+http://twitpic.com/
+http://google.co.kr/
+http://adultadworld.com/
+http://newegg.com/
+http://google.fi/
+http://kijiji.ca/
+http://wikihow.com/
+http://10086.cn/
+http://zillow.com/
+http://livescore.com/
+http://blogspot.it/
+http://webmd.com/
+http://xda-developers.com/
+http://nokia.com/
+http://wretch.cc/
+http://odesk.com/
+http://kuxun.cn/
+http://bleacherreport.com/
+http://myfreecams.com/
+http://outlook.com/
+http://livedoor.biz/
+http://linkwithin.com/
+http://tradedoubler.com/
+http://empowernetwork.com/
+http://delicious.com/
+http://ovh.net/
+http://nikkei.com/
+http://gotomeeting.com/
+http://39.net/
+http://largeporntube.com/
+http://tinyurl.com/
+http://ya.ru/
+http://spankwire.com/
+http://website-unavailable.com/
+http://sahibinden.com/
+http://nuvid.com/
+http://zing.vn/
+http://123rf.com/
+http://blackhatworld.com/
+http://icicibank.com/
+http://irctc.co.in/
+http://warriorplus.com/
+http://mobile.de/
+http://189.cn/
+http://ibm.com/
+http://yomiuri.co.jp/
+http://tabelog.com/
+http://softpedia.com/
+http://retailmenot.com/
+http://virgilio.it/
+http://livestrong.com/
+http://mercadolibre.com.ar/
+http://webmoney.ru/
+http://elance.com/
+http://oracle.com/
+http://swagbucks.com/
+http://searchqu.com/
+http://jiayuan.com/
+http://itau.com.br/
+http://mapquest.com/
+http://sakura.ne.jp/
+http://youm7.com/
+http://digg.com/
+http://biglobe.ne.jp/
+http://news.com.au/
+http://taleo.net/
+http://backpage.com/
+http://keezmovies.com/
+http://lzjl.com/
+http://stackexchange.com/
+http://gi-akademie.com/
+http://thesun.co.uk/
+http://pornhublive.com/
+http://immobilienscout24.de/
+http://jquery.com/
+http://homedepot.com/
+http://alphaporno.com/
+http://pclady.com.cn/
+http://duowan.com/
+http://hi5.com/
+http://allrecipes.com/
+http://corriere.it/
+http://foxsports.com/
+http://china.com.cn/
+http://folha.uol.com.br/
+http://ultimatepowerprofits.com/
+http://altervista.org/
+http://cnblogs.com/
+http://olx.in/
+http://verizon.com/
+http://macys.com/
+http://heise.de/
+http://xyxy.net/
+http://mercadolibre.com.mx/
+http://habrahabr.ru/
+http://persianblog.ir/
+http://quora.com/
+http://exoclick.com/
+http://issuu.com/
+http://google.sk/
+http://tribalfusion.com/
+http://gc.ca/
+http://eastmoney.com/
+http://examiner.com/
+http://zynga.com/
+http://lenta.ru/
+http://21cn.com/
+http://livingsocial.com/
+http://codecanyon.net/
+http://accuweather.com/
+http://xtube.com/
+http://7k7k.com/
+http://force.com/
+http://sergey-mavrodi.com/
+http://people.com/
+http://google.co.ma/
+http://feedburner.com/
+http://114so.cn/
+http://moneycontrol.com/
+http://quikr.com/
+http://cbsnews.com/
+http://sapo.pt/
+http://adscale.de/
+http://excite.co.jp/
+http://yxlady.com/
+http://tabnak.ir/
+http://gi-backoffice.com/
+http://templatemonster.com/
+http://ancestry.com/
+http://careerbuilder.com/
+http://yellowpages.com/
+http://timeanddate.com/
+http://orkut.com/
+http://list-manage.com/
+http://oneindia.in/
+http://suning.com/
+http://pogo.com/
+http://nhk.or.jp/
+http://wiktionary.org/
+http://haberturk.com/
+http://msn.com.cn/
+http://kickstarter.com/
+http://inbox.com/
+http://mybrowserbar.com/
+http://porn.com/
+http://hidemyass.com/
+http://nikkeibp.co.jp/
+http://kohls.com/
+http://blog.163.com/
+http://dh818.com/
+http://kinopoisk.ru/
+http://zippyshare.com/
+http://netlog.com/
+http://pixnet.net/
+http://gap.com/
+http://custhelp.com/
+http://4tube.com/
+http://cheezburger.com/
+http://nu.nl/
+http://v9.com/
+http://interia.pl/
+http://so-net.ne.jp/
+http://blog.com/
+http://getresponse.com/
+http://alnaddy.com/
+http://impress.co.jp/
+http://justdial.com/
+http://gizmodo.com/
+http://time.com/
+http://hotfile.com/
+http://who.is/
+http://wunderground.com/
+http://kankan.com/
+http://miniclip.com/
+http://welt.de/
+http://zhaopin.com/
+http://filehippo.com/
+http://qidian.com/
+http://shopathome.com/
+http://lifehacker.com/
+http://klicktrek.com/
+http://wired.com/
+http://888.com/
+http://mp3skull.com/
+http://okcupid.com/
+http://namecheap.com/
+http://porntube.com/
+http://twcczhu.com/
+http://doorblog.jp/
+http://makeuseof.com/
+http://infolinks.com/
+http://ccb.com/
+http://blekko.com/
+http://google.az/
+http://userapi.com/
+http://cbslocal.com/
+http://hubspot.com/
+http://zendesk.com/
+http://lequipe.fr/
+http://tutsplus.com/
+http://exblog.jp/
+http://video-one.com/
+http://118114.cn/
+http://macrumors.com/
+http://ggmm777.com/
+http://bitshare.com/
+http://hupu.com/
+http://trulia.com/
+http://hotels.com/
+http://sulekha.com/
+http://1uuc.com/
+http://google.co.nz/
+http://acesse.com/
+http://citibank.com/
+http://imagevenue.com/
+http://roulettebotplus.com/
+http://coupons.com/
+http://politico.com/
+http://anonym.to/
+http://gawker.com/
+http://searchengines.ru/
+http://cnbc.com/
+http://as.com/
+http://icbc.com.cn/
+http://1und1.de/
+http://sears.com/
+http://adfoc.us/
+http://sj-tl.com/
+http://blogimg.jp/
+http://bodybuilding.com/
+http://tinypic.com/
+http://imagebam.com/
+http://manta.com/
+http://marketwatch.com/
+http://zwaar.net/
+http://kompas.com/
+http://mangareader.net/
+http://eventbrite.com/
+http://businessweek.com/
+http://pagesjaunes.fr/
+http://amung.us/
+http://sitesell.com/
+http://babycenter.com/
+http://ctrip.com/
+http://orkut.com.br/
+http://linksynergy.com/
+http://dict.cc/
+http://shareasale.com/
+http://wcarev.com/
+http://okwave.jp/
+http://ustream.tv/
+http://watchseries.eu/
+http://intuit.com/
+http://snapdeal.com/
+http://td.com/
+http://nasa.gov/
+http://slickdeals.net/
+http://dpreview.com/
+http://tom.com/
+http://usbank.com/
+http://nydailynews.com/
+http://sanjesh.org/
+http://51buy.com/
+http://xhamstercams.com/
+http://968tl.com/
+http://myegy.com/
+http://cocolog-nifty.com/
+http://whitepages.com/
+http://disney.go.com/
+http://howstuffworks.com/
+http://barnesandnoble.com/
+http://klikbca.com/
+http://metacafe.com/
+http://lenovo.com/
+http://yandex.kz/
+http://pornerbros.com/
+http://aftonbladet.se/
+http://52tlbb.com/
+http://smashingmagazine.com/
+http://europa.eu/
+http://google.lk/
+http://18andabused.com/
+http://fatakat.com/
+http://tnaflix.com/
+http://woot.com/
+http://dantri.com.vn/
+http://itmedia.co.jp/
+http://focus.de/
+http://rednet.cn/
+http://asahi.com/
+http://sfr.fr/
+http://ca.gov/
+http://ocn.ne.jp/
+http://idnes.cz/
+http://pixiv.net/
+http://24h.com.vn/
+http://priceline.com/
+http://urbandictionary.com/
+http://shaadi.com/
+http://blogspot.com.ar/
+http://6.cn/
+http://magentocommerce.com/
+http://cloob.com/
+http://52pk.net/
+http://realclearpolitics.com/
+http://alarabiya.net/
+http://hsbc.co.uk/
+http://discreethearts.com/
+http://ucoz.com/
+http://earthlink.net/
+http://novinky.cz/
+http://citrixonline.com/
+http://orf.at/
+http://masrawy.com/
+http://smh.com.au/
+http://way2sms.com/
+http://cmbchina.com/
+http://yihaodian.com/
+http://zappos.com/
+http://blackberry.com/
+http://fotostrana.ru/
+http://verycd.com/
+http://farsnews.com/
+http://gumtree.com/
+http://rightmove.co.uk/
+http://patch.com/
+http://ppstream.com/
+http://vente-privee.com/
+http://google.com.kw/
+http://nudevista.com/
+http://forgeofempires.com/
+http://hypergames.net/
+http://alot.com/
+http://softlayer.com/
+http://slutload.com/
+http://overstock.com/
+http://google.bg/
+http://geocities.jp/
+http://foursquare.com/
+http://bbc.com/
+http://statscrop.com/
+http://freakshare.com/
+http://lowes.com/
+http://h2porn.com/
+http://subito.it/
+http://japanpost.jp/
+http://quickmeme.com/
+http://npr.org/
+http://mercadolibre.com.ve/
+http://onlylady.com/
+http://ebay.ca/
+http://bahn.de/
+http://bartarinha.ir/
+http://xici.net/
+http://egotastic.com/
+http://yoka.com/
+http://google.com.ec/
+http://indianrail.gov.in/
+http://dmoz.org/
+http://gamespot.com/
+http://jabong.com/
+http://ci123.com/
+http://southwest.com/
+http://tenpay.com/
+http://baixing.com/
+http://scoop.it/
+http://telegraaf.nl/
+http://18schoolgirlz.com/
+http://adult-empire.com/
+http://eastday.com/
+http://tubegalore.com/
+http://posterous.com/
+http://cloudfront.net/
+http://rakuten.ne.jp/
+http://sky.com/
+http://linternaute.com/
+http://mysql.com/
+http://baomihua.com/
+http://goo.gl/
+http://perfectgirls.net/
+http://logmein.com/
+http://classmates.com/
+http://udn.com/
+http://akhbarak.net/
+http://115.com/
+http://allocine.fr/
+http://onlinesbi.com/
+http://payza.com/
+http://google.com.do/
+http://marktplaats.nl/
+http://pcmag.com/
+http://discuz.net/
+http://foodnetwork.com/
+http://www.net.cn/
+http://kdnet.net/
+http://rottentomatoes.com/
+http://cheshi.com.cn/
+http://zoho.com/
+http://skycn.com/
+http://subscene.com/
+http://google.com.qa/
+http://skyrock.com/
+http://easyhits4u.com/
+http://motherless.com/
+http://free-tv-video-online.me/
+http://steampowered.com/
+http://idealo.de/
+http://mail.com/
+http://friv.com/
+http://kayak.com/
+http://wetter.com/
+http://bankmellat.ir/
+http://zoosk.com/
+http://opensiteexplorer.org/
+http://streamate.com/
+http://dreamstime.com/
+http://logsoku.com/
+http://theblaze.com/
+http://filecrop.com/
+http://icontact.com/
+http://tjosurveys.com/
+http://weather.com.cn/
+http://grindtv.com/
+http://ahram.org.eg/
+http://crsky.com/
+http://meilishuo.com/
+http://legacy.com/
+http://lady8844.com/
+http://jeuxvideo.com/
+http://partypoker.com/
+http://sanook.com/
+http://nikkansports.com/
+http://semrush.com/
+http://babytree.com/
+http://cracked.com/
+http://m-w.com/
+http://bigpoint.com/
+http://asos.com/
+http://mediaset.it/
+http://hc360.com/
+http://cocoren.com/
+http://bhaskar.com/
+http://last.fm/
+http://88db.com/
+http://weblio.jp/
+http://onlinedown.net/
+http://sponichi.co.jp/
+http://realtor.com/
+http://ce.cn/
+http://sbrf.ru/
+http://meetcheap.com/
+http://hm.com/
+http://homeshop18.com/
+http://ticketmaster.com/
+http://slate.com/
+http://prestashop.com/
+http://boston.com/
+http://traidnt.net/
+http://grooveshark.com/
+http://justin.tv/
+http://biblegateway.com/
+http://speedbit.com/
+http://twitch.tv/
+http://clarin.com/
+http://brazzers.com/
+http://dhl.de/
+http://pornoxo.com/
+http://gismeteo.ru/
+http://accountonline.com/
+http://cnr.cn/
+http://yimg.com/
+http://r7.com/
+http://xgo.com.cn/
+http://qip.ru/
+http://19lou.com/
+http://subscribe.ru/
+http://meituan.com/
+http://esporte.uol.com.br/
+http://arpg2.com/
+http://jxliu.com/
+http://admagnet.net/
+http://freeones.com/
+http://lacaixa.es/
+http://mtime.com/
+http://shutterfly.com/
+http://piriform.com/
+http://flippa.com/
+http://rt.com/
+http://reverso.net/
+http://liveperson.net/
+http://eyny.com/
+http://eonline.com/
+http://beemp3.com/
+http://commbank.com.au/
+http://caixa.gov.br/
+http://android.com/
+http://sendspace.com/
+http://xbox.com/
+http://liveleak.com/
diff --git a/var/example_inputs/bad_input.txt b/var/example_inputs/bad_input.txt
new file mode 100644
index 0000000..45a981a
--- /dev/null
+++ b/var/example_inputs/bad_input.txt
@@ -0,0 +1 @@
+http://zimbio.com/
diff --git a/var/example_inputs/bridges.txt b/var/example_inputs/bridges.txt
new file mode 100644
index 0000000..4a7fa88
--- /dev/null
+++ b/var/example_inputs/bridges.txt
@@ -0,0 +1,4 @@
+obfs4 178.209.52.110:443 67E72FF33D7D41BF11C569646A0A7B4B188340DF cert=Z+cv8z19Qb8RxWlkagp7SxiDQN++b7D2Tntowhf+j4D15/kLuj3EoSSGvuREGPc3h60Ofw iat-mode=0
+obfs4 83.212.101.3:41213 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0
+obfs3 83.212.101.3:80 A09D536DD1752D542E1FBB3C9CE4449D51298239
+obfs3 109.105.109.163:38980 1E05F577A0EC0213F971D81BF4D86A9E4E8229ED
diff --git a/var/example_inputs/daph3_yaml_file.txt b/var/example_inputs/daph3_yaml_file.txt
new file mode 100644
index 0000000..2412a08
--- /dev/null
+++ b/var/example_inputs/daph3_yaml_file.txt
@@ -0,0 +1,2 @@
+{client: antani, server: sblinda}
+
diff --git a/var/example_inputs/dns_tamper_file.txt b/var/example_inputs/dns_tamper_file.txt
new file mode 100644
index 0000000..25f365c
--- /dev/null
+++ b/var/example_inputs/dns_tamper_file.txt
@@ -0,0 +1,3 @@
+torproject.org
+google.com
+measurementlab.net
diff --git a/var/example_inputs/dns_tamper_test_resolvers.txt b/var/example_inputs/dns_tamper_test_resolvers.txt
new file mode 100644
index 0000000..14c77e0
--- /dev/null
+++ b/var/example_inputs/dns_tamper_test_resolvers.txt
@@ -0,0 +1,2 @@
+8.8.8.8
+8.8.4.4
diff --git a/var/example_inputs/domains.txt b/var/example_inputs/domains.txt
new file mode 100644
index 0000000..cdeaad1
--- /dev/null
+++ b/var/example_inputs/domains.txt
@@ -0,0 +1,3 @@
+www.twitter.com
+facebook.com
+youtube.com
diff --git a/var/example_inputs/http_host_file.txt b/var/example_inputs/http_host_file.txt
new file mode 100644
index 0000000..12afb18
--- /dev/null
+++ b/var/example_inputs/http_host_file.txt
@@ -0,0 +1,2 @@
+torproject.org
+ooni.nu
diff --git a/var/example_inputs/keyword_filtering_file.txt b/var/example_inputs/keyword_filtering_file.txt
new file mode 100644
index 0000000..4583bae
--- /dev/null
+++ b/var/example_inputs/keyword_filtering_file.txt
@@ -0,0 +1,2 @@
+antani
+sblinda
diff --git a/var/example_inputs/tcpconnect_host_file.txt b/var/example_inputs/tcpconnect_host_file.txt
new file mode 100644
index 0000000..a1e876b
--- /dev/null
+++ b/var/example_inputs/tcpconnect_host_file.txt
@@ -0,0 +1,3 @@
+86.59.30.40:80
+207.97.227.239:22
+173.194.35.160:443
diff --git a/var/example_inputs/url_lists_file.txt b/var/example_inputs/url_lists_file.txt
new file mode 100644
index 0000000..16a4f58
--- /dev/null
+++ b/var/example_inputs/url_lists_file.txt
@@ -0,0 +1,2 @@
+http://ooni.nu/test
+http://torproject.org/



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits