Skip to content

Instantly share code, notes, and snippets.

@jonlundy
Last active January 12, 2021 19:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonlundy/dc19028ec81eb4ad6af74c50255e7cee to your computer and use it in GitHub Desktop.
Save jonlundy/dc19028ec81eb4ad6af74c50255e7cee to your computer and use it in GitHub Desktop.
twt-base
0xroy@twtxt.xyz http://twtxt.xyz/u/0xroy.txt EMPTY 0
123@twtxt.net https://twtxt.net/user/123/twtxt.txt FAIL 0
256@twtxt.net https://twtxt.net/user/256/twtxt.txt EMPTY 0
333@twtxt.net https://twtxt.net/user/333/twtxt.txt EMPTY 0
71m@timmorgan.org https://timmorgan.org/twtxt.txt PASS 26
8087624783@twtxt.net https://twtxt.net/user/8087624783/twtxt.txt EMPTY 0
8ball@domgoergen.com https://domgoergen.com/twtxt/8ball.txt PASS 8
a@twtxt.net https://twtxt.net/user/a/twtxt.txt EMPTY 0
a0z0ra@twtxt.net https://twtxt.net/user/a0z0ra/twtxt.txt EMPTY 0
aalizzwell@twtxt.net https://twtxt.net/user/aalizzwell/twtxt.txt EMPTY 0
aayush@twtxt.net https://twtxt.net/user/aayush/twtxt.txt EMPTY 0
abhayaysola@twtxt.net https://twtxt.net/user/abhayaysola/twtxt.txt EMPTY 0
abliss@abliss.keybase.pub https://abliss.keybase.pub/twtxt.txt EMPTY 0
ace@twtxt.net https://twtxt.net/user/ace/twtxt.txt PASS 1
achilles@twtxt.net https://twtxt.net/user/achilles/twtxt.txt EMPTY 0
adam@twtxt.net https://twtxt.net/user/adam/twtxt.txt EMPTY 0
adamthephantump@twtxt.net https://twtxt.net/user/adamthephantump/twtxt.txt PASS 2
adi@0.0.0.0 http://0.0.0.0:8000/user/adi/twtxt.txt EMPTY 0
adi@46.23.94.13 http://46.23.94.13:9090/user/adi/twtxt.txt EMPTY 0
adi@twtxt.net https://twtxt.net/user/adi/twtxt.txt PASS 194
adiabetic@www.frogorbits.com https://www.frogorbits.com/twtxt.txt PASS 300
admin@10.0.0.102 http://10.0.0.102:8000/user/admin/twtxt.txt EMPTY 0
admin@10.0.0.109 http://10.0.0.109:8000/user/admin/twtxt.txt EMPTY 0
admin@29e5c8c72192.ngrok.io https://29e5c8c72192.ngrok.io/user/admin/twtxt.txt FAIL 0
admin@4069.twt.social https://4069.twt.social/user/admin/twtxt.txt PASS 1
admin@dev.twt.social https://dev.twt.social/user/admin/twtxt.txt PASS 9
aewens@tilde.team https://tilde.team/~aewens/twtxt.txt PASS 3
AfterGloaming@twtxt.xyz http://twtxt.xyz/u/AfterGloaming.txt PASS 1
agusandriputra@twtxt.net https://twtxt.net/user/agusandriputra/twtxt.txt PASS 11
ahk@twtxt.net https://twtxt.net/user/ahk/twtxt.txt PASS 1
ahmed@twtxt.net https://twtxt.net/user/ahmed/twtxt.txt EMPTY 0
ake@twtxt.net https://twtxt.net/user/ake/twtxt.txt PASS 1
akkartik@akkartik.name http://akkartik.name/twtxt.txt PASS 57
akraut@akraut.keybase.pub https://akraut.keybase.pub/twtxt.txt PASS 1
alailsonko@twtxt.net https://twtxt.net/user/alailsonko/twtxt.txt EMPTY 0
alexflounder@alex.flounder.online https://alex.flounder.online/twtxt.txt EMPTY 0
alip@dev.exherbo.org https://dev.exherbo.org/~alip/twtxt.txt PASS 36
allgebrah@www.synkretie.net https://www.synkretie.net/twtxt PASS 3184
alper_s@twtxt.net https://twtxt.net/user/alper_s/twtxt.txt EMPTY 0
amitbasuri@twtxt.net https://twtxt.net/user/amitbasuri/twtxt.txt EMPTY 0
ammaratef45@twtxt.net https://twtxt.net/user/ammaratef45/twtxt.txt PASS 1
amnonbc@twtxt.net https://twtxt.net/user/amnonbc/twtxt.txt EMPTY 0
amorris@feed.amorris.ca https://feed.amorris.ca/hallway.txt PASS 51
amoss@twtxt.net https://twtxt.net/user/amoss/twtxt.txt PASS 1
andrewm4894@twtxt.net https://twtxt.net/user/andrewm4894/twtxt.txt PASS 1
andy@twtxt.net https://twtxt.net/user/andy/twtxt.txt PASS 1
angel@triptico.com https://triptico.com/twtxt.txt PASS 10
annekemp@twtxt.net https://twtxt.net/user/annekemp/twtxt.txt PASS 6
anonixers@g.nixers.net gopher://g.nixers.net/~anon/twtxt.txt EMPTY 0
Anthony_Sorace@a.9srv.net http://a.9srv.net/tw.txt EMPTY 0
antonio@appdev.twt.social https://appdev.twt.social/user/antonio/twtxt.txt PASS 5
antonio@dev.twt.social https://dev.twt.social/user/antonio/twtxt.txt PASS 5
antonio@twtxt.net https://twtxt.net/u/antonio PASS 333
antonio@twtxt.net https://twtxt.net/user/antonio EMPTY 0
antonio@twtxt.net https://twtxt.net/user/antonio/twtxt.txt PASS 333
apptester@twtxt.net https://twtxt.net/user/apptester/twtxt.txt PASS 2
ar@twtxt.net https://twtxt.net/user/ar/twtxt.txt PASS 1
arcaderaven@twtxt.net https://twtxt.net/user/arcaderaven/twtxt.txt EMPTY 0
arnauld@arnauld.org https://arnauld.org/blog/twtxt.txt PASS 7
arnauld@twtxt.net https://twtxt.net/user/arnauld/twtxt.txt PASS 19
artik3t@twtxt.net https://twtxt.net/u/artik3t PASS 1
arun@twtxt.net https://twtxt.net/user/arun/twtxt.txt PASS 2
asdf1@0.0.0.0 http://0.0.0.0:8000/user/asdf1/twtxt.txt EMPTY 0
asr-vip@twtxt.net https://twtxt.net/user/asr-vip/twtxt.txt EMPTY 0
astrophotography@twtxt.net https://twtxt.net/user/astrophotography/twtxt.txt PASS 2
ataco@twtxt.net https://twtxt.net/user/ataco/twtxt.txt PASS 3
auau65535@twtxt.net https://twtxt.net/user/auau65535/twtxt.txt PASS 37
autoalk@autoalk.tk http://autoalk.tk/twtxt/autoalk.txt PASS 1
avi@twtxt.net https://twtxt.net/user/avi/twtxt.txt EMPTY 0
aymen@twtxt.net https://twtxt.net/user/aymen/twtxt.txt PASS 1
azlen@azlen.me https://azlen.me/twtxt.txt PASS 4
b4nks@twtxt.net https://twtxt.net/user/b4nks/twtxt.txt EMPTY 0
battlest@twtxt.net https://twtxt.net/user/battlest/twtxt.txt EMPTY 0
becrobinson86@twtxt.net https://twtxt.net/u/becrobinson86 PASS 48
becrobinson86@twtxt.net https://twtxt.net/user/becrobinson86/twtxt.txt PASS 48
ben@nand.sh https://nand.sh/~ben/tw.txt PASS 16
ben@tilde.team https://tilde.team/~ben/twtxt.txt PASS 16
benaiah@benaiah.me http://benaiah.me/twtxt.txt PASS 51
benaiah@benaiah.me https://benaiah.me/twtxt.txt PASS 51
benharri@twtxt.xyz http://twtxt.xyz/u/benharri.txt PASS 1
benjo@yhaupenthal.org https://yhaupenthal.org/twtxt.txt PASS 4
beyond@enotty.dk https://enotty.dk/beyond.txt FAIL 0
bhearsum@hearsum.ca http://hearsum.ca/~bhearsum/twtxt.txt FAIL 0
bhudgeons@tilde.club https://tilde.club/~bhudgeons/twtxt.txt PASS 4
billdiscussions@twtxt.net https://twtxt.net/user/billdiscussions/twtxt.txt PASS 3
biozz@twtxt.net https://twtxt.net/user/biozz/twtxt.txt EMPTY 0
birb-friend@twtxt.net https://twtxt.net/user/birb-friend/twtxt.txt PASS 26
birb@twtxt.net https://twtxt.net/user/birb EMPTY 0
birb@twtxt.net https://twtxt.net/user/birb/twtxt.txt PASS 134
blainsmith@twtxt.net https://twtxt.net/user/blainsmith/twtxt.txt EMPTY 0
blissini@twtxt.net https://twtxt.net/user/blissini/twtxt.txt PASS 1
bouncepaw@tanelorn.city https://tanelorn.city/~bouncepaw/twtxt.txt PASS 16
brainshit@brainshit.fr https://brainshit.fr/twtxt.txt PASS 200
brettmn@twtxt.net https://twtxt.net/user/brettmn/twtxt.txt EMPTY 0
bt_tenk@tilde.town https://tilde.town/~bt_tenk/twtxt.txt PASS 3
buckket@buckket.org http://buckket.org/twtxt.txt PASS 100
bukket@buckket.org https://buckket.org/twtxt.txt PASS 100
bullseye@domgoergen.com https://domgoergen.com/twtxt/bullseye.txt PASS 73
c-keen@pestilenz.org http://pestilenz.org/~ckeen/twtxt.txt PASS 22
c0by@c0by.de https://c0by.de/twtxt.txt FAIL 0
cai@twtxt.net https://twtxt.net/user/cai/twtxt.txt EMPTY 0
carleeto@twtxt.net https://twtxt.net/user/carleeto/twtxt.txt PASS 1
caudasol@enotty.dk https://enotty.dk/caudasol.txt FAIL 0
cel@celehner.com https://celehner.com/twtxt.txt PASS 1
chameleon@super.seekrit.club https://super.seekrit.club/twtxt.txt PASS 9
cheesestix@twtxt.net https://twtxt.net/user/cheesestix/twtxt.txt PASS 1
chelseyc90@twtxt.net https://twtxt.net/user/chelseyc90/twtxt.txt PASS 2
chinglinwen@twtxt.net https://twtxt.net/user/chinglinwen EMPTY 0
chinglinwen@twtxt.net https://twtxt.net/user/chinglinwen/twtxt.txt PASS 2
chrisman@twtxt.xyz http://twtxt.xyz/u/chrisman.txt EMPTY 0
cjd@twtxt.net https://twtxt.net/user/cjd/twtxt.txt EMPTY 0
ckipp@chronica.xyz https://chronica.xyz/hallway.txt EMPTY 0
clacos@twtxt.net https://twtxt.net/user/clacos/twtxt.txt PASS 1
clementd@clementd-files.cellar.services.clever-cloud.com http://clementd-files.cellar.services.clever-cloud.com/twtxt.txt PASS 3
cmaughan@chrismaughan.com https://chrismaughan.com/twtxt.txt PASS 9
cmiksche@twtxt.net https://twtxt.net/user/cmiksche/twtxt.txt PASS 2
cmof07@twtxt.net https://twtxt.net/user/cmof07/twtxt.txt PASS 1
cncf@feeds.twtxt.net https://feeds.twtxt.net/cncf/twtxt.txt PASS 189
cock@twtxt.net https://twtxt.net/u/cock PASS 1
cock@twtxt.net https://twtxt.net/user/cock/twtxt.txt PASS 1
code_golf@twtxt.net https://twtxt.net/user/code_golf/twtxt.txt PASS 2
codebalion@twtxt.prismdragon.net http://twtxt.prismdragon.net/twtxt.txt PASS 24
codebalion@twtxt.prismdragon.net https://twtxt.prismdragon.net/twtxt.txt EMPTY 0
codemadness@codemadness.org http://codemadness.org/twtxt.txt PASS 28
coltondrg@twtxt.coltondrg.com https://twtxt.coltondrg.com/ EMPTY 0
coma@tilde.town https://tilde.town/~coma/twtxt.txt PASS 2
cookiepoo@twtxt.net https://twtxt.net/user/cookiepoo/twtxt.txt EMPTY 0
cosmix@twtxt.net https://twtxt.net/u/cosmix PASS 2
cosmix@twtxt.net https://twtxt.net/user/cosmix/twtxt.txt PASS 2
cow2001@kaka.farm https://kaka.farm/twtxt.txt EMPTY 0
creme@envs.net https://envs.net/~creme/twtxt.txt PASS 6
crm@twtxt.net https://twtxt.net/user/crm/twtxt.txt PASS 1
cuntass@www.google.co.uk https://www.google.co.uk/robots.txt EMPTY 0
cvshumake@twtxt.net https://twtxt.net/user/cvshumake/twtxt.txt PASS 11
Cy6erlion@twtxt.xyz http://twtxt.xyz/u/Cy6erlion.txt EMPTY 0
cydevtech@twtxt.net https://twtxt.net/u/cydevtech PASS 2
cydevtech@twtxt.net https://twtxt.net/user/cydevtech/twtxt.txt PASS 2
Dad@twtxt.net https://twtxt.net/u/Rob PASS 34
Dad@twtxt.net https://twtxt.net/user/Rob/twtxt.txt PASS 34
dai@twtxt.net https://twtxt.net/u/dai PASS 1
dai@twtxt.net https://twtxt.net/user/dai/twtxt.txt PASS 1
danielz@twtxt.net https://twtxt.net/user/danielz/twtxt.txt EMPTY 0
darkterminal@twtxt.net https://twtxt.net/u/darkterminal PASS 3
darkterminal@twtxt.net https://twtxt.net/user/darkterminal/twtxt.txt PASS 3
darthlukan@www.brianctomlinson.com https://www.brianctomlinson.com/static/twtxt.txt EMPTY 0
dave@davebucklin.com http://davebucklin.com/twtxt.txt PASS 124
davebucklin@davebucklin.com https://davebucklin.com/twtxt.txt PASS 124
david@post.aldebaran.uberspace.de http://post.aldebaran.uberspace.de/twtxt/david.txt FAIL 0
david@post.aldebaran.uberspace.de https://post.aldebaran.uberspace.de/twtxt/david.txt FAIL 0
dbohdan@twtxt.net https://twtxt.net/user/dbohdan EMPTY 0
dbohdan@twtxt.net https://twtxt.net/user/dbohdan/twtxt.txt PASS 4
dc@twtxt.net https://twtxt.net/u/dc PASS 2
dc@twtxt.net https://twtxt.net/user/dc/twtxt.txt PASS 2
deadguy@dgy.fuckup.club https://dgy.fuckup.club EMPTY 0
deadguy@dgy.fuckup.club https://dgy.fuckup.club/twtxt.txt PASS 51
deadguy@twtxt.net https://twtxt.net/user/deadguy/twtxt.txt PASS 40
decunfuzdwun@twtxt.net https://twtxt.net/user/decunfuzdwun/twtxt.txt EMPTY 0
deebs@twtxt.net https://twtxt.net/user/deebs/twtxt.txt PASS 3
deep_fake_channel@twtxt.net https://twtxt.net/user/deep_fake_channel/twtxt.txt EMPTY 0
deepend@www.yourtilde.com https://www.yourtilde.com/~deepend/twtxt.txt PASS 3
deepend@yourtilde.com https://yourtilde.com/~deepend/twtxt.txt PASS 3
default@txt.sour.is https://txt.sour.is/user/default/twtxt.txt EMPTY 0
defi@twtxt.net https://twtxt.net/user/defi/twtxt.txt EMPTY 0
demetriusz@twtxt.net https://twtxt.net/u/demetriusz PASS 1
demetriusz@twtxt.net https://twtxt.net/user/demetriusz/twtxt.txt PASS 1
demifiend@www.matthewgraybosch.com https://www.matthewgraybosch.com/twtxt.txt FAIL 0
demo@twtxt.net https://twtxt.net/user/demo/twtxt.txt PASS 1
dereklaw@twtxt.net https://twtxt.net/user/dereklaw/twtxt.txt EMPTY 0
derkirch@derkirche.blinkenshell.org http://derkirche.blinkenshell.org/twtxt.txt PASS 14
derkirch@derkirche.u.blinkenshell.org https://derkirche.u.blinkenshell.org/twtxt.txt PASS 14
dgold@dgold.eu https://dgold.eu/twtxt.txt PASS 9
dilbert@twtxt.net https://twtxt.net/user/dilbert/twtxt.txt PASS 147
dimyme@twtxt.xyz http://twtxt.xyz/u/dimyme.txt PASS 6
dizzy@www.dropbox.com https://www.dropbox.com/s/f12x1m5j1medxig/twtxt.txt EMPTY 0
dkim@twtxt.net https://twtxt.net/user/dkim/twtxt.txt EMPTY 0
dmje@twtxt.net https://twtxt.net/u/dmje PASS 1
dmje@twtxt.net https://twtxt.net/user/dmje/twtxt.txt PASS 1
dobau@twtxt.net https://twtxt.net/user/dobau/twtxt.txt EMPTY 0
docker_blog@feeds.twtxt.net https://feeds.twtxt.net/docker_blog/twtxt.txt PASS 85
docuguy@twtxt.net https://twtxt.net/user/docuguy/twtxt.txt EMPTY 0
dokoissho@twtxt.net https://twtxt.net/user/dokoissho/twtxt.txt EMPTY 0
domnirok@twtxt.webdad.eu https://twtxt.webdad.eu/twtxt.txt PASS 3
dontdieych@raw.githubusercontent.com https://raw.githubusercontent.com/dontdieych/twtxt/master/twtxt.txt PASS 1
dooven@dev.twt.social https://dev.twt.social/user/dooven/twtxt.txt PASS 10
dooven@twtxt.net https://twtxt.net/user/dooven/twtxt.txt PASS 196
dracoblue@dracoblue.net https://dracoblue.net/twtxt.txt FAIL 0
drjaacobd@twtxt.net https://twtxt.net/user/drjaacobd/twtxt.txt EMPTY 0
dryusdan@twtxt.dryusdan.fr https://twtxt.dryusdan.fr/twtxt.txt PASS 10
DSigmund@twtxt.xyz http://twtxt.xyz/u/DSigmund.txt EMPTY 0
dupa123@twtxt.net https://twtxt.net/user/dupa123/twtxt.txt PASS 1
durcheinandr@durcheinandr.de https://durcheinandr.de/twtxt.txt FAIL 0
dylan@twtxt.net https://twtxt.net/user/dylan/twtxt.txt PASS 1
dzns@tilde.town https://tilde.town/~dozens/tw.txt PASS 65
eat_deeznut5@twtxt.net https://twtxt.net/user/eat_deeznut5/twtxt.txt PASS 2
edsu@edsu.github.io http://edsu.github.io/twtxt/twtxt.txt PASS 20
ekkie@envs.net https://envs.net/~ekkie/twtxt.txt PASS 1
eli_oat@txt.eli.li https://txt.eli.li/twtxt/twtxt.txt PASS 212
elijah@twtxt.net https://twtxt.net/user/elijah/twtxt.txt PASS 1
elsemyon@twtxt.net https://twtxt.net/user/elsemyon/twtxt.txt EMPTY 0
eludom@twtxt.net https://twtxt.net/user/eludom/twtxt.txt EMPTY 0
emcepe@vigintitres.eu http://vigintitres.eu/twtxt.txt EMPTY 0
emm@twtxt.net https://twtxt.net/user/emm/twtxt.txt PASS 1
emredeger@twtxt.net https://twtxt.net/user/emredeger/twtxt.txt PASS 2
enkiv2@www.lord-enki.net http://www.lord-enki.net/twtxt.txt PASS 11670
ent575@twtxt.net https://twtxt.net/user/ent575/twtxt.txt EMPTY 0
epifanio@tilde.pt https://tilde.pt/~epifanio/twtxt.txt PASS 7
er@twtxt.net https://twtxt.net/user/er/twtxt.txt PASS 3
esc@escowles.github.io http://escowles.github.io/tw.txt PASS 15
escowles@escowles.github.io https://escowles.github.io/tw.txt PASS 15
eti@y.eti.tf https://y.eti.tf/twtxt.txt EMPTY 0
etux@twt.u53.us https://twt.u53.us/user/etux FAIL 0
etux@twt.u53.us https://twt.u53.us/user/etux/twtxt.txt FAIL 0
evd3v@twtxt.net https://twtxt.net/user/evd3v/twtxt.txt PASS 1
eveningwear@eveningwear.twt.social https://eveningwear.twt.social/user/eveningwear/twtxt.txt PASS 39
eveningwear@eveningwear.twt.sociald https://eveningwear.twt.sociald/user/eveningwear/twtxt.txt EMPTY 0
evgeny_kalinin@twtxt.net https://twtxt.net/user/evgeny_kalinin/twtxt.txt PASS 1
evil@enotty.dk https://enotty.dk/evil.txt FAIL 0
example@example.org https://example.org/twtxt.txt FAIL 0
fachex@twtxt.net https://twtxt.net/user/fachex/twtxt.txt PASS 2
fadatinsl@twtxt.net https://twtxt.net/user/fadatinsl/twtxt.txt EMPTY 0
feed@twtxt.net https://twtxt.net/user/feed/twtxt.txt EMPTY 0
FeGFFB@feg-ffb.de https://feg-ffb.de/twtxt.txt PASS 176
felipe@appdev.twt.social https://appdev.twt.social/user/felipe/twtxt.txt PASS 1
felipeweber@twtxt.net https://twtxt.net/user/felipeweber/twtxt.txt PASS 2
Felix@felix.plesoianu.ro https://felix.plesoianu.ro/twtxt.txt FAIL 0
felixp7@felixp7.flounder.online https://felixp7.flounder.online/twtxt.txt PASS 12
felixp7@twtxt.net https://twtxt.net/user/felixp7/twtxt.txt PASS 204
ffuentes@ffuentes.flounder.online https://ffuentes.flounder.online/twtxt.txt PASS 10
flairvelocity@twtxt.net https://twtxt.net/user/flairvelocity/twtxt.txt PASS 1
flavienbwk@twtxt.net https://twtxt.net/u/flavienbwk PASS 4
flavienbwk@twtxt.net https://twtxt.net/user/flavienbwk/twtxt.txt PASS 4
foo@txt.sour.is https://txt.sour.is/user/foo/twtxt.txt FAIL 0
fortune-hourly-bot@www.thunix.net https://www.thunix.net/~haivets/twtxt.txt PASS 1024
freddo@twtxt.net https://twtxt.net/user/freddo/twtxt.txt PASS 1
freemancash@twtxt.net https://twtxt.net/user/freemancash/twtxt.txt PASS 3
freemor@freemor.homelinux.net http://freemor.homelinux.net:16019/~freemor/twtxt.txt EMPTY 0
freemor@freemor.homelinux.net https://freemor.homelinux.net/~freemor/twtxt.txt FAIL 0
fud@twtxt.net https://twtxt.net/user/fud/twtxt.txt PASS 1
fundor333@fundor333.com https://fundor333.com/twtxt.txt EMPTY 0
fundor333@twtxt.net https://twtxt.net/user/fundor333/twtxt.txt PASS 1
gabi@twtxt.net https://twtxt.net/user/gabi/twtxt.txt EMPTY 0
gabz@twtxt.net https://twtxt.net/user/gabz/twtxt.txt PASS 2
gamlettki@twtxt.net https://twtxt.net/user/gamlettki/twtxt.txt EMPTY 0
gareppa@tilde.club https://tilde.club/~gareppa/twtxt.txt PASS 3
gareppa@tilde.club https://tilde.club/user/gareppa/twtxt.txt FAIL 0
gareppa@twtxt.net https://twtxt.net/user/gareppa/twtxt.txt PASS 5
gastu@twtxt.net https://twtxt.net/user/gastu/twtxt.txt EMPTY 0
gbmor@gbmor.dev https://gbmor.dev/twtxt.txt PASS 41
ggb@twtxt.net https://twtxt.net/user/ggb/twtxt.txt EMPTY 0
gil@tilde.pt https://tilde.pt/~gil/twtxt.txt PASS 20
gil@twtxt.herokuapp.com https://twtxt.herokuapp.com EMPTY 0
gil@twtxt.herokuapp.com https://twtxt.herokuapp.com/ EMPTY 0
github_blog@feeds.twtxt.net https://feeds.twtxt.net/github_blog/twtxt.txt PASS 155
gkbrk@twtxt.xyz http://twtxt.xyz/u/gkbrk.txt EMPTY 0
gkelly@gkel.ly https://gkel.ly/twtxt.txt FAIL 0
glow@glow.li https://glow.li/twtxt.txt FAIL 0
gmj@twtxt.net https://twtxt.net/user/gmj/twtxt.txt EMPTY 0
gmj@www.port111.com http://www.port111.com/george/twtxt.txt PASS 31
gmj@www.port111.comd https://www.port111.comd/user/gmj/twtxt.txt EMPTY 0
gnu_emacs@twtxt.net https://twtxt.net/user/gnu_emacs/twtxt.txt EMPTY 0
gnusupport@twtxt.net https://twtxt.net/user/gnusupport/twtxt.txt PASS 5
god@twtxt.net https://twtxt.net/user/god/twtxt.txt PASS 1
goodbytes@twtxt.net https://twtxt.net/user/goodbytes/twtxt.txt EMPTY 0
goofmint@twtxt.net https://twtxt.net/user/goofmint/twtxt.txt PASS 1
gopher.su@gopher.su http://gopher.su/twtxt.txt EMPTY 0
gregorlove@twtxt.net https://twtxt.net/user/gregorlove/twtxt.txt EMPTY 0
gugod@gugod.org https://gugod.org/twtxt.txt PASS 8
gulamkasim@twtxt.net https://twtxt.net/user/gulamkasim/twtxt.txt PASS 1
hacker_news@twtxt.net https://twtxt.net/user/hacker_news/twtxt.txt PASS 12
hacker@twtxt.net https://twtxt.net/user/hacker/twtxt.txt EMPTY 0
harshitpeer@twtxt.net https://twtxt.net/user/harshitpeer/twtxt.txt EMPTY 0
hecanjog@hecanjog.com https://hecanjog.com/twtxt.txt PASS 47
hecanjog@hecanjog.comd https://hecanjog.comd/user/hecanjog/twtxt.txt EMPTY 0
helloworld@twtxt.net https://twtxt.net/user/helloworld/twtxt.txt EMPTY 0
hellson@twtxt.net https://twtxt.net/u/hellson PASS 47
hellson@twtxt.net https://twtxt.net/user/hellson/twtxt.txt PASS 47
help@twtxt.net https://twtxt.net/user/help/twtxt.txt PASS 2
help@txt.sour.is https://txt.sour.is/user/help/twtxt.txt EMPTY 0
henrique@twtxt.net https://twtxt.net/user/henrique/twtxt.txt EMPTY 0
hex22@t.seed.hex22.org https://t.seed.hex22.org/twtxt.txt EMPTY 0
hieu@hieu.flounder.online https://hieu.flounder.online/twtxt.txt PASS 1
hiltjo@codemadness.org https://codemadness.org/twtxt.txt PASS 28
hirad@twtxt.net https://twtxt.net/user/hirad/twtxt.txt PASS 11
hjacobs@hjacobs.codeberg.page https://hjacobs.codeberg.page/twtxt.txt PASS 6
hjertnes@hjertnes.social http://hjertnes.social/twtxt.txt EMPTY 0
hjertnes@hjertnes.social https://hjertnes.social/twtxt.txt EMPTY 0
hjertnes@twtxt.net https://twtxt.net/user/hjertnes/twtxt.txt EMPTY 0
hnewscookie@twtxt.net https://twtxt.net/user/hnewscookie/twtxt.txt EMPTY 0
home_datacenter@twtxt.net https://twtxt.net/user/home_datacenter EMPTY 0
home_datacenter@twtxt.net https://twtxt.net/user/home_datacenter/twtxt.txt PASS 4
hosseinzeinali@twtxt.net https://twtxt.net/user/hosseinzeinali/twtxt.txt EMPTY 0
httpsomkar@twtxt.net https://twtxt.net/user/httpsomkar/twtxt.txt EMPTY 0
huangnauh@twtxt.net https://twtxt.net/user/huangnauh/twtxt.txt EMPTY 0
hund@raw.githubusercontent.com https://raw.githubusercontent.com/Hund/misc/master/twtxt.txt FAIL 0
i_am_a_birb@twtxt.net https://twtxt.net/user/i_am_a_birb/twtxt.txt EMPTY 0
i2@i2.by https://i2.by/twtxt.txt FAIL 0
idly_majestic@twtxt.net https://twtxt.net/user/idly_majestic/twtxt.txt PASS 1
iggi@twtxt.net https://twtxt.net/user/iggi/twtxt.txt EMPTY 0
imonomi@twtxt.net https://twtxt.net/user/imonomi/twtxt.txt EMPTY 0
internetofshit@twtxt.1337.cx https://twtxt.1337.cx/internetofshit EMPTY 0
iolfree@tilde.club https://tilde.club/~iolfree/twtxt.txt PASS 21
ionincognito@resistit.net http://resistit.net/twtxt/twtxt.txt FAIL 0
ionores@twtxt.net https://twtxt.net/user/ionores/twtxt.txt PASS 141
irongeek@irongeek.net https://irongeek.net/twtxt.txt FAIL 0
jack@tilde.club http://tilde.club/~jbaty/twtxt.txt PASS 43
jack@twtxt.net https://twtxt.net/user/jack/twtxt.txt EMPTY 0
jacky@twtxt.net https://twtxt.net/user/jacky/twtxt.txt PASS 1
jakgru@gist.githubusercontent.com https://gist.githubusercontent.com/kubagruszka/592bcc8716acba9da6e928ea360fa260/raw/twtxt.txt PASS 1
james@4069.twt.social https://4069.twt.social/user/james/twtxt.txt PASS 8
james@dev.twt.social https://dev.twt.social/user/james/twtxt.txt PASS 48
jamescallumyoung@twtxt.xyz http://twtxt.xyz/u/jamescallumyoung.txt EMPTY 0
jamescampbell@jamescampbell.us https://jamescampbell.us/twtxt.txt EMPTY 0
jamiet@twtxt.net https://twtxt.net/user/jamiet/twtxt.txt PASS 1
jan6@tilde.team https://tilde.team/~jan6/twtxt.txt PASS 7
Jan69@twtxt.xyz http://twtxt.xyz/u/Jan69.txt PASS 2
jario@www.jar.io https://www.jar.io/twtxt.txt EMPTY 0
jb55@jb55.com https://jb55.com/twtxt.txt PASS 7
jb55@jb55.comd https://jb55.comd/user/jb55/twtxt.txt EMPTY 0
jb55@twtxt.xyz http://twtxt.xyz/u/jb55.txt EMPTY 0
jcolag@john.colagioia.net https://john.colagioia.net/twtxt.txt PASS 267
jdoss@twtxt.net https://twtxt.net/user/jdoss/twtxt.txt PASS 1
jel@twtxt.net https://twtxt.net/user/jel/twtxt.txt EMPTY 0
jibarito@twtxt.net https://twtxt.net/user/jibarito/twtxt.txt EMPTY 0
jibarito123@twtxt.net https://twtxt.net/user/jibarito123/twtxt.txt PASS 3
Jim@example.org http://example.org EMPTY 0
jkriss@twtxt.net https://twtxt.net/user/jkriss EMPTY 0
jkriss@twtxt.net https://twtxt.net/user/jkriss/twtxt.txt PASS 1
jlj@ctrl-c.club http://ctrl-c.club/~jlj/public_html/tw.txt PASS 30
jlj@ctrl-c.club http://ctrl-c.club/~jlj/tw.txt PASS 30
jlj@twtxt.net https://twtxt.net/user/jlj/twtxt.txt EMPTY 0
jmjri@twtxt.net https://twtxt.net/user/jmjri/twtxt.txt PASS 1
jo@comam.es https://comam.es/jo.txt PASS 1
joachim@joachimrobert.keybase.pub https://joachimrobert.keybase.pub/twtxt.txt FAIL 0
joachimesque@twtxt.xyz http://twtxt.xyz/u/joachimesque.txt PASS 1
joe@twtxt.net https://twtxt.net/user/joe/twtxt.txt PASS 2
joegetcouragenow@twtxt.net https://twtxt.net/user/joegetcouragenow/twtxt.txt EMPTY 0
joejenett@twtxt.net https://twtxt.net/user/joejenett/twtxt.txt PASS 1
joel@joeldueck.com https://joeldueck.com/twtxt.txt FAIL 0
johanbove@johanbove.info https://johanbove.info/twtxt.txt PASS 147
jomo@gist.githubusercontent.com https://gist.githubusercontent.com/jomo/64d6bd1b95ec0a24612b/raw/twtxt.txt PASS 6
jonnydubowsky@twtxt.net https://twtxt.net/user/jonnydubowsky/twtxt.txt EMPTY 0
josch@blog.schweizerjochen.de http://blog.schweizerjochen.de/twtxt.txt EMPTY 0
joshavanier@avanier.now.sh https://avanier.now.sh/tw.txt PASS 2
josuah@josuah.net http://josuah.net/twtxt.txt EMPTY 0
josuah@z0.is https://z0.is/~josuah/ EMPTY 0
jpinnix@twtxt.net https://twtxt.net/user/jpinnix/twtxt.txt EMPTY 0
jugendhacker@twtxt.xyz http://twtxt.xyz/u/jugendhacker.txt EMPTY 0
julien@gitlab.com https://gitlab.com/users/sign_in EMPTY 0
jussi@twtxt.net https://twtxt.net/user/jussi/twtxt.txt EMPTY 0
justing@twtxt.net https://twtxt.net/user/justing/twtxt.txt EMPTY 0
kam@twtxt.net https://twtxt.net/user/kam/twtxt.txt EMPTY 0
kamme@twtxt.net https://twtxt.net/user/kamme/twtxt.txt PASS 1
kannan123@twtxt.net https://twtxt.net/user/kannan123/twtxt.txt EMPTY 0
kas@enotty.dk https://enotty.dk/twtxt.txt FAIL 0
kasdk@enotty.dk https://enotty.dk/kasdk.txt FAIL 0
katolaz@kalos.mine.nu https://kalos.mine.nu/KatolaZ.twtxt EMPTY 0
kdave@kdave.github.io https://kdave.github.io/twtxt.txt FAIL 0
kdy@twtxt.kdy.ch https://twtxt.kdy.ch/twtxt.txt PASS 24
kernelpancake@twtxt.net https://twtxt.net/user/kernelpancake/twtxt.txt EMPTY 0
kevinmarks@twtxt.net https://twtxt.net/u/kevinmarks PASS 1
kevinmarks@twtxt.net https://twtxt.net/user/kevinmarks/twtxt.txt PASS 1
khuxkm@khuxkm.tilde.team https://khuxkm.tilde.team/twtxt.txt PASS 7
khuxkm@khuxkm.ttm.sh https://khuxkm.ttm.sh/twtxt.txt EMPTY 0
kidcourageous@twtxt.imoutosoft.com https://twtxt.imoutosoft.com/twtxt.txt EMPTY 0
kirch@kirch.sdf.org http://kirch.sdf.org/twtxt.txt EMPTY 0
kj@4069.twt.social https://4069.twt.social/user/kj/twtxt.txt PASS 2
klagefall@twtxt.net https://twtxt.net/user/klagefall EMPTY 0
klagefall@twtxt.net https://twtxt.net/user/klagefall/twtxt.txt PASS 3
koehr@koehr.in https://koehr.in/twtxt.txt FAIL 0
koehr@twtxt.net https://twtxt.net/user/koehr/twtxt.txt EMPTY 0
koi@koi.flounder.online https://koi.flounder.online/twtxt.txt PASS 1
koko@twtxt.net https://twtxt.net/user/koko/twtxt.txt PASS 3
korynunn@twtxt.net https://twtxt.net/user/korynunn/twtxt.txt PASS 2
kris451@twtxt.net https://twtxt.net/user/kris451/twtxt.txt EMPTY 0
krt@krt.marmaro.de http://krt.marmaro.de/twtxt.txt FAIL 0
kseistrup@kseistrup.keybase.pub https://kseistrup.keybase.pub//twtxt.txt PASS 79
kt84@twtxt.net https://twtxt.net/u/kt84 PASS 187
kt84@twtxt.net https://twtxt.net/user/kt84 EMPTY 0
kt84@twtxt.net https://twtxt.net/user/kt84/twtxt.txt PASS 187
l33roy@twtxt.net https://twtxt.net/user/l33roy/twtxt.txt PASS 2
lahvak@lahvak.github.io http://lahvak.github.io/twtxt/twtxt.txt PASS 36
larry@lhyn.es http://lhyn.es/twtxt.txt PASS 7
lazarus@twtxt.net https://twtxt.net/user/lazarus/twtxt.txt EMPTY 0
lectronice@lectronice.com https://lectronice.com/hallway/twtxt.txt PASS 11
lee@twtxt.net https://twtxt.net/user/lee/twtxt.txt EMPTY 0
leigh@leighmcculloch.com https://leighmcculloch.com/twtxt.txt PASS 522
leo@server.gkbrk.com http://server.gkbrk.com/cgi-bin/twtxt.py EMPTY 0
Leo@www.gkbrk.com https://www.gkbrk.com/twtxt.txt PASS 17
les@twtxt.net https://twtxt.net/user/les/twtxt.txt EMPTY 0
lesley@twtxt.net https://twtxt.net/u/lesley PASS 1
lesley@twtxt.net https://twtxt.net/user/lesley/twtxt.txt PASS 1
leveck@leveck.us https://leveck.us/leveck.txt EMPTY 0
lillianmann@twtxt.net https://twtxt.net/user/lillianmann/twtxt.txt EMPTY 0
lobste_rs@feeds.twtxt.net https://feeds.twtxt.net/lobste_rs/twtxt.txt PASS 4998
local_wonders@twtxt.net https://twtxt.net/user/local_wonders/twtxt.txt PASS 4
loupbrun@twtxt.net https://twtxt.net/user/loupbrun/twtxt.txt PASS 5
luana@twtxt.net https://twtxt.net/user/luana/twtxt.txt EMPTY 0
lucas@twtxt.net https://twtxt.net/user/lucas/twtxt.txt EMPTY 0
lucaslarson@twtxt.net https://twtxt.net/user/lucaslarson/twtxt.txt EMPTY 0
lucidiot@tilde.town https://tilde.town/~lucidiot/twtxt.txt PASS 243
Lucidiot@twtxt.xyz http://twtxt.xyz/u/Lucidiot.txt EMPTY 0
luke_smiths_blog@feeds.twtxt.net https://feeds.twtxt.net/luke_smiths_blog/twtxt.txt PASS 358
lukem@twtxt.net https://twtxt.net/u/lukem PASS 378
lukem@twtxt.net https://twtxt.net/user/lukem EMPTY 0
lukem@twtxt.net https://twtxt.net/user/lukem/twtxt.txt PASS 378
luketester@twtxt.net https://twtxt.net/user/luketester/twtxt.txt EMPTY 0
lungfish_problem@twtxt.net https://twtxt.net/user/lungfish_problem/twtxt.txt EMPTY 0
luzifer@twtxt.luzifer.io http://twtxt.luzifer.io/ FAIL 0
lwojcik@dev.twt.social https://dev.twt.social/user/lwojcik/twtxt.txt PASS 21
lyse@0.0.0.0 http://0.0.0.0:8000/user/lyse/twtxt.txt EMPTY 0
lyse@lyse.isobeef.org https://lyse.isobeef.org/twtxt.txt PASS 42
lyse@lyse.isobeef.orgd https://lyse.isobeef.orgd/user/lyse/twtxt.txt EMPTY 0
lyxal@twtxt.net https://twtxt.net/user/lyxal/twtxt.txt PASS 270
m040601@twtxt.xyz http://twtxt.xyz/u/m040601.txt PASS 2
m15o@m15o.flounder.online https://m15o.flounder.online/twtxt.txt EMPTY 0
m15o@twtxt.net https://twtxt.net/user/m15o/twtxt.txt PASS 1
m1guelpf@twtxt.net https://twtxt.net/user/m1guelpf EMPTY 0
m1guelpf@twtxt.net https://twtxt.net/user/m1guelpf/twtxt.txt EMPTY 0
make@twtxt.net https://twtxt.net/user/make/twtxt.txt EMPTY 0
mano@twtxt.net https://twtxt.net/user/mano/twtxt.txt EMPTY 0
mantlepro@mantlepro.com https://mantlepro.com/twtxt.txt FAIL 0
manton@twtxt.net https://twtxt.net/user/manton/twtxt.txt EMPTY 0
marado@tilde.pt https://tilde.pt/~marado/twtxt.txt PASS 463
marado@twtxt.net https://twtxt.net/user/marado/twtxt.txt EMPTY 0
marcus8512@twtxt.net https://twtxt.net/user/marcus8512/twtxt.txt PASS 1
marius@twtxt.net https://twtxt.net/user/marius/twtxt.txt EMPTY 0
markwylde@0.0.0.0 http://0.0.0.0:8000/user/markwylde/twtxt.txt EMPTY 0
markwylde@192.168.1.11 http://192.168.1.11:8000/user/markwylde/twtxt.txt EMPTY 0
markwylde@twtxt.net https://twtxt.net/user/markwylde/twtxt.txt PASS 26
matanuki@twtxt.net https://twtxt.net/user/matanuki/twtxt.txt EMPTY 0
mattknox@mattknox.com http://mattknox.com/twtxt.txt EMPTY 0
maurice_renck@maurice-renck.de https://maurice-renck.de/twtxt.txt PASS 20
maverick97@twtxt.net https://twtxt.net/user/maverick97/twtxt.txt EMPTY 0
max1truc@twtxt.net https://twtxt.net/user/max1truc/twtxt.txt EMPTY 0
maximousblk@twtxt.net https://twtxt.net/user/maximousblk/twtxt.txt PASS 1
mayaphy@twtxt.net https://twtxt.net/user/mayaphy/twtxt.txt PASS 1
mckinley@mckinley.cc https://mckinley.cc/twtxt.txt PASS 17
mdom@domgoergen.com https://domgoergen.com/twtxt/mdom.txt PASS 696
mdom@mdom.github.io https://mdom.github.io/twtxt.txt FAIL 0
mdom@www.domgoergen.com http://www.domgoergen.com/twtxt.txt PASS 696
mdom@www.domgoergen.com https://www.domgoergen.com/twtxt/mdom.txt PASS 696
mdosch@mdosch.de https://mdosch.de/twtxt.txt PASS 309
mekon@sdf.org gopher://sdf.org/0/users/mekon/twtxt.txt EMPTY 0
melyanna@tilde.club http://tilde.club/~melyanna/twtxt.txt PASS 59
melyanna@tilde.club https://tilde.club/~melyanna/twtxt.txt PASS 59
mesuutt@twtxt.net https://twtxt.net/user/mesuutt/twtxt.txt EMPTY 0
metamurks@www.metamurks.org https://www.metamurks.org/twtxt.txt EMPTY 0
mian@miangraham.com http://miangraham.com/twtxt.txt EMPTY 0
michaelz@twtxt.net https://twtxt.net/user/michaelz/twtxt.txt EMPTY 0
migandhi@twtxt.net https://twtxt.net/u/migandhi PASS 2
migandhi@twtxt.net https://twtxt.net/user/migandhi/twtxt.txt PASS 2
mikerob82@twtxt.net https://twtxt.net/user/mikerob82/twtxt.txt PASS 3
mk@mk.sdf.org http://mk.sdf.org/twtxt.txt PASS 261
mk@mk.sdf.org https://mk.sdf.org/twtxt.txt PASS 261
mkody@twtxt.xyz http://twtxt.xyz/u/mkody.txt EMPTY 0
mlsugarbaby@twtxt.net https://twtxt.net/user/mlsugarbaby/twtxt.txt EMPTY 0
mmk2410@mmk2410.org https://mmk2410.org/twtxt.txt FAIL 0
mook@twtxt.net https://twtxt.net/user/mook/twtxt.txt EMPTY 0
moon@tilde.town https://tilde.town/~mox/moon.txt PASS 100
mox@tilde.town https://tilde.town/~mox/twtxt.txt PASS 118
mr_woggle@tilde.town https://tilde.town/~mr_woggle/twtxt.txt PASS 6
mr240212@twtxt.net https://twtxt.net/user/mr240212/twtxt.txt PASS 1
mrh@twtxt.net https://twtxt.net/user/mrh/twtxt.txt EMPTY 0
ms@twtxt.net https://twtxt.net/user/ms/twtxt.txt EMPTY 0
mushmouth@mushmouth.sdf.org https://mushmouth.sdf.org/twtxt.txt EMPTY 0
mww@twtxt.net https://twtxt.net/user/mww/twtxt.txt PASS 2
myfeed@twtxt.net https://twtxt.net/user/myfeed/twtxt.txt EMPTY 0
myles@twtxt.mylesb.ca https://twtxt.mylesb.ca/twtxt.txt EMPTY 0
mylesb@twtxt.mylesb.ca https://twtxt.mylesb.ca/ EMPTY 0
n1ko@nicolas.perriault.net https://nicolas.perriault.net/twtxt.txt FAIL 0
nalaka89@twtxt.net https://twtxt.net/user/nalaka89/twtxt.txt PASS 1
nblade@nblade.sdf.org http://nblade.sdf.org/twtxt/twtxt.txt PASS 117
neauoire@wiki.xxiivv.com https://wiki.xxiivv.com/twtxt.txt FAIL 0
neilblaze@twtxt.net https://twtxt.net/user/neilblaze/twtxt.txt PASS 1
nekofar@twtxt.net https://twtxt.net/user/nekofar/twtxt.txt EMPTY 0
Neo-Oli@twtxt.xyz http://twtxt.xyz/u/Neo-Oli.txt EMPTY 0
netdata@twtxt.net https://twtxt.net/user/netdata/twtxt.txt PASS 3
New_scientist@feeds.twtxt.net https://feeds.twtxt.net/New_scientist/twtxt.txt PASS 854
news_feed@twtxt.net https://twtxt.net/user/news_feed/twtxt.txt PASS 12
news@twtxt.net https://twtxt.net/u/news PASS 27
news@twtxt.net https://twtxt.net/user/news/twtxt.txt PASS 27
news@txt.sour.is https://txt.sour.is/user/news/twtxt.txt EMPTY 0
nicolagi@nicolagi.sdf.org http://nicolagi.sdf.org/twtxt.txt PASS 4
nima@twtxt.net https://twtxt.net/user/nima/twtxt.txt PASS 1
ninjatrack@twtxt.net https://twtxt.net/user/ninjatrack/twtxt.txt EMPTY 0
ninjatrack900@twtxt.net https://twtxt.net/user/ninjatrack900 EMPTY 0
ninjatrack900@twtxt.net https://twtxt.net/user/ninjatrack900/twtxt.txt PASS 2
niplav@niplav.github.io https://niplav.github.io/twtxt.txt PASS 192
nlogn@twtxt.net https://twtxt.net/user/nlogn/twtxt.txt PASS 3
nonlinear@nonlinear.radiofreqs.space https://nonlinear.radiofreqs.space/twtxt.txt EMPTY 0
northanon@twtxt.net https://twtxt.net/user/northanon/twtxt.txt PASS 6
notizblog@notiz.blog https://notiz.blog/feed/twtxt PASS 100
nristen@karl.theharrisclan.net https://karl.theharrisclan.net/twtxt.txt PASS 30
nristen@karl.thehomesteadinghippy.com https://karl.thehomesteadinghippy.com/twtxt.txt EMPTY 0
nuwuanda@twtxt.net https://twtxt.net/user/nuwuanda/twtxt.txt EMPTY 0
Oatmeal@feeds.twtxt.net https://feeds.twtxt.net/Oatmeal/twtxt.txt PASS 96
oatmealm@twtxt.net https://twtxt.net/user/oatmealm/twtxt.txt EMPTY 0
ocdtrekkie@twtxt.net https://twtxt.net/user/ocdtrekkie/twtxt.txt PASS 2
oeuvre@eveningwear.twt.social https://eveningwear.twt.social/user/oeuvre/twtxt.txt PASS 1
oevl@oevl.info gopher://oevl.info:70/0/twtxt.txt EMPTY 0
oevl@oevl.info http://oevl.info/twtxt.txt PASS 65
oevl@oevl.info https://oevl.info/twtxt.txt EMPTY 0
oevl@twtxt.net https://twtxt.net/user/oevl/twtxt.txt PASS 35
off_grid_living@twtxt.net https://twtxt.net/u/off_grid_living PASS 348
off_grid_living@twtxt.net https://twtxt.net/user/off_grid_living EMPTY 0
off_grid_living@twtxt.net https://twtxt.net/user/off_grid_living/twtxt.txt PASS 348
okami@twtxt.net https://twtxt.net/user/okami/twtxt.txt EMPTY 0
oky@twtxt.net https://twtxt.net/user/oky/twtxt.txt PASS 2
oppen@oppen.flounder.online https://oppen.flounder.online/twtxt.txt PASS 5
ordnungswidrig@philipp.meier.name https://philipp.meier.name/twtxt.txt FAIL 0
oxplot@twtxt.net https://twtxt.net/user/oxplot/twtxt.txt EMPTY 0
Paulinux@twtxt.net https://twtxt.net/u/Paulinux PASS 1
paulinux@twtxt.net https://twtxt.net/user/paulinux/twtxt.txt PASS 1
pbatch@pbat.ch https://pbat.ch/twtxt.txt PASS 268
pbatch@twtxt.net https://twtxt.net/user/pbatch/twtxt.txt EMPTY 0
pelmel@pelmel.org http://pelmel.org/twtxt.txt PASS 6
pestilenz@pestilenz.org https://pestilenz.org/~ckeen/twtxt.txt PASS 22
pete@petedeas.co.uk https://petedeas.co.uk/twtxt.txt EMPTY 0
petestorm@twtxt.net https://twtxt.net/user/petstorm EMPTY 0
peteyboy@peteyboy.freeshell.org http://peteyboy.freeshell.org/twtxt.txt PASS 5
petstorm@twtxt.net https://twtxt.net/user/petstorm/twtxt.txt EMPTY 0
pfefferle@twtxt.net https://twtxt.net/u/pfefferle PASS 2
pfefferle@twtxt.net https://twtxt.net/user/pfefferle/twtxt.txt PASS 2
phil@philmcclure.duckdns.org http://philmcclure.duckdns.org/twtxt.txt EMPTY 0
phil@philmcclure.duckdns.org https://philmcclure.duckdns.org/twtxt.txt EMPTY 0
phoenix@twtxt.net https://twtxt.net/user/phoenix EMPTY 0
phoenix@twtxt.net https://twtxt.net/user/phoenix/twtxt.txt PASS 1
pkill9@pkill9.freeshell.org http://pkill9.freeshell.org/twtxt.txt FAIL 0
plomlompom@test.plomlompom.com http://test.plomlompom.com/twtxt/plom.txt EMPTY 0
pm@twtxt.net https://twtxt.net/user/pm/twtxt.txt EMPTY 0
polalis@twtxt.net https://twtxt.net/user/polalis/twtxt.txt PASS 7
poop1234@twtxt.net https://twtxt.net/user/poop1234/twtxt.txt EMPTY 0
port70@port70.dk gopher://port70.dk:70/0/port70.txt FAIL 0
prikesh@twtxt.net https://twtxt.net/user/prikesh/twtxt.txt PASS 1
prologic_blog@feeds.twtxt.net https://feeds.twtxt.net/prologic_blog/twtxt.txt PASS 22
prologic@eveningwear.twt.social https://eveningwear.twt.social/user/prologic/twtxt.txt FAIL 0
prologic@prologic.github.io https://prologic.github.io/twtxt.txt PASS 50
prologic@twtxt.net https://twtxt.net/u/prologic PASS 3516
prologic@twtxt.net https://twtxt.net/user/prologic EMPTY 0
prologic@twtxt.net https://twtxt.net/user/prologic/twtxt.txt PASS 3516
prologic@twtxt.netd https://twtxt.netd/user/prologic/twtxt.txt EMPTY 0
prologic@twtxt.netdd https://twtxt.netdd/user/prologic/twtxt.txt EMPTY 0
quite@lublin.se https://lublin.se/twtxt.txt PASS 141
qwdqwdqwdqwd@twtxt.net https://twtxt.net/user/qwdqwdqwdqwd/twtxt.txt EMPTY 0
rad@twtxt.net https://twtxt.net/user/rad/twtxt.txt EMPTY 0
radfred@eveningwear.twt.social https://eveningwear.twt.social/user/radfred/twtxt.txt PASS 4
raguay@www.customct.com http://www.customct.com/twtxt.txt PASS 5
rakesh@twtxt.net https://twtxt.net/user/rakesh/twtxt.txt EMPTY 0
randomwiki@tilde.town https://tilde.town/~mox/randomwiki.txt PASS 165
rasta@datenloft.de http://datenloft.de/rasta/twtxt.txt EMPTY 0
raur@raur.nfshost.com http://raur.nfshost.com/twtxt.txt EMPTY 0
razetime@twtxt.net https://twtxt.net/user/razetime/twtxt.txt PASS 33
rd@twtxt.net https://twtxt.net/user/rd/twtxt.txt EMPTY 0
realdefi@twtxt.net https://twtxt.net/user/realdefi/twtxt.txt EMPTY 0
recipes@twtxt.net https://twtxt.net/user/recipes/twtxt.txt PASS 7
redax@twtxt.net https://twtxt.net/user/redax/twtxt.txt EMPTY 0
reednj_tw@twtxt.reednj.com http://twtxt.reednj.com/t/reednj/twtxt.txt EMPTY 0
reednj@reednj.com http://reednj.com/reednj.twtxt.txt FAIL 0
reednj@twtxt.reednj.com http://twtxt.reednj.com/twtxt/directory.twtxt.txt PASS 313
reednj@twtxt.reednj.com http://twtxt.reednj.com/user/8c2b4bbfa328944ba.txt PASS 108
reednj@twtxt.xyz http://twtxt.xyz/u/reednj.txt PASS 108
reednj@twtxt.xyz http://twtxt.xyz/u/reednj.txt, FAIL 0
reednj@twtxt.xyz http://twtxt.xyz/user/8c2b4bbfa328944ba.txt PASS 108
rell@twtxt.net https://twtxt.net/user/rell/twtxt.txt PASS 9
rho@electro.pizza https://electro.pizza/twtxt.txt PASS 13
rikisaja@twtxt.net https://twtxt.net/user/rikisaja/twtxt.txt PASS 1
rmdes@twtxt.net https://twtxt.net/user/rmdes/twtxt.txt PASS 1
roadlabs@twtxt.net https://twtxt.net/user/roadlabs/twtxt.txt EMPTY 0
rob@twtxt.net https://twtxt.net/u/rob PASS 34
rob@twtxt.net https://twtxt.net/user/rob EMPTY 0
rob@twtxt.net https://twtxt.net/user/rob/twtxt.txt PASS 34
robbinaer@robbinaer.info https://robbinaer.info/twtxt.txt PASS 135
robgrant@twtxt.net https://twtxt.net/user/robgrant/twtxt.txt EMPTY 0
rosaelefanten@twitter.com https://twitter.com/search EMPTY 0
ross@twtxt.net https://twtxt.net/user/ross/twtxt.txt EMPTY 0
rsayers@rsayers.sdf.org http://rsayers.sdf.org/twtxt.txt PASS 3
ruebot@ruebot.github.io http://ruebot.github.io/twtxt/twtxt.txt PASS 12
ruebot@ruebot.github.io https://ruebot.github.io/twtxt/twtxt.txt PASS 12
ruslanagopy@twtxt.net https://twtxt.net/user/ruslanagopy/twtxt.txt EMPTY 0
rverst@twtxt.net https://twtxt.net/user/rverst/twtxt.txt EMPTY 0
s@twtxt.net https://twtxt.net/user/s/twtxt.txt PASS 5
saimyx@saimyx.fr https://saimyx.fr/twtxt.txt PASS 36
sakrecoer@twtxt.net https://twtxt.net/user/sakrecoer/twtxt.txt EMPTY 0
salad@twtxt.net https://twtxt.net/user/salad/twtxt.txt EMPTY 0
sam@gamingre.twt.social https://gamingre.twt.social/user/sam/twtxt.txt PASS 1
sam@gamingRE.twt.social https://gamingRE.twt.social/user/sam/twtxt.txt PASS 1
sam@twtxt.net https://twtxt.net/user/sam/twtxt.txt EMPTY 0
samclarke@twtxt.net https://twtxt.net/user/samclarke/twtxt.txt EMPTY 0
sandy2712@twtxt.net https://twtxt.net/user/sandy2712/twtxt.txt PASS 1
sanjay@twtxt.net https://twtxt.net/user/sanjay/twtxt.txt EMPTY 0
sardaukar@twtxt.net https://twtxt.net/user/sardaukar/twtxt.txt EMPTY 0
sarmonsiill@twtxt.ti-l.de https://twtxt.ti-l.de/twtxt.txt PASS 12
schollz@twtxt.net https://twtxt.net/u/schollz PASS 1
schollz@twtxt.net https://twtxt.net/user/schollz/twtxt.txt PASS 1
sdk@codevoid.de gopher://codevoid.de/0/tw.txt PASS 108
sdk@codevoid.de https://codevoid.de/tw.txt PASS 107
selin@4069.twt.social https://4069.twt.social/user/selin/twtxt.txt EMPTY 0
senthil@twtxt.net https://twtxt.net/user/senthil/twtxt.txt PASS 1
senthilnathan@twtxt.net https://twtxt.net/user/senthilnathan/twtxt.txt EMPTY 0
senthilnathang@twtxt.net https://twtxt.net/user/senthilnathang/twtxt.txt EMPTY 0
sephorix@www.sephorix.com https://www.sephorix.com/twtxt.txt EMPTY 0
sepisoad@twtxt.net https://twtxt.net/user/sepisoad/twtxt.txt PASS 1
serocell@xxiii.co https://xxiii.co/twtxt.txt PASS 2
shahzeb@twtxt.net https://twtxt.net/u/shahzeb PASS 5
shahzeb@twtxt.net https://twtxt.net/user/shahzeb/twtxt.txt PASS 5
sim@twtxt.net https://twtxt.net/user/sim/twtxt.txt PASS 1
sithlord@twtxt.net https://twtxt.net/user/sithlord/twtxt.txt PASS 4
sixbitproxywax@sixbitproxywax.com https://sixbitproxywax.com/twtxt.txt PASS 6
sjdhfkh@twtxt.net https://twtxt.net/user/sjdhfkh EMPTY 0
sjdhfkh@twtxt.net https://twtxt.net/user/sjdhfkh/twtxt.txt PASS 1
sjkelleyjr@twtxt.net https://twtxt.net/user/sjkelleyjr/twtxt.txt PASS 21
skingrapher@skingrapher.com https://skingrapher.com/cgi-sys/suspendedpage.cgi EMPTY 0
skingrapher@skingrapher.com https://skingrapher.com/t/tw.txt EMPTY 0
slashdot@feeds.twtxt.net https://feeds.twtxt.net/slashdot/twtxt.txt PASS 3556
slashdot@feeds.twtxt.netd https://feeds.twtxt.netd/user/slashdot/twtxt.txt EMPTY 0
slater@twtxt.net https://twtxt.net/user/slater/twtxt.txt PASS 1
solquemal@twtxt.net https://twtxt.net/u/solquemal PASS 1
solquemal@twtxt.net https://twtxt.net/user/solquemal/twtxt.txt PASS 1
sonofyah@twtxt.net https://twtxt.net/user/sonofyah/twtxt.txt FAIL 0
sousousaw@twtxt.net https://twtxt.net/user/sousousaw/twtxt.txt PASS 1
spk1963@twtxt.net https://twtxt.net/user/spk1963/twtxt.txt EMPTY 0
sprashivalka@twtxt.net https://twtxt.net/user/sprashivalka/twtxt.txt PASS 1
srohde@twtxt.net https://twtxt.net/u/srohde PASS 1
srohde@twtxt.net https://twtxt.net/user/srohde/twtxt.txt PASS 1
ssdad@twtxt.net https://twtxt.net/user/ssdad/twtxt.txt EMPTY 0
stats@twtxt.net https://twtxt.net/u/stats PASS 168
stats@twtxt.net https://twtxt.net/user/stats/twtxt.txt PASS 168
stats@txt.sour.is https://txt.sour.is/user/stats/twtxt.txt EMPTY 0
steventest89@twtxt.net https://twtxt.net/user/steventest89/twtxt.txt EMPTY 0
studio607@twtxt.net https://twtxt.net/user/studio607/twtxt.txt PASS 1
styx@eveningwear.twt.social https://eveningwear.twt.social/user/styx/twtxt.txt PASS 3
support@4069.twt.social https://4069.twt.social/user/support/twtxt.txt PASS 1
support@twtxt.net https://twtxt.net/user/support EMPTY 0
support@twtxt.net https://twtxt.net/user/support/twtxt.txt PASS 2
support@txt.sour.is https://txt.sour.is/user/support/twtxt.txt EMPTY 0
svf@scott.vranesh-fallin.com http://scott.vranesh-fallin.com/twtxt.txt PASS 8
swami@www.jario.com.br https://www.jario.com.br/twtxt.txt FAIL 0
swift_lang@twtxt.net https://twtxt.net/user/swift_lang/twtxt.txt PASS 6
sycdan@twtxt.net https://twtxt.net/user/sycdan/twtxt.txt EMPTY 0
sysdharma@twtxt.lpho.de https://twtxt.lpho.de/twtxt.txt PASS 10
sysdharma@twtxt.rodolpho.dev https://twtxt.rodolpho.dev/twtxt.txt PASS 10
sysdharma@twtxt.rodolpho.onoeck.de https://twtxt.rodolpho.onoeck.de/twtxt.txt PASS 10
taco@twtxt.net https://twtxt.net/user/taco/twtxt.txt EMPTY 0
TaMeR@4069.twt.social https://4069.twt.social/user/tamer EMPTY 0
tamer@4069.twt.social https://4069.twt.social/user/tamer/twtxt.txt PASS 8
tb@twtxt.net https://twtxt.net/user/tb/twtxt.txt PASS 2
tdemin@tdemin.github.io https://tdemin.github.io/blog.txt FAIL 0
technomancy@technomancy.us https://technomancy.us/twtxt.txt EMPTY 0
teddy@data.trafficking.agency https://data.trafficking.agency/twtxt.txt FAIL 0
teo@murat.io https://murat.io/twtxt.txt FAIL 0
test_02@twtxt.net https://twtxt.net/user/test_02/twtxt.txt PASS 3
test2222@twtxt.net https://twtxt.net/user/test2222/twtxt.txt EMPTY 0
test5@twtxt.net https://twtxt.net/user/test5/twtxt.txt EMPTY 0
testdelete@twtxt.net https://twtxt.net/user/testdelete EMPTY 0
testdelete@twtxt.net https://twtxt.net/user/testdelete/twtxt.txt PASS 3
testytest@twtxt.net https://twtxt.net/user/testytest/twtxt.txt PASS 1
teszt@twtxt.net https://twtxt.net/user/teszt/twtxt.txt EMPTY 0
teszt1@twtxt.net https://twtxt.net/user/teszt1/twtxt.txt PASS 2
tfurrows@grex.org http://grex.org/~tfurrows/twtxt.txt PASS 37
tfurrows@grex.org https://grex.org/~tfurrows/twtxt.txt PASS 37
thead9@twtxt.net https://twtxt.net/user/thead9/twtxt.txt EMPTY 0
theamazingeagle@twtxt.net https://twtxt.net/user/theamazingeagle/twtxt.txt PASS 1
theodric@twtxt.net https://twtxt.net/user/theodric/twtxt.txt PASS 8
theoria@theoria24.github.io https://theoria24.github.io/twtxt.txt PASS 3
tho@twtxt.net https://twtxt.net/u/tho PASS 1
tho@twtxt.net https://twtxt.net/user/tho/twtxt.txt PASS 1
tiktok@enotty.dk https://enotty.dk/tiktok.txt FAIL 0
tildebeast@tilde.team https://tilde.team/~tildebeast/twtxt/twtxt.txt PASS 5
tim@twtxt.net https://twtxt.net/user/tim/twtxt.txt PASS 2
tjr@twtxt.net https://twtxt.net/user/tjr/twtxt.txt EMPTY 0
tk@tkd.keybase.pub https://tkd.keybase.pub/twtxt.txt PASS 12
tknz@twtxt.net https://twtxt.net/user/tknz/twtxt.txt PASS 3
toki_pona@twtxt.net https://twtxt.net/user/toki_pona/twtxt.txt EMPTY 0
tolstoevsky@tolstoevsky.ml https://tolstoevsky.ml/twtxt.txt FAIL 0
tomas@bootlog.org https://bootlog.org/twtxt.txt EMPTY 0
tomasino@tomasino.sdf.org http://tomasino.sdf.org/twtxt.txt EMPTY 0
tomer@twtxt.net https://twtxt.net/u/tomer PASS 1
tomer@twtxt.net https://twtxt.net/user/tomer/twtxt.txt PASS 1
tomis@twtxt.net https://twtxt.net/user/tomis/twtxt.txt EMPTY 0
tonygilkerson@twtxt.net https://twtxt.net/user/tonygilkerson/twtxt.txt PASS 1
torresjrjr@twtxt.net https://twtxt.net/user/torresjrjr/twtxt.txt PASS 1
toxophilite@twtxt.net https://twtxt.net/user/toxophilite/twtxt.txt PASS 1
trevor@destroyed.today https://destroyed.today/twtxt.txt FAIL 0
tux0r@rosaelefanten.org https://rosaelefanten.org/twtxt.txt EMPTY 0
tux0r@twtxt.rosaelefanten.org https://twtxt.rosaelefanten.org/ PASS 70
twet@lublin.se https://lublin.se/twet.txt PASS 133
twilightsparkle@twtxt.net https://twtxt.net/user/twilightsparkle/twtxt.txt PASS 30
twtxt@buckket.org https://buckket.org/twtxt_news.txt PASS 6
twtxt@twtxt.net https://twtxt.net/u/twtxt PASS 1327
twtxt@twtxt.net https://twtxt.net/user/twtxt/twtxt.txt PASS 1327
twtxt@txt.sour.is https://txt.sour.is/user/twtxt/twtxt.txt PASS 18
twtxtlist@twtxtlist.cf https://twtxtlist.cf/twtxt.txt EMPTY 0
twtxtsf@twtxt.net https://twtxt.net/user/twtxtsf/twtxt.txt EMPTY 0
tx@0x1a4.1337.cx https://0x1a4.1337.cx/twtxt.txt EMPTY 0
tx@0x1A4.1337.cx https://0x1A4.1337.cx/twtxt.txt EMPTY 0
tx@shroom.party https://shroom.party/twtxt.txt PASS 217
umonkey@land.umonkey.net http://land.umonkey.net/twtxt.txt EMPTY 0
umonkey@land.umonkey.net https://land.umonkey.net/twtxt.txt EMPTY 0
unexplained_mysteries@feeds.twtxt.net https://feeds.twtxt.net/unexplained_mysteries/twtxt.txt PASS 329
uol@twtxt.net https://twtxt.net/user/uol/twtxt.txt EMPTY 0
uru@twtxt.net https://twtxt.net/user/uru/twtxt.txt EMPTY 0
uxgch@uxg.ch https://uxg.ch/twtxt.txt PASS 5
uzumymw@twtxt.net https://twtxt.net/user/uzumymw/twtxt.txt EMPTY 0
vain@twtxt.net https://twtxt.net/user/vain/twtxt.txt FAIL 0
vain@www.uninformativ.de https://www.uninformativ.de/twtxt.txt PASS 149
vain@www.uninformativ.de https://www.uninformativ.de/twtxt.txt.utf-8 PASS 149
vain@www.uninformativ.ded https://www.uninformativ.ded/user/vain/twtxt.txt EMPTY 0
vang@kecyk.com https://kecyk.com/twtxt.txt PASS 1
vang@twtxt.net https://twtxt.net/user/vang/twtxt.txt FAIL 0
vaniot@twtxt.net https://twtxt.net/user/vaniot/twtxt.txt PASS 1
vanit@twtxt.net https://twtxt.net/user/vanit/twtxt.txt EMPTY 0
vedant@twtxt.net https://twtxt.net/user/vedant/twtxt.txt PASS 1
vetted@twtxt.net https://twtxt.net/user/vetted/twtxt.txt PASS 2
vgn@twtxt.net https://twtxt.net/user/vgn/twtxt.txt PASS 14
vinc@vinc.cc https://vinc.cc/twtxt.txt PASS 4
vinodhvino@twtxt.net https://twtxt.net/user/vinodhvino/twtxt.txt EMPTY 0
vito@twtxt.net https://twtxt.net/user/vito/twtxt.txt PASS 1
vivo@twtxt.net https://twtxt.net/user/vivo/twtxt.txt EMPTY 0
vivos@twtxt.net https://twtxt.net/user/vivos/twtxt.txt PASS 7
vnm@g.nixers.net gopher://g.nixers.net/0/~vnm/twtxt.txt EMPTY 0
von@tilde.town https://tilde.town/%5C~von/twtxt.txt%5C FAIL 0
von@tilde.town https://tilde.town/~von/twtxt.txt PASS 127
Walfisch@twtxt.xyz http://twtxt.xyz/u/Walfisch.txt EMPTY 0
walfisch@wasserschorle.de https://wasserschorle.de/twtxt.txt PASS 8
we_are_twtxt@enotty.dk https://enotty.dk/we-are-twtxt.txt FAIL 0
we-are-twtxt@enotty.dk https://enotty.dk/discontinued.txt FAIL 0
webi@twtxt.opstack.info http://twtxt.opstack.info/twtxt.txt PASS 1
webi@twtxt.opstack.info https://twtxt.opstack.info/twtxt.txt PASS 1
wei@twtxt.net https://twtxt.net/user/wei/twtxt.txt PASS 1
wmoh@twtxt.net https://twtxt.net/user/wmoh/twtxt.txt EMPTY 0
wp@whiteplastic.net https://whiteplastic.net/twtxt.txt EMPTY 0
wretched@eveningwear.twt.social https://eveningwear.twt.social/user/wretched/twtxt.txt PASS 1
wsdhw12@twtxt.net https://twtxt.net/user/wsdhw12/twtxt.txt EMPTY 0
wuhan@twtxt.net https://twtxt.net/user/wuhan/twtxt.txt PASS 1
xandkar@xandkar.net https://xandkar.net/twtxt.txt PASS 91
xavi@twtxt.net https://twtxt.net/user/xavi/twtxt.txt PASS 1
xena@xena.greedo.xeserv.us https://xena.greedo.xeserv.us/files/xena.txt PASS 80
xenopunk@twtxt.net https://twtxt.net/user/xenopunk/twtxt.txt PASS 1
xestenlite@twtxt.net https://twtxt.net/user/xestenlite/twtxt.txt EMPTY 0
xfnw@twtxt.net https://twtxt.net/user/xfnw/twtxt.txt PASS 4
xfnw@xfnw.ttm.sh https://xfnw.ttm.sh/twtxt.txt EMPTY 0
xpktro@raw.githubusercontent.com https://raw.githubusercontent.com/Xpktro/twtxt/master/twtxt.txt PASS 3
xuu@txt.sour.is https://txt.sour.is/user/xuu/twtxt.txt PASS 100
xx@twtxt.net https://twtxt.net/user/xx/twtxt.txt EMPTY 0
xxx@twtxt.net https://twtxt.net/user/xxx EMPTY 0
xxx@twtxt.net https://twtxt.net/user/xxx/twtxt.txt PASS 1
yangkghjh@twtxt.net https://twtxt.net/user/yangkghjh/twtxt.txt EMPTY 0
yangyangyang@twtxt.net https://twtxt.net/user/yangyangyang/twtxt.txt EMPTY 0
yeast@twtxt.net https://twtxt.net/user/yeast/twtxt.txt PASS 1
yhchan@twtxt.net https://twtxt.net/user/yhchan/twtxt.txt PASS 1
yoga@www.sarvayogananda.com https://www.sarvayogananda.com/ EMPTY 0
z0noxz@noxz.tech https://noxz.tech/twtxt.txt PASS 7
z3bra@g.nixers.net gopher://g.nixers.net/0/~z3bra/twtxt.txt PASS 13
zhongl@twtxt.net https://twtxt.net/user/zhongl/twtxt.txt EMPTY 0
zobi8225@twtxt.net https://twtxt.net/user/zobi8225/twtxt.txt PASS 2
module github.com/sour-is/twt-base
go 1.15
require (
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
github.com/jointwt/twtxt v0.0.0-00010101000000-000000000000
github.com/prologic/go-gopher v0.0.0-20201022213256-724979970b3f
github.com/tv42/zbase32 v0.0.0-20190604154422-aacc64a8f915
go.uber.org/multierr v1.1.0
)
replace github.com/jointwt/twtxt => ../twtxt
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/BurntSushi/xgbutil v0.0.0-20160919175755-f7c97cef3b4e/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k=
github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0=
github.com/GeertJohan/go.rice v1.0.0 h1:KkI6O9uMaQU3VEKaj01ulavtF7o1fWT7+pk/4voiMLQ=
github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0=
github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=
github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=
github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE=
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/abusizhishen/read-file-last-line v0.0.0-20200717025516-5bf8361f20a5/go.mod h1:5TeKRpTU7IS2HxGPDRGIkecjowjzTIagFB3ROmwKsFE=
github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/andreadipersio/securecookie v0.0.0-20131119095127-e3c3b33544ec h1:h8ZUCz6pj641NovNuhh/iowIh8yjwtES/Qm61C8lFuM=
github.com/andreadipersio/securecookie v0.0.0-20131119095127-e3c3b33544ec/go.mod h1:vX8uUNqOR/LOTwsISi5thUTqArUhyOvn7Tp5/paowwA=
github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo=
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
github.com/andyleap/microformats v0.0.0-20150523144534-25ae286f528b h1:jnCPxFuWTxrUk9L7/0VIFL0mQGFFSwbH0sfQ7XwsTYg=
github.com/andyleap/microformats v0.0.0-20150523144534-25ae286f528b/go.mod h1:I3yyaN+QdpdChOtQg3ApgY01JRmFsXJASweq6Ye5A3s=
github.com/apex/log v1.9.0 h1:FHtw/xuaM8AgmvDDTI9fiwoAL25Sq2cxojnZICUU8l0=
github.com/apex/log v1.9.0/go.mod h1:m82fZlWIuiWzWP04XCTXmnX0xRkYYbCdYn8jbJeLBEA=
github.com/apex/logs v1.0.0/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo=
github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=
github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
github.com/bakape/thumbnailer/v2 v2.6.4 h1:zp3y7k3p355xeQTNyGyBuTc28pYLBuO9n0ZuB9Hk5ms=
github.com/bakape/thumbnailer/v2 v2.6.4/go.mod h1:+yOYrfZmQ3VO7uqVHxTr3p5J74WRjP5MeQQXaU6GBjY=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/chai2010/webp v1.1.0 h1:4Ei0/BRroMF9FaXDG2e4OxwFcuW2vcXd+A6tyqTJUQQ=
github.com/chai2010/webp v1.1.0/go.mod h1:LP12PG5IFmLGHUU26tBiCBKnghxx3toZFwDjOYvd3Ow=
github.com/chris-ramon/douceur v0.2.0 h1:IDMEdxlEUUBYBKE4z/mJnFyVXox+MjuEVDJNN27glkU=
github.com/chris-ramon/douceur v0.2.0/go.mod h1:wDW5xjJdeoMm1mRt4sD4c/LbF/mWdEpRXQKjTR8nIBE=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creasty/defaults v1.5.0 h1:DW6NAGGaKuNSKkntc8BCBrR2KOUAcXVnfcwu/LmJhaQ=
github.com/creasty/defaults v1.5.0/go.mod h1:FPZ+Y0WNrbqOVw+c6av63eyHUAl6pMHZwqLPvXUZGfY=
github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg=
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E=
github.com/daaku/go.zipexe v1.0.1 h1:wV4zMsDOI2SZ2m7Tdz1Ps96Zrx+TzaK15VbUaGozw0M=
github.com/daaku/go.zipexe v1.0.1/go.mod h1:5xWogtqlYnfBXkSB1o9xysukNP9GTvaNkqzUZbt3Bw8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/disintegration/gift v1.1.2 h1:9ZyHJr+kPamiH10FX3Pynt1AxFUob812bU9Wt4GMzhs=
github.com/disintegration/gift v1.1.2/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=
github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI=
github.com/disintegration/imageorient v0.0.0-20180920195336-8147d86e83ec h1:YrB6aVr9touOt75I9O1SiancmR2GMg45U9UYf0gtgWg=
github.com/disintegration/imageorient v0.0.0-20180920195336-8147d86e83ec/go.mod h1:K0KBFIr1gWu/C1Gp10nFAcAE4hsB7JxE6OgLijrJ8Sk=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/elithrar/simple-scrypt v1.3.0 h1:KIlOlxdoQf9JWKl5lMAJ28SY2URB0XTRDn2TckyzAZg=
github.com/elithrar/simple-scrypt v1.3.0/go.mod h1:U2XQRI95XHY0St410VE3UjT7vuKb1qPwrl/EJwEqnZo=
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/gabstv/merger v1.0.1 h1:e6y87GkAX9XSNPZNCMvYf90ZNcr2PzbtvHN3pZZOQt0=
github.com/gabstv/merger v1.0.1/go.mod h1:oQKCbAX4P6q0jk4s9Is144NojOE/HggFPb5qjPNZjq8=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/goccy/go-yaml v1.8.2 h1:gDYrSN12XK/wQTFjxWIgcIqjNCV/Zb5V09M7cq+dbCs=
github.com/goccy/go-yaml v1.8.2/go.mod h1:wS4gNoLalDSJxo/SpngzPQ2BN4uuZVLCmbM4S3vd4+Y=
github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/gomarkdown/markdown v0.0.0-20200609195525-3f9352745725 h1:X6sZdr+t2E2jwajTy/FfXbmAKPFTYxEq9hiFgzMiuPQ=
github.com/gomarkdown/markdown v0.0.0-20200609195525-3f9352745725/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-github/v27 v27.0.4/go.mod h1:/0Gr8pJ55COkmv+S/yPKCczSkUPIM/LnFyubufRNIS0=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
github.com/gorilla/feeds v1.1.1 h1:HwKXxqzcRNg9to+BbvJog4+f3s/xzvtZXICcQGutYfY=
github.com/gorilla/feeds v1.1.1/go.mod h1:Nk0jZrvPFZX1OBe5NPiddPw7CfwF6Q9eqzaBbaightA=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/goware/urlx v0.3.1 h1:BbvKl8oiXtJAzOzMqAQ0GfIhf96fKeNEZfm9ocNSUBI=
github.com/goware/urlx v0.3.1/go.mod h1:h8uwbJy68o+tQXCGZNa9D73WN8n0r9OBae5bUnLcgjw=
github.com/grokify/html-strip-tags-go v0.0.0-20200322061010-ea0c1cf2f119 h1:h3iGUlU8HyW4baKd6D+h1mwOHnM2kwskSuG6Bv4tSbc=
github.com/grokify/html-strip-tags-go v0.0.0-20200322061010-ea0c1cf2f119/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/h2non/filetype v1.1.0 h1:Or/gjocJrJRNK/Cri/TDEKFjAR+cfG6eK65NGYB6gBA=
github.com/h2non/filetype v1.1.0/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw=
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/imdario/mergo v0.3.10 h1:6q5mVkdH/vYmqngx7kZQTjJ5HRsx+ImorDIEQ+beJgc=
github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/james4k/fmatter v0.0.0-20150827042251-377c8ea6259d/go.mod h1:lxdGBh4Mr76rBen37GEal03CF0eF1qF5DSk2qfrrdo0=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jinzhu/gorm v1.9.2/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo=
github.com/jinzhu/gorm v1.9.15 h1:OdR1qFvtXktlxk73XFYMiYn9ywzTwytqe4QkuMRqc38=
github.com/jinzhu/gorm v1.9.15/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lithammer/shortuuid/v3 v3.0.4 h1:uj4xhotfY92Y1Oa6n6HUiFn87CdoEHYUlTy0+IgbLrs=
github.com/lithammer/shortuuid/v3 v3.0.4/go.mod h1:RviRjexKqIzx/7r1peoAITm6m7gnif/h+0zmolKJjzw=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/marksalpeter/sugar v0.0.0-20160713164314-a69afe358ea8/go.mod h1:Pbl6laGVgJOzt66fx/Zxwth5NhgKzyTysQDDqNJxZ3c=
github.com/marksalpeter/token/v2 v2.0.0/go.mod h1:nCWqOuuJXwlt9mi++BPGtRGXPlaItkTZrZGtN4SqhE8=
github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10=
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/microcosm-cc/bluemonday v1.0.3 h1:EjVH7OqbU219kdm8acbveoclh2zZFqPJTJw6VUlTLAQ=
github.com/microcosm-cc/bluemonday v1.0.3/go.mod h1:8iwZnFn2CDDNZ0r6UXhF4xawGvzaqzCRa1n3/lO3W2w=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E=
github.com/nullrocks/identicon v0.0.0-20180626043057-7875f45b0022 h1:Ys0rDzh8s4UMlGaDa1UTA0sfKgvF0hQZzTYX8ktjiDc=
github.com/nullrocks/identicon v0.0.0-20180626043057-7875f45b0022/go.mod h1:x4NsS+uc7ecH/Cbm9xKQ6XzmJM57rWTkjywjfB2yQ18=
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/plar/go-adaptive-radix-tree v1.0.4/go.mod h1:Ot8d28EII3i7Lv4PSvBlF8ejiD/CtRYDuPsySJbSaK8=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/prologic/bitcask v0.3.9/go.mod h1:WQuqL23CGZcC83DhKuXH6KMHe1m25+Eb43s8yM3MnF0=
github.com/prologic/go-gopher v0.0.0-20201022213256-724979970b3f h1:+R7rNxl1RXkS+idgmX3DEGfUeSqkNQMIl8QFk4o8BAM=
github.com/prologic/go-gopher v0.0.0-20201022213256-724979970b3f/go.mod h1:c61IFFAJw8ADWu54tti30Tj5VrBstVoTprmET35UEkY=
github.com/prologic/observe v0.0.0-20181231082615-747b185a0928 h1:B63MGEQCv0W1ltswEDOsd1hlRGzZqnW7Vb51AMi3tpI=
github.com/prologic/observe v0.0.0-20181231082615-747b185a0928/go.mod h1:tEdBKdkpsOZCgueJIZwZREodFg5oRhLkTWWNiQ5y84E=
github.com/prologic/read-file-last-line v0.0.0-20200806014221-326f63458987 h1:xPlhozlqV4y0twz46loB/G98pATrMLDz7BMlb0LGUpU=
github.com/prologic/read-file-last-line v0.0.0-20200806014221-326f63458987/go.mod h1:t5ZL5tajhqRldLeY8GpGENXPEl41oaDnpf4LMB5iUM0=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=
github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be h1:ta7tUOvsPHVHGom5hKW5VXNc2xZIkfCKP8iaqOyYtUQ=
github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be/go.mod h1:MIDFMn7db1kT65GmV94GzpX9Qdi7N/pQlwb+AN8wh+Q=
github.com/renstrom/shortuuid v3.0.0+incompatible h1:F6T1U7bWlI3FTV+JE8HyeR7bkTeYZJntqQLA9ST4HOQ=
github.com/renstrom/shortuuid v3.0.0+incompatible/go.mod h1:n18Ycpn8DijG+h/lLBQVnGKv1BCtTeXo8KKSbBOrQ8c=
github.com/rickb777/accept v0.0.0-20170318132422-d5183c44530d h1:BhTnJzAi1hrLiyTP2//Cb5NMAdaXASdg785m4xRVs/U=
github.com/rickb777/accept v0.0.0-20170318132422-d5183c44530d/go.mod h1:sv64uV+hMk2K4qwURvESkYmF8QyMYF/9nJpxF8UPQb8=
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/securisec/go-keywords v0.0.0-20200619134240-769e7273f2ed h1:8ZFy/8C1JaByuTedmMDrLgK7dH/7KPKKXiuJDU0KJYg=
github.com/securisec/go-keywords v0.0.0-20200619134240-769e7273f2ed/go.mod h1:ewJJMApUajQGvQOaQb/QyzTLoL619B5D02XOZlGnlNo=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM=
github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/steambap/captcha v1.3.0 h1:WhvKZRxwRDee0MQjVtWxQAtXyghV3wnUlkV8QzHJcpc=
github.com/steambap/captcha v1.3.0/go.mod h1:r3X+ngYAvaBDl03rnWlQUKhaltygg0bxc/g7+9JU2LM=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/tebeka/selenium v0.9.9/go.mod h1:5Fr8+pUvU6B1OiPfkdCKdXZyr5znvVkxuPd0NOdZCQc=
github.com/theplant-retired/timezones v0.0.0-20150304063004-f9bd3c0ef9db h1:GR7pnc5jsfbipCXU7n1ABMO6Hm3sYvylfSE+fMuNsBk=
github.com/theplant-retired/timezones v0.0.0-20150304063004-f9bd3c0ef9db/go.mod h1:vXWFQa6TAgTMbDqs8os5Wy6sTryvHNC39l0M3WHl8EQ=
github.com/tidwall/btree v0.2.2/go.mod h1:huei1BkDWJ3/sLXmO+bsCNELL+Bp2Kks9OLyQFkzvA8=
github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
github.com/tidwall/redcon v1.4.0/go.mod h1:IGzxyoKE3Ea5AWIXo/ZHP+hzY8sWXaMKr7KlFgcWSZU=
github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk=
github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk=
github.com/tj/go-buffer v1.1.0/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj52Uc=
github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=
github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=
github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tv42/zbase32 v0.0.0-20190604154422-aacc64a8f915 h1:vX9DBbEHmrebYnVthUTzMO6Zc1vvConJdD2s0uvXrfw=
github.com/tv42/zbase32 v0.0.0-20190604154422-aacc64a8f915/go.mod h1:Y5DJgF9Eou+hSWetC39Mns8E0PU7DykCLNWiYeOINrE=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/unrolled/logger v0.0.0-20190327162521-be1a2406c7c9 h1:EvwTdlXPJXfsN/6dXk+APSGfsGcBdHac6Cd3h7e2fao=
github.com/unrolled/logger v0.0.0-20190327162521-be1a2406c7c9/go.mod h1:HcJOyWUnhRZ1GyZ+t+MYVSg4/B6eoIrxX2DB5UyTomI=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
github.com/vcraescu/go-paginator v0.0.0-20200304054438-86d84f27c0b3 h1:bPXD4QZj4+7QflTJRcIvh/6HqE5L48Msc3XBPsyVtzc=
github.com/vcraescu/go-paginator v0.0.0-20200304054438-86d84f27c0b3/go.mod h1:sHc8LeBbnKYptJK1WULqJfvqW1SWNzjPAFigjSV/wf4=
github.com/wblakecaldwell/profiler v0.0.0-20150908040756-6111ef1313a1/go.mod h1:3+0F8oLB1rQlbIcRAuqDgGdzNi9X69un/aPz4cUAFV4=
github.com/writeas/slug v1.2.0 h1:EMQ+cwLiOcA6EtFwUgyw3Ge18x9uflUnOnR6bp/J+/g=
github.com/writeas/slug v1.2.0/go.mod h1:RE8shOqQP3YhsfsQe0L3RnuejfQ4Mk+JjY5YJQFubfQ=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA0mnthyA/nZ00AqCUo7vHg=
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20200228211341-fcea875c7e85/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
golang.org/x/exp v0.0.0-20201008143054-e3b2a7f2fdc7/go.mod h1:1phAWC201xIgDyaFpmDeZkgf70Q4Pd/CNqfRtVPtxNw=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201116194326-cc9327a14d48 h1:AYCWBZhgIw6XobZ5CibNJr0Rc4ZofGGKvWa1vcx2IGk=
golang.org/x/sys v0.0.0-20201116194326-cc9327a14d48/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
gopkg.in/go-playground/validator.v9 v9.30.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE=
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw=
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.53.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c h1:grhR+C34yXImVGp7EzNk+DTIk+323eIUWOmEevy6bDo=
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
package main
import (
"crypto/sha1"
"fmt"
"io"
"log"
"net/http"
"net/url"
"os"
"strings"
"sync"
"time"
"github.com/docopt/docopt-go"
"github.com/prologic/go-gopher"
"github.com/tv42/zbase32"
"go.uber.org/multierr"
"github.com/jointwt/twtxt/types"
"github.com/jointwt/twtxt/types/lextwt"
)
var usage = `txt-base
Usage:
txt-base add <url>
txt-base add <nick> <url>
txt-base list
`
func main() {
if len(os.Args) == 1 {
fmt.Println("Usage: twt-base <url>")
os.Exit(1)
}
opts, err := docopt.ParseDoc(usage)
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
cfg := struct {
Add bool
List bool
URL string `docopt:"<url>"`
Nick string `docopt:"<nick>"`
}{}
err = opts.Bind(&cfg)
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
switch {
case cfg.Add:
url, err := url.Parse(cfg.URL)
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
AppState = NewState("feeds.txt")
err = run(types.Twter{Nick: cfg.Nick, URL: cfg.URL}, url)
if err != nil {
fmt.Println("Fetch Errors:")
for _, err := range multierr.Errors(err) {
fmt.Println("- ", err)
}
}
err = AppState.Close()
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
fmt.Println("twters: ", len(AppState.files))
fmt.Println("total: ", AppState.twtCount)
case cfg.List:
f, err := os.Open("feeds.txt")
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
_, err = io.Copy(os.Stdout, f)
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
f.Close()
}
}
func run(twter types.Twter, url *url.URL) error {
url.Fragment = ""
url.RawQuery = ""
url.Path = strings.TrimSuffix(url.Path, ";")
if !AppState.Add(url.String()) {
return nil
}
twt, err := getFile(twter, url)
if err != nil {
return err
}
AppState.Done(url.String(), twt)
var errs []error
for _, follow := range twt.Info().Followers() {
u, err := url.Parse(follow.URL)
if err != nil {
errs = append(errs, err)
continue
}
err = run(follow, u)
if err != nil {
errs = append(errs, err)
continue
}
}
for _, m := range twt.Twts().Mentions() {
u, err := url.Parse(m.Twter().URL)
if err != nil {
errs = append(errs, err)
continue
}
err = run(m.Twter(), u)
if err != nil {
errs = append(errs, err)
continue
}
}
return multierr.Combine(errs...)
}
type State struct {
dbfile *os.File
files map[string]types.TwtFile
twtCount int
mu sync.RWMutex
}
var AppState *State
func NewState(fname string) *State {
db, err := os.Create(fname)
if err != nil {
log.Fatal(err)
}
return &State{dbfile: db, files: make(map[string]types.TwtFile)}
}
func (s *State) Add(url string) bool {
s.mu.Lock()
defer s.mu.Unlock()
if _, ok := s.files[url]; ok {
return false
}
s.files[url] = nil
return true
}
func (s *State) Done(url string, f types.TwtFile) bool {
s.mu.Lock()
defer s.mu.Unlock()
c := len(f.Twts())
fmt.Println(" Read twts: ", c)
fmt.Fprintln(s.dbfile, "Nick: ", f.Twter().Nick, "\tFeed: ", url)
s.files[url] = f
s.twtCount += c
return true
}
func (s *State) Close() error {
return s.dbfile.Close()
}
func getFile(twter types.Twter, url *url.URL) (types.TwtFile, error) {
fname := hashHuman(url)
cache, _ := os.Stat(fname)
if cache != nil && cache.ModTime().After(time.Now().Add(-4*time.Hour)) {
fmt.Println("Using Local(nocheck): ", url, fname)
f, _ := os.Open(fname)
return lextwt.ParseFile(f, twter)
}
var r io.Reader
switch url.Scheme {
case "", "file":
f, err := os.Open(url.Path)
if err != nil {
return nil, err
}
defer f.Close()
return lextwt.ParseFile(f, twter)
case "http", "https":
if httpIsModified(url.String(), cache) {
fmt.Println("Using Local: ", url, fname)
f, _ := os.Open(fname)
return lextwt.ParseFile(f, twter)
}
fmt.Println("Using remote: ", url, fname)
f, err := http.Get(url.String())
if err != nil {
return nil, fmt.Errorf("Empty File: %w", err)
}
defer f.Body.Close()
r = f.Body
case "gopher":
fmt.Println("Using Gopher: ", url, fname)
f, err := gopher.Get(url.String())
if err != nil {
return nil, err
}
if f.Body == nil {
err = fmt.Errorf("Error: body is empty %v", f.Type)
return nil, err
}
defer f.Body.Close()
r = f.Body
default:
fmt.Println("Unknown scheme: ", url.Scheme)
return nil, nil
}
out, err := os.Create(fname)
if err != nil {
return nil, err
}
r = io.TeeReader(r, out)
return lextwt.ParseFile(r, twter)
}
func hashHuman(u *url.URL) string {
name := strings.ToLower(u.String())
hash := sha1.Sum([]byte(name))
lp := "feeds/" + u.Hostname() + "+" + zbase32.EncodeToString(hash[:])
return lp
}
func httpIsModified(url string, info os.FileInfo) bool {
// No file so fetch
if info == nil {
return true
}
res, err := http.Head(url)
// Failed to fetch so dont try again.
if err != nil {
return false
}
switch res.StatusCode {
case http.StatusOK:
case http.StatusGone, http.StatusNotFound, http.StatusBadGateway, http.StatusGatewayTimeout:
return false
default:
return true
}
d, err := time.Parse(time.RFC1123, res.Header.Get("Last-Modified"))
// No modification so assume new.
if err != nil {
return true
}
// If remote is before local use local
return d.Before(info.ModTime())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment